- [API change] Added
CUSTOM_BLOCK
andCUSTOM_INLINE
node types.
They are never generated by the parser, and do not correspond
to CommonMark elements. They are designed to be inserted by
filters that postprocess the AST. For example, a filter might
convert specially marked code blocks to svg diagrams in HTML
and tikz diagrams in LaTeX, passing these through to the renderer
as aCUSTOM_BLOCK
. These nodes can have children, but they
also have literal text to be printed by the renderer "on enter"
and "on exit." Addedcmark_node_get_on_enter
,
cmark_node_set_on_enter
,cmark_node_get_on_exit
,
cmark_node_set_on_exit
to API. - [API change] Rename
NODE_HTML
->NODE_HTML_BLOCK
,
NODE_INLINE_HTML
->NODE_HTML_INLINE
. Define aliases
so the old names still work, for backwards compatibility. - [API change] Rename
CMARK_NODE_HEADER
->CMARK_NODE_HEADING
.
Note that for backwards compatibility, we have defined aliases:
CMARK_NODE_HEADER
=CMARK_NODE_HEADING
,
cmark_node_get_header_level
=cmark_node_get_heading_level
, and
cmark_node_set_header_level
=cmark_node_set_heading_level
. - [API change] Rename
CMARK_NODE_HRULE
->CMARK_NODE_THEMATIC_BREAK
.
Defined the former as the latter for backwards compatibility. - Don't allow space between link text and link label in a reference link
(spec change). - Separate parsing and rendering opts in
cmark.h
(#88).
This change also changes some of these constants' numerical values,
but nothing should change in the API if you use the constants
themselves. It should now be clear in the man page which
options affect parsing and which affect rendering. - xml renderer - Added xmlns attribute to document node (commonmark/commonmark-spec#87).
- Commonmark renderer: ensure html blocks surrounded by blanks.
Otherwise we get failures of roundtrip tests. - Commonmark renderer: ensure that literal characters get escaped
when they're at the beginning of a block, e.g.> \- foo
. - LaTeX renderer - better handling of internal links.
Now we render[foo](#bar)
as\protect\hyperlink{bar}{foo}
. - Check for NULL pointer in _scan_at (#81).
Makefile.nmake
: be more robust when cmake is missing. Previously,
when cmake was missing, the build dir would be created anyway, and
subsequent attempts (even with cmake) would fail, because cmake would
not be run. Depending onbuild/CMakeFiles
is more robust -- this won't
be created unless cmake is run. Partially addresses #85.- Fixed DOCTYPE in xml output.
- commonmark.c: fix
size_t
toint
. This fixes an MSVC warning
"conversion from 'size_t' to 'int', possible loss of data" (Kevin Wojniak). - Correct string length in
cmark_parse_document
example (Lee Jeffery). - Fix non-ASCII end-of-line character check (andyuhnak).
- Fix "declaration shadows a local variable" (Kevin Wojniak).
- Install static library (commonmark/commonmark-spec#381).
- Fix warnings about dropping const qualifier (Kevin Wojniak).
- Use full (unabbreviated) versions of constants (
CMARK_...
). - Removed outdated targets from Makefile.
- Removed need for sudo in
make bench
. - Improved benchmark. Use longer test, since
time
has limited resolution. - Removed
bench.h
and timing calls inmain.c
. - Updated API docs; getters return empty strings if not set
rather than NULL, as previously documented. - Added api_tests for custom nodes.
- Made roundtrip test part of the test suite run by cmake.
- Regenerate
scanners.c
using re2c 0.15.3. - Adjusted scanner for link url. This fixes a heap buffer overflow (#82).
- Added version number (1.0) to XML namespace. We don't guarantee
stability in this until 1.0 is actually released, however. - Removed obsolete
TIMER
macro. - Make
LIB_INSTALL_DIR
configurable (Mathieu Bridon, #79). - Removed out-of-date luajit wrapper.
- Use
input
, notparser->curline
to determine last line length. - Small optimizations in
_scan_at
. - Replaced hard-coded 4 with
TAB_STOP
. - Have
make format
reformat api tests as well. - Added api tests for man, latex, commonmark, and xml renderers (#51).
- render.c: added
begin_content
field. This is likebegin_line
except
that it doesn't trigger production of the prefix. So it can be set
after an initial prefix (say>
) is printed by the renderer, and
consulted in determining whether to escape content that has a special
meaning at the beginning of a line. Used in the commonmark renderer. - Python 3.5 compatibility: don't require HTMLParseError (Zhiming Wang).
HTMLParseError was removed in Python 3.5. Since it could never be thrown
in Python 3.5+, we simply define a placeholder when HTMLParseError
cannot be imported. - Set
convert_charrefs=False
innormalize.py
(#83). This defeats the
new default as of python 3.5, and allows the script to work with python
3.5.