如何將 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-tw/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-tw/markdown-to-confluence
資源連結: