techdiary / editorjs-parser
此包最新版本(dev-master)没有可用的许可证信息。
EditorJS 库的简单 Json 到 Html 解析器
dev-master
2021-09-16 21:33 UTC
Requires
- php: >=7.3
- ext-dom: *
- ext-json: *
- masterminds/html5: ^2.7@dev
Requires (Dev)
- phpunit/phpunit: ^8
This package is not auto-updated.
Last update: 2024-09-28 09:54:55 UTC
README
Editor.js 的简单 PHP 解析器
从 Editor.js 解析到干净的 JSON 数据的 HTML
安装
composer require durlecode/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>