smongey / writer-marks
The easiest way to add custom marks in Kirby 4/5 Writer fields
Installs: 3
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Language:JavaScript
Type:kirby-plugin
Requires
This package is not auto-updated.
Last update: 2025-07-07 17:31:34 UTC
README
The easiest way to add custom marks in Kirby 4 Writer fields
Writer Marks lets you add custom marks to any Writer
fields by simply adding a few options to your config/config.php
.
Installation
Install via Composer:
composer require smongey/writer-marks
Or download and extract the plugin to your site/plugins/writer-marks
directory.
Adding Marks
return [ "debug" => true, "smongey.writermarks" => [ "marks" => [ "highlight" => [ "icon" => "sparkling", "label" => "Amazingly Highlighted Text", "tag" => "mark", "class" => "super-highlight", "style" => "text-decoration: underline", "attrs" => [ "x-data" => "highlight()", "x-click.prevent" => "alert(message)", ], ], ], ], ]
Tags and Attributes:
The above code will add a "highlight" mark to the text that is rendered inside of a <mark>
-tag in both, the writer field and the actual frontend-code of the page. The tag will feature all attributes added to the attrs
array in both writer field and the actual rendered frontend.
Styling
The style
argument allows you to pass inline css to the mark that will be rendered in the writer field only. Frontend styling should be done via the actual classes. (Note: Technically you could add the style
argument as another value on attrs
to get it to show up in the frontend but that's generally not a smart idea).
Label and Icon
The label
and icon
arguments set the label and icon for the button in the writer field. They do not show up in the rendered frontend. The icon can be any named icon from Kirby's own iconset
Using Marks
You will have to add your custom mark to the blueprint of your Writer field's in order to be able to use them.
Example:
text:
type: writer
marks:
- bold
- italic
- strike
- highlight
- buttonLink
Links
Links are special kinds of marks that allow you to add editable <a href="...">
-tags with custom classes and attributes to your Writer fields.
You can add them like so:
return [ 'smongey.writermarks' => [ "links" => [ "buttonLink" => [ "label" => "Special Link Button", "icon" => "attachment", "tag" => "button", "class" => "superspecial", "style" => "text-decoration: line-through", "attrs" => [ "x-data" => "awesomeHighlight()", ], ], ], ] ];
The attributes and settings of links function exactly like those of regular marks. The only difference is in how they behave in the editor.
Avoiding issues with links:
Link fields have to have a class set on them. Otherwise the writer field will confuse them for regular links
Todo
These tasks still need to be completed before a public release;
- [] Report docs being broken to Kirby
- [] Report event-propagation bug to Kirby
- [] Report issue with inlining JS into the panel to Kirby
- [] Add comments
- [] Touch up ReadMe
- Find a better name (Now called Writer Marks)