如何将 Markdown 转换为 Confluence Wiki Markup
如果你用 Markdown 写文档,但团队用 Atlassian Confluence 协作,你很可能遇到过格式不兼容的问题:Confluence Data Center 和 Server 使用自己的 wiki markup 语法,和 Markdown 完全不同。
手动改写文档既繁琐又容易出错。md-to.com 提供了一个免费的浏览器端转换工具,可以实时将 Markdown 转换为 Confluence wiki markup。
本文介绍这个工具支持哪些语法、怎么用、以及需要注意什么。
支持哪些语法?
转换器处理以下 Markdown 元素,并将它们映射为对应的 Confluence 格式:
文本格式
| Markdown | Confluence 输出 |
|---|---|
**粗体** | *粗体* |
*斜体* | _斜体_ |
~~删除线~~ | -删除线- |
`行内代码` | {{行内代码}} |
标题
Markdown 的 # 到 ###### 对应 Confluence 的 h1. 到 h6.。
## 章节标题
变为:
h2. 章节标题
链接与图片
[Google](https://google.com)变为[Google|https://google.com]变为!https://example.com/img.png|alt=替代文字!
代码块
围栏代码块会转换为 Confluence 的 {code} 宏,语言标识会保留:
```javascript
function greet(name) {
return "Hello, " + name;
}
```
变为:
{code:language=javascript}
function greet(name) {
return "Hello, " + name;
}
{code}
没有语言标识的代码块会省略 :language= 属性。
表格
Markdown 表格会被转换,表头使用 ||,数据行使用 |:
| 姓名 | 年龄 |
|------|------|
| 张三 | 30 |
变为:
||姓名||年龄||
|张三|30|
单元格内的管道符 | 会被自动转义。
列表
- 无序列表使用
*,嵌套用**,更深层用***,以此类推。 - 有序列表使用
#,嵌套用##。 - 任务列表也会被转换:
- [x]变为(/)(已完成),- [ ]变为(x)(未完成)。
引用块
引用块会被包裹在 {quote}...{quote} 中。嵌套引用会被展平为一个 {quote} 块,因为 Confluence 不支持嵌套引用。
水平分隔线
Markdown 的 --- 变为 Confluence 的 ----。
怎么用
- 粘贴 Markdown 到 md-to.com/zh-cn/markdown-to-confluence 左侧的编辑器中。
- 查看输出 — 右侧面板会随输入实时更新。
- 复制或下载 — 使用输出面板上方的按钮。
编辑器会同步输入和输出的滚动位置,方便你对照审查长文档。
工作原理
转换器基于 markdown-it 构建。markdown-it 是一个 Markdown 解析器,它会将输入解析为 token 流(抽象语法树)。转换器不使用脆弱的正则替换,而是遍历 token 树,将每个节点渲染为对应的 Confluence markup。
这种方式意味着:
- 嵌套结构(列表嵌套列表、列表项内的代码块)能被正确处理。
- 链接、图片和表格单元格中的特殊字符会在需要时被转义。
- 输出与 markdown-it 对输入的解析方式一致,避免边界情况的意外。
所有处理都在浏览器本地完成,不会向任何服务器发送数据。
适用范围与局限
目标环境: 输出适用于 Confluence Data Center / Server,或 Confluence Cloud 的旧版标记插入流程。Confluence Cloud 的新编辑器不支持直接粘贴 wiki markup。
已知局限:
- 嵌套引用块会被展平 — Confluence wiki markup 不支持嵌套
{quote}。 - Markdown 中的原始 HTML 会被忽略(解析器禁用了 HTML)。
- 未启用高级 markdown-it 插件(脚注、定义列表等)。
总结
如果你需要把 Markdown 内容迁移到 Confluence Data Center 或 Server,这个转换器可以帮你处理语法映射 — 标题、格式、代码块、表格、列表等。
试试看:md-to.com/zh-cn/markdown-to-confluence
资源链接: