summaryrefslogtreecommitdiff
path: root/changelog.txt
diff options
context:
space:
mode:
Diffstat (limited to 'changelog.txt')
-rw-r--r--changelog.txt139
1 files changed, 139 insertions, 0 deletions
diff --git a/changelog.txt b/changelog.txt
index 5c55f35..1deee77 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,3 +1,142 @@
+[0.24.1]
+
+ * Commonmark renderer:
+ + Use HTML comment, not two blank lines, to separate a list
+ item from a following code block or list. This makes the
+ output more portable, since the "two blank lines" rule is
+ unique to CommonMark. Also, it allows us to break out of
+ a sublist without breaking out of all levels of nesting.
+ + `is_autolink` - handle case where link has no children,
+ which previously caused a segfault.
+ + Use 4-space indent for bullet lists, for increased portability.
+ + Use 2-space + newline for line break for increased portability (#90).
+ + Improved punctuation escaping. Previously all `)` and
+ `.` characters after digits were escaped; now they are
+ only escaped if they are genuinely in a position where
+ they'd cause a list item. This is achieved by changes in
+ `render.c`: (a) `renderer->begin_content` is only set to
+ false after a string of digits at the beginning of the
+ line, and (b) we never break a line before a digit.
+ Also, `begin_content` is properly initialized to true.
+ * Handle NULL root in `consolidate_text_nodes`.
+
+[0.24.0]
+
+ * [API change] Added `cmark_node_replace(oldnode, newnode)`.
+ * Updated spec.txt to 0.24.
+ * Fixed edge case with escaped parens in link destination (#97).
+ This was also checked against the #82 case with asan.
+ * Removed unnecessary check for `fenced` in `cmark_render_html`.
+ It's sufficient to check that the info string is empty.
+ Indeed, those who use the API may well create a code block
+ with an info string without explicitly setting `fenced`.
+ * Updated format of `test/smart_punct.txt`.
+ * Updated `test/spec.txt`, `test/smart_punct.txt`, and
+ `spec_tests.py` to new format.
+ * Fixed `get_containing_block` logic in `src/commonmark.c`.
+ This did not allow for the possibility that a node might have no
+ containing block, causing the commonmark renderer to segfault if
+ passed an inline node with no block parent.
+ * Fixed string representations of `CUSTOM_BLOCK`,
+ `CUSTOM_INLINE`. The old versions `raw_inline` and
+ `raw_block` were being used, and this led to incorrect xml output.
+ * Use default opts in python sample wrapper.
+ * Allow multiline setext header content, as per spec.
+ * Don't allow spaces in link destinations, even with pointy brackets.
+ Conforms to latest change in spec.
+ * Updated `scheme` scanner according to spec change. We no longer use
+ a whitelist of valid schemes.
+ * Allow any kind of nodes as children of `CUSTOM_BLOCK` (#96).
+ * `cmark.h`: moved typedefs for iterator into iterator section.
+ This just moves some code around so it makes more sense
+ to read, and in the man page.
+ * Fixed `make_man_page.py` so it includes typedefs again.
+
+[0.23.0]
+
+ * [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 (jgm/CommonMark#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 (jgm/CommonMark#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.
+
[0.22.0]
* Removed `pre` from blocktags scanner. `pre` is handled separately