PHPackages                             symbiote/silverstripe-prose-editor - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. symbiote/silverstripe-prose-editor

ActiveSilverstripe-vendormodule[Utility &amp; Helpers](/categories/utility)

symbiote/silverstripe-prose-editor
==================================

A wysiwyg editor based on prose mirror

1.4.1(4y ago)2383[9 PRs](https://github.com/nyeholt/silverstripe-prose-editor/pulls)1BSD-3-ClauseJavaScript

Since Apr 29Pushed 3y ago2 watchersCompare

[ Source](https://github.com/nyeholt/silverstripe-prose-editor)[ Packagist](https://packagist.org/packages/symbiote/silverstripe-prose-editor)[ RSS](/packages/symbiote-silverstripe-prose-editor/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (1)Dependencies (3)Versions (26)Used By (1)

Prose Editor
============

[](#prose-editor)

[![Latest Stable Version](https://camo.githubusercontent.com/e3fe573042188469a7235a304173d80ed7b998f1b92cf5d299d4f8d4b850ea5e/68747470733a2f2f706f7365722e707567782e6f72672f73796d62696f74652f73696c7665727374726970652d70726f73652d656469746f722f76657273696f6e2e737667)](https://github.com/symbiote/silverstripe-prose-editor/releases)[![Latest Unstable Version](https://camo.githubusercontent.com/c50fbc438db63fe57d01166bb6042b121bbb56441f3dddf8f60fc9822d8fc85d/68747470733a2f2f706f7365722e707567782e6f72672f73796d62696f74652f73696c7665727374726970652d70726f73652d656469746f722f762f756e737461626c652e737667)](https://packagist.org/packages/symbiote/silverstripe-prose-editor)[![Total Downloads](https://camo.githubusercontent.com/4c52f97d65b1c65de0440d2bbb7cadc83f78b029a5f0ce6c3f79e692d5323428/68747470733a2f2f706f7365722e707567782e6f72672f73796d62696f74652f73696c7665727374726970652d70726f73652d656469746f722f646f776e6c6f6164732e737667)](https://packagist.org/packages/symbiote/silverstripe-prose-editor)[![License](https://camo.githubusercontent.com/ed4d3aa7d75271d25f281a06ad8017138be43e63741a2fe8b92dc404206c19e2/68747470733a2f2f706f7365722e707567782e6f72672f73796d62696f74652f73696c7665727374726970652d70726f73652d656469746f722f6c6963656e73652e737667)](https://github.com/symbiote/silverstripe-prose-editor/blob/master/LICENSE.md)

Provides a wysiwyg editor for HTMLText content fields.

Combined with the frontend authoring module, provides in-place page editing capability

Composer Install
----------------

[](#composer-install)

```
composer require symbiote/silverstripe-prose-editor:~1.0

```

Requirements
------------

[](#requirements)

- SilverStripe 4.1+

Quick Start
-----------

[](#quick-start)

Create and use ProseEditorField where you would otherwise use HtmlEditorField

Documentation
-------------

[](#documentation)

- 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)

### Shortcodes

[](#shortcodes)

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

### Quick Start

[](#quick-start-1)

Where you'd normally use an HTMLEditorField, use `ProseEditorField` instead.

### Usage

[](#usage)

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')`

- [License](LICENSE.md)
- [Contributing](CONTRIBUTING.md)

###  Health Score

32

—

LowBetter than 69% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity70

Established project with proven stability

 Bus Factor1

Top contributor holds 82.4% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~77 days

Recently: every ~147 days

Total

14

Last Release

1613d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/25cb1c56a7ab949d1e6b28a2a04862ce1cffe1799a291e1797f8dfd33cd83716?d=identicon)[nyeholt](/maintainers/nyeholt)

---

Top Contributors

[![nyeholt](https://avatars.githubusercontent.com/u/161730?v=4)](https://github.com/nyeholt "nyeholt (131 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (21 commits)")[![jason-symbiote](https://avatars.githubusercontent.com/u/35711440?v=4)](https://github.com/jason-symbiote "jason-symbiote (7 commits)")

---

Tags

silverstripewysiwygprose

###  Code Quality

TestsPHPUnit

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/symbiote-silverstripe-prose-editor/health.svg)

```
[![Health](https://phpackages.com/badges/symbiote-silverstripe-prose-editor/health.svg)](https://phpackages.com/packages/symbiote-silverstripe-prose-editor)
```

###  Alternatives

[silverstripe/userforms

UserForms enables CMS users to create dynamic forms via a drag and drop interface and without getting involved in any PHP code

1321.1M83](/packages/silverstripe-userforms)[symbiote/silverstripe-gridfieldextensions

A collection of useful grid field components

951.9M264](/packages/symbiote-silverstripe-gridfieldextensions)[silverstripe/tagfield

Tag field for SilverStripe

561.3M50](/packages/silverstripe-tagfield)[jonom/silverstripe-betternavigator

Front-end utility menu for Silverstripe websites featuring administration and development tools

59429.0k12](/packages/jonom-silverstripe-betternavigator)[symbiote/silverstripe-advancedworkflow

Adds configurable workflow support to the CMS, with a GUI for creating custom workflow definitions.

46299.9k9](/packages/symbiote-silverstripe-advancedworkflow)[lekoala/silverstripe-cms-actions

Add actions to your models in SilverStripe

39317.0k29](/packages/lekoala-silverstripe-cms-actions)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
