SPELL=cmark VERSION=0.29.0 SOURCE="$SPELL-$VERSION.tar.gz" SOURCE_URL[0]=https://github.com/jgm/$SPELL/archive/$VERSION.tar.gz SOURCE_HASH=sha512:06eb110cfd90c9e980c022b7588e28864d15a4da5d07d61ad4b27c6de47367492b9e58e9434e62b07517aa6dc484f17af13916808be3188f38c37d20cbf33112 SOURCE_DIRECTORY="${BUILD_DIRECTORY}/${SPELL}-$VERSION" WEB_SITE="http://commonmark.org/" LICENSE[0]="BSD2 MIT" ENTERED=20150626 KEYWORDS="" SHORT="A strongly specified, highly compatible implementation of Markdown" cat << EOF cmark is the C reference implementation of CommonMark, a rationalized version of Markdown syntax with a spec. It provides a shared library (libcmark) with functions for parsing CommonMark documents to an abstract syntax tree (AST), manipulating the AST, and rendering the document to HTML, groff man, CommonMark, or an XML representation of the AST. It also provides a command-line program (cmark) for parsing and rendering CommonMark documents. Advantages of this library: * Portable. The library and program are written in standard C99 and have no external dependencies. They have been tested with MSVC, gcc, tcc, and clang. * Fast. cmark can render a Markdown version of War and Peace in the blink of an eye (127 milliseconds on a ten year old laptop, vs. 100-400 milliseconds for an eye blink). In our benchmarks, cmark is 10,000 times faster than the original Markdown.pl, and on par with the very fastest available Markdown processors. * Accurate. The library passes all CommonMark conformance tests. * Standardized. The library can be expected to parse CommonMark the same way as any other conforming parser. So, for example, you can use commonmark.js on the client to preview content that will be rendered on the server using cmark. * Robust. The library has been extensively fuzz-tested using american fuzzy lop. The test suite includes pathological cases that bring many other Markdown parsers to a crawl (for example, thousands-deep nested bracketed text or block quotes). * Flexible. CommonMark input is parsed to an AST which can be manipulated programatically prior to rendering. * Multiple renderers. Output in HTML, groff man, CommonMark, and a custom XML format is supported. And it is easy to write new renderers to support other formats. EOF