@ bettercms-ai/ richtext (英语)
BetterCMS的一个便携式文本合同:计划、转换器和渲染。 共有 后端,仪表板, 和每一个送货SDK.
BetterCMS 在此套件之前运出四个手卷"可移植文本"树, 全部四个
与 光谱 以同样昂贵的方式:没有 markDefs。 。 。 .
没有标记,一个链接就无处可去, 所以每个人都可以做粗体文字
没有一个可以做超链接。 这个包裹是规格,所以是官方
@portabletext/* 软件包可以读取和写入我们的内容而无需shim.
安装
npm install @bettercms-ai/richtext
读取存储值
toPortableText 读取每个形状 BetterCMS曾经存储 从不扔 - 掷出一球
这里是一个空白字段, 一个空白字段是一个自动保存 远离永久.
未识别输入返回 [] 并通过 onUnreadable。 。 。 .
import { toPortableText, portableTextToPlainText } from "@bettercms-ai/richtext";
const value = toPortableText(entry.data.body);
const preview = portableTextToPlainText(value);
它能处理一空 PortableText[],则 {format, value, html} 信封, 一个 Lexical 状态
(对象或JSON字符串) bettercms-notion-doc 文档格式,一个预封
{html} 种子、 赤色 HTML 和纯文本—— 保留 字义,因为运行
作者通过 Markdown 解析器复制的字条是如何开始的 # 沉默地变成了一个方向.
渲染
import { portableTextToHtml } from "@bettercms-ai/richtext/html";
const html = portableTextToHtml(value);
const inline = portableTextToHtml(value, { inline: true }); // unwraps a lone <p>
存储是结构化数据, HTML 仅是输出, 因此作者文本永远不能
标记 : @portabletext/to-html 通过构建来避开文本节点。 唯一的属性
写作是 href 结束 safeHref 和与图案相匹配的阶级标志.
输入 HTML
import { htmlToPortableText } from "@bettercms-ai/richtext/ingest";
import { ptSchemaFor } from "@bettercms-ai/richtext";
htmlToPortableText(html, {
parseHtml: (h) => new JSDOM(h).window.document, // required outside a browser
schema: ptSchemaFor(["p", "h2", "link", "table"]),
});
过滤器是计划. 在计划里没有位置的标签会生成 无节点 —— 说 <script>
不是"被洗脑了", 它没有分析什么。 一个 ptSchemaFor(accept) 对象
驱动编辑器的工具栏,服务器的写入验证, 并同时驱动此过滤器, 所以它们
无法漂移.
表格
表格是它本身的块对象—— {_type:"table", rows:[{_key, cells:[{_key, content}]}]} —— 说
和一个牢房 块而不是一个弦。 因此,一个链接,一个大胆的词 或第二段在一个
单元格是普通的丰富文本,摄取者通过同一单元格摄取来保存
转换器作为周围的文档.
htmlToPortableText('<table><tbody><tr><td>Pro</td></tr></tbody></table>', { parseHtml, schema })
// → [{ _type: "table", _key: "…", rows: [{ _key: "…", cells: [{ _key: "…", content: [/* blocks */] }] }] }]
header 坐在牢房里(<th>, (中文(简体) ), head 排行数<thead>),以及 span 记录a colspan
没有崩溃的网格。 三者都记录下来,而不是推想得出一张表格
复制它来自的标记——财产 委托书审计 --tables 通过措施
每个存储的值, 以及一个表格可能转换的原因.
在此之前储存的表格——通用 bcmsBlock 键入 builtin:table,持有字符串矩阵——
正在迁移 读取 以 migrateTable没有重写数据库; 读取器、 渲染器
简洁的文字通过 都识别出旧的形状 并返回新的形状.
子路径导出
| 导入 | 停车 | 用来 |
|---|---|---|
@bettercms-ai/richtext | 无重 | 类型、方案、阅读、纯文本 |
@bettercms-ai/richtext/html | hTML 序列器 | 渲染 |
@bettercms-ai/richtext/ingest | a DOM 解析器 | HTML → 可移植文本 |
分裂是故意的: ingest 需要一个DOM和 html 需要连载器,也没有
应该是因为有人输入了一种类型 才到达仪表盘包的.
船舶作为来源
main 点数 ./src/index.ts一样 @bettercms-ai/db 财务报告和审定财务报表 @bettercms-ai/content编辑
更好的CMS API 运行 Bun 并直接消耗; a dist- 指向崩溃后导出
集装箱。 需要编译产出的消费者应将其捆绑起来,因为他们
TypeScript 源依赖 .
许可证
专有——BetterCMS的一部分.