Skip to main content

Very lightweight CFFI-based Python bindings to cmark library (CommonMark implementation in C).

Project description

https://travis-ci.org/PavloKapyshin/paka.cmark.svg?branch=master

paka.cmark is a Python library that wraps subset of cmark C library (that is one of reference implementations of CommonMark).

Features

  • Python 2.7 and 3.5 are supported
  • PyPy (Python 2.7) is supported, as wrapping is made with CFFI
  • no need to install libcmark, it is bundled with paka.cmark (and sources of the former are regularly updated according to upstream)
  • supported output: HTML, XML, CommonMark, man, LaTeX
  • supported options: CMARK_OPT_SAFE, CMARK_OPT_NOBREAKS, CMARK_OPT_HARDBREAKS, CMARK_OPT_SOURCEPOS, CMARK_OPT_SMART
  • unlike libcmark—underlying C library—paka.cmark uses CMARK_OPT_NOBREAKS by default (breaks argument allows to control line break rendering)

Examples

>>> from paka import cmark

Render with CMARK_OPT_DEFAULT | CMARK_OPT_NOBREAKS:

>>> print(cmark.to_html(u"Hello,\n*World*!"))
<p>Hello, <em>World</em>!</p>

Render with CMARK_OPT_DEFAULT | CMARK_OPT_NOBREAKS | CMARK_OPT_SAFE:

>>> print(cmark.to_html(u"<p>nope</p>", safe=True))
<!-- raw HTML omitted -->

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*

Installation

Library is available on PyPI, you can use pip for installation:

$ pip install paka.cmark

Getting documentation

Build HTML docs:

$ tox -e docs

View built docs:

$ sensible-browser .tox/docs/tmp/docs_html/index.html

Running tests

$ tox

Getting coverage

Collect info:

$ tox -e coverage

View HTML report:

$ sensible-browser .tox/coverage/tmp/cov_html/index.html

Checking code style

Run code checkers:

$ tox -e checks

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
paka.cmark-1.41.0.tar.gz (102.4 kB) Copy SHA256 hash SHA256 Source None Sep 10, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page