Skip to content

cmark 0.23

Compare
Choose a tag to compare
@jgm jgm released this 29 Dec 07:21
· 735 commits to master since this release
  • [API change] Added CUSTOM_BLOCK and CUSTOM_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 a CUSTOM_BLOCK. These nodes can have children, but they
    also have literal text to be printed by the renderer "on enter"
    and "on exit." Added cmark_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 on build/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 to int. 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 in main.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, not parser->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 like begin_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 in normalize.py (#83). This defeats the
    new default as of python 3.5, and allows the script to work with python
    3.5.