我需要把markdown文档转换成html。pandoc这个工具很好的满足了我的需要。
把markdown文件转换成html,会自动生成标题索引
pandoc -s --toc file.md -o out.html
我发现生成的html有些丑陋。有的地方图片宽度还超出了页面。
但是pandoc可以指定css,我就写了一个css,把里面代码块,引用块的样式美化了一些
body {
background-color: black;
color: white;
font-size: 24px;
}
img {
/*最大宽度*/
max-width: 90vw;
}
blockquote{
/*块引用*/
padding: 10px;
background-color: rgb(22,22,22);
color: rgb(155,245,199);
}
code{
/*代码里面的颜色*/
/*<code></code>标签*/
background-color: rgb(22,22,22);
color: rgb(255,155,155);
}
pre{
/*格式化文本的颜色*/
/*<pre></pre>标签*/
background-color: rgb(22,22,22);
}
pre code{
/*格式化代码块里面的代码颜色*/
/*<pre><code></code></pre>标签*/
color: rgb(145,145,255);
}再次用命令转换
pandoc -s --toc -c html.css file.md -o out.html
瞬间就好看了。高大上了,显得我的文章有档次了。
如果只是转换markdown成html是不能说好用。关键是它能够很好地支持markdown,能够对里面的代码直接进行语法高亮转换成html代码。这就很好用了。网站使用的marked.js库能够解析markdown成html,但是不能实现语法高亮,还得配合用highlight.js库进行语法高亮显示。
有时候发现有的文章并不能很好的转换成html,文本都连在一起了。需要指定输入的markdown格式。通过--list-input-formats选项能够查询到支持的输入格式。
>pandoc --list-input-formats
commonmark
creole
csv
docbook
docx
dokuwiki
epub
fb2
gfm
haddock
html
ipynb
jats
jira
json
latex
man
markdown
markdown_github
markdown_mmd
markdown_phpextra
markdown_strict
mediawiki
muse
native
odt
opml
org
rst
t2t
textile
tikiwiki
twiki
vimwiki
通过使用-f markdown_github或者-f gfm选项就可以了,是github的markdown格式。
如果出现警告
[WARNING] Could not parse YAML metadata at line 239 column 1: Unexpected '`'
说明在解析yaml数据。而markdown里面是不正确的yaml。它把markdown里面的某些东西当成了yaml语法。解决办法是关闭它对yaml的解析,加入参数-f markdown-yaml_metadata_block