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时支持中文

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值