
Markdown 是 2004 年出現的,背後的起心動念其實很單純:寫東西的時候,能不能寫得像平常打字一樣直覺,但又能被電腦轉成格式漂亮的 HTML?當時的網誌作者 John Gruber 覺得 HTML 太囉唆,什麼 <h1>
、<p>
、<a>
都要手打,寫起來很卡。他找了朋友 Aaron Swartz 討論,最後弄出一套語法,名字就叫 Markdown。
這套語法的重點是「長得像你平常就會寫的樣子」。比如你平常寫筆記會打 - 看電影
、- 買貓砂
,Markdown 就說:沒錯,這就是一份清單。你想寫一個標題?只要在前面加井字號,比如 # 今天的待辦事項
,這樣就能轉成漂亮的網頁格式。對 Gruber 來說,Markdown 是「讓文字保持原樣,還能變得有結構」。
一開始 Gruber 還自己寫了個小工具 Markdown.pl
,讓大家能把這些純文字轉成 HTML。但他並沒有訂很嚴格的規範,很多語法的細節也沒說清楚。這讓後來想要擴充的人遇到難題:到底這樣寫合不合規?要不要加表格功能?所以慢慢地,大家各自做了自己的「加強版 Markdown」。
像 GitHub 後來弄了一套叫 GitHub Flavored Markdown(簡稱 GFM),可以支援像是程式碼區塊、勾選框 [x]
、表格等等功能。如果你寫技術文件,會覺得 GFM 好用很多。而像部落格系統、筆記工具、論壇,也各自挑了一些語法來用,但版本彼此之間會有一點不一樣。就像大家都說自己在講「Markdown」,但其實有點像是各地的方言。
這種「有點像又不完全一樣」的狀況讓一些人開始擔心:會不會哪天根本沒人知道正統 Markdown 是什麼?2014 年左右,Stack Overflow 的共同創辦人 Jeff Atwood 就跳出來說,我們是不是該弄一個大家都能接受的標準?他們起初叫它 Standard Markdown,但這名字惹怒了 Gruber,因為感覺好像在說他發明的不是「標準」。所以後來這個計畫改名為 CommonMark。
CommonMark 的做法比較認真,它把語法定義寫得非常清楚,還附上數百個測試案例,確保不同的轉換器跑出來的結果一致。不過它並沒有馬上取代其他版本,畢竟很多人已經習慣用自己的那一套語法。現在的情況就有點像是:Markdown 是語言,共通的核心語法大家都會,但你在哪裡用,還是會學點當地口音。
今天,不管是寫筆記、寫報告、寫說明文件,你大概都會碰到 Markdown。VS Code、Obsidian、HackMD、Notion、GitHub、Reddit、甚至 Discord,全都用得上它。很多時候你可能沒發現,原來你早就在寫 Markdown。
簡單、可讀、跟平台無關,這就是 Markdown 活到現在、還這麼受歡迎的原因。你只要學會幾個基本符號,像 #
是標題,-
是清單,**字**
是粗體,就可以自由地寫東西,不被工具綁住。