带模板的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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java将多个线程中的函数放入单个队列   数组在Java中,如何在不改变整数顺序的情况下找到整数组的顺序?   java控制器属于表示层?   java Apache Ivy和本地Maven repo如何处理使用Maven 3构建的快照   Java可与泛型类型进行比较   java这个表达式在泛型中是什么意思   JavaEclipse和TeamCity插件   java检测构造函数中的final是否为空   java如何在StanfordCoreNLP管道中同时使用词汇化和依赖性解析器?   java在AntUnit控制台日志中显示完整异常堆栈跟踪   lambda如何与Java 8供应商建立连锁关系   如何让GRPC的重试机制在Kubernetes集群中使用grpcjava工作?   如何使用openjdk:7 Docker映像和Gradle包装器避免“EC参数错误”?   java将集合映射扩展为一维映射新的“无法推断函数接口类型”