沒有標記語言就沒有Web和豐富多彩的互聯網,但創造了Web的HTML語言并非盡善盡美,存在諸如難讀、難寫、難以向其他格式轉換的問題。究其根源是因為HTML語言是一種“重”標記語言,對機器友好而并非對人友好。
下面這段HTML源碼,非技術控閱讀起來會遇到困難。
~~~
<html>
<head>
<meta content='application/xhtml+xml;charset=utf-8' http-equiv='Content-type' />
<title>輕量級標記語言</title>
</head>
<body>
<h1 id='id1'>輕量級標記語言</h1>
<p><strong>輕量級標記語言</strong> 是一種 <em>語法簡單</em> 的標記語言。
它使用易于理解的格式標記,沒有古怪的 <code><標簽></code> 。</p>
<ul>
<li>可以使用最簡單的文本編輯器編輯。</li>
<li>所見即所得,非技術控亦可直接閱讀源碼。</li>
<li>可版本控制。</li>
<li>實現單一源文件出版。</li>
</ul>
<body>
</html>
~~~
同樣的信息如果換用輕量級標記語言來表達,就非常直觀了。如下所示:
~~~
輕量級標記語言
==============
**輕量級標記語言** 是一種 *語法簡單* 的標記語言。
它使用易于理解的格式標記,沒有古怪的 `` 。
- 可以使用最簡單的文本編輯器編輯。
- 所見即所得,非技術控亦可直接閱讀源碼。
- 可版本控制。
- 實現單一源文件出版。
~~~
GitHub令人著迷的一個因素就在于GitHub為用戶提供更為便捷地創建UGC(用戶生成內容)的方法,其奧秘就在于使用了輕量級標記語言。無論是代碼提交說明、提交評注、問題描述、項目的README文件、維基頁面、用戶主頁和項目主頁都可以使用Markdown(Markdown是在Ruby應用中廣泛使用的標記語言,語法簡潔并可混用HTML。標準的Markdown語法缺乏如表格等關鍵特性的支持,雖然不同的解析器都對其語法進行了擴展,但實現各有不同,造成一定的混亂。網址:http://daringfireball.net/projects/markdown/ 。等輕量級標記語言來撰寫。輕量級標記語言如Markdown是對人友好的標記語言,一些語法參照了我們寫電子郵件時的習慣,即使第一次接觸用輕量級標記語言撰寫的文件,也可以毫無障礙地理解其中的內容。
雖然GitHub更傾向于使用Markdown標記語言(GitHub使用Redcarpet作為Markdown的解析工具,并添加了額外的語法擴展。網址:[http://github.github.com/github-flavored-markdown/](http://github.github.com/github-flavored-markdown/),但很多地方也提供對其他輕量級標記語言的支持。包括為Python程序員所熟悉的reStructedText(reStructuredText可簡寫為reST或RST,是在Python中廣泛使用的標記語言。reST的語法簡潔嚴謹,本書就是使用Sphinx擴展的reST語法和工具撰寫的。網址:[http://docutils.sourceforge.net/rst.html](http://docutils.sourceforge.net/rst.html),為Ruby程序員所熟悉的Textile(Textile是在Ruby應用中廣泛使用的標記語言,例如Redmine就將Textile作為內置的標記語言。網址:[http://redcloth.org/textile](http://redcloth.org/textile)、RDoc(RDoc是內嵌于Ruby代碼中用于維護軟件文檔的標記語言。網址:[http://rdoc.sourceforge.net/doc/](http://rdoc.sourceforge.net/doc/),為Perl程序員所熟悉的POD(POD是內嵌于Perl代碼中用于維護軟件文檔的標記語言。網址:[http://perldoc.perl.org/perlpod.html](http://perldoc.perl.org/perlpod.html),為Emacs用戶所熟悉的Org-mode(Org-mode是Emacs的一種編輯模式,除文檔外還被廣泛應用于維護TODO列表、項目計劃等。網址:[http://orgmode.org/org.html](http://orgmode.org/org.html),為維基用戶所熟悉的MediaWiki(MediaWiki是著名的維基百科(WikiPedia)所使用的維基語言。網址:[http://www.mediawiki.org/wiki/Help:Formatting](http://www.mediawiki.org/wiki/Help:Formatting)和Creole(維基的實現有上百種,語法各不相同。Creole試圖建立統一的維基語法標準。網址:[http://www.wikicreole.org/](http://www.wikicreole.org/),以及可作為DocBook(DocBook是著名的用于文檔撰寫的標記語言,采用XML文件格式及大量的面向出版的格式標簽,能夠實現單一源文件出版(Single-Source Publishing),即一次撰寫多種格式輸出(Write once, publish many)。但復雜的XML標簽給寫作過程帶來不小的負擔。網址:[http://www.docbook.org/](http://www.docbook.org/)前端的頗有前途的AsciiDoc(AsciiDoc的輕量級標簽和DocBook的XML標簽語法有著清晰的對應關系,既解決了DocBook語言標簽復雜、難讀難寫的問題,又可利用DocBook豐富的工具鏈實現單一源文件向多種格式的輸出轉換。網址:[http://www.methods.co.nz/asciidoc](http://www.methods.co.nz/asciidoc)標記語言。
下面通過一張表格對幾種常用的輕量級標記語言加以對照,供有不同標記語言偏好的用戶參考,便于在GitHub某些不能隨意更換標記語言而只能使用GFM(GitHub風格的Markdown)的場合可以自如地轉換。
詳細對照請[參考原文](http://www.worldhello.net/gotgithub/appendix/markups.html)
- 前言
- 1. 探索GitHub
- 1.1. 什么是GitHub
- 1.2. GitHub亮點
- 1.3. 探索GitHub
- 2. 加入GitHub
- 2.1. 創建GitHub賬號
- 2.2. 瀏覽托管項目
- 2.3. 社交網絡
- 3. 項目托管
- 3.1. 創建新項目
- 3.2. 操作版本庫
- 3.3. 公鑰認證管理
- 3.4. 版本庫鉤子擴展
- 3.5. 建立主頁
- 4. 工作協同
- 4.1. Fork + Pull模式
- 4.2. 共享版本庫
- 4.3. 組織和團隊
- 4.4. 代碼評注
- 4.5. 缺陷跟蹤
- 4.6. 維基
- 5. 付費服務
- 5.1. GitHub收費方案
- 5.2. GitHub企業版
- 6. GitHub副產品
- 6.1. GitHub:Gist
- 6.2. 其他版本控制工具支持
- 6.3. 客戶端工具
- 6.4. 其他
- 7. 附錄:輕量級標記語言
- 貢獻者列表