grommasdietz/kirby-proofreader

Typographic suggestions for Kirby CMS

Maintainers

Package info

github.com/grommasdietz/kirby-proofreader

Type:kirby-plugin

pkg:composer/grommasdietz/kirby-proofreader

Statistics

Installs: 45

Dependents: 0

Suggesters: 0

Stars: 3

Open Issues: 0

1.3.0 2026-05-10 09:50 UTC

This package is auto-updated.

Last update: 2026-05-10 09:54:52 UTC


README

Kirby Proofreader adds a Panel button on Kirby CMS for reviewing typographic corrections in page and site content before applying them. Field changes are saved to Kirby's changes version, title fixes use Kirby's native title action and save immediately.

Cover image showing an example of the plugin in use

Requirements

  • Kirby 5+
  • PHP 8.2+

Installation

composer require grommasdietz/kirby-proofreader

Tip

If you don’t use Composer, you can download this repository and copy it to site/plugins/kirby-proofreader.

Quickstart

Add the button to a page or site blueprint:

buttons:
  proofreader: true
  languages: true
  status: true
  settings: true

Options

The default rule order is unicode, ellipsis, quotes, apostrophes, dashes, spaces. dimensions is a predefined optional rule for values such as 5 x 5 cm. Rules can be reordered, disabled or extended. Configure via site/config/config.php:

return [
    'grommasdietz.proofreader.rules' => [
        'unicode',
        'ellipsis',
        'quotes' => false,
        'apostrophes',
        'dashes',
        'spaces',
        'dimensions',
        'trademark' => [
            'label' => 'Trademark',
            'callback' => static fn (string $text): string => str_replace(
                'Label TM',
                'Label™',
                $text
            ),
        ],
    ],
];

The keyed false entry disables the built-in quotes rule. The keyed trademark array adds a custom callback rule.

Quote characters, dash characters and dash spacing follow Kirby's native SmartyPants options when configured globally or per language. Single-language installs need SmartyPants configuration to enable quote rule.

Default field coverage includes text, textarea, writer, list, structure, blocks and layout fields. Custom field names or types can be included or excluded:

return [
    'grommasdietz.proofreader.fields' => [
        'include' => [
            'types' => [
                'custom-writer' => 'html',
                'custom-text' => 'plain',
                'custom-structure' => 'structure',
            ],
            'names' => [
                'intro' => 'plain',
            ],
        ],
        'exclude' => [
            'types' => ['text', 'textarea'],
            'names' => ['intro'],
        ],
    ],
];

Documentation

Full reference for usage, contributions and maintenance lives in documentation.

Changelog

See CHANGELOG.md for version history and changes.

Security

See SECURITY.md for security policies and reporting vulnerabilities.

Contributing

See CONTRIBUTING.md for guidance and expectations.

License

MIT © 2026 Grommas Dietz