@bbc/psammead-rich-text-transforms

中文文档
2.0.7发布于 2022/03/11Apache-2.0ESM + CJS近 30 天下载 3641

一个转换为结构丰富的文本的公用库.

中文使用文档
文档目录8 节
  1. 支持的块类型
  2. 安装
  3. 使用量
  4. candyXmlToRichText
  5. stringToRichText
  6. 捐款
  7. 行为守则
  8. 许可证

rich-text-transforms

这个Libary提供了两个功能,一个是取取取糖果XML,另一个是取取取取取取取取取取取取 一个字符串。 两者都以结构化的JSON形式还原出丰富的文本. 结构化的JSON使用 optimo 所选择的格式,参见 BBC 组合 cps/Optimo+Client+Text+Blocks 更多细节.

支持的块类型

Optimo格式由一组被嵌入的“块”组成,其中块有一个 “类型”(例如第1款)和“模式”。 该模型可以包含诸如 " 文本 " ,该文本的属性,如 " 粗体 " 。 该模型还可以包含 数组子块.

有许多种类的区块可供使用.

目前,此库仅支持以下块类型:

  • 段 次 页 次
  • 文本
  • uRLLink 链接
  • 碎片

安装

npm install @bbc/psammead-locales --save

使用量

candyXmlToRichText

const { candyXmlToRichText } = require("@bbc/psammead-rich-text-transforms")

const xml = `
<body>
  <paragraph>
    Read more:
      <link>
        <caption>foo</caption>
        <url href="https://example.com/foo"/>
      </link> bar <bold>baz</bold>
  </paragraph>
</body>
`

candyXmlToRichText(xml)
 {
  "type": "text",
    "model": {
      "blocks": [
      {
        "type": "paragraph",
        "model": {
          "text": "Read more: foo bar baz",
          "blocks": [
            {
              "type": "fragment",
              "model": {
                "text": "Read more: ",
                "attributes": []
              }
            },
          {
            "type": "urlLink",
            "model": {
              "text": "foo",
              "locator": "https://example.com/foo",
              "blocks": [
                {
                  "type": "fragment",
                  "model": {
                    "text": "foo",
                    "attributes": []
                  }
                }
              ]
            }
          },
          {
            "type": "fragment",
            "model": {
              "text": " bar ",
              "attributes": []
            }
          },
          {
            "type": "fragment",
            "model": {
              "text": "baz",
              "attributes": [
                "bold"
              ]
            }
          }
        ]
      }
    }
  ]
}

stringToRichText

const stringToRichText = require("@bbc/psammead-rich-text-transforms")

const string = "Hello world"

stringToRichText(string)
{
  "type": "text",
  "model": {
    "blocks": [
      {
        "type": "paragraph",
        "model": {
          "text": "Hello world",
          "blocks": [
            {
              "type": "fragment",
              "model": {
                "text": "Hello world",
                "attributes": []
              }
            }
          ]
        }
      }
    ]
  }
}

捐款

Psammead完全开源. 我们感谢任何贡献,无论是新的组件、错误修正还是总体改进。 请参看我们的主要贡献指南,可查阅: psammead 仓库的根。 。 。 .

行为守则

我们欢迎对这项工作的反馈和帮助。 通过参与这个项目,你同意遵守 行为守则请稍候再读一下.

许可证

萨姆米德 Apache 2.0 许可。 。 。 .

版本与发布记录

@bbc/psammead-rich-text-transforms 共发布 15 个版本,首次发布于 2019/10/04;过去 12 个月发布了 0 个版本。

版本发布日期距今
2.0.7latest2022/03/114 年前
2.0.62021/03/105 年前
2.0.52021/03/025 年前
2.0.42021/02/225 年前
2.0.32021/02/045 年前
2.0.22020/06/056 年前

关于 @bbc/psammead-rich-text-transforms 的常见问题

@bbc/psammead-rich-text-transforms 是什么?

一个转换为结构丰富的文本的公用库.

如何安装 @bbc/psammead-rich-text-transforms?

在项目目录运行 npm install @bbc/psammead-rich-text-transforms,或使用 pnpm add / yarn add / bun add。

@bbc/psammead-rich-text-transforms 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/bbc__psammead-rich-text-transforms 是否存在。

@bbc/psammead-rich-text-transforms 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@bbc/psammead-rich-text-transforms 可以商用吗?

@bbc/psammead-rich-text-transforms 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@bbc/psammead-rich-text-transforms 的下载量有多少?

根据 npm 官方下载统计,@bbc/psammead-rich-text-transforms 在 2026/10/08 – 2026/11/06 这 30 天内被下载 3,641 次,日均约 121 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@bbc/psammead-rich-text-transforms 还在维护吗?

最新版本 2.0.7 发布于 2022/03/11(4 年前);至今共发布 15 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/10/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。