commonmark标记规范的python解析器

commonmark的Python项目详细描述


py是jgm的纯python端口 commonmark.js,一个 标记分析器和渲染器 CommonMark规范,仅使用本机 模块。一旦这个项目和commonmark规范 稳定我们将发布第一个1.0版本并尝试跟上 以commonmark.js中的更改为日期。

py使用python版本根据commonmark规范进行测试 2.7、3.4、3.5、3.6和3.7。

当前版本:0.9.0

Pypi LinkBuild StatusDocumentation Status

安装

$ pip install commonmark

用法

>>> import commonmark
>>> commonmark.commonmark('*hello!*')
'<p><em>hello!</em></p>\n'

或者,如果没有语法糖:

importcommonmarkparser=commonmark.Parser()ast=parser.parse("Hello *World*")renderer=commonmark.HtmlRenderer()html=renderer.render(ast)print(html)# <p>Hello <em>World</em><p/># inspecting the abstract syntax treejson=commonmark.dumpJSON(ast)commonmark.dumpAST(ast)# pretty print generated AST structure

还有一个cli:

$ cmark README.md -o README.html
$ cmark README.md -o README.json -aj # output AST as JSON
$ cmark README.md -a # pretty print generated AST structure
$ cmark -h
usage: cmark [-h] [-o [O]] [-a] [-aj] [infile]

Process Markdown according to the CommonMark specification.

positional arguments:
  infile      Input Markdown file to parse, defaults to stdin

optional arguments:
  -h, --help  show this help message and exit
  -o [O]      Output HTML/JSON file, defaults to stdout
  -a          Print formatted AST
  -aj         Output JSON AST

贡献

如果您想通过 拉请求请做!如果您发现 当前测试套件未捕获的分析器/呈现程序请打开 新的一期,我也建议你把 commonmark.js项目 请求将测试添加到现有测试套件中。

测试

要使用commonmark.py,您需要能够运行测试套件 确保您的更改不会破坏任何内容。要运行测试,您可以 像这样:

$ pyvenv venv
$ ./venv/bin/python setup.py develop test

测试脚本commonmark/tests/run_spec_tests.py实际上是一个devtool。作为 除了运行spec.txt中嵌入的所有测试之外,它还允许您 要使用-t参数运行特定测试,请提供信息 关于使用-p通过的测试,按测试类别通过的百分比 使用-s,并使用-i交互输入markdown(在 交互模式通过输入一行end,结束一个块 使用quit也可以退出。-d可用于打印调用 追踪。

$ ./venv/bin/python commonmark/tests/run_spec_tests.py -h
usage: run_spec_tests.py [-h] [-t T] [-p] [-f] [-i] [-d] [-np] [-s]

script to run the CommonMark specification tests against the commonmark.py
parser.

optional arguments:
  -h, --help  show this help message and exit
  -t T        Single test to run or comma separated list of tests (-t 10 or -t 10,11,12,13)
  -p          Print passed test information
  -f          Print failed tests (during -np...)
  -i          Interactive Markdown input mode
  -d          Debug, trace calls
  -np         Only print section header, tick, or cross
  -s          Print percent of tests passed by category

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

推荐PyPI第三方库


热门话题
java如何从thymeleaf表单保存地址对象和用户对象的列表?   序列化java。时间使用Jackson将localdate转换为json   java删除LinearLayout和子级之间的空间   具有内存大小限制的Java队列   java尝试在freemarker中创建min(a,b)函数失败   askQuestion()方法中的Java逻辑问题   在Java客户端中接受服务器的自签名ssl证书   java如何正确更新字符串数组?   java如何使多个方法调用充当一个事务性工作单元   swing如何创建可滚动的Java框?   java如何使用SearchView在多个单词之间搜索?   初始化启动层java时出错。lang.module。FindException:模块javafx。找不到图形   java struts对隐藏字段的转义形式验证   用于构建FEM 3D解算器的java JOGL与JAVA3D   java mvn安装忽略hibernate映射文件   在C++和java之间使用JNI通信时,我在哪里保存“这个”?   java无法使用计时器重新绘制窗口   java我遇到一个找不到符号的错误,我无法解决   IntelliJIdea生成实体时java面临的问题   java在动态文本的末尾添加三个点