markdown轉爲html及pdf


markdown轉爲html

markdown轉html比較容易些,有很多方法都可以做到。


1. 通過markdown編輯器導出

linux下常用的markdown編輯器有retext,haroopad等,這些軟件都支持自定義css並導出html。以上軟件的安裝詳見linux環境下Markdown編輯器彙總


2. 使用github上的開源項目

github上有許多優秀的開源項目都可以將markdown轉爲各種樣式的html頁面。


3. 使用pandoc

pandoc是進行文件類型轉換的瑞士軍刀,初次接觸的同學可以體驗下 Pandoc Demos。更多信息請查看Pandoc User’s Guide

將markdown轉爲html很簡單,直接執行以下命令即可。其中,”template.css”是自定義的模板。
pandoc README.md -c template.css -o README.html


markdown轉爲pdf


1. markdown->html->pdf

可以先將markdown轉爲html,具體方式見上小節。之後在瀏覽器中打開html並打印爲pdf即可,不過這樣得到的pdf總是有點模糊。

爲知筆記支持自定義markdown格式(即自定義css),並支持導出html及pdf,效果堪稱完美。見下圖。更多markdown樣式的模板詳見markdown-css

wiz-m2p


2. 使用pandoc

使用pandoc將markdown轉爲pdf需要首先安裝LaTex,linux下建議安裝TexLive,具體安裝過程見Fedora21安裝TexLive2015及Texstudio

之後使用如下命令進行轉換,
pandoc test.md -o test.pdf --latex-engine=xelatex

打開輸出文件卻發現中文沒有顯示,那是因爲Latex默認不支持中文,所以添加參數來指定字體爲宋體,如下所示。更多參數詳見Variables for LaTeX
pandoc test.md -o test.pdf --latex-engine=xelatex -V mainfont=SimSun

這次的輸出文件沒有斷行,此時必須使用模板了,首先輸入一下命令導出默認模板
pandoc -D latex > template.tex

參考pm-template.latex,將”template.tex“文件中\else % if luatex or xelatex$if(mainfont)$的部分修改爲如下所示:

\else % if luatex or xelatex
    % SUPPORT for Chinese  
  \usepackage{fontspec}  % 允許設定字體
  \usepackage{xeCJK}    % 分開設置中英文字型
  \setCJKmainfont{SimSun}  % 設定中文字型
  \setmainfont{SimSun}   % 設定英文字型
  \setromanfont{SimSun}  % 字型
  \setmonofont{SimSun}
  \linespread{1.2}\selectfont   % 行距
  \XeTeXlinebreaklocale "zh"  % 針對中文自動換行
  \XeTeXlinebreakskip = 0pt plus 1pt % 字與字之間加入0pt至1pt的間距,確保左右對整齊
  \parindent 0em    % 段落縮進
  \setlength{\parskip}{20pt}  % 段落之間的距離
  \ifxetex
    \usepackage{xltxtra,xunicode}
  \fi
  \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
  \newcommand{\euro}{}
$if(mainfont)$

之後,執行如下命令,即可得到比較完美的pdf了。
pandoc test.md -o test.pdf --latex-engine=xelatex --template=template.tex

可能會出現問題”pandoc “cannot parse yaml header” when converting md to pdf“,參考stackoverflow上的解決辦法,在執行命令時,加上參數--from markdown-yaml_metadata_block即可,不過最好還是將markdown中的”—“去掉。


補充

在上面的基礎之上,可以進行適當修改以形成不同的模板,我將我的幾個模板放在了github上,地址–·pandoc-m2p-template

樸素型:
m2p_plain

Style1:
m2p-style1


參考文檔

【1】神器Pandoc的安裝與使用
【2】讓pandoc輸出pdf時支持中文

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章