带模板的pandoc包装器
panop的Python项目详细描述
工作流自动化包装器 Pandoc。
你有exciting.md想要一个带有lualatex的pdf,参考书目 支持?
panopy pdf exciting.md
想要一个自包含的HTML和引导程序吗?
panopy html exciting.md
安装
pip install panopy
目的
pandoc需要大量的命令行参数来生成 输出格式。典型的解决方案是使用makefile或yaml 指定pandoc应该做什么的配置,以及 前/后处理器,以清除pandoc的缺点。这可以得到 凌乱。
panopy的理念是将内容与工作流分离。内容 应该尽可能努力不确定其输出格式。 同样,文件系统应该将内容与所需的工具隔离开来 去处理它。而不是生成文件和文档嵌入输出 规范,panopy使用全局yaml模板指定 任何给定输入文件周围的工作流,以及 全部处理。所以你可以写一个标记文件并把它推到 无论你需要什么格式。
目前,panopy是一个简单的包装器,允许 一系列预处理命令、一个pandoc命令和一系列 后处理命令。我不能保证它的处理能力 一个输出中有多个输入文件。我也怀疑潘多克 足够快成为多个文件的在线处理器。
用法
panopy在中查找默认的yaml模板文件 ~/.pandoc/panopy.templates。目前没有办法改变这个 地点。示例文件可能如下所示:
__default__:s:S:r:markdown+yaml_metadata_blocklatex:o:%.texbibliography:~/Documents/library.bibfilter:-pandoc-citeprocpdf:__inherits__:latexo:%.pdflatex-engine:pdflatexfancypdf:__inherits__:pdf__pre__:-gpp -o %.gpp.md %.md__in__:%.gpp.md
__default__模板设置选项-s(独立),-S (smart)和所有文件的-r markdown+yaml_metadata_block。这个 latextemplate将默认输出格式更改为tex并添加 pandoc的书目处理过滤器。pdf模板继承 来自latex的所有设置,但将输出更改为pdf并设置 乳胶发动机。fancypdf模板更新pdf以进行预处理 输入文件 gpp和 更改输入文件以传递给pandoc。
现在只需在终端中找到输入文件并键入:
panopy fancypdf input.md
如果使用vim:
:!panopy fancypdf %
```
全景关键词
特殊模板:
- __default__:提供所有其他模板 继承自
模板中的关键字:
- %:自动替换为基本文件名:panopy pdf infile.md为 模板选项-o: %.pdf变为-o infile.pdf。逃离 \%
- __inherits__:从命名模板继承
- __in__:指定输入文件格式
- __pre__:指定在pandoc之前运行的命令
- __post__:指定在pandoc之后运行的命令
- __clear__:指定要清除的继承选项
类似
- panzer允许您指定 文件级的样式(yaml元数据),而panopy指定 命令行中的工作流。我赚了panopy,因为我想 保持我的山药清洁和某种工具不可知论。
- makefiles:参见例如Kieran Healy’s solution