Markdown 就是「用標點符號當排版」的純文字。井字號變成標題,星號夾住的字變粗體,連字號開頭的就是清單項目。解析器再把這些記號轉成 HTML。原始檔始終是普通文字:只有幾 KB,任何文字編輯器、任何作業系統都打得開。
這種雙重身分,正是它跨出軟體圈的原因。專案 README、issue 系統、部落格、技術文件平台、Obsidian 這類筆記軟體、聊天工具,還有 AI 助理的回答,用的全是它。真正值得背的符號大約十來個,而且每一個都能在免費編輯器裡邊打邊看結果即時更新。
重點速覽
| 誕生年份 | 2004 年,John Gruber 與 Aaron Swartz |
|---|---|
| 本質 | 純文字的輕量排版語法 |
| 副檔名 | .md,較長寫法為 .markdown |
| 轉換結果 | HTML,可在瀏覽器或伺服器完成 |
| 學習時間 | 日常語法約 30 分鐘 |
Markdown 的由來,以及它為什麼勝出
- 你打的是
#、**、-這些記號,解析器把它們變成標題、粗體與清單。 - 語法從 2004 年到現在幾乎沒變,所以當年寫的檔案今天照樣解析得出來。
- 核心語法到哪裡都通;表格和核取方塊則要看你貼到哪個平台。
- 新手遇到的問題,幾乎都是少了一個空格或少了一行空行。
Markdown 是 John Gruber 在 2004 年與 Aaron Swartz 一起設計的。他們針對的問題很具體:HTML 適合瀏覽器,不適合人。每次想要粗體都得打 <strong>重點</strong>,思路就被打斷一次。
他們的設計原則很嚴格:一份文件在還沒轉換之前,以純文字直接讀就要很通順。所以那些記號全來自大家早就在用的純文字信件:星號表示強調、連字號表示清單、> 表示引用。幾乎沒有新東西要學,這份熟悉感就是它勝出的原因。
30 秒實例
下面是一份迷你但完整的 Markdown 文件。原始文字是你打的內容,排版後的頁面則是讀者看到的樣子。
# 旅行筆記
**台北**行李清單:
- 護照
- 悠遊卡
- 相機
天氣預報請看[這裡](https://example.com)。
每個記號會變成什麼
#那一行變成<h1>,也就是頁面最上層的標題。- 雙星號包住的詞變成
<strong>,「台北」就以粗體出現。 - 三行連字號合併成一個
<ul>,裡面裝三個<li>;圓點和縮排交給瀏覽器畫。 - 方括號接小括號會變成連結。畫面上只看到「這裡」,網址安靜地留在原始碼裡。
它管的是結構,不是外觀
更值得注意的是「沒有發生的事」:全程沒有任何樣式設定。Markdown 描述的是結構而不是外觀。標題多大、連結什麼顏色,全由目的地平台的樣式表決定,不是由你的檔案決定。
小提醒:把這段貼進編輯器,一次只改一個字元。試著把 # 後面的空格刪掉,看標題怎麼變回普通文字。這樣玩十秒鐘,勝過讀一整頁規則。
現在哪些地方真的支援 Markdown?
核心語法幾乎到哪裡都安全
Markdown 是先流行、後標準化的格式,所以支援度很廣但並不一致。標題、強調、連結、清單、引用、程式碼,貼到哪裡表現幾乎都一樣。差異真正出現的地方,是各平台後來自行追加的擴充。二十年後的今天,這組核心已經是技術世界的預設寫作格式。
各平台支援對照
| 平台 | 標題與清單 | 表格 | 待辦清單 | 備註 |
|---|---|---|---|---|
| GitHub / GitLab | 支援 | 支援 | 支援 | 多數人拿來當比較基準的行為 |
| Stack Overflow | 支援 | 支援 | 不支援 | 圍欄式程式碼區塊是最常用的功能 |
| 支援 | 支援 | 不支援 | 新舊介面在部分細節上不一致 | |
| Discord | 支援 | 不支援 | 不支援 | 行內標記加標題,沒有區塊排版 |
| Slack | 不支援 | 不支援 | 不支援 | 只有粗體、斜體、刪除線、引用與程式碼 |
| Notion | 支援 | 部分 | 支援 | 打出記號會直接轉成原生區塊 |
| Obsidian | 支援 | 支援 | 支援 | 筆記就是硬碟上真正的 .md 檔 |
| VS Code 預覽 | 支援 | 支援 | 支援 | 內建功能,不必安裝擴充套件 |
小提醒:只寫核心語法,同一份文字就能在上面八個平台之間自由搬動。一旦用上表格或核取方塊,等於已經選定了發佈目的地。編輯器支援哪一種 Markdown 方言說明了本站渲染的方言。
新手一定會踩的三個錯
幾乎所有「我的 Markdown 沒生效」都指向同一個原因:這套語法很在意空格與空行,而文書處理器從來不管這些。下面這份短文件一次犯滿三個經典錯誤:
#旅行筆記
行李清單:
- 護照
- 悠遊卡
星期一出發。
星期五回來。
為什麼一項都沒渲染出來
- 標題不見了。
#後面一定要有一個空格,少了空格整行就只是普通文字。 - 清單被吸進上一段。項目清單上方需要一行空行,才能跟前面的段落分開。
- 兩句話擠成一行。段落內的單一換行只算一個空格,不算換行。
修正後的同一份檔案
# 旅行筆記
行李清單:
- 護照
- 悠遊卡
星期一出發。
星期五回來。
注意:空行是 Markdown 判斷「一個區塊結束、下一個開始」的依據。畫面變成一整團擠在一起的文字時,先補空行,再考慮換符號。想在同一段落內強制換行,就在行尾打兩個空格,或直接寫 <br>。
跟 Word 和純 HTML 比起來如何?
對上文書處理器
Markdown 用按鈕換來了可攜性。.docx 檔需要特定軟體才打得開,版本之間還可能自己弄壞排版。.md 檔是純文字:什麼裝置都能開,在版本控制裡能乾淨比對,也不會損毀。
對上純 HTML
這兩者其實不是對手,因為 Markdown 的輸出就是 HTML。它只是寫起來更快、回頭讀也容易得多。語法表達不了的東西一律回落到原生 HTML,你可以直接把 HTML 打進 Markdown 檔裡。正是這個逃生口讓語言保持精簡。詳細取捨請見 Markdown 與 HTML 比較。
Markdown 做不到的事
- 沒有版面配置、沒有分欄、沒有文字方塊
- 沒有追蹤修訂,也沒有留言討論串
- 不能由你指定字型、顏色或字級
設計過的宣傳手冊請交給別的軟體。十年後還想打得開的文件,放在這裡最合適。
下一步該去哪裡
多數人不到三十分鐘就能學會全部日常語法。這條路線很有效:
- 先讀Markdown 白話入門,把完整脈絡建立起來。
- 照著完整 Markdown 指南逐個元素練習。
- 寫作時把語法速查表開在另一個分頁隨查隨用。
- 把上面的旅行筆記範例親手打一遍,再故意改壞它看看會怎樣。
相關問題
立即使用編輯器
開啟編輯器