boring-dragon / editorjs-simple-html-parser
EditorJS 库的简单 JSON 到 HTML 解析器
v1.1.6
2024-04-19 04:30 UTC
Requires
- php: >=7.3
- ext-dom: *
- ext-json: *
- masterminds/html5: ^2.7@dev
Requires (Dev)
- phpunit/phpunit: ^8
README
Editor.js 的简单 PHP 解析器
解析来自 Editor.js 的干净 JSON 数据
安装
composer require boring-dragon/editorjs-simple-html-parser
使用
use Durlecode\EJSParser\Parser; $html = Parser::parse($data)->toHtml();
其中 $data
是来自 Editor.js 的干净 JSON 数据 请参阅下面的 $data
示例
{ "time" : 1583848289745, "blocks" : [ { "type" : "header", "data" : { "text" : "Hello World", "level" : 2 } } ], "version" : "2.16.1" }
默认情况下,这将生成带有 prs
前缀的 CSS 类的 HTML,因此如果您想更改它,请参考以下示例
use Durlecode\EJSParser\Parser; $parser = new Parser($data); $parser->setPrefix("cat"); $parsed = $parser->toHtml();
支持的工具
方法
toHtml()
返回生成的 HTML
setPrefix(string $prefix)
设置 CSS 类前缀
getPrefix()
返回当前前缀
getVersion()
返回 Editor.js 内容版本
getTime()
返回 Editor.js 内容时间戳
getBlocks()
返回 Editor.js 内容块
生成的 HTML
代码
<div class="prs-code"> <pre> <code></code> </pre> </div>
嵌入
(实际上与 YouTube、Codepen 和 Gfycat 一起工作)
<div class="prs-embed"> <iframe src="" height="300"></iframe> </div>
分隔符
<hr class="prs-delimiter">
标题
<h2 class="prs-h2">Lorem</h2>
链接
<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>
有序列表
<div class="prs-list"> <ol> <li></li> </ol> </div>
无序列表
<div class="prs-list"> <ul> <li></li> </ul> </div>
段落
<p class="prs-paragraph"> <code class="inline-code">Pellentesque</code> <i>malesuada fames</i> <mark class="cdx-marker">tempus</mark> </p>
图片
<figure class="prs-image"> <img src="" class="prs-image-border prs-image-background" alt=""> <figcaption></figcaption> </figure>
警告
<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>
原始数据
<div class="prs-raw"> Raw HTML ... </div>