Pandoc太好用了

⌚Time: 2024-11-08 23:47:00

👨‍💻Author: Jack Ge

我需要把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