Pandoc

Posted by wsxq2 on 2020-06-18
TAGS:  pandocTODO

本文最后一次编辑时间:2022-03-16 18:52:06 +0800

本文介绍强大的通用文档转换器 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

链接

下面总结了本文中使用的所有链接: