PHPackages                             grch/editor-plugin - 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. grch/editor-plugin

ActiveOctober-plugin[Utility &amp; Helpers](/categories/utility)

grch/editor-plugin
==================

Most powerful, next generation block styled editor with multilingual support.

v1.0.6(2y ago)045MITPHP

Since May 15Pushed 2y agoCompare

[ Source](https://github.com/mix8872/EditorJS)[ Packagist](https://packagist.org/packages/grch/editor-plugin)[ RSS](/packages/grch-editor-plugin/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (2)Versions (7)Used By (0)

**Editor for OctoberCMS**
-------------------------

[](#editor-for-octobercms)

Meet the new Editor. The most advanced "WYSWYG" (if you can say so) editor ever.

### **Key features**

[](#key-features)

- It is a block-styled editor
- It returns clean data output in JSON
- Designed to be extendable and pluggable with a simple API
- Native OctoberCMS events support for convenient extending of custom blocks

**Integrations ready:**

- RainLab.Blog
- RainLab.StaticPages
- Lovata.GoodNews
- Indikator.News

**Blocks supported:**

- Paragraph
- Header
- List (ul, ol)
- CheckList
- Link (Opengraph)
- Table
- Code
- Raw
- Embed
- Delimiter
- Image (paste url, drag'n'drop, upload)

### **What does it mean «block-styled editor»**

[](#what-does-it-mean-block-styled-editor)

Workspace in classic editors is made of a single contenteditable element, used to create different HTML markups. Editor workspace consists of separate Blocks: paragraphs, headings, images, lists, quotes, etc. Each of them is an independent contenteditable element (or more complex structure) provided by Plugin and united by Editor's Core.

There are dozens of ready-to-use Blocks and the simple API for creation any Block you need. For example, you can implement Blocks for Tweets, Instagram posts, surveys and polls, CTA-buttons and even games.

### **What does it mean clean data output**

[](#what-does-it-mean-clean-data-output)

Classic WYSIWYG-editors produce raw HTML-markup with both content data and content appearance. On the contrary, Editor.js outputs JSON object with data of each Block.

Given data can be used as you want: render with HTML for Web clients, render natively for mobile apps, create markup for Facebook Instant Articles or Google AMP, generate an audio version and so on.

**How to install**
------------------

[](#how-to-install)

Install plugin by OctoberCMS plugin updater.

Go to Settings –&gt; Updates&amp;Plugins find EditorJS in plugin search. Click on icon and install it.

**Usage**
---------

[](#usage)

After installing plugin, you are now able to set in `fields.yaml` `type:editorjs` to any desirable field. That's all. You are not limited of how many editors can be rendered at one page.

### How to enable integrations

[](#how-to-enable-integrations)

1. Make sure that the desirable plugin for integration is installed in system (list of supported plugins listed in Key Features section)
2. Go to Settings
3. In the sidebar find `Editor Settings` button inside `Editor tab`
4. Enable desirable integrations
5. Done.

### How to render HTML from Editor JSON

[](#how-to-render-html-from-editor-json)

To implement Editor to your Model, you must prepare a column in a database that is set to text.

1. Create a column with type `text` at your Model table, or use an already existing one.
2. Add `'grch.Editor.Behaviors.ConvertToHtml'` to $implement attribute of your model.
3. Add **getHtmlAttribute()** method and paste line of code as in the example below:

```
return $this->convertJsonToHtml($this->YourColumnName);

```

4. Render your field `{{ model.YourColumnName_html|raw }}`
5. Add editor styles to your page by ``

Example of model:

```
// ...
class Post extends Model
{

    // ...

    public $implement = [
        'Grch.Editor.Behaviors.ConvertToHtml'
    ];

    // ...

    public function getContentHtmlAttribute()
    {
        return $this->convertJsonToHtml($this->content);
    }
}

```

Example of rendering:

```
{{ post.content_html|raw }}

```

**Extending**
-------------

[](#extending)

You can create any new block as you like by reading official documentation that you can find here [Editor.Js docs](https://editorjs.io/api)

After creating new JS scripts with new block type Class, you can go through steps below to extend EditorJS formwidget:

1. Create new method in your Plugin.php file named `registerEditorBlocks()`, and by example below add blocks array and scripts for them. ```
    /**
     * Registers additional blocks for EditorJS
     * @return array
     */
    public function registerEditorBlocks()
    {
        return [
            'raw' => [
                'settings' => [
                    'class' => 'RawTool'
                ],
                'validation' => [
                    'html' => [
                        'type' => 'string',
                        'allowedTags' => '*',
                    ]
                ],
                'scripts' => [
                    '/plugins/grch/editor/formwidgets/editorjs/assets/js/tools/raw.js',
                ],
                'view' => 'grch.editor::blocks.raw'
            ],
        ];
    }

    ```
2. Done.

Now you can even publish your editorjs extender plugin to marketplace, so everyone can use your block!

---

Editor.js developed by CodeX Club of web-development. Adapted for OctoberCMS by Nick Khaetsky. [reazzon.ru](https://reazzon.ru)

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance31

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity45

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 75.7% 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 ~0 days

Total

6

Last Release

730d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/52c5dc1f7474e82117d2503c0d9c478ead60d46790e16b935f28fae4ffc29513?d=identicon)[mix8872](/maintainers/mix8872)

---

Top Contributors

[![FlusherDock1](https://avatars.githubusercontent.com/u/20070837?v=4)](https://github.com/FlusherDock1 "FlusherDock1 (78 commits)")[![mix8872](https://avatars.githubusercontent.com/u/25277872?v=4)](https://github.com/mix8872 "mix8872 (11 commits)")[![yurasovm](https://avatars.githubusercontent.com/u/3763808?v=4)](https://github.com/yurasovm "yurasovm (5 commits)")[![LeMaX10](https://avatars.githubusercontent.com/u/10564391?v=4)](https://github.com/LeMaX10 "LeMaX10 (5 commits)")[![PubliAlex](https://avatars.githubusercontent.com/u/55833027?v=4)](https://github.com/PubliAlex "PubliAlex (1 commits)")[![sergeitoroptsev](https://avatars.githubusercontent.com/u/35667885?v=4)](https://github.com/sergeitoroptsev "sergeitoroptsev (1 commits)")[![ShrikeFIN](https://avatars.githubusercontent.com/u/1734521?v=4)](https://github.com/ShrikeFIN "ShrikeFIN (1 commits)")[![ikeedo](https://avatars.githubusercontent.com/u/623353?v=4)](https://github.com/ikeedo "ikeedo (1 commits)")

### Embed Badge

![Health badge](/badges/grch-editor-plugin/health.svg)

```
[![Health](https://phpackages.com/badges/grch-editor-plugin/health.svg)](https://phpackages.com/packages/grch-editor-plugin)
```

###  Alternatives

[rainlab/blog-plugin

Blog plugin for October CMS

17257.7k](/packages/rainlab-blog-plugin)[rainlab/builder-plugin

Builder plugin for October CMS

17147.2k1](/packages/rainlab-builder-plugin)[pfefferle/wordpress-activitypub

The ActivityPub protocol is a decentralized social networking protocol based upon the ActivityStreams 2.0 data format.

5671.4k1](/packages/pfefferle-wordpress-activitypub)[civicrm/civicrm-drupal-8

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

18238.1k2](/packages/civicrm-civicrm-drupal-8)[mediawiki/semantic-glossary

A terminology markup extension with a Semantic MediaWiki back-end

1352.4k](/packages/mediawiki-semantic-glossary)[humanmade/lottie-lite

A lightweight Lottie Animations Extension for WordPress

374.3k](/packages/humanmade-lottie-lite)

PHPackages © 2026

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