paka.cmark is a Python library that wraps subset of cmark C library
(that is one of reference implementations of CommonMark).
- Python 2.7 and 3.6 are supported
- PyPy (Python 2.7) is supported, as wrapping is made with CFFI
- no need to install
libcmark, it is bundled withpaka.cmark(and sources of the former are regularly updated according to upstream) - supported output: HTML, XML, CommonMark, man, LaTeX
- supported options:
CMARK_OPT_UNSAFE,CMARK_OPT_NOBREAKS,CMARK_OPT_HARDBREAKS,CMARK_OPT_SOURCEPOS,CMARK_OPT_SMART - unlike
libcmark—underlying C library—paka.cmarkusesCMARK_OPT_NOBREAKSby default (breaksargument allows to control line break rendering) - safe HTML output is on by default (like in
libcmark)
>>> from paka import cmarkRender with CMARK_OPT_DEFAULT | CMARK_OPT_NOBREAKS:
>>> print(cmark.to_html(u"<p>nope</p>"))
<!-- raw HTML omitted -->Render with CMARK_OPT_DEFAULT | CMARK_OPT_NOBREAKS | CMARK_OPT_UNSAFE:
>>> print(cmark.to_html(u"Hello,\n*World*!", safe=False))
<p>Hello, <em>World</em>!</p>Render with CMARK_OPT_DEFAULT:
>>> print(cmark.to_html(u"Hello,\n*World*!", breaks=True))
<p>Hello,
<em>World</em>!</p>Render with CMARK_OPT_DEFAULT | CMARK_OPT_HARDBREAKS:
>>> print(cmark.to_html(u"Hello,\n*World*!", breaks="hard"))
<p>Hello,<br />
<em>World</em>!</p>Render CommonMark with CMARK_OPT_DEFAULT | CMARK_OPT_NOBREAKS:
>>> print(cmark.to_commonmark(u"_Hello_"))
*Hello*Library is available on PyPI,
you can use pip for installation:
$ pip install paka.cmarkBuild HTML docs:
$ tox -e docsView built docs:
$ sensible-browser .tox/docs/tmp/docs_html/index.html$ toxCollect info:
$ tox -e coverageView HTML report:
$ sensible-browser .tox/coverage/tmp/cov_html/index.htmlRun code checkers:
$ tox -e checks