Markdown

這個部落格最早的文章,我是直接寫原始的 HTML 碼,後來久了也是會嫌煩,就開始用 Textile ,功能蠻多,而且還可以寫 id、class 之類的,不過同時,我對另外一個也是類似的 text to HTML 的文件格式 Markdown 就一直很有印象,不過那時候只覺得他的語法功能比較少,還感覺不出他的特色,直到過了幾年,在學校寫了幾篇論文,有訂閱的 mailing-list,寫作的觀念和態度也被指導教授盯過之後,某一天又再次看到一篇 Markdown 格式的文件,它的連結用的很像是論文的參考文獻的用法,它的程式碼區塊很像我部落格上排版過顯示的樣子,而它的引言看起來和 BBS 的幾乎一樣,每個細節都非常的熟悉,於是再次讓我對它產生了興趣,就開始試著用 Markdown 來寫部落格了,沒想到一試成主顧,因為語法都很熟悉,幾乎是不用再花時間學,而且我覺得更棒的一點是 Markdown 的文件直接閱讀也很方便,它的語法可以讓文章的感覺保持的很好。

Markdown 是 John Gruber 在 2004 年左右推出的,然後他自己提供了 Perl 版的程式碼,當時支援 MovableTypeBLOSXOM 兩個部落格系統,也可以用在命令列直接執行轉換文字檔,而現在使用比例最高的 Wordpress 也有人寫 外掛 讓它支援 ,程式語言的部份除了 Perl 外,還有 PHPRuby 等,在 Markdown Wiki 還有一份更詳細的清單,其實支援很廣泛,可惜的是大部分的 BSP 都沒有提供,目前似乎就只有 Tumblr 而已,而這幾年在推廣上,我覺得有兩個網站的功勞不小,第一個是 github ,因為他支援用 Markdown 寫 README ,其實它還支援很多其他的格式,不過我看到使用最多的還是 Markdown,就這樣,為了寫出可以在 github 上顯示的良好結構的 HTML README 文件,很多人就寫起了 Markdown 文件, github 支援的格式其實是一個修改過的版本,叫做 GitHub Flavored Markdown ,稍微有些行為上的不一樣,然後多加了一些方便 Github 使用的功能,不過整體而言其實可以說是一樣的文件格式。

另一個則是 StackOverflow ,Markdown 是 StackOverflow 發問、回覆所使用的預設格式,而且 StackOverflow 還有即時的預覽功能,實在很棒,我在深入了解之後,才發現 他們用的編輯器還有一段故事。StackOverflow 用的是 John Fraser 的 WMD Editor,他同時也是 JavaScript 版的 Markdown 轉換器,showdown.js 的作者,如果去看現在版本的 WMD Editor 和 showdown.js 的程式碼,都還可以看到他的名字,本來 StackOverflow 和 John 是有合作而不是只是單純拿它的編輯器來用,結果有一天突然就聯絡不上 John 了,就這樣一直無法聯繫上 John 四個月 後,StackOveflow 的 Jeff Atwood 在網路跟大家說了這件事情,除了持續的想要連絡上 John 或是了解他狀況之外,還發起了一個工作,就是要對 WMD Editor 做反向工程,因為當時他們手上只有最小化過 JavaScript 檔案,裡面的變數名稱什麼的,都已經是失去意義的了,確認過授權沒問題後,一群社群朋友就開始幫忙了,後來他們利用 github 作為協做平台,成果就是現在 StackOverflow 的 版本 ,至於 John Fraser 到底發生了什麼事,則是到現在也沒人知道。

如果想要看看 Markdown 文件長怎樣,可以看看 Markdown Basics 這篇文章,至於完整的文件,我正找了幾位網友在翻譯中,等全部處理好就會公開了,雖然這樣說,其實東西都在 github 上啦。