nadar/prosemirror-json-parser

一个易于将 ProseMirror/TipTap JSON 转换为可自定义 HTML 元素的库。

1.2.1 2024-04-10 10:22 UTC

This package is auto-updated.

Last update: 2024-09-10 11:22:59 UTC


README

ProseMirror JSON 解析器(prosemirror-json-parser)是一个灵活的 PHP 库,旨在轻松将 ProseMirror/TipTap JSON 模型 内容转换为 HTML。凭借无依赖运行和卓越的解析速度,此库确保了高性能的 HTML 生成。与 TipTap 和 ProseMirror 无缝集成,通过简单添加或修改节点提供自定义功能。通过 Composer 无缝安装,使用 toHtml 函数并探索广泛的定制选项,以实现定制的 JSON 到 HTML 转换。

它与 TipTap 和 ProseMirror 都能无缝协作,因为 TipTap 是基于 ProseMirror 构建的。

PHPUnit Tests Maintainability Test Coverage Latest Stable Version Total Downloads License

ProseMirror JSON Parser, what AI thinks about

关键特性

  • 无依赖:此解析器无需任何额外库。
  • 极快速度:提供高性能解析能力。
  • 高度可扩展:根据您的需求添加自定义节点。
  • 100% 代码覆盖率和测试:确保全面的测试覆盖,保证可靠性和稳定性。
  • 强大的内置 HTML 生成:无缝生成高质量的 HTML,无需修改,确保易用性和可靠性。

安装 & 使用

使用 Composer 安装库,请执行以下命令

composer require nadar/prosemirror-json-parser

安装库后,将解析器集成到您的项目中。使用 toHtml 函数将您的 JSON 值转换为可渲染的 HTML 代码。请注意,toHtml 函数仅接受数组。因此,如果您的内容是 JSON 格式,请使用 json_decode($json, true) 首先将 JSON 字符串转换为数组,然后传递给 toHtml(json_decode($json, true))

$html = (new Nadar\ProseMirror\Parser())
    ->toHtml($json);

扩展 & 自定义

每个节点对应解析器中的一个可调用函数,使用节点的名称作为键。这种设置允许轻松添加或修改节点。

例如,要调整图像节点的渲染,您可以使用 replaceNode() 方法在解析器中包含您自己的函数。

$html = (new \Nadar\ProseMirror\Parser())
    ->replaceNode(\Nadar\ProseMirror\Types::image, fn(\Nadar\ProseMirror\Node $node) => '<img src="' . $node->getAttr('src') . '" class="this-is-my-class" />')
    ->toHtml($json);

要查看所有默认节点声明,请参阅 Types 类。

如果您有一个具有特定名称的自定义节点,您可以使用 addNode() 方法将其添加到解析器中。

$html = (new \Nadar\ProseMirror\Parser())
    ->addNode('myCustomNode', fn(\Nadar\ProseMirror\Node $node) => '<div class="my-custom-node">...</div>')
    ->toHtml($json);

addNodereplaceNode 方法在内部几乎相同,只是 replaceNode 应仅用于更改默认节点的输出。您可以在 Types 类中查看所有默认声明节点。

这些文本和图像由 AI 增强,因为英语不是我的第一语言,而我相当懒惰。甚至这句话也是由 AI 生成的。