為什麼 Discord 的 Markdown 這麼少
- Discord 只渲染聊天尺寸的子集:強調、劇透、程式碼、引用,較新用戶端另外支援標題、清單與小字附註。
__文字__在這裡是底線而不是粗體,||文字||則會把內容藏進劇透色塊。- 圖片語法、表格、註腳、水平分隔線與原始 HTML 在訊息中一律不會渲染。
- 只想要符號、不要樣式時,反引號是最快的跳脫手段。
它是聊天軟體,不是文件工具
Discord 保留了 Markdown 中能讓訊息更好讀的部分,捨棄了所有會讓單一使用者「重新排版整個頻道」的功能。所以沒有圖片語法、沒有表格、沒有註腳、標題只到第三層,也不支援原始 HTML。剩下的是一組精簡的行內樣式、程式碼區塊、引用,加上幾個 Discord 專屬的小功能。
Discord 在 Markdown 工具裡的位置
多數工具會落在同一條線的其中一側。Obsidian 把 Markdown 當成你自己的檔案保存,Notion 則把字元吞掉、改存區塊。Discord 是自成一格的第三種:你的星號會照原樣留著,編輯訊息時又會冒出來,但那則訊息是 Discord 資料庫裡的一筆資料,方言也是 Discord 自己的。把它當成聊天用的顯示語言,而不是文件格式。
兩個必須改掉的習慣
在標準 Markdown 與 GitHub 風格 Markdown 中,__文字__ 代表粗體,在 Discord 卻代表底線。而 ||文字|| 在標準 Markdown 裡完全沒有意義,在 Discord 則是劇透標記。不確定手上的工具說哪種方言時,可參考該用哪一種 Markdown 方言。
任何訊息都能用的行內格式
以下語法在文字頻道、私訊、討論串與論壇貼文中都有效,合起來也涵蓋多數人真正會用到的部分。
**粗體文字**
*斜體文字* (或 _斜體文字_)
***粗斜體***
__底線文字__
__*底線斜體*__
~~刪除線~~
||隱藏的劇透||
`行內程式碼`
最容易踩到的規則
符號必須緊貼文字。** 粗體 ** 這種星號內側有空格的寫法完全不會生效,這也是 Discord 上排版失敗的第一名原因。
符號可以疊加,**__粗體底線__** 是合法的,但配對必須層層包住,不能交錯。行內程式碼則是最強勢的符號:單個反引號內的內容一律原樣顯示,所以 `**不會變粗體**` 會直接印出星號。這也讓反引號成為保護整段文字最快的方法,這個習慣在程式碼區塊指南裡有更多說明。
注意:Discord 是在訊息送出時才套用格式,不是邊打邊套。要測試不確定的寫法,最安全的地方是傳一則私訊給自己。
劇透標記
兩條直線包住的文字會被灰色方塊蓋住,點擊或輕觸才顯示,訊息中任何位置都能用,包括引用區塊。附件也有自己的劇透做法,有兩種觸發方式:
- 上傳對話框中先勾選劇透選項再送出。
- 把檔名開頭改成
SPOILER_。
兩種做法送出後圖片都會是模糊狀態,要點一下才看得到。Reddit 也有同樣的概念,但符號完全不同,寫法見 Reddit 排版指南。
程式碼區塊與語法上色
程式碼區塊的寫法是:三個反引號、可選的語言名稱、換行、你的程式碼,最後再三個反引號。在 Discord 中結尾的反引號必須自成一行。按 Shift+Enter 可以換行而不送出訊息。
```python
def greet(name):
return f"Hello, {name}"
```
哪些語言標籤有效
Discord 使用通用的語法上色函式庫,因此可用的標籤很多也很寬鬆。穩定且常用的包括 js、ts、python(或 py)、java、cs、cpp、c、go、rust、ruby、php、swift、kotlin、sql、json、yaml、xml、html、css、bash、sh、powershell、lua、r 與 md。寫錯標籤不會出錯,區塊只是不上色而已。
兩個值得知道的技巧
把區塊標成 diff 就能免費得到紅綠配色,因為以 - 與 + 開頭的行會被當成刪除與新增。要貼修改前後對照,或做一份彩色清單,這是最標準的做法。
```diff
+ 這一行是綠色
- 這一行是紅色
```
另外還有 ansi 標籤,會解讀終端機色碼,讓你替任意文字上色。它在桌面版、網頁版與較新的手機版可以顯示,在不支援的環境則退回成純文字。請把它當裝飾,不要拿來承載重要意義。
小提醒:單則訊息上限是 2,000 字元,反引號也算在內。超過就直接上傳成檔案,縮排不會跑掉,讀者也能直接下載。
引用、標題、清單與遮罩連結
一個 > 加空格可以引用一行。三個 >>> 會把該位置到訊息結尾的內容全變成引用,貼別人整段話時特別好用。Discord 不支援巢狀引用,引用中再放一個 > 只會顯示成字元,和引用區塊指南裡的巢狀寫法不同。
> 只引用這一行
這一行回到一般文字
>>> 這之後的全部內容
都留在引用裡
包括這一行
標題與清單
標題與清單來自 2023 年陸續推送的文字格式更新,算是相當新的功能。標題只有三層,井字號後面必須加空格。
# 大標題
## 中標題
### 小標題
- 項目符號
- 巢狀項目
1. 編號項目
-# 小字附註
-# 附註前綴又更新,會顯示成灰色小字。在較舊或第三方用戶端上,上述任何一項都可能顯示成原始字元。要讓所有人都看得舒服的訊息,就只用粗體和斜體。
遮罩連結
遮罩連結的寫法是 [顯示文字](https://example.com)。它曾長期只能用在嵌入式訊息裡,所以舊教學才會說一般使用者不能用。在目前的用戶端上,一般訊息中也會生效,點擊陌生網域前還會跳出確認視窗。由於行為改過不只一次,重要的連結還是直接貼原始網址最保險。標準寫法與標題屬性見連結指南。
Discord Markdown 支援對照表
下表以「一般使用者在文字頻道輸入」的情境為準。「較新用戶端」指 2023 年格式更新之後的桌面版、網頁版與手機版。
| 功能 | 語法 | 是否支援 | 備註 |
|---|---|---|---|
| 粗體 | **文字** | 支援 | 嵌入式訊息與引用中同樣有效 |
| 斜體 | *文字* 或 _文字_ | 支援 | 兩種符號效果相同 |
| 粗斜體 | ***文字*** | 支援 | 兩側各三個星號 |
| 底線 | __文字__ | 支援 | Discord 專屬意義;標準 Markdown 視為粗體 |
| 刪除線 | ~~文字~~ | 支援 | 與 GFM 相同 |
| 劇透 | ||文字|| | 支援 | Discord 擴充語法;點擊或輕觸顯示 |
| 行內程式碼 | `程式碼` | 支援 | 內部所有其他格式一律失效 |
| 程式碼區塊 | 三個反引號 | 支援 | 加語言標籤即可語法上色 |
| 單行引用 | > 文字 | 支援 | 箭號後面一定要有空格 |
| 多行引用 | >>> 文字 | 支援 | 引用訊息剩餘全部內容;不可巢狀 |
| 標題 | #、##、### | 較新用戶端 | 只有三層;井字號後要空格 |
| 項目清單 | - 項目 | 較新用戶端 | 縮排兩個空格可做巢狀 |
| 編號清單 | 1. 項目 | 較新用戶端 | 編號會自動重新排序 |
| 小字附註 | -# 文字 | 最新用戶端 | 灰色小字;比標題與清單更晚推出 |
| 遮罩連結 | [文字](網址) | 多數情況支援 | 嵌入式訊息一向可用;現在一般訊息也可以,點擊前會有提示 |
| 圖片語法 |  | 不支援 | 請直接上傳檔案,或貼原始圖片網址讓 Discord 展開 |
| 表格 | 直線與破折號 | 不支援 | 直線符號會原樣顯示 |
| 註腳 | [^1] | 不支援 | 顯示成純文字 |
| 水平分隔線 | --- | 不支援 | 三個破折號就只是三個破折號 |
| 原始 HTML | <b>文字</b> | 不支援 | 會被跳脫並以字元顯示 |
哪些會壞掉,以及該怎麼繞過
圖片與表格:直接用替代做法
這兩個缺口都沒有語法上的解法,所以直接跳到替代做法。圖片請直接上傳,或貼原始網址,Discord 多半會自己展開成預覽。表格則用程式碼區塊搭配手動對齊的欄位保留等寬格線,或直接截圖。
```
區域 第一季 第二季
亞太 412 503
歐非中東 288 301
```
資料真的非表格不可時,就在能渲染表格的地方做好再貼連結。標題列與對齊列的規則,見 Markdown 表格指南。
跳脫:只要符號、不要樣式
在格式符號前面加一個反斜線,Discord 就會原樣印出該符號。這件事比想像中重要,因為檔名萬用字元、數學式與顏文字裡到處都是星號和底線。
\*保留星號\* 顯示為 *保留星號*
2 \* 3 \* 4 顯示為 2 * 3 * 4
snake\_case\_name 兩個底線都會保留
真正需要跳脫的字元不多:
*與_,幾乎所有誤觸的斜體都來自它們。~,成對出現時會變成刪除線。|,成對出現時會變成劇透。- 行首的
>,會變成引用。 - 行首的
#與-,在標題與清單上線後也要留意。
只要超過兩三個字元,用反引號都比一個個數反斜線省事。這個反射動作在其他工具也用得上,哪些平台跟 Discord 有同樣習慣,可以在平台總覽對照。
機器人、嵌入式訊息,以及桌面版與手機版的差異
機器人做得到、你打不出來的東西
以上談的都是真人在輸入框裡打字。機器人與 Webhook 還可以送出嵌入式訊息(embed):一種卡片結構,包含左側色條、可帶連結的標題、描述、最多二十五組欄位、圖片、頁尾與時間戳記。機器人那種整齊的方框輸出就是這樣來的,手打做不出來。
embed 內部的 Markdown 支援並不一致,值得逐項記住:
- 描述欄與欄位內容支援完整訊息語法,包含遮罩連結與程式碼區塊。
- 欄位名稱可用基本的粗體斜體,但不適合放連結。
- 作者名稱與頁尾文字在多數用戶端上只當純文字處理。
- 長度上限是描述 4,096 字元、整體 6,000 字元。
桌面版、網頁版與手機版
核心語法在三個平台上表現一致,差異都在邊緣。程式碼區塊的語法上色在手機版上線較晚、看起來也較樸素,長行會左右捲動而不換行,ansi 這類顏色技巧則在較舊的手機版本上最先失效。
注意:手機鍵盤本身就是風險。智慧標點會把直引號換成彎引號,壞掉的不是 Markdown,而是你貼上的那段程式碼。
接下來可以看什麼
Discord 並不是唯一有自家規則的聊天型方言。Reddit 的 Markdown 更貼近原始規格,很值得並排比較;Obsidian 則能看到同一套語法在「以檔案保存」的工具裡長什麼樣子。
需要完整標準而不是子集時,請開著Markdown 完整指南,旁邊再放一份可列印的語法速查表對照每天會用到的符號。
相容性資料驗證日期
常見問題
Discord 支援完整的 Markdown 嗎?
不支援。Discord 只提供為聊天設計的子集:粗體、斜體、底線、刪除線、劇透、行內程式碼、程式碼區塊、引用,以及較新用戶端上的標題、清單與小字附註。圖片語法、表格、註腳、水平分隔線與原始 HTML 都會顯示成原始字元。
Discord 的程式碼區塊怎麼打?
先打三個反引號與語言名稱(例如 python),按 Shift+Enter 換行貼上程式碼,最後在新的一行再打三個反引號收尾。語法上色就是靠語言標籤。只想標一個詞的話,單個反引號就夠了。
為什麼我的粗體在 Discord 沒有生效?
幾乎都是因為星號和文字之間有空格:** 文字 ** 不會生效,**文字** 才會。其他原因是跳脫時留下多餘的反斜線,或整段被反引號包住而刻意停用了格式。
如何讓 Discord 不要自動套用格式?
在想原樣顯示的字元前加反斜線,例如 \*星號\*,或把整段用反引號包起來。遇到檔案路徑、正規表達式這類長字串,反引號比逐一跳脫省事得多。
Discord 可以貼表格嗎?
用 Markdown 表格語法不行,直線符號會原樣顯示。替代做法是用程式碼區塊手動對齊欄位以維持等寬格線,或把別處做好的表格截圖貼上。機器人則可以用嵌入式訊息的欄位排出分欄效果。
延伸閱讀
立即使用編輯器
立即使用編輯器