前言其實(shí)很早就知道Pandoc這個東西了,只是一直沒有什么需求促使我去使用它。平時寫博客雖然也是用Markdown,但是由于Jekyll并不支持Pandoc,所以也沒有特別去研究它(目前博客使用的是Kramdown渲染器,它在很多擴(kuò)展語法都是借鑒Pandoc的。)??墒菚r過境遷,現(xiàn)在平時需要寫一些非正式報告和總結(jié),每次使用word的時候總覺得不舒服,有次為了調(diào)整一個段落的行距搞了1個多小時,雖然可以說是我自己沒有學(xué)好word的基本操作,但是每次為了尋找一個功能"翻箱倒柜"地在網(wǎng)上找方法,徹底破壞了寫作的情緒,這實(shí)在讓我很難受。因此我選擇markdown來進(jìn)行平時的寫作,為了達(dá)到這個目的,必須要選擇一個markdown的渲染器,網(wǎng)上有著各式各樣的渲染器,還有一些可以直接在線渲染的網(wǎng)站。但是平時在本地編輯的時候,總要開個瀏覽器,這實(shí)在讓人接受不了。在眾多渲染器中,最先映入眼簾的就是Pandoc了,號稱為文本格式轉(zhuǎn)換的瑞士軍刀,既然有了這個稱號,說明其功能是非常不錯的。后來查了一下,發(fā)現(xiàn)果然是一個神器,它甚至可以生成pdf和docs! Pandoc的官網(wǎng)在這里,網(wǎng)上有很多具體介紹Pandoc的文章,其中質(zhì)量比較高的有: 本文就不再贅述上面文章提到過的一些基本概念和操作了,如果讀者還不知道Markdown和Pandoc是什么的話,請閱讀上述文章。 配置具體的安裝過程上述文章和Pandoc的官網(wǎng)上都有,此處不再細(xì)說了,這里主要說明一些在安裝過程遇到的問題和解決方法(以windows7為例)。 系統(tǒng)路徑在Windows下Pandoc安裝的時候,默認(rèn)是安裝在用戶主目錄下的,以win7為例,就是 生成HTML就我自己而言,我使用Pandoc最主要的功能就是利用它來生成HTML和PDF文件,本節(jié)先討論HTML的配置方法,下一節(jié)再來說明pdf的配置。 其實(shí)將markdown生成html,是Pandoc最基本的一個功能,使用起來也是非常簡單的,打開cmd,切換到makrdown文本所在的目錄,寫入如下代碼[1]:
程序運(yùn)行之后,就會在當(dāng)前目錄下生成一個相應(yīng)的out.html文件。 CSS樣式上面這是最基本的用法了,但是這還不能滿足我的日常需求,單純的html文件太過單調(diào)了,只有配上相應(yīng)的CSS樣式,才能使得文本以更加優(yōu)美的方式展現(xiàn)出來。 可喜的是pandoc完全支持加入css一起渲染,利用如下的命令:
其中style.css是為生成的html文件編寫的樣式文件,但是這個style.css應(yīng)該放在哪呢?放在當(dāng)前目錄下,當(dāng)然沒問題,但是每次編寫markdown的時候,都要將這個css文件復(fù)制到當(dāng)前目錄下,那豈不是很麻煩?因此我要想辦法把它放在一個固定的地方,每次直接調(diào)用就可以了。 這就引出了pandoc的默認(rèn)目錄了,可以通過 生成獨(dú)立HTML通常來說,寫作的目的是寫給別人來看的,但是如果是使用html文件的格式的話,那么每次傳輸都需要傳送整個目錄文件,因?yàn)闀泻芏鄨D片或css文件需要一起被傳送,否則html會無法正確顯示。這顯然是很麻煩的,有沒有辦法讓pandoc在生成的時候,自動把style.css中樣式代碼直接嵌入到html中呢?辦法當(dāng)然是有的,主要是參考了這篇文章。主要有兩種方法: 第一種是使用方法是使用如下的命令:
但是當(dāng)我試用這種方式的時候,發(fā)現(xiàn)style.css文件必須放在當(dāng)前目錄下,這個命令才能正常執(zhí)行,否則會報錯說找不到style.css文件。 另外一種更加好的方式使用
這個命令不但會把css文件嵌入到html中,它會把所有外部文件全部壓縮進(jìn)單個html文件中,包括圖片、視屏、音樂等。這是何等強(qiáng)大的功能??! 利用上述這個命令,就能將markdown文檔輕易地生成一個真正獨(dú)立的html文件,不需要任何其他外部文件支持,這就非常方便傳遞了。 生成pdf生成一個pdf文件也是pandoc的主要功能之一,但是它要依賴于latex,如果需要使用pandoc來生成pdf文件,那么需要另外安裝Latex,pandoc官方推薦安裝MiKTeX,具體安裝過程也不說了,非常簡單。安裝好MikTex之后,可以利用如下的命令來生成pdf:
但是這樣命令會出現(xiàn)這樣的錯誤
原因是pandoc默認(rèn)選擇的pdf引擎是pdflatex,而pdflatex是不支持中文的,因此會發(fā)生上述錯誤。因此在使用pandoc的時候,可以手動指明Latex引擎為xelatex,這是完全支持中文顯示的。這樣我們的命令就變成了:
使用這個命令能夠正常的編譯出pdf文件,但是當(dāng)你打開編譯出來的pdf文件時,會發(fā)現(xiàn)其中的中文部分全是空白,這是字體的問題,因?yàn)長atex的默認(rèn)字體是不支持中文的,因此我們可以繼續(xù)修改命令:
其中 但是這個命令還是有問題的,打開生成的pdf,你會發(fā)現(xiàn)其中的中文完全是沒有斷行的,這是因?yàn)閜andoc本身對中文支持不夠,但這不是說我們沒有解決方案,解決方案是使用網(wǎng)友編輯好的latex模板來生成pdf,這里用到的是tzengyuxio提供的pm-template.latex4。 下載模板后將其中的LiHei Pro字體替換成系統(tǒng)中安裝有的中文字體即可,然后編譯命令改為
這時就能生成一個比較完美的pdf文件了。 Vim與Pandoc既然現(xiàn)在有了panodc這個神器,那么大部分的文本編輯操作我就可以在Vim中進(jìn)行了,而不需要去使用那個無比臃腫的word了,配合Vim強(qiáng)大的定制功能,我就能配置出一個功能完善的pandoc寫作環(huán)境了。 這顯然又是一個很深的話題,這里我只是稍微寫一下配置過程,因?yàn)槲易约罕旧硪策€在研究當(dāng)中。 首先可以為markdown文件映射幾個命令,使得可以快捷的生成html,在Vim的_vimrc文件中加入如下代碼:
上述的代碼中,我首先定義了兩個函數(shù),分別是用來調(diào)用pandoc來生成html和pdf文件的,然后映射了兩個快捷鍵 最后推薦一個比較好的pandoc插件:vim-pandoc,這個插件我也是剛剛開始使用,感覺還不錯,值得推薦。 參考資料
|
|