Spec changes
- Rewrote beginning of Entities section, clarifying that only entities not in code blocks or spans are decoded.
- Removed defective Example 449 (#284).
- Fixed typo (#283).
- Added intended two-space hard-breaks in Examples 521, 523.
- Clarified that brackets in general don't take precedence over emph (#258).
- Clarified that final newline is removed from paragraph content (#176).
- Talk of "info string" rather than "attributes" for code blocks (#262).
- Clarified precedence of code spans, HTML tags, autolinks (#259).
- Fixed a number of internal links and duplicate references in the spec.
- Linkify "info string" in spec.
- Use shortcut reference links when possible in spec.txt.
- cmark itself is now used to build spec.html, rather than pandoc.
- Use shortcut reference links when possible in spec.txt. This relies on the new
spec2md.py
behavior of creating references for all internal anchors. - Moved some examples from block to inline HTML section.
- Added examples of non-comments (#264).
- Changed rule for comments to conform to HTML5 spec.
- Made clear that any sequence of characters is a valid document (#266).
- Changed wording: "is preferred" -> "takes precedence."
- Regularized spelling of "non-space character" and added links (#260).
- Use four spaces rather than five to show "four spaces is too much" (#261).
cmark/libcmark
- Added xml renderer (XML representation of the CommonMark AST, which is described in
CommonMark.dtd
). - Reduced size of gperf entity table (Nick Wellnhofer).
- Reworked iterators to allow deletion of nodes during iteration (Nick Wellnhofer).
- Optimized
S_is_leaf
. - Added
cmark_iter_reset
to iterator API. - Added
cmark_consolidate_text_nodes
to API to combine adjacent text nodes. - Added
CMARK_OPT_NORMALIZE
to options (this combines adjacent text nodes). - Added
--normalize
option to command-line program. - Improved regex for HTML comments in inline parsing.
- Python is no longer required for a basic build from the repository.
commonmark.js
- Improved regex for HTML comments (#263).
- Fixed CDATA regex (#267).
- Use linked list instead of arrays in AST: the same doubly linked node structure as cmark uses. This simplifies some code and eliminates the need for recursive algorithms, so we can render deeply-nested structures without stack overflows.
- Use
children
instead oflabel
(in Image and Link),inline_content
(in Paragraph), andc
(in Emph and Strong). - Renamed the
c
property toliteral
to matchlibcmark
. - Use
literal
rather thanstring_content
property for code blocks, HTML.string_content
is reserved for raw string content that has yet to be parsed as inlines. - Improved end lines (#276).
- Added a node walker, for easy AST traversal (see
node.js
). - Regularized position information into a
sourcepos
property. Added end column information. - Renamed
html-renderer.js
tohtml.js
. - Replace NUL characters with U+FFFD, as per spec.
- Optimized code, resulting in significant performance gains. (We've gone from being twice as fast as showdown.js to being three times as fast, on par with marked.)
- Made
tight
a property oflist_data
rather thanNode
. - Added options to renderer, parser objections.
- Added a
--sourcepos
command line option tojs/bin/commonmark
. - HTML renderer now throws an error on unknown tag type (which indicates a programming error).
- Removed
ansi.js
code from the source tree. The test suite now uses its own mini ansi colors implementation. - Added
--time
option tojs/bin/commonmark
. - Added an XML renderer (XML representation of the AST, matching
Commonmark.dtd
). - Changed
url
property todestination
to matchcmark
and spec. - Added
js/common.js
to hold some common code, like string unescaping and URI normalization. - Use
decodeURI
instead ofunescape
. - Added some "pathological" test cases to test suite.