setono / editorjs-php
PHP library for handling data from the EditorJS
Installs: 15 068
Dependents: 1
Suggesters: 0
Security: 0
Stars: 16
Watchers: 3
Forks: 1
Open Issues: 1
Requires
- php: >=7.4
- ext-json: *
- azjezz/psl: ^1.6
- psr/log: ^1.1 || ^2.0 || ^3.0
- symfony/options-resolver: ^4.4 || ^5.4 || ^6.0
- webmozart/assert: ^1.10
Requires (Dev)
- infection/infection: ^0.26
- php-standard-library/psalm-plugin: ^1.1
- phpunit/phpunit: ^9.5
- psalm/plugin-phpunit: ^0.17
- setono/code-quality-pack: ^2.2
README
Installation
composer require setono/editorjs-php
Usage
Here is a full example going from json to html output.
<?php $json = '...'; // this is the actual json you receive from the EditorJS instance $hydrator = new CompositeHydrator(); $hydrator->add(new BlockHydrator()); $hydrator->add(new EmbedBlockHydrator()); $hydrator->add(new HeaderBlockHydrator()); $hydrator->add(new ImageBlockHydrator()); $hydrator->add(new ListBlockHydrator()); $hydrator->add(new ParagraphBlockHydrator()); $hydrator->add(new RawBlockHydrator()); $parser = new Parser($hydrator); $parserResult = $parser->parse($json); $blockRenderer = new CompositeBlockRenderer(); $blockRenderer->add(new DelimiterBlockRenderer()); $blockRenderer->add(new HeaderBlockRenderer()); $blockRenderer->add(new ImageBlockRenderer()); $blockRenderer->add(new ListBlockRenderer()); $blockRenderer->add(new ParagraphBlockRenderer()); $blockRenderer->add(new RawBlockRenderer()); $renderer = new Renderer($blockRenderer); $html = $renderer->render($parserResult);
EditorJS plugins supported
- attaches
- checklist
- code
- delimiter
- embed
- header
- image
- inline-code
- link
- link-autocomplete
- list
- marker
- nested-list
- paragraph
- personality
- quote
- raw
- simple-image
- table
- underline
- warning
A PR adding support for any of the above plugins would be awesome! Thank you 🎉