Markdown寫作進階:Pandoc入門淺談熟悉Markdown的朋友,,不由地奇怪,,為什么它不支持表格、數學公式以及很多你想要的功能,。這一切,,與Markdown自身的設計哲學有關系,提供盡可能少的,,用于創(chuàng)作的功能,,將對它的擴展,交給各路開源愛好者,。于是,,我們可以看到github flavored markdown、multimarkdow,、maruku等各路擴展,。 然而,這些擴展某種意義上,,并不是針對寫作的,。開源界傳說中的高帥富社區(qū),haskell社區(qū)的作品Pandoc給了我們更好的選擇,,在多個方面完敗MMD,,參考:Pandoc vs Multimarkdown。 haskell 是什么,?一種編程語言,。每位資深的開發(fā)者學習它,都會有些不知所措,因為,,它的編程思路不同于通常意義上類似于C#,、Python、Java這些流行的編程語言,。它來自一群高智商的開發(fā)者的貢獻,據說人人有PHD學位,,是函數式編程語言的典范,。當然,Pandoc作者John MacFarlane也不例外,,他是一位來自美國加州大學伯克利分校的哲學教授,,研究的是認識論這類高深議題:D 文本格式轉換,每位開發(fā)過這方面程序的技術青年,,都知道它有多么痛苦,;開發(fā)出的程序有多么丑陋。甚至可以說,,這是個無底黑洞,。事實證明,haskell的確是干這臟活,、累活的最恰當選擇,。Pandoc也的確成功了,并已成功在短期內構建一個完整的生態(tài)鏈,,于是,,有了我們這篇小文。 1. Pandoc安裝1.1 最簡單的安裝辦法(推薦辦法)下載軟件,,找到相應操作系統對應的文件,,然后按照默認點擊即可。如果你不需要學習Haskell,,請使用此種辦法,,好處多多。 1.2 更技術的安裝辦法(學習Haskell者使用)一個通用的安裝方式是,安裝Haskell平臺.然后再通過Haskell平臺安裝Pandoc,。步驟如下: 1.2.1 安裝Haskell平臺如果之前,,你通過其它方式,安裝過Haskell的運行平臺,,需要卸載,,Mac下命令如下:
然后,系統會找到你之前安裝過的版本,,如7.4.1,、7.0.4,運行下列命令:
下載Haskell平臺,下載地址是:http://hackage./platform/ 選擇你相應的操作系統平臺即可,。 然后下載完之后,,一路按照默認安裝即可。配置在.bashrc或者修改.zshrc文件,。作者使用的是zshrc配置文件,。因此,在~/.zshrc文件末尾增加一行:
這樣可以直接通過shell來控制Haskell,。打開終端,,如iterm2,輸入:
cabal是類似于Ruby下的rubygems一樣的包管理器,。cabal程序會鏈接到服務器http://hackage./packages/archive/上下載相應的包信息,。下載時間會較長,請耐心等候,,并檢查本機與HaskellDB服務器的連接速度,。 1.2.2 安裝pandoc運行:
編譯安裝時間較漫長,你可以去打個醬油,。在安裝過程中,,我們會發(fā)現pandoc調用與使用的一些Haskell擴展包,如:
1.2.3 ubuntu下的安裝yanping總結了ubuntu下pandoc的安裝步驟,,如下:
然后再把~/.cabal加到路徑中去,,在.bashrc里加上一句
1.2.4 安裝之后的校驗打開Shell,輸入:
如果安裝無誤,,應能看到pandoc相關的作者,、版權、序列許可等信息,。當然,,更令人震撼的是,能看到Pandoc已經支持的語言列表,。使用
可以看到pandoc主要支持的輸入與輸出格式:
上述語言的互轉關系,,可以看看作者制作的這份壯觀的圖,從中可以看出Pandoc的強大,。這年頭,,哲學系教授會寫程序,還是Haskell,,傷不起啊:D 2.Pandoc 編輯器2.1 Pandoc 編輯器當然,,你可以一切操作都在Shell中完成,不過,,為了提高效率,,總是可以借助于Pandoc社區(qū)既有的積累,。如:
更多編輯器,、插件請參考:Pandoc-Extras 2.2 Pandoc TextMate Bundle以下以Mac下主要編輯器TextMate為例,說明如何安裝,。請?zhí)貏e注意,,該Textmate Bundle作者并沒有全部完成所有工作。僅供參考,。TextMate2.0之后的bundle位置已經變動了,,現在默認位置是:/Applications/TextMate.app/Contents/SharedSupport/Bundles/
安裝完之后,,效果如下圖所示,, 2.Pandoc Markdown語法特色詳情參見:Pandoc 2.1 Pandoc寫表格如下所示:
2.2 Pandoc寫參考文獻使用[Pandoc Markdown]格式的寫法是在文中使用:
然后在文末使用:
如下例所示: 正文中是:
然后在文章末尾寫上:
3. Pandoc文檔轉換3.1 Markdown轉html,、word與PDF如下例所示: 轉html格式
轉word格式
3.2 Markdown轉PDF安裝LaTex待補。 轉pdf格式
4 Pandoc生成epub,、html與在線電子書4.1 安裝nodejs與grunt,、bower下載nodejs安裝包,網址為:http:/// 下載之后,,安裝默認安裝,。安裝完之后,確認安裝是否成功。
如果如我一樣,,使用的是zsh,。在.zshrc文件中添加nodejs的路徑。
在文件末尾添加:
然后,,安裝grunt,。
安裝bower等。
4.2 使用wbb生成epub,、html與在線電子書示范以著名的progit為例,。
然后檢查clone下來的項目,是否已經包含了grunt.js等文件,。各項生成代碼寫在那里面,。 書稿則寫在/test2012/src/chapters 這樣的目錄下面。 寫作書稿時,,完全按照正常git流程管理,。書稿預覽效果,是在test2012的根目錄下面,,運行:
自定義各項參數,,請修改grunt.js文件。 生成的epub,、html與moblie在線電子書,,在builds目錄下面。同時可以設置,,與leanpub在線出版網站搭配,。 5 Pandoc的科技寫作5.1 Pandoc與bibdesk、APA文獻格式的配合5.2 RStudio默認使用Pandoc請參考:Customizing Markdown Rendering 還有個pander的R包,。
小結我目前的觀點是,,Pandoc Markdown不是萬能的,表格,、復雜公式,、多國語言、上下標,、交叉引用,、圖表對齊較多的場合,它并不適合,。但是需要互動,、實時展現、更快輸出的場合,,Pandoc Markdown等值得大力推薦,。未來互聯網會逼使寫作趨簡,。需要更快發(fā)表、互動輸出與交流的場合,,也會越來越多,。比如課堂作業(yè)、企業(yè)內部交流,、個人博客,。用它節(jié)省的時間是寫作時比較關鍵的"創(chuàng)作時間"而非"排版時間"。 本作品采用知識共享署名-非商業(yè)性使用-禁止演繹 3.0 Unported許可協議進行許可,。 |
|