boring-dragon / editorjs-simple-html-parser
A simple Json to Html parser for EditorJS library
Installs: 1 972
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 14
pkg:composer/boring-dragon/editorjs-simple-html-parser
Requires
- php: >=7.3
 - ext-dom: *
 - ext-json: *
 - masterminds/html5: ^2.7@dev
 
Requires (Dev)
- phpunit/phpunit: ^8
 
README
Simple PHP Parser for Editor.js
Parse to HTML clean JSON Data from Editor.js
Installation
composer require boring-dragon/editorjs-simple-html-parser
Usage
use Durlecode\EJSParser\Parser; $html = Parser::parse($data)->toHtml();
Where $data is the clean JSON data coming from Editor.js See $data example below
{
    "time" : 1583848289745,
    "blocks" : [
        {
            "type" : "header",
            "data" : {
                "text" : "Hello World",
                "level" : 2
            }
        }
    ],
    "version" : "2.16.1"
}
By default this will generate html with css classes with prs prefix, so if you want to change it, follow example below
use Durlecode\EJSParser\Parser; $parser = new Parser($data); $parser->setPrefix("cat"); $parsed = $parser->toHtml();
Supported Tools
| Package | Key | Main CSS Class | 
|---|---|---|
@editorjs/code | 
code | 
.prs-code | 
@editorjs/embed | 
embed | 
.prs-embed | 
@editorjs/delimiter | 
delimiter | 
.prs-delimiter | 
@editorjs/header | 
header | 
.prs-h{header-level} | 
@editorjs/inline-code | 
||
@editorjs/link | 
link | 
.prs-link | 
@editorjs/list | 
list | 
.prs-list | 
@editorjs/marker | 
||
@editorjs/paragraph | 
paragraph | 
.prs-paragraph | 
@editorjs/raw | 
raw | 
|
@editorjs/simple-image | 
simpleImage | 
.prs-image | 
@editorjs/warning | 
warning | 
.prs-warning | 
@editorjs/quote | 
quote | 
.prs-quote | 
Methods
toHtml()
Return generated HTML
setPrefix(string $prefix)
Set CSS classes Prefix
getPrefix()
Return current prefix
getVersion()
Return Editor.js content version
getTime()
Return Editor.js content timestamp
getBlocks()
Return Editor.js content blocks
Generated HTML
Code
<div class="prs-code"> <pre> <code></code> </pre> </div>
Embed
(Actually working with Youtube, Codepen & Gfycat)
<div class="prs-embed"> <iframe src="" height="300"></iframe> </div>
Delimiter
<hr class="prs-delimiter">
Header
<h2 class="prs-h2">Lorem</h2>
Link
<a href="https://github.com/" target="_blank" class="prs-link"> <div class="prs-link-container-with-img"> <div class="prs-link-title">Title</div> <div class="prs-link-description">Description</div> <div class="prs-link-url">https://example.com/</div> </div> <div class="prs-link-img-container"> <img src="https://example.com/cat.png" alt=""> </div> </a>
Ordered List
<div class="prs-list"> <ol> <li></li> </ol> </div>
Unordered List
<div class="prs-list"> <ul> <li></li> </ul> </div>
Paragraph
<p class="prs-paragraph"> <code class="inline-code">Pellentesque</code> <i>malesuada fames</i> <mark class="cdx-marker">tempus</mark> </p>
Image
<figure class="prs-image"> <img src="" class="prs-image-border prs-image-background" alt=""> <figcaption></figcaption> </figure>
Warning
<div class="prs-warning"> <ion-icon name="information-outline" size="large" aria-label="information outline"></ion-icon> <div> <p>Title</p> <p>Message</p> </div> </div>
Raw
<div class="prs-raw"> Raw HTML ... </div>