cjprinse/prosemirror-to-html

将HTML转换为ProseMirror兼容的JSON。

2.1.0 2020-09-22 14:55 UTC

README

我们需要您的支持来维护这个包。💖 https://github.com/sponsors/ueberdosis

ProseMirror到HTML

将ProseMirror JSON转换为HTML。

Latest Version on Packagist Integrate Total Downloads Sponsor

安装

composer require ueberdosis/prosemirror-to-html

用法

(new \ProseMirrorToHtml\Renderer)->render([
    'type' => 'doc',
    'content' => [
        [
            'type' => 'paragraph',
            'content' => [
                [
                    'type' => 'text',
                    'text' => 'Example Paragraph',
                ],
            ],
        ],
    ],
])

输出

<p>Example Text</p>

支持的节点

  • 引用块
  • 项目符号列表
  • 代码块
  • 硬换行
  • 标题
  • 图片
  • 列表项
  • 有序列表
  • 段落
  • 表格
  • 表格行
  • 表头
  • 表单元格

支持的标记

  • 粗体
  • 代码
  • 斜体
  • 链接
  • 删除线
  • 下标
  • 上标
  • 下划线

自定义节点

定义自定义节点为PHP类

<?php

class CustomNode extends \ProseMirrorToHtml\Nodes\Node
{
    protected $markType = 'custom';
    protected $tagName = 'marquee';
}

并注册它们

$renderer->addNode(CustomNode::class);

或覆盖已启用的节点

$renderer->withNodes([
    CustomNode::class,
]);

或覆盖已启用的标记

$renderer->withMarks([
    Bold::class,
]);

或只替换一个标记或节点

$renderer->replaceNode(
    CodeBlock::class, CustomCodeBlock::class
);

$renderer->replaceMark(
    Bold::class, CustomBold::class
);

贡献

欢迎提交拉取请求。

鸣谢

相关包

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。