deanblackborough/php-quill-renderer

此包已废弃,不再维护。作者建议使用nadar/quill-delta-parser包。

将 quill 插入 delta 渲染为 HTML、Markdown 和 GitHub 风格的 Markdown

v4.01.0 2021-12-15 13:30 UTC

README

Latest Stable Version Packagist License Minimum PHP Version Supported PHP Version Supported PHP Version Validate dependencies and run tests

PHP Quill Renderer

将 quill 插入 delta 渲染为 HTML、Markdown 和 GitHub 风格的 Markdown。

只读

看起来 Quill 不会有新版本了,我决定将仓库设置为只读,我不会再为这个包投入更多时间。

描述

Quill delta 渲染器,将 delta 转换为 HTML 和 Markdown,支持的 Quill 属性列在下面的表格中,目标是最终支持所有 Quill 功能。

Quill 是一个现代的 WYSIWYG 编辑器,旨在兼容性和可扩展性。

安装

使用 PHP Quill Renderer 最简单的方法是通过 composer。运行 composer require deanblackborough/php-quill-renderer,或者您可以直接将我的 src 目录中的类包含到您的库或应用程序中。

使用

通过 API,单个 $quill_json

try {
    $quill = new \DBlackborough\Quill\Render($quill_json);
    $result = $quill->render();
} catch (\Exception $e) {
    echo $e->getMessage();
}

echo $result;

通过 API,多个 $quill_json,通过数组传入

try {
    $quill = new RenderMultiple($quill_json, 'HTML');
    
    $result_one = $quill->render('one');
    $result_two = $quill->render('two');
} catch (\Exception $e) {
    echo $e->getMessage();
}

echo $result_one;
echo $result_two;

直接,解析然后渲染,单个 $quill_json - 更新于 v3.10.0

$parser = new \DBlackborough\Quill\Parser\Html();
$renderer = new \DBlackborough\Quill\Renderer\Html();

$parser->load($quill_json)->parse();

echo $renderer->load($parser->deltas())->render();

直接,解析然后渲染,多个 $quill_json - 更新于 v3.10.0

$parser = new \DBlackborough\Quill\Parser\Html();
$renderer = new \DBlackborough\Quill\Renderer\Html();

$parser->loadMultiple(['one'=> $quill_json_1, 'two' => $quill_json_2)->parseMultiple();

echo $renderer->load($parser->deltasByIndex('one'))->render();
echo $renderer->load($parser->deltasByIndex('two'))->render();

Quill 属性和文本流支持

属性 v1+ v2+ v3 HTML v3 Markdown
粗体
斜体
链接
删除线 不适用
脚本:下标 不适用
脚本:上标 不适用
下划线 不适用
标题
图片
视频
列表
子列表
缩进/空格
文本方向 不适用
颜色 不适用/未知
字体 不适用/未知
文本对齐 不适用
块引用
代码块
自定义属性 不适用
换行符
段落
属性 HTML 标签 Markdown 令牌
粗体 <strong> **
斜体 <em> *
链接 <a> [文本](链接)
删除线 <s>
脚本:下标 <sub>
脚本:上标 <sup>
下划线 <u>
标题 <h[n]> #[n]
图片 <img> ![图片](图片路径)
视频 <iframe> ![视频](视频路径)
列表 <ul> <ol> * & [n]

版权和许可

deanblackborough/php-quill-renderer 库版权 © Dean Blackborough,并许可在MIT许可(MIT)下使用。

致谢

  • carlos [修复错误] v1.01.0。
  • pdiveris [问题 #43] - Null 插入。
  • Mark Davison - 在v3.00.0版本中引导我走向正确的方向。
  • tominventisbe [问题 #54] - Parser::load() 不重置 deltas 数组。
  • tominventisbe [问题 #55] - 将具有多个属性的图像 deltas 错误地传递到复合 delta。
  • bcorcoran [问题 #81] - 建议将需求回退到必需需求。
  • kingga [问题 #86] - 视频支持。
  • Jonathanm10 [问题 #87] - 插入后忽略新行,错误报告。
  • raphaelsaunier [问题 #87] - 插入后忽略新行,错误位置。
  • Basil [问题 #101] - 解析器忽略只有换行符的插入。
  • Lee Hesselden [PR #104] - 允许使用 style:color="#xxx" 定义的 span 样式颜色 delta。 (功能将由[问题 #106]扩展)
  • Alex [PR #112] - 如果合理,将自定义属性分配给样式属性。
  • davidraijmakers [问题 #108] - 标题不支持子元素。
  • philippkuehn [问题 #109] - 多列表输出不正确,段落未关闭。
  • mechanicalgux [问题 #117] - 复合 delta 不知道它们可以是链接。
  • Lode Claassen [PR #121] - 异常消息中缺少支持的格式。
  • Lode Claassen [PR #122] - 验证代码 DRY。
  • Lode Claassen [PR #123] - 允许将已解码的 json 传递给解析器。
  • Nicholas Humphries [PR #128] - 不支持具有属性的视频。
  • hybridvision [问题 #132] - 当它们不是第一个内容时,渲染单个项目列表有问题。

编码标准和文档致谢