A command-line CommonMark converter with flexible features, and a lua module that exposes these features.
$ luarocks install lcmark
lcmark does what the cmark program does,
with the following enhancements:
(1) Support for YAML metadata at the top of the document.
The metadata is parsed as CommonMark and returned in
a table (dictionary) that will set template variables.
(2) Support for templates, which add headers
and footers around the body of the document, and can
include variables defined in the metadata.
(3) Support for filters, which allow the document to be
transformed between parsing and rendering, making possible
a large number of customizations.