summaryrefslogblamecommitdiffstats
path: root/doc/cmark/DETAILS
blob: 241357fc1360b3007c6970f0f81637695845da24 (plain) (tree)
1
2
3
4
5
                      
                       

                                                                      
                                                                                                                                                        












































                                                                                     
           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