在写 pandoc 文档时, 有时候需要定义自已的格式,
或者在插入了图片, 而将 pandoc 文档转换为其它格式时, 图片居中的方式有所不同.
对我来说, 经常将 pandoc 文档转换为 docx, html 和 pdf 格式. 若 pandoc
中包含了图片, 通常将其居中显示. 对于 docx, html 和 pdf 来说,
图片居中的使用的格式语法不尽相同. 此时, 我的做法是定义一种插入图片的语法,
然后编写一个过滤器对这种语法进行解析, 根据目标文档格式来插入不同的居中语法.
什么是 pandoc
这里不过多描述 pandoc. 简单的说, pandoc 是一个文档转换工具. 源文档是 markdown
格式的文本文件, 或是符合 pandoc-markdown 语法格式的文本文件, 通过 pandoc
可以转换为其它格式的文档, 比如 html, pdf 等. pandoc
可以将源文档转换为数十种格式的文档, 如图 1 所示.
![图 1](https://i-blog.csdnimg.cn/blog_migrate/c01ab08f5a809b33bd842c2e3d343e55.jpeg)
图 1 pandoc 转换目标文档格式
pandoc 文档转换过程
下面为 pandoc 文档转换过程.
INPUT --reader--> AST --filter--> AST --writer--> OUTPUT
其中:
INPUT 是指源文件, 符合 markdown 语法格式或扩展的 pandoc-markdown
语法格式的文本文件.reader 是指源文件读取器. 调用 pandoc 时, reader 首先读取源文件,
然后进行语法分析, 最后将源文件转换为一种中间格式 AST.AST 是 pandoc 文档转换的中间格式, 表示为 “abstract syntax