Markdown 是目前很火紅的一種編輯的語法,有許多知名的網站開始支援這種東西
例如: GitHub

程式語言也有函式庫能夠支援生成 Markdown 語法的文字
例如: php, javascript, python

如果要解釋這語法是什麼,我想可以先從編輯文字的歷史

  • html

    在網路開始興盛之前,所有的文字都是在命令介面下,但這並不表示當時的黑畫面是不能調整字型、大小、顏色的。
    那會寫程式的人當然很好控制這些東西,但對於一般人來講,不希望學會寫程式才能去控制這些排版。因此開始有許多方式來做到這件事情
    其中一個方法就是,設計一種標記的方法,讓某翻譯軟體讀到,那就幫忙翻譯成我想要的排版方式,而 html 就是這樣的作法。

    <strong> 粗體字 </strong>
    

    html 利用角括弧來標示你想要的排版,一個成對的角括弧來代表一個標籤 ( tag ) ,這樣一來就能夠讓翻譯軟體清楚的做轉換了

  • 辦公室軟體的興起

    如果每種排版都是自己標上一堆標籤的話,那豈不是累死人嗎?因此開始有所謂的所見即所得的辦公室軟體出現,可以直接在畫面上,將你想改變的部份反白起來, 利用按鈕點擊,就能幫你轉換成你想要的排版。

    這種方式底層還是有某種格式來儲存,只不過點擊按鈕時,會幫你自動生成他們對應的格式。
    辦公室軟體大致上可行,只是偶爾會有非預期的結果,其中主要的原因還是在辦公室軟體不知道幫你生成了什麼東西。
    使用軟體在塗塗改改的過程中可能生出不對的格式導致格式跑掉,例如標籤不成對

    辦公室軟體大致上是好的,但也開始有問題衍生出來,例如知名的 Mincrosoft Office 他生出來的檔案格式,在早期是不公開的
    如果有軟體想做個相容於微軟的檔案格式,必須不斷的猜測跟測試,「格式跑掉」這個名稱就這麼的跑出來了

  • 網路論壇林立

    網路崛起之後,網頁的論壇也跟著多了起來,這些論壇在發文的時候也是跟隨著所見即所得的編輯模式,私底下也是生成某種格式。
    不過既然是在網頁上,生成的格式當然是網頁的標準 - html

    這種方法一樣會有所謂的軟體生成錯誤的問題,而有些部落格或者論壇也會支援 html 檢視模式來一邊讓人修改,來達到自己想要的樣子。

  • 編輯語言的竄出

    剛剛說了某些論壇願意開放直接讓人編輯 html ,雖然可以自行排版很棒,但使用者可能不理解整篇網頁的架構, 可能會被 css 動到,造成排版也跑掉。

    而且對大部分的人來說, html 內容太龐大,可能只有網頁設計師才會想去學習。
    再加上如果可以讓人嵌入 html 的話,有心人士可以對網站進行攻擊。
    這時論壇的輕量編輯語言就出現了,例如:BBCode

    這東西目的就是要解決上述的這些問題,並且希望從簡。再經由翻譯軟體翻譯完成之後,最終還是會形成 html 讓網頁看懂。
    BBCode 主要還是以成對標籤的方式

    [b] 粗體字 [/b]
    

    老實講,我真的不覺得這樣子的語法有幫助到什麼,不過就是個功能更為稀少的 html 。

  • Markdown 出現

    終於進入正題了,綜合以上的優缺點,John Gruber 覺得大家還是以寫程式的角度來思考這些語言,應該要換個角度來設計排版的語言。
    如果沒有這些排版格式,我們只有文字可以去排版的話,一個正常人會怎麼去排版呢?

    一個清單:
    * 物品一
    * 物品二
    
    分隔線:
    ------------
    

    這一切是否很符合自然的作法,像是台灣人很喜歡去逛的 ptt ,當中幾乎無法作到排版,但是大家還是能夠用純文字的方法去做到讓人看懂。
    而 Markdown 語法當中讓我最喜歡的是他的超連結語法

    基本的超連結:
    [顯示的名稱] (網址)
    

    這樣就能夠作到簡單的超連結,但這樣還不夠,因此有註腳格式的出現

    [顯示的名稱] [1]
    
    ...中間可能有其他文字內容...
    
    [1]: 網址
    

    是不是看起來乾淨俐落,如果想把程式碼打在文章當中,以往在部落格還需要嵌入特別的外掛程式,
    現在只需要縮排四格就可以,目前我的 Blog 就是以 Markdown 寫成。

    Markdown 也考慮到自己也有可能有設計不足之處,因此也設計一個簡單的方式讓人嵌入 html 語法。
    這樣一來影片這類的東西也能鑲嵌上來了。

    現在已經有網站願意支援 Markdown 的語法了,甚至也會在編輯器上設計一個即時預覽的視窗。
    讓你每打一個字,就能同時看到符不符合自己期待的樣式。

    在 Wordpress 上也有外掛可以讓你寫 Blog 時也能用 Markdown,本站目前使用的是 wp-markdown 外掛。
    Markdown 好處很多,也能讓你不受限於某廠商的辦公室軟體格式,只需要找個有支援的軟體或程式語言,就能幫你轉換成一樣的排版。
    也同時能在 css 上動點手腳,做更多的美化。

    詳細的語法可以參考:
    Markdown Syntax
    Markdown 中文翻譯

    最後我想說的是 Markdown 不只是給軟體看懂,翻譯成 html 語法。最重要的是,給人看也是非常的好讀懂,這才是最重要的。
    雖然這種語法對於寫翻譯軟體的工程師們增加不少的困擾,但現在也已經克服了這點,已經是實際可以運作的語法了。
    如果要寫技術型的文章的話,自己利用 Markdown 才是最棒的