Provides a wysiwyg editor for HTMLText content fields.
Combined with the frontend authoring module, provides in-place page editing capability
composer require symbiote/silverstripe-prose-editor:~1.0
- SilverStripe 4.1+
Create and use ProseEditorField where you would otherwise use HtmlEditorField
- Markdown-like shortcuts for formatting and creating lists, eg strike, bold, inline code
- Table editing
- Image paste and upload,
- Insert images from the CMS
- Insert page links from the CMS
- Creating new pages using square brackets/round brackets, [{page name}]({url-segment}]. You can leave url-segment empty, and one will be automatically created (requires the frontend-authoring module)
Add the following to your _config.php if you'd like some additional shortcodes made available
ShortcodeParser::get('default')->register('show_field', array(ProseShortcodes::class, 'show_field_shortcode'));
ShortcodeParser::get('default')->register('listing', array(ProseShortcodes::class, 'listing_content'));
ShortcodeParser::get('default')->register('workflow_tasks', array(ProseShortcodes::class, 'workflow_tasks'));
ShortcodeParser::get('default')->register('random_item', array(ProseShortcodes::class, 'random_item'));
ShortcodeParser::get('default')->register('userform', array(ProseShortcodes::class, 'userform'));
- show_field(field, args) : Displays a field from the 'context' object, typically the currently viewed page.
- field: The field to display; can be in dotted notation for relationship traversal, ie Team.Title
- args: Comma separated list of arguments to pass when resolving the value
- listing(page_id, source_id) : Requires the ListingPage module, lists out content
- page_id: The listing page to render
- source_id: The source of the listing. Pass in 'me' to refer to the current page
- workflow_tasks: Lists out the current user's workflow tasks
- random_item: Gets a random page from the last 50 edited pages
- userform(form_id): Display the content of the userform from ID form_id
Where you'd normally use an HTMLEditorField, use ProseEditorField
instead.
To enable or disable menu items, use disableMenuItem($name)
and the correlation
enableMenuItem
. Menu items available are
insertlink
insertimage
bulletlist
orderedlist
quote
paragraph
pre
hr
table
shortcode
viewsource
You can also toggle inserting internal CMS links using disableSetting('linkSelector', 'internal')