熟悉Markdown的朋友,不由地奇怪,為什么它不支持表格、數(shù)學公式以及很多你想要的功能。這一切,與Markdown自身的設計哲學有關系,提供盡可能少的,用于創(chuàng)作的功能,將對它的擴展,交給各路開源愛好者。于是,我們可以看到github flavored markdown、multimarkdow、maruku等各路擴展。
然而,這些擴展某種意義上,并不是針對寫作的。開源界傳說中的高帥富社區(qū),haskell社區(qū)的作品Pandoc給了我們更好的選擇,在多個方面完敗MMD,參考:Pandoc vs Multimarkdown。
haskell 是什么?一種編程語言。每位資深的開發(fā)者學習它,都會有些不知所措,因為,它的編程思路不同于通常意義上類似于C#、Python、Java這些流行的編程語言。它來自一群高智商的開發(fā)者的貢獻,據(jù)說人人有PHD學位,是函數(shù)式編程語言的典范。當然,Pandoc作者John MacFarlane也不例外,他是一位來自美國加州大學伯克利分校的哲學教授,研究的是認識論這類高深議題:D
文本格式轉(zhuǎn)換,每位開發(fā)過這方面程序的技術青年,都知道它有多么痛苦;開發(fā)出的程序有多么丑陋。甚至可以說,這是個無底黑洞。事實證明,haskell的確是干這臟活、累活的最恰當選擇。Pandoc也的確成功了,并已成功在短期內(nèi)構建一個完整的生態(tài)鏈,于是,有了我們這篇小文。
下載軟件,找到相應操作系統(tǒng)對應的文件,然后按照默認點擊即可。如果你不需要學習Haskell,請使用此種辦法,好處多多。
一個通用的安裝方式是,安裝Haskell平臺.然后再通過Haskell平臺安裝Pandoc。步驟如下:
如果之前,你通過其它方式,安裝過Haskell的運行平臺,需要卸載,Mac下命令如下:
/Library/Haskell/bin/uninstall-hs
然后,系統(tǒng)會找到你之前安裝過的版本,如7.4.1、7.0.4,運行下列命令:
sudo uninstall-hs only 7.0.4 --removesudo uninstall-hs only 7.4.1 --remove
下載Haskell平臺,下載地址是:http://hackage.haskell.org/platform/
選擇你相應的操作系統(tǒng)平臺即可。
然后下載完之后,一路按照默認安裝即可。配置在.bashrc或者修改.zshrc文件。作者使用的是zshrc配置文件。因此,在~/.zshrc文件末尾增加一行:
export PATH="$HOME/Library/Haskell/bin:$PATH"
這樣可以直接通過shell來控制Haskell。打開終端,如iterm2,輸入:
cabal update
cabal是類似于Ruby下的rubygems一樣的包管理器。cabal程序會鏈接到服務器http://hackage.haskell.org/packages/archive/上下載相應的包信息。下載時間會較長,請耐心等候,并檢查本機與HaskellDB服務器的連接速度。
運行:
cabal install pandoc
編譯安裝時間較漫長,你可以去打個醬油。在安裝過程中,我們會發(fā)現(xiàn)pandoc調(diào)用與使用的一些Haskell擴展包,如:
yanping總結了ubuntu下pandoc的安裝步驟,如下:
sudo apt-get autoremove pandoc #刪掉之前的pandoc安裝sudo apt-get install cabal-install #安裝Haskell包管理器cabal update #獲取Haskell包信息cabal install pandoc #通過cabal安裝pandoc
然后再把~/.cabal加到路徑中去,在.bashrc里加上一句
export PATH=/home/ypchen/.cabal/bin:$PATH
打開Shell,輸入:
pandoc --version
如果安裝無誤,應能看到pandoc相關的作者、版權、序列許可等信息。當然,更令人震撼的是,能看到Pandoc已經(jīng)支持的語言列表。使用
pandoc --help
可以看到pandoc主要支持的輸入與輸出格式:
Input formats: native, json, markdown, markdown+lhs, rst, rst+lhs, docbook, textile, html, latex, latex+lhsOutput formats: native, json, html, html5, html+lhs, html5+lhs, s5, slidy, slideous, dzslides, docbook, opendocument, latex, latex+lhs, beamer, beamer+lhs, context, texinfo, man, markdown, markdown+lhs, plain, rst, rst+lhs, mediawiki, textile, rtf, org, asciidoc, odt, docx, epub
上述語言的互轉(zhuǎn)關系,可以看看作者制作的這份壯觀的圖,從中可以看出Pandoc的強大。這年頭,哲學系教授會寫程序,還是Haskell,傷不起啊:D
當然,你可以一切操作都在Shell中完成,不過,為了提高效率,總是可以借助于Pandoc社區(qū)既有的積累。如:
更多編輯器、插件請參考:Pandoc-Extras
以下以Mac下主要編輯器TextMate為例,說明如何安裝。請?zhí)貏e注意,該Textmate Bundle作者并沒有全部完成所有工作。僅供參考。TextMate2.0之后的bundle位置已經(jīng)變動了,現(xiàn)在默認位置是:/Applications/TextMate.app/Contents/SharedSupport/Bundles/
cd /Applications/TextMate.app/Contents/SharedSupport/Bundles/cd ~/Library/Application\ Support/TextMate/Managed/Bundlesgit clone git://github.com/dsanson/Pandoc.tmbundle.git "Pandoc.tmbundle"
安裝完之后,效果如下圖所示,
詳情參見:Pandoc
如下所示:
-----------------------------------------------------------------------------------------------------------------測量指標 低程度中心性 低親近中心性 低居間中心性 -------------------- ------------------- ----------------------------- -------------------------------------高程度中心性 “自我”所嵌入的聚類 “自我”的聯(lián)系人是冗余的, 遠離網(wǎng)絡中其他節(jié)點 整個世界繞他而行 高親近中心性 是聯(lián)系重要他人或 在事件中,自我位于一個相互 活躍人物的關鍵人物 聯(lián)系密切、活躍的聚類中,與 很多節(jié)點都很接近;其他節(jié)點也是如此 ------------------------------------------------------------------------------------------------------------------: 表3-1 不同中心性測量指標之間的關系[^16]
使用[Pandoc Markdown]格式的寫法是在文中使用:
[^1]、[^2]
然后在文末使用:
[^1]: [^2]:
如下例所示:
正文中是:
當一個人在看社會網(wǎng)絡時,首先提出的問題之一就是:在社會網(wǎng)絡中誰是更重要的人?或者誰擁有更大的權力?在介紹部分(參考第一章介紹的非正式網(wǎng)絡的力量),我們發(fā)現(xiàn)社會網(wǎng)絡是由一個強大的(但大部分是無形的)的“秘書”統(tǒng)治[7],類似的觀點亦可從一系列社會網(wǎng)絡測量指標(參見 中心性 )中獲得。
然后在文章末尾寫上:
[^7]:譯者注:作者此處秘書指的是第一章中“非正式網(wǎng)絡的力量”一節(jié)介紹的ACME咨詢公司的例子中所提到的秘書處,其中代表人物即ACME咨詢公司中的Frida,雖然在正式網(wǎng)絡中,看似不是核心人物,但是Frida偏偏是最受整個公司信賴的網(wǎng)絡中心人物。
如下例所示:
pandoc 01-chapter2.markdown -o chapter2.html -c Github.css
pandoc 01-chapter2.markdown -o chapter2.docx -c Github.css
待補。
pandoc 01-chapter2.markdown -o 01-chapter2.pdf --latex-engine=xelatex -V mainfont=heiti\
下載nodejs安裝包,網(wǎng)址為:http://nodejs.org/
下載之后,安裝默認安裝。安裝完之后,確認安裝是否成功。
npm -v
如果如我一樣,使用的是zsh。在.zshrc文件中添加nodejs的路徑。
mate ~/.zshrc
在文件末尾添加:
export PATH=/usr/local/share/npm/bin:$PATH
然后,安裝grunt。
sudo npm install -g grunt
安裝bower等。
sudo npm install -g bower
以著名的progit為例。
git clone https://github.com/PascalPrecht/wbb test2012cd test2012
然后檢查clone下來的項目,是否已經(jīng)包含了grunt.js等文件。各項生成代碼寫在那里面。
書稿則寫在/test2012/src/chapters 這樣的目錄下面。
寫作書稿時,完全按照正常git流程管理。書稿預覽效果,是在test2012的根目錄下面,運行:
grunt wbb:html
自定義各項參數(shù),請修改grunt.js文件。
生成的epub、html與moblie在線電子書,在builds目錄下面。同時可以設置,與leanpub在線出版網(wǎng)站搭配。
請參考:Customizing Markdown Rendering
還有個pander的R包。
> library(devtools) > install_github('pander', 'daroczig')
我目前的觀點是,Pandoc Markdown不是萬能的,表格、復雜公式、多國語言、上下標、交叉引用、圖表對齊較多的場合,它并不適合。但是需要互動、實時展現(xiàn)、更快輸出的場合,Pandoc Markdown等值得大力推薦。未來互聯(lián)網(wǎng)會逼使寫作趨簡。需要更快發(fā)表、互動輸出與交流的場合,也會越來越多。比如課堂作業(yè)、企業(yè)內(nèi)部交流、個人博客。用它節(jié)省的時間是寫作時比較關鍵的"創(chuàng)作時間"而非"排版時間"。
聯(lián)系客服