為什麼我的 Markdown 會跑版?
這個問題困擾了我好一陣子,直到有朋友和我說,Markdown 有很多種標準,頓時茅塞頓開。既然程式語言有分版本,HTML 也有不同版本,那麼副檔名都是 .md 的 Markdown 也有很多種版本,似乎也是合理的事情。
那下一個問題就是:
Markdown 有沒有一個統一的標準?
答案是沒有的。
而且也不會有,因為大家需要的 Markdown 可能不太一樣。
最簡單的例子就是換行,就標準的 Markdown 語法,當你在 .md 檔內換行,並不會真的換行。如果你要做到換行,必須在行尾加入兩個空白,或是手動插入 <br>。不過像是台灣知名的線上筆記服務 HackMD,就很貼心的配合了台灣人的打字習慣,幫你把每個換行都變成真正的換行。
其實包含 HackMD 在內,大部分的 Markdown 服務都有切換換行模式的選項,為了滿足每種人。也因此 Markdown 不會有真正統一的標準。
但是撇除這種選項式的差別之外,目前最知名的應該是 CommonMark 了,若要問為什麼叫 CommonMark 這個名字?而 CommonMark 跟一般的 Markdown 有什麼差別?就必須從 Markdown 的歷史說起。
The Origin
一切的開端,是 2004 時 John Gruber 提出的 Markdown 標準,也是一般所說的經典的 Markdown,以 BSD 開源。
Markdown 的理念
John Gruber 的文章寫道:
The overriding design goal for Markdown’s formatting syntax is to make it as readable as possible. The idea is that a Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with tags or formatting instructions.