2004年,約翰·格魯伯(John Gruber)花了3天時間寫出了Markdown的初版語法。20年后,這個"極簡標記語言"已經膨脹到讓它的創造者在2022年公開吐槽:"我設計的初衷是讓人寫博客,不是讓你們寫論文。"
但問題不在這里。真正讓開發者集體破防的是:我們明明想要一個"一眼就能看懂輸出結果"的工具,卻得到了一個同一行字能用6種方式加粗、而且每種都"合法"的語法怪物。
「極簡」是個謊言:兩套語法,同一行HTML
來看兩段Markdown代碼。第一段用井號寫標題、用星號寫斜體、用下劃線寫粗體:
# Hello
*I am an*
__Unambiguous__
> Grammar
第二段用等號寫標題、用下劃線寫斜體、用雙星號寫粗體:
Hello
=====
_I am an_
**Unambiguous**
> Grammar
這兩段代碼扔進任何標準解析器,吐出來的HTML完全一致。格魯伯當年想給非技術用戶"多種選擇",結果給程序員埋了20年的雷。
CommonMark項目——這個2014年成立、試圖給Markdown"立規矩"的組織——在規范文檔里被迫承認:「存在多種方式表達同一語義是Markdown的設計特性,而非缺陷。」
功能蠕變:從寫博客到圖靈完備
Markdown最初只有7個核心語法:標題、段落、列表、鏈接、圖片、粗體、斜體。現在呢?
GitHub Flavored Markdown加了任務列表、表格、刪除線、自動鏈接。Obsidian加了雙向鏈接、標簽、嵌入塊。Notion把它做成了數據庫。VuePress和Docusaurus把它變成了靜態站點生成器的核心。
每個平臺都在Markdown身上嫁接自己的方言。開發者阿明·羅納克(Amin Ronak)在2023年的技術博客里寫:「我在3個不同的代碼倉庫里用了3種不同的Markdown表格語法,因為CI系統、文檔站點和GitHub預覽各認各的。」
這就像C語言的設計者說"我們只需要指針和結構體",結果20年后每個人都在用不同的宏定義實現面向對象。
為什么我們還離不開它?
答案藏在兩個數字里。
Stack Overflow 2023年開發者調查顯示,Markdown是技術文檔領域使用率第二高的格式,僅次于純文本。GitHub 2022年年度報告提到,平臺上超過60%的README文件使用Markdown。
網絡效應已經鎖死了遷移成本。你的筆記、你的文檔、你的項目首頁、你的技術博客——全在這個語法泥潭里。
CommonMark規范的維護者約翰·麥克法蘭(John MacFarlane)說過一句很克制的話:「Markdown的成功在于它的可讀性,而非它的嚴謹性。」換句話說,它贏在了"寫起來像聊天",輸在了"讀起來像猜謎"。
替代方案都死在了哪里
過去10年,至少有十幾個項目試圖取代Markdown。AsciiDoc語法更嚴謹,但學習曲線陡峭。reStructuredText功能強大,但可讀性像在讀配置文件。Org Mode在Emacs用戶里封神,出了這個圈子沒人認識。
2021年,開發者埃里克·普羅馬(Eric Promislow)在Hacker News上發起過一個投票:「如果明天所有工具都支持一種新標記語言,你會選哪個?」最高贊回答是:「我會繼續用Markdown,因為所有工具都支持它。」
閉環了。
格魯伯在2016年接受The Changelog播客采訪時被問到:「如果重來一次,你會改變什么?」他停頓了幾秒,說:「我可能會把表格語法寫進核心規范。但那樣的話,它就不再是Markdown了。」
這個回答本身就是Markdown的隱喻:它之所以還活著,恰恰是因為它拒絕變得完美。
你現在用的筆記工具,是原生支持Markdown,還是偷偷把它轉成了自己的格式?
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.