summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md49
1 files changed, 34 insertions, 15 deletions
diff --git a/README.md b/README.md
index 96661ab..358f63f 100644
--- a/README.md
+++ b/README.md
@@ -1,39 +1,58 @@
CommonMark
==========
-CommonMark is a [specification of Markdown syntax][the spec],
-together with BSD3-licensed implementations (`stmd`) in C and JavaScript.
+CommonMark is a rationalized version of Markdown syntax,
+with a [spec][the spec] and BSD3-licensed reference
+implementations in C and JavaScript.
The implementations
-------------------
The C implementation provides both a library and a standalone program
-`stmd` that converts Markdown to HTML. It is written in standard C99
+`cmark` that converts CommonMark to HTML. It is written in standard C99
and has no library dependencies. (However, if you check it out from the
repository, you'll need [`re2c`](http://re2c.org) to generate
`scanners.c` from `scanners.re`. This is only a build dependency for
developers, since `scanners.c` can be provided in a released source
tarball.)
- Usage: stmd [FILE*]
+The parser is very fast, on par with
+[sundown](https://github.com/vmg/sundown). Some benchmarks:
+
+|Implementation | Time to parse a 500K book |
+|---------------|---------------------------|
+| Markdown.pl | 3.99s |
+| discount | 0.089s |
+| sundown | 0.015s |
+| cmark | 0.019s |
+
+ Usage: cmark [FILE*]
Options: --help, -h Print usage information
--ast Print AST instead of HTML
--version Print version
The JavaScript implementation is a single JavaScript file, with
-no dependencies, that can be linked to in an HTML page. A standalone
-version (using `node.js`) is also provided (`js/markdown`), and there is
-a "dingus" for playing with it interactively. (`make dingus` will start
-this.)
-
-[Try it now!](http://jgm.github.io/stmd/js/)
-
-[The spec] contains over 400 embedded examples which serve as conformance
-tests. To run the tests for `stmd`, do `make test`. To run them for
+no dependencies, that can be linked to in an HTML page. (To build,
+it, do `make js/commonmark.js`---this requires `browserify`, which you
+can get using `npm install -g browserify`.) A command-line
+version (using `node.js`) is also provided (`js/bin/commonmark`), and
+there is a "dingus" for playing with it interactively. (`make dingus`
+will start this.)
+
+[Try it now!](http://jgm.github.io/CommonMark/js/)
+
+**Note:** neither implementation attempts to sanitize link attributes or
+raw HTML. If you use these libraries in applications that accept
+untrusted user input, you must run the output through an HTML
+sanitizer to protect against
+[XSS attacks](http://en.wikipedia.org/wiki/Cross-site_scripting).
+
+[The spec] contains over 450 embedded examples which serve as conformance
+tests. To run the tests for `cmark`, do `make test`. To run them for
another Markdown program, say `myprog`, do `make test PROG=myprog`. To
-run the tests for `stmd.js`, do `make testjs`.
+run the tests for `commonmark.js`, do `make testjs`.
-[The spec]: http://jgm.github.io/stmd/spec.html
+[The spec]: http://jgm.github.io/CommonMark/spec.html
The spec
--------