Skip to content

dbuenzli/cmarkit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cmarkit — CommonMark parser and renderer for OCaml

%%VERSION%%

Cmarkit parses the CommonMark specification. It provides:

  • A CommonMark parser for UTF-8 encoded documents. Link label resolution can be customized and a non-strict parsing mode can be activated to add: strikethrough, LaTeX math, footnotes, task items and tables.

  • An extensible abstract syntax tree for CommonMark documents with source location tracking and best-effort source layout preservation.

  • Abstract syntax tree mapper and folder abstractions for quick and concise tree transformations.

  • Extensible renderers for HTML, LaTeX and CommonMark with source layout preservation.

Cmarkit is distributed under the ISC license. It has no dependencies.

Homepage: https://erratique.ch/software/cmarkit

Installation

cmarkit can be installed with opam:

opam install cmarkit
opam install cmarkit cmdliner # For the cmarkit tool

If you don't use opam consult the opam file for build instructions.

Documentation

The documentation can be consulted online or via odig doc cmarkit.

Questions are welcome but better asked on the OCaml forum than on the issue tracker.

Sample programs

The cmarkit tool parses and renders CommonMark files in various ways.

See also bench.ml and the doc examples.

Acknowledgements

A grant from the OCaml Software Foundation helped to bring the first public release of cmarkit.

The cmarkit implementation benefited from the work of John MacFarlane (spec, cmark) and Martin Mitáš (md4c).