# @atlaskit/editor-bitbucket-transformer 中文文档

规范地址：https://npmcn.com/package/%40atlaskit/editor-bitbucket-transformer/

版本：10\.2\.3
npm 元数据更新时间：2026-09-17T11:37:44.852Z
中文译文更新时间：2026-11-07T03:13:01.783Z
软件包许可：Apache-2\.0

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

原始 npm 页面：https://www.npmjs.com/package/%40atlaskit/editor-bitbucket-transformer
原文对照：https://npmcn.com/package/%40atlaskit/editor-bitbucket-transformer/?lang=original
项目主页：https://bitbucket.org/atlassian/atlassian-frontend-mirror#readme
源码仓库：https://bitbucket.org/atlassian/atlassian-frontend-mirror

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

- 包体积（解压后）：261 kB，27 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：3 个
- peer 依赖：react ^18\.2\.0 \|\| ^19\.2\.0
- 首次发布：2017-12-04T23:00:26.812Z
- 最新版本发布：2026-09-17T11:37:44.648Z
- 近 30 天下载量：7318（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：304（近 12 个月 12 个）

## 中文简介

编辑器 Bitbucket 变压器

## 安装

```sh
npm install @atlaskit/editor-bitbucket-transformer
```

也可以使用：`pnpm add @atlaskit/editor-bitbucket-transformer`、`yarn add @atlaskit/editor-bitbucket-transformer`、`bun add @atlaskit/editor-bitbucket-transformer`

## README

# @atlaskit/编辑-bitbucket- transfer

编辑 Bitbucket 变压器,用于在ADF,Markdown,和HTML格式之间转换.

## 说明

这个软件包提供专门为Bitbucket编辑器集成而设计的转换公用设备. 它处理在ADF(阿特拉斯文文档格式),Markdown,和HTML之间转换的复杂管线,特别侧重于通过转换过程的字幕逃出和属性保存.

## 关键特性

### 变形器

-   **序列器**: ADF 到Markdown 转换的主要序列化工具
-   **表格序列器**: 专用表格转换处理
-   **工具函数**: 通用转型公用事业

### 引出管道

-   **HTML 属性逃避**: 为 Markdown 存储安全地逃脱标题
-   **统一逃脱战略**: 处理 HTML 元字符和 Markdown 标点
-   **往返安全**:通过ADF → Markdown → HTML → ADF 管道确保数据完整性

## 实例

这套软件包包括综合实例 `examples/` 目录 :

-   基本变压器示例
-   Bitbucket HTML 处理
-   Bitbucket 标记下处理
-   辅助设施和型式

## 团队

**编辑器: 协作**

## 说明逃跑和Markdown/HTML/ADF管道

这个软件包将 ADF 序列化到 Markdown 以进行存储,后来用 python-markdown 从 HTML 重建由后端提供的 ADF 。 图像标题使用 python- markdown 存储在 Markdown `attr_list` 图像上的语法 :

```
![](http://path/to/image.jpg){: data-layout='center' data-caption='...'}
```

### 为什么逃出字幕很棘手

-   python- markdown 先解析出Markdown, 然后应用 `attr_list` 将属性绑定在元素上。 如果内部有标题文字 `data-caption` 包含Markdown标记(例如:. `**`, (中文(简体) ), `__`, (中文(简体) ), `` ` ``, (中文(简体) ), `~~`),这些标记可以在Markdown解析时被解释.
-   当马克当标记在属性文本中被解释时,属性列表可能会被错构或被弹出,导致属性没有被设置在元素上(例如丢失) `data-caption`) (中文(简体) ).

### 统一属性逃出

为了保证字幕在Markdown → HTML 转换安全地存活下来,我们使用统一的逃生策略:

-   `escapeHtmlAttribute(text)`: 逃出 HTML 属性元字符 (`&`, (中文(简体) ), `<`, (中文(简体) ), `>`, (中文(简体) ), `"`, (中文(简体) ), `'`)和 Markdown/atr list- systems- punctuation 通过将其转换成数字实体:
    
    -   `*` → `&#42;`, (中文(简体) ), `_` → `&#95;`, (中文(简体) ), `` ` `` → `&#96;`, (中文(简体) ), `~` → `&#126;`
    -   `|` → `&#124;`, (中文(简体) ), `{` → `&#123;`, (中文(简体) ), `}` → `&#125;`
    -   `[` → `&#91;`, (中文(简体) ), `]` → `&#93;`, (中文(简体) ), `(` → `&#40;`, (中文(简体) ), `)` → `&#41;`, (中文(简体) ), `!` → `&#33;`
-   这使得 python-markdown 无法将标题内容解释为 Markdown 或 attr list 的一部分, 安全保存属性 .
    
-   `unescapeHtmlAttribute(text)`:在从HTML读回到ADF时,解码相同的超集实体. 解码对命令很敏感..`&amp;` 用于防止双重unescape问题。 解开后,我们将Markdown格式化的有限子集进行消毒和解析以显示(`**`, (中文(简体) ), `_`, (中文(简体) ), `~~`,以及 `` ` ``)进入我们控制的HTML安全标记.
    

### 端到端流

1.  ADF — Markdown( bbc- frontbucket - 使用此软件包) :
    -   说明被序列化为 `data-caption` 使用 `escapeHtmlAttribute` 以编码 HTML 元字符和 Markdown puntuation.
2.  Markdown — HTML( bbc- core) : (中文(简体) )
    -   python- markdown 缩写为 HTML 并应用 `attr_list`。 。 。 .
    -   由于标出是实体编码的,所以即使标题中包含Markdown标记或 `{...}`\- 像文字一样.
3.  HTML ~ ADF (前端) :
    -   我们读了 `data-caption` 从 html 调用 `unescapeHtmlAttribute`,它同时解码 HTML 和 puncutuation 实体.
    -   然后对Markdown的一个安全子集进行消毒和解析,以生成ADF字幕节点(例如, `<strong>`, (中文(简体) ), `<em>`, (中文(简体) ), `<s>`, (中文(简体) ), `<code>`) (中文(简体) ).

### 移徙

-   `escapeAttrListValue` 已删除。 使用 `escapeHtmlAttribute` 财务报告和审定财务报表 `unescapeHtmlAttribute`。 。 。 .

### 安全考虑

-   我们总是编码 `<` 财务报告和审定财务报表 `>` 在属性中,当从 HTML 解析回来时,我们在将任何 Markdown 格式转换为 HTML 之前,对标题内容进行消毒.
-   我们的Markdown解析是故意的最小的 直接地图给一组安全标记.

## 常见问题

### @atlaskit/editor-bitbucket-transformer 是什么？

编辑器 Bitbucket 变压器

### 如何安装 @atlaskit/editor-bitbucket-transformer？

在项目目录运行 npm install @atlaskit/editor-bitbucket-transformer，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：react（^18\.2\.0 \|\| ^19\.2\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @atlaskit/editor-bitbucket-transformer 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @atlaskit/editor-bitbucket-transformer 支持 ESM 还是 CommonJS？

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

### @atlaskit/editor-bitbucket-transformer 可以商用吗？

@atlaskit/editor-bitbucket-transformer 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @atlaskit/editor-bitbucket-transformer 的下载量有多少？

根据 npm 官方下载统计，@atlaskit/editor-bitbucket-transformer 在 2026/10/07 – 2026/11/05 这 30 天内被下载 7,318 次，日均约 244 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @atlaskit/editor-bitbucket-transformer 还在维护吗？

最新版本 10\.2\.3 发布于 2026/09/17（1 个月前）；至今共发布 304 个版本，其中过去 12 个月发布了 12 个；首次发布于 2017/12/05。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

