分級標題
? ? ?前面提到的#,是我最常用的功能,表示所在的行是一個分級標題。如果你的文章很簡單,比如小說,再精彩的小說其實在格式上都很簡單,只分幾級標題和正文?!皶庇脗€一級標題(左首加一個#,想用上面說的===形式也可以,但有的MD瀏覽器只會在大綱視圖中顯示#分級標題,不會顯示===大標題,所以還是建議使用分級標題代替大標題,除非你只是寫博客),“作者”用個一級標題或二級標題(左首加倆個#),每個章節(jié)也作為二級標題(這個絕對別用----,實在亂套,而且在一些主要的MD閱讀器的大綱視圖里也和====一樣不會顯示)。分成多卷/部/篇的(看,叫法和實際寫法多不統(tǒng)一),可以讓卷部篇作為一級或二級標題,讓章節(jié)作為二或三級(就是三個#了,至少能用到六個的深度,小說絕對達不到,專業(yè)技術(shù)報告也夠用了)。把那些什么卷什么部什么篇統(tǒng)統(tǒng)去除,只保留名稱本身和表示標題深度的#就天下一統(tǒng)了。如果你除了小說就不寫別的,那你抱著這一塊金磚就可以走了,就這么簡單,當然若你耐心看到后面我講MD工具和編輯技巧,肯定更有收獲。
引用
? ? ?比小說稍微復雜點的是那些含有引用文字的文章,比如引用名人名言,比如論壇里引用了另外一個網(wǎng)友的發(fā)言……MD對此規(guī)定一個符號來表示(不是強制的,愛用不用,用了當然效果更好),就是>,它后面以及下面緊跟的多行都會作為一個整體的引用內(nèi)容在支持MD的編輯或閱讀器中區(qū)別顯示,直到碰到一個空行結(jié)束(在后面有圖片樣例顯示常用的幾個標記)。引用還可以像我們在論壇看到的那樣嵌套,就是甲引用了乙的話后又說了自己一堆話,然后你把甲的連同他引用乙的都引用過來,標記方法就是對甲的引用正常標>,對他引用乙的部分標> > ,但別忘了空行的正確使用,這是引用的格式要點。
無序列表與有序列表
? ? ?對于一些帶有列舉要點的文章,如技術(shù)和管理、財務(wù)、法規(guī)、通知甚至決心書、保證書等,MD和網(wǎng)頁一樣提供了兩種方式:無序的,有序的。前者就是在每條要點前面加*或+或-,后者是加數(shù)字和英文句點再加空格。如果某條下面還有一級子列表的話,就空兩個空格再加,無序的可以嵌有序的,反之亦然。
? ? ?對用*還是+還是-的規(guī)定有點隨意,但我覺得當存在二或以上的多級列表時,用+表示那些含有下級列表的列表項,用-表示沒有下級列表的項目,類似電腦的文件夾樹形圖結(jié)構(gòu),會比較好,不過麻煩點,一律*也是可以的。
? ? ?有序的標記方法也很寬容,不用嚴格地第一條就是1. 、第二條就是2. (注意,用英文句點,而且后面至少要有一個空格),每一條的數(shù)字都可以是任意的數(shù)字,即使重復或倒序亂序也可以,數(shù)字只是一個表意的通知,實際產(chǎn)生的有序的序號是按照行數(shù)計算的從1開始增長的。但第一行的序號以后有望具有實際意義,用來指定從哪個數(shù)字開始而不再固定為1,限于本文我已經(jīng)說得太細寫得太多而又沒有普遍支持此功能,這個以及其他一些不是很必要知道的就不多說了,保證你夠?qū)嵱脼橹鳌?/p>
鏈接
? ? ?鏈接是很多提供外鏈或內(nèi)鏈的論文和網(wǎng)頁必需的。內(nèi)鏈就是跳轉(zhuǎn)到文章內(nèi)另外的位置,外鏈就是跳轉(zhuǎn)到另外的文件或者文件夾、設(shè)備或者網(wǎng)址(內(nèi)網(wǎng)或互聯(lián)網(wǎng))。
行內(nèi)鏈接
? ? ?相對來說,外鏈格式其實更簡單,比如“這是一個名為 [中央電視臺](http://www.cntv.cn/ "CNTV") 的鏈接”。第一個方括號里是要作為鏈接的文字,后面圓括號中包括兩部分,中間用空格分隔,前面是鏈接要打開的實際地址,這是必要項,后面用英文雙引號括起來的是可選項,作用是在瀏覽器里用鼠標移到這個鏈接上時會浮動顯示這部分的提示信息,可以作為輔助說明。
? ? ?外鏈是HTML的說法,在MD里面稱之為行內(nèi)式,意思就是這個鏈接的定義和顯示,在一行的內(nèi)部就可以完全解決。
自動鏈接
? ? ?自動鏈接是行內(nèi)鏈接的一種特殊簡化形式,用來處理需要直接暴露實際網(wǎng)址的電子信箱或任意網(wǎng)址,只要用尖括號把地址包起來,MD轉(zhuǎn)譯器或瀏覽器就會自動把它轉(zhuǎn)成鏈接或視為鏈接。例如:<http://www.cntv.cn>,它轉(zhuǎn)譯后的結(jié)果就是生成一個顯示文字和目標地址相同的鏈接。
參考鏈接
? ? ?內(nèi)鏈在MD中叫做參考鏈接,常用于跳轉(zhuǎn)到論文最后的參考資料(一般那里還是一個鏈接),但并非因此得名,而是它至少需要在不同的兩行位置分別定義,一處是給一個真實的鏈接地址定義一個假名,另外一處或多處是引用這個假名,當MD瀏覽器處理指向這個假名的鏈接時,它需要去參考這個假名的原始定義來獲得真實的鏈接地址,寫到指向這個假名的所有鏈接中,故名參考鏈接,而且實際網(wǎng)址的假名定義只有在生成鏈接的時候用到,并不會出現(xiàn)在轉(zhuǎn)換的網(wǎng)頁中,但在MD編輯器中當然會保留它以供編輯,只是會顯示成特殊顏色以作提示。
? ? ?參考鏈接的一個主要好處就是可以重復利用簡寫的假名,避免在需要同一個鏈接地址的每個地方都很麻煩地輸入相同的地址。另外一個好處就是可以讓文中的實際鏈接集中列在文尾的位置,論文文獻常用這樣的方式,可以便于查閱所有主要鏈接。當然也可以根據(jù)需要跳轉(zhuǎn)到文內(nèi)任意位置。
? ? ?參考鏈接的形式是:把作為鏈接文字的部分放在一個方括號[]里,后面再跟一個方括號,里面是辨識鏈接的假名(可以用字母、數(shù)字、空白和標點符號,不區(qū)分字母的大小寫)。比如“這是 [趙亮的簡書文章][1]” 和 “這是 [趙亮的博客][趙博]”。然后在其它用到同樣鏈接的地方復用,如“這是 [趙亮的部分文集][1]”……最后再在文內(nèi)其它位置(一般在文尾)定義這兩個鏈接假名的實際鏈接內(nèi)容,如:
[1]: http://www.lxweimin.com/users/896326d36ac8/latest_articles ? ?"趙亮的簡書文集,這是上一行鏈接的提示信息,因上面鏈接太長,可以放在下一行,并適當縮進"
[趙博]: http://my.oschina.net/theforever/blog ?(趙亮的博客之一)
? ? ?要注意,冒號后面至少要有一或多個空格或制表符。最后的鼠標提示部分可以用雙引號也可以用圓括號括起來,這與行內(nèi)鏈接不同,因為行內(nèi)鏈接的鏈接部分整個用圓括號括起來,再用圓括號有點混亂。
? ? ?上面兩個鏈接的例子都是HTTP協(xié)議的互聯(lián)網(wǎng)地址,如果是鏈接本機地址,比如想讓讀者聽聽和這個MD文檔在一個文件夾里的音樂文件,可以用 FILE 協(xié)議的形式,具體請自行查閱或在本文后留言問我。
? ? ?當鏈接的假名和要顯示成鏈接的文字相同時,可以省略鏈接的假名(叫作隱式鏈接標記),如:
[CNTV][]
? ? ?然后定義鏈接內(nèi)容:
[CNTV]: http://www.cntv.com/
把某部分內(nèi)容設(shè)為粗體或斜體
? ? ?上面講的不涉及對具體某部分文字的修飾,而在網(wǎng)頁中我們常會看到對一些重點內(nèi)容或特殊內(nèi)容會使用粗體和斜體以及又粗且斜的體,MD也提供了這樣的標記功能,規(guī)定是:在要強調(diào)的部分的兩邊用星號*或底線_包起來。
*斜體*
**粗體**
***粗斜體***
? ? 如果要在文字前后插入普通的星號或底線而不是作為MD標記,可以在星號或底線的前面加上反斜線,如:\*這部分兩邊是普通的星號,在網(wǎng)頁中顯示時只顯示星號,下劃線也是同樣\*
圖片
? ? ?很多普通的文檔都是純文字,但在網(wǎng)頁上卻經(jīng)常是帶有圖片的?!坝袌D有真相”,圖文結(jié)合的確更形象準確。
? ? ?別看前面介紹的MD的格式很簡單,但MD的目標并不僅是對純文字樹立一個規(guī)范,它的野心更大,是想要對網(wǎng)頁的各種主要信息進行一個簡要概括。所以,在MD中完全可以使用網(wǎng)頁的所有HTML代碼。MD選取了最主要的一些種類的元素制定了既簡練又讓人感覺比較自然的符號標記規(guī)范。但到了圖片,就有點難辦,只能使用一種和鏈接比較相似但不太自然的方法來標記,因為圖片也屬于一種文檔本身之外的資源,通過鏈接的方式就可以指定,但又要讓轉(zhuǎn)譯器知道這個應(yīng)該作為能夠顯示的圖片,所以要和鏈接有所區(qū)分,而任何的區(qū)分方式都會使它初看起來有點怪怪的,只能熟悉方好。
? ? ?圖片和鏈接一樣也有兩種形式:行內(nèi)式和參考式。
? ? ?行內(nèi)式的圖片語法例子:

? ? ?參考式的圖片語法例子:
![無法顯示圖片時顯示的替代說明文字][要參考的假名]
[要參考的假名]: 圖片地址 ?"鼠標移到圖片上時顯示的提示信息"
? ? ?目前MD還無法指定圖片的寬高和對齊模式(居左/居右/居中),如果實在需要,可以使用普通的<img>標簽,和用能控制位置的標簽如<div>標簽(也可以用<center>標簽,雖然新的HTML標準不喜歡它,但直觀方便)包起來。
MD的編輯軟件和輔助功能
? ? ?MD很簡單,MD工具讓寫MD更加簡單。
? ? ?編輯軟件包括:
? ? ?* 一些有活力的網(wǎng)站提供的在線編輯器就支持MD模式。
? ? ?* 一些功能比較多的泛文本編輯器(支持對包括MD在內(nèi)的多種語法提供高亮和快捷編輯功能)。
? ? ?* 專業(yè)的MD編輯器。
? ? ?第一項,在即時調(diào)整格式(字體大小顏色和粗斜風格等)上有優(yōu)勢(雖然不是都提供了這功能)。
? ? ?第二項,在即時調(diào)整字體顯示格式上稍弱(主要是字體庫和大小設(shè)置,顏色和粗斜設(shè)置沒問題),鏈接也大多能看不能點,但也有好處,就是方便修改語法控制和快捷編輯的行為。
? ? ?第三項,是針對MD編輯和轉(zhuǎn)譯的集成環(huán)境,較為理想的是兼具前兩者的優(yōu)點并有增強,事實上則各有差距。其中有的無法修改處理邏輯和行為,有的可以修改。
? ? ?輔助功能主要指語法高亮和快捷編輯。
? ? ?語法高亮是對不同類型的元素(標題,鏈接,引用……)顯示成不同的顏色,方便區(qū)分。
? ? ?快捷編輯指快速設(shè)置格式(比如在一行上按個快捷鍵就能將其設(shè)為二級或三級標題,或者取消標題,以及設(shè)置粗體斜體等)和插入稍復雜的元素(鏈接,圖片)。
對MD的本地化改造
? ? ?代碼區(qū)塊使用四個空格或一個Tab制表符縮進,一直持續(xù)到?jīng)]有縮進的那一行(或是文件結(jié)尾)。對非專業(yè)人員來說,用不到這個。但是對廣大中國普通用戶來說,這卻是一個災(zāi)難,因為我們寫漢字文章的時候,正文恰恰都是用四個空格或一個Tab制表符縮進的,這樣一來,就都被當成代碼區(qū)塊了。所以你會看到很多使用MD的國人也不得不按照英文習慣頂格書寫,空行斷行(如果你不空一行,會把它們視為同一行)。
? ? ?如果你的MD文檔不必考慮供非華語人士閱讀,比如它本身主要用中文創(chuàng)作,那么有什么理由不進行本地化改造來支持習慣的中文排版呢?
? ? ?方法是,書寫MD文檔時照舊用四個空格或一個Tab制表符縮進正文,不必加空行去斷行。改造重點是對MD轉(zhuǎn)譯器和編輯器進行修改,改變判斷邏輯和處理行為。這個比較專業(yè),一般用戶無需關(guān)心,懂的可以自己做,不懂的只需要用懂的人做出來的成果即可。
? ? ?如下圖,就是我改造過的MD高亮視圖。從中可看到,中文式排版不會被認為是代碼區(qū)塊,而且各級標題自帶了分割線效果。
(圖片上傳顯示失敗,再上傳后可以正常顯示了,但發(fā)布文章總提示還處在圖片上傳中,無法保存,再試上傳又不行了,只能先這樣保存)
? ? ?(趙亮-碧海情天@簡書,未經(jīng)許可不得用于商業(yè)用途,個人轉(zhuǎn)載須保留作者信息,不得用于偽原創(chuàng))