# @bbc/psammead-rich-text-transforms 中文文档

规范地址：https://npmcn.com/package/%40bbc/psammead-rich-text-transforms/

版本：2\.0\.7
npm 元数据更新时间：2026-04-16T10:54:03.231Z
中文译文更新时间：2026-11-07T19:02:01.601Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40bbc/psammead-rich-text-transforms
原文对照：https://npmcn.com/package/%40bbc/psammead-rich-text-transforms/?lang=original
项目主页：https://github.com/bbc/psammead/blob/latest/packages/utilities/psammead-rich-text-transforms/README.md
源码仓库：https://github.com/bbc/psammead/tree/latest/packages/utilities/psammead-rich-text-transforms

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：37.4 kB，25 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：未声明
- 运行依赖：2 个
- 首次发布：2019-10-04T13:09:50.828Z
- 最新版本发布：2022-03-10T16:43:46.627Z
- 近 30 天下载量：3641（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：15（近 12 个月 0 个）

## 中文简介

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

## 安装

```sh
npm install @bbc/psammead-rich-text-transforms
```

也可以使用：`pnpm add @bbc/psammead-rich-text-transforms`、`yarn add @bbc/psammead-rich-text-transforms`、`bun add @bbc/psammead-rich-text-transforms`

## README

# `rich-text-transforms`

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

## 支持的块类型

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

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

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

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

## 安装

```jsx
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)
```

```json
 {
  "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)
```

```json
{
  "type": "text",
  "model": {
    "blocks": [
      {
        "type": "paragraph",
        "model": {
          "text": "Hello world",
          "blocks": [
            {
              "type": "fragment",
              "model": {
                "text": "Hello world",
                "attributes": []
              }
            }
          ]
        }
      }
    ]
  }
}
```

## 捐款

Psammead完全开源. 我们感谢任何贡献,无论是新的组件、错误修正还是总体改进。 请参看我们的主要贡献指南,可查阅: [psammead 仓库的根](https://github.com/bbc/psammead/blob/latest/CONTRIBUTING.md)。 。 。 .

### [行为守则](https://github.com/bbc/psammead/blob/latest/CODE_OF_CONDUCT.md)

我们欢迎对这项工作的反馈和帮助。 通过参与这个项目,你同意遵守 [行为守则](https://github.com/bbc/psammead/blob/latest/CODE_OF_CONDUCT.md)请稍候再读一下.

### 许可证

萨姆米德 [Apache 2.0 许可](https://github.com/bbc/psammead/blob/latest/LICENSE)。 。 。 .

## 常见问题

### @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 和提交记录判断。

