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>,思路就被打斷一次。

他們的設計原則很嚴格:一份文件在還沒轉換之前,以純文字直接讀就要很通順。所以那些記號全來自大家早就在用的純文字信件:星號表示強調、連字號表示清單、> 表示引用。幾乎沒有新東西要學,這份熟悉感就是它勝出的原因。

示意插圖:左邊是純文字 Markdown 檔案,右邊是轉換後排版好的網頁,說明同一份文件在轉換前後都同樣好讀。

30 秒實例

下面是一份迷你但完整的 Markdown 文件。原始文字是你打的內容,排版後的頁面則是讀者看到的樣子。

# 旅行筆記

**台北**行李清單:

- 護照
- 悠遊卡
- 相機

天氣預報請看[這裡](https://example.com)。

每個記號會變成什麼

  • # 那一行變成 <h1>,也就是頁面最上層的標題。
  • 雙星號包住的詞變成 <strong>,「台北」就以粗體出現。
  • 三行連字號合併成一個 <ul>,裡面裝三個 <li>;圓點和縮排交給瀏覽器畫。
  • 方括號接小括號會變成連結。畫面上只看到「這裡」,網址安靜地留在原始碼裡。

它管的是結構,不是外觀

更值得注意的是「沒有發生的事」:全程沒有任何樣式設定。Markdown 描述的是結構而不是外觀。標題多大、連結什麼顏色,全由目的地平台的樣式表決定,不是由你的檔案決定。

小提醒:把這段貼進編輯器,一次只改一個字元。試著把 # 後面的空格刪掉,看標題怎麼變回普通文字。這樣玩十秒鐘,勝過讀一整頁規則。

現在哪些地方真的支援 Markdown?

核心語法幾乎到哪裡都安全

Markdown 是先流行、後標準化的格式,所以支援度很廣但並不一致。標題、強調、連結、清單、引用、程式碼,貼到哪裡表現幾乎都一樣。差異真正出現的地方,是各平台後來自行追加的擴充。二十年後的今天,這組核心已經是技術世界的預設寫作格式。

各平台支援對照

平台標題與清單表格待辦清單備註
GitHub / GitLab支援支援支援多數人拿來當比較基準的行為
Stack Overflow支援支援不支援圍欄式程式碼區塊是最常用的功能
Reddit支援支援不支援新舊介面在部分細節上不一致
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 做不到的事

  • 沒有版面配置、沒有分欄、沒有文字方塊
  • 沒有追蹤修訂,也沒有留言討論串
  • 不能由你指定字型、顏色或字級

設計過的宣傳手冊請交給別的軟體。十年後還想打得開的文件,放在這裡最合適。

下一步該去哪裡

多數人不到三十分鐘就能學會全部日常語法。這條路線很有效:

  1. 先讀Markdown 白話入門,把完整脈絡建立起來。
  2. 照著完整 Markdown 指南逐個元素練習。
  3. 寫作時把語法速查表開在另一個分頁隨查隨用。
  4. 把上面的旅行筆記範例親手打一遍,再故意改壞它看看會怎樣。

多數人接下來想學的是表格,表格指南把對齊方式與常見地雷講得很細。站上所有內容都免費,理由寫在收費說明裡,沒有附帶條件。

相關問題

立即使用編輯器

開啟編輯器