個人Markdown 撰寫 & 轉換工具 (Pandoc)

被線上工具坑過之後覺得還是在local寫好了,我要的功能需求大致上是:

功能需求

  • 可產生目錄(=GFM [toc] tag)
  • 可輸出網頁/PDF
  • 可完全離線作業(如果要用在工作,不方便使用線上工具)
  • 有支援syntex highlighting最好

試了幾個工具,最後選Pandoc加文字編輯器幫我處理。

產生網頁

產生網頁用的指令:

pandoc
-f markdown-smart+hard_line_breaks
--strip-comments
--embed-resources
--standalone
--metadata mainfont=sans-serif,monospace
--metadata toc-title="目錄"
--toc 
-o %PANDOC_OUTPUT_FILE%
%PANDOC_INPUT_FILE%

參數說明
- -f markdown-smart+hard_line_breaks 指定格式是markdown不要smarthard_line_breaks (參見pandoc的extension)
- --strip-comments 轉換時移除註解。
- --embed-resources 打包圖片影片到HTML原始碼內(Base64)。
- --metadata mainfont=sans-serif,monospace 設定預設字體為sans-serif(黑體)跟等寬字型。非必要,個人偏好。
- --metadata toc-title="目錄" 為目錄設定自己的標題。非必要,看起來比較順眼。
- --toc 產生目錄
- --standalone 產生完整的文件
- -o 輸出到檔案(預設會輸出到stdout)

產生PDF

原先是考慮直接用Pandoc產生PDF,後來發現需要安裝LaTex,但在Windows裝LaTex實在太痛苦(裝過的人都懂),因此最後採用的方法是:先產生網頁再用瀏覽器列印功能轉換成PDF。
雖然需要多做一步,不過發現這樣可以在header產生timestamp,其實也不錯,有助於記錄檔案版本。

踩到的坑

一開始是想使用GFM格式來寫,後來發現pandoc如果帶 -f gfm 去轉換會失去一些pandoc的特異功能,因此還是決定寫標準Markdown,這樣也可以讓文件的相容性好一點。

留言