用python编写scholdoc过滤器的实用程序

scholdocfilters的Python项目详细描述


用于编写scholdoc过滤器的python模块,派生 原装pandoc过滤器。scholdoc过滤器是读取json的管道 将stdin中的scholdoc ast序列化,将其转换为 好的,写给标准输出。它们可以与scholdoc一起使用(>;=0.1.3) 使用管道:

scholdoc -t json | ./caps.py | scholdoc -f json

或者使用--filter(或-F)命令行选项::

scholdoc --filter ./caps.py

scholdocfilters只是jgm的pandocfilters,具有元素类型 适应了稍富一点的scholdoc ast。更多用途 有关信息,请参阅John Macfarlane的原始Pandoc文档 在--filterthe tutorial on writing filters下。

要安装:

python setup.py install

scholdocfilters模块导出以下函数:

walk(x, action, format, meta)
遍历树,对每个对象应用操作。 返回已修改的树。
toJSONFilter(action)
将操作转换为读取json格式的筛选器 来自stdin的scholdoc文档,通过遍历树来转换它 并返回一个新的JSON格式的Scholdoc文档 到标准输出。参数是一个函数操作(键、值、格式, meta),其中key是scholdoc对象的类型(例如'str', “Para”),value是对象的内容(例如 “str”是“para”的内联元素列表,format是目标 输出格式(第一个命令行采用 参数(如果存在),并且meta是文档的元数据。如果 函数返回none,应用它的对象将保留 不变。如果返回一个对象,则该对象将被替换。如果 它返回一个列表,该列表将被拼接到 目标对象属于。(因此,返回空列表将删除 对象。)
stringify(x)
遍历树x,并返回连接的字符串内容, 去掉所有格式。
attributes(attrs)
返回从 词典attrs.

大多数用户只需要toJSONFilter。下面是一个简单的例子 用途:

#!/usr/bin/env python

"""
Scholdoc filter to convert all regular text to uppercase.
Code, link URLs, etc. are not affected.
"""

from scholdocfilters import toJSONFilter, Str

def caps(key, value, format, meta):
  if key == 'Str':
    return Str(value.upper())

if __name__ == "__main__":
  toJSONFilter(caps)

示例

注意:这些示例是为pandocfilters编写的。因此,一些例子 由于Scholdoc和Pandoc之间的AST不兼容而无法工作这个 会尽快补救的。

源存储库中的examples子目录包含 以下过滤器。这些过滤器应该提供一个有用的开始 开发自己的学校过滤器的要点。

  • abc.py

    pandoc筛选器处理类abc包含abc的代码块 图像符号。假设abcm2ps和imagemagick的convert 在路上。图像放在ABC图像目录中。

  • caps.py

    pandoc filter将所有常规文本转换为大写。代码,链接 URL等不受影响。

  • comments.py

    导致 <!-- BEGIN COMMENT --><!-- END COMMENT -->将被忽略。 注释行必须单独出现在行上,空白 周围的线条

  • deemph.py

    Pandoc过滤器,使强调文本显示在所有 帽子。

  • deflists.py

    Pandoc过滤器将定义列表转换为项目符号列表 强强调的定义术语(为了与标准兼容 降价)。

  • graphviz.py

    pandoc筛选器,将类为graphviz的代码块处理到 Graphviz生成的图像。

  • metavars.py

    pandoc过滤器允许将元数据字段插入 文件。%{fields}将被字段值替换,假设 它的类型是MetaInlinesMetaString

  • myemph.py

    导致使用自定义 宏\myemph{...},而不是乳胶中的\emph{...}。其他输出 格式不受影响。

  • theorem.py

    pandoc过滤器将带class="theorem"的div转换为乳胶定理 乳胶输出中的环境,以及HTML中的编号定理 输出。

  • tikz.py

    Pandoc过滤器将原始乳胶tikz环境处理成图像。 假设pdflatex在路径中,并且 包可用。还假设imagemagick的convert在 这条路。图像放在tikz-images目录中。

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

推荐PyPI第三方库


热门话题
主类中的java访问方法   Javalog4j不读取它的log4j。属性文件   雅加达ee通过Java(web应用程序)使用iText/任何其他使用现成数据的库生成PDF报告   lua使用java阅读TeamSpeak 3消息   将日期转换为BST java   java Spring引用ProxyFactoryBean中带有ref的protoyype bean   如何使java只打印一条带有if语句的消息   java如何通过JavaMail从雅虎服务器发送电子邮件?   使用百分比和BigDecimal的java测试   java如何对字符串数组排序   java验证器+MVC+REST::更新问题   java如何阻止eclipse如此频繁地挂起?   java从AsyncTask(片段内)访问TextView   IDEJava:制作可调整大小和拖动的组件