兩種編輯器、同一種格式:所見即所得與 Markdown 模式
- 每一則貼文與留言都是以 Markdown 儲存,所見即所得編輯器只是替你把 Markdown 打出來。
- 第一名的陷阱是單一換行,舊版 Reddit 會把它吃掉,請改成留一整行空行。
- 程式碼請用四格縮排而不是反引號圍籬,因為舊版會把圍籬原樣顯示成反引號。
^(文字)上標、>!文字!<劇透與r/自動連結,都是 Reddit 自己加的語法。
fancy pants 與 Markdown 模式
Reddit 每一則貼文與留言,儲存與渲染用的都是 Markdown,差別只在怎麼輸入。新版 Reddit 預設是社群戲稱為 fancy pants 的所見即所得編輯器:有粗體、斜體按鈕的工具列,背後幫你寫出 Markdown。另一個選擇是 Markdown 模式,讓你自己打語法的純文字輸入框。
Reddit 保留你的原始碼,然後渲染兩次
工具可以分成兩派。一派原封不動保留你寫的 Markdown;另一派在輸入當下就轉換掉、字元隨即丟棄,Notion 每個捷徑都是這樣運作的。Reddit 屬於前者,這對你是好事,也剛好解釋了這個站最大的怪癖:同一份原始碼,兩套渲染器,所以同一則留言在舊版與新版看起來可以不一樣。
怎麼切換編輯器
在輸入框角落找切換鈕,通常標示為「Markdown Mode」,或是小小的 T 或鉛筆圖示。點下去輸入框就會就地替換,Reddit 也會記住你的選擇。old.reddit.com 沒有東西可切,因為那裡只有原始 Markdown 輸入框。
該用哪一個
一句話裡加個粗體,用所見即所得就好。牽涉到表格、程式碼區塊或巢狀清單,請在動筆前就先切到 Markdown 模式。
注意:把 Markdown 原始碼貼進所見即所得編輯器,通常會得到轉一半的爛攤子,因為有些語法貼上時會被辨識、有些會原樣保留。寫到一半來回切換也可能弄丟格式,Reddit 會跳出提醒。
在 Reddit 上到處都能用的基本語法
Reddit 的方言相當接近原始 Markdown 規格:比 Discord 這類聊天軟體強得多,但明顯比 GitHub 風格 Markdown 窄。以下是穩定可靠的核心:
# 一級標題
###### 六級標題
**粗體** *斜體* ***粗斜體*** ~~刪除線~~
[連結文字](https://example.com)
https://example.com (原始網址會自動變連結)
- 項目符號
- 巢狀項目
1. 編號項目
> 引用一行
`行內程式碼`
---
影響很大的小規則
新版 Reddit 遵循 CommonMark 規定,井字號後必須有空格,所以 # 標題 是標題、#標題 不是;舊版兩種都接受。光這點差異,就足以讓同一行在一邊是標題、另一邊變成多餘的井字號,來龍去脈可見標題指南。
另外兩條規則也很值回票價:
- 清單第一個項目前要留一行空行,否則會被併進上一段。
- 編號清單會自動重新編號,所以每一行都寫
1.也沒問題。
Reddit 還會自動連結自家參照:直接寫 r/formatting 或 u/spez,不需方括號就會變成連結。這是站內專屬擴充,所以別期待連結指南或 Reddit 以外的地方也有。
Reddit 的程式碼:四格縮排規則與圍籬區塊
行內程式碼到哪裡都一樣:用單個反引號包住文字,就會以等寬字體顯示,內部所有格式失效。真正看得出 Reddit 歷史包袱的是區塊。
歷史悠久的四格縮排
Reddit 長年以來做程式碼區塊的唯一方式,就是把每一行都縮排四個空格。這個寫法至今有效,也仍是相容性最好的選擇:
以下是程式碼區塊:
def total(items):
return sum(items)
回到一般文字。
縮排區塊前那一行空行是必要的。這條規則反過來也是陷阱:任何被不小心縮排四格的段落都會悄悄變成程式碼區塊,這就是貼上的文字有時會變成一整塊灰色等寬文字的原因。
圍籬式區塊
新版 Reddit 與官方 App 也接受三個反引號的圍籬式區塊,語言名稱可加可不加。但限制很直白:舊版 Reddit 不會渲染圍籬式區塊,那邊的讀者看到的是原樣反引號包著沒排版的程式碼。Reddit 本來就不替程式碼上色,加語言標籤在這裡沒有任何好處,和你在 GitHub 寫的圍籬式區塊不同。
```
def total(items):
return sum(items)
```
小提醒:用讀者決定寫法。只要可能有陌生人看到,就用四格縮排;確定大家都在新版或官方 App 上,才用圍籬式區塊。
Reddit 專屬語法:上標、劇透與表格
上標
插入符號會把後面的文字變成上標。單獨使用只作用到一個詞,加上括號則可以整句變成上標,而且行為一致得多,建議一律用括號版本。
E = mc^2
大家都知道。 ^(來源:相信我就對了)
連續 ^^插入符號在舊版 Reddit 上會疊得更高
上標是 Reddit 寫旁白與免責聲明的招牌風格,但也非常容易誤觸。
注意:數學式裡的插入符號會把後面的東西整個抬起來。要表示次方時請寫成 2\^10,加上反斜線,才不會變成一句悄悄話。
劇透
Reddit 官方的劇透語法是用 >! 與 !< 把文字包起來,內容會被黑色色塊蓋住,讀者點擊才顯示。
兇手是 >!管家!<,地點在圖書室。
這在新版 Reddit 與官方 App 上都能正常顯示。舊版支援一直不太一致,有些老牌子版還留著官方標籤問世前的 CSS 劇透做法,所以最好先預覽再送出。Discord 用兩條直線解決同一個問題,常跨平台轉貼的人值得記住。
表格
直線表格在 Reddit 上可以用,分隔列裡的對齊冒號也有效。標題列與分隔列都是必要的,少了任何一個,直線就只會是直線。
| 品項 | 數量 | 價格 |
|:----------|:---:|------:|
| 鍵盤 | 1 | $89 |
| 滑鼠 | 2 | $24 |
Reddit 表格不支援合併儲存格、多行儲存格與表格標題,更複雜的內容請改用圖片或外部頁面。一般規則與「在儲存格裡放一個直線符號」的做法,見 Markdown 表格指南。
Reddit Markdown 支援對照表
下表反映貼文與留言使用的渲染器。舊版與新版 Reddit 行為不同時,備註欄會註明。
| 功能 | 語法 | 是否支援 | 備註 |
|---|---|---|---|
| 標題 | # 到 ###### | 支援 | 新版必須在井字號後加空格,舊版不用 |
| 粗體 | **文字** | 支援 | 兩個底線也可以 |
| 斜體 | *文字* 或 _文字_ | 支援 | snake_case 中的底線建議跳脫 |
| 粗斜體 | ***文字*** | 支援 | |
| 刪除線 | ~~文字~~ | 支援 | 波浪號內側不能有空格 |
| 連結 | [文字](網址) | 支援 | 參照式連結不可靠,請用行內寫法 |
| 原始網址 | https://... | 支援 | 自動變成連結 |
| 子版與使用者 | r/名稱、u/名稱 | 支援 | Reddit 擴充語法;不需方括號 |
| 項目清單 | - 項目 | 支援 | 第一個項目前要留空行 |
| 編號清單 | 1. 項目 | 支援 | 編號會自動重新排序 |
| 引用區塊 | > 文字 | 支援 | 用 >> 做巢狀很脆弱,記得加空行 |
| 行內程式碼 | `程式碼` | 支援 | 內部格式一律失效 |
| 縮排程式碼區塊 | 四個空格 | 支援 | 舊版 Reddit 唯一看得懂的區塊寫法 |
| 圍籬程式碼區塊 | 三個反引號 | 部分支援 | 僅新版 Reddit 與官方 App;舊版會原樣顯示 |
| 表格 | 直線與破折號 | 支援 | 需要標題列與分隔列;不能合併儲存格 |
| 上標 | ^(文字) | 支援 | Reddit 擴充語法;括號寫法最保險 |
| 劇透 | >!文字!< | 多數情況支援 | Reddit 擴充語法;舊版支援一直不太穩定 |
| 水平分隔線 | --- | 支援 | 上方要留空行,否則會變成標題 |
| 圖片語法 |  | 不支援 | 請改用上傳;留言插圖只有版主開啟時才有 |
| 待辦清單 | - [ ] 項目 | 不支援 | 方括號會原樣顯示 |
| 註腳 | [^1] | 不支援 | 請改用上標或普通清單 |
| 原始 HTML | <b>文字</b> | 不支援 | 基於安全考量會被移除 |
換行陷阱,以及其他會壞掉的地方
單一換行會消失
先講解法:段落之間留一行空行,或在行尾打兩個空格,強制在同一段內換行。空行是比較安全的習慣,因為行尾空格看不見,也常被編輯器清掉。
再講原因。在傳統 Markdown 中,單一換行等同於一個空格,所以下面三行會被併成同一段:
第一行
第二行
第三行
新版 Reddit 的渲染器通常會保留換行,這正是問題惱人的地方。你的清單在編輯時完全正確,送出後在舊版讀者眼中卻擠成一長句。
圖片、HTML 與註腳
Markdown 圖片語法在 Reddit 上完全不會渲染,實務上只能把圖片單獨發成貼文或貼連結。留言插圖是各子版由版主自行開啟的設定,也有些子版允許 Reddit 專屬的 GIF 語法,兩者都不是全站可靠的功能,這點和圖片指南裡那些平台不同。原始 HTML 會被移除,註腳則從來不支援。
引用與縮排的怪癖
除非留一行空行,引用區塊會把緊接著的下一行一起吃掉,所以直接寫在 > 引用文字 下方的回覆會被算進引用裡。用 >> 做巢狀引用時,層與層之間要放一行空的引用行,寫法見引用區塊指南。另外因為四個空格代表「程式碼」,在清單項目底下用四格縮排寫延續段落,得到的是程式碼區塊。
跳脫
在字元前加反斜線就會原樣印出。Reddit 上值得跳脫的字元有 *、_、^、~、#、>、[、] 與 |。
\#1 的問題 保留井字號,不會變成標題
5 \* 3 = 15 保留星號
2\^10 保留插入符號
底線特別需要小心,因為帳號、檔案路徑與 snake_case 變數裡到處都是。整串用反引號包起來比逐一跳脫快得多,這也是粗體與斜體指南建議的做法。
舊版與新版 Reddit,以及如何同時照顧兩邊
至今仍有一群很有聲量的使用者以 old.reddit.com 瀏覽,那裡跑的是舊版渲染器。你寫的字會同時被兩邊讀到,所以請照嚴格的那一邊寫。真正會咬人的差異很短,背下來就好:
- 圍籬式程式碼區塊在新版可渲染,在舊版顯示成原樣反引號。請改用四格縮排。
- 單一換行在新版通常保留,在舊版會被吃掉。請用空行。
- 井字號後沒空格的標題在舊版有效、新版無效。請一律加空格。
- 劇透標籤在新版與官方 App 上可靠,其他環境就不一定。
- 子版自訂 CSS 只存在於舊版,客製樣式不會影響新版怎麼顯示你的留言。
送出前的兩分鐘檢查
- 每個區塊之間都補上空行,清單與分隔線前面也要。
- 把反引號圍籬換成四格縮排。
- 替每個
#補上後面漏掉的空格。 - 先預覽,內容較長就再到舊版 Reddit 打開看一次。
兩個習慣就能解決絕大部分問題:所有區塊之間都留空行,有兩種寫法時一律選比較舊的那種。留言上限是 10,000 字元,自撰貼文內文則是 40,000 字元。
Reddit 在眾多方言中的位置
Reddit 只是眾多方言之一,這也是同一段文字在三個地方長得不一樣的原因。Discord 的聊天子集是更精簡的表親,Obsidian 則呈現「檔案真的屬於你」之後會有什麼不同。平台總覽把各家並排在同一張表裡。
還在猶豫要學哪一種?該學哪一種 Markdown 方言是最短的答案,Markdown 完整指南與語法速查表則是最長的那份。
相容性資料驗證日期
常見問題
Reddit 要怎麼切換到 Markdown 編輯器?
在新版 Reddit 的輸入框角落找切換鈕,通常標示為「Markdown Mode」,或顯示成小小的 T 或鉛筆圖示。點下去所見即所得編輯器就會換成純文字框,Reddit 也會記住設定。old.reddit.com 上每個輸入框本來就是 Markdown 框。
為什麼 Reddit 會忽略我的換行?
因為傳統 Markdown 中單一換行等同一個空格,舊版 Reddit 至今仍照此處理。要分段請在行與行之間留一行空行;想在同段內強制換行,則在行尾打兩個空格。空行比較安全,因為行尾空格看不見,也容易被清掉。
Reddit 留言裡的程式碼區塊怎麼打?
把每一行都縮排四個空格,並在上方留一行空行。這種寫法在所有地方都正確,包括舊版 Reddit。三個反引號的圍籬式區塊在新版 Reddit 與官方 App 上也有效,但舊版讀者會看到原樣的反引號。
可以用 Markdown 在 Reddit 留言裡貼圖片嗎?
不行。 在 Reddit 任何地方都不會渲染。只有在版主開啟「留言插圖」的子版才能直接在留言中上傳圖片;否則請把圖片單獨發成一篇貼文,或直接貼連結。
Reddit 支援表格嗎?
支援。直線表格在舊版與新版 Reddit 上都能渲染,分隔列中的冒號可控制欄位對齊。標題列與分隔列都不可省略。不支援合併儲存格、多行儲存格與表格標題。
延伸閱讀
立即使用編輯器
立即使用編輯器