本文介绍强大的通用文档转换器 pandoc
简介
如果您需要将文件从一种标记格式转换为另一种标记格式,那么 pandoc 是您的瑞士军刀。
——引用自 Pandoc - About pandoc
常用链接
使用经历
docx to markdown
1
pandoc --extract-media=a --shift-heading-level-by=1 -p --tab-stop=4 -s --wrap=none -f docx -t gfm+attributes+definition_lists+tex_math_dollars -o a.md a.docx
markdown to docx
1
pandoc --lua-filter read_html.lua --reference-doc=xxx.docx --shift-heading-level-by=-1 -p --tab-stop=4 -s --wrap=none --toc --toc-depth=3 --strip-comments --highlight-style=pygments -N -f gfm+attributes+definition_lists+tex_math_dollars -t docx -o a.docx a.md
其中read_html.lua
:
1
2
3
4
5
function RawBlock (raw)
if raw.format:match 'html' and not FORMAT:match 'html' then
return pandoc.read(raw.text, raw.format).blocks
end
end
以下内容主要参考了 用 Pandoc 转化 Markdown 到 Docx
生成模板
推荐的方式:
1
pandoc -f gfm -t docx a.txt -o custom-reference.docx
其中a.txt
内容如下:
1
Hello world
通过这种方式,可以获得样式齐全的模板(比如包含 Source Code 样式等)。另一种获取模板的方式是:
1
pandoc -o custom-reference.docx --print-default-data-file reference.docx
之后将生成的custom-reference.docx
放到~/.pandoc
目录(For Linux)中,并重命名为reference.docx
:
1
2
md ~/.pandoc
mv custom-reference.docx ~/.pandoc/reference.docx
修改模板
使用 Microsoft Word 编辑模板文件~/.pandoc/reference.docx
,需要注意的是,只修改其中的样式即可,修改内容没有意义。
修改样式的方法如下:在 Word 中点击开始-样式-右下角拓展(或者使用快捷键Alt+Ctrl+Shift+S
),选择你要修改的样式,点击右边向下的箭头,再点击修改。需要注意的是样式库中展示的不是本文档中的所有样式(我之前一直找不到 Source Code 样式就是这个原因)
使用
1
pandoc -f gfm -t docx 2019-07-07-科学上网.md -o 科学上网.docx
链接
下面总结了本文中使用的所有链接: