summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2016-01-17iterator: handle NULL root.John MacFarlane
2016-01-17Improved escaping in commonmark renderer.John MacFarlane
We try not to escape punctuation unless we absolutely have to. So, `)` and `.` are no longer escaped whenever they occur after digits; now they are only escaped if they are geuninely in a position where they'd cause a list item. This required a couple changes to render.c. - `renderer->begin_content` is only set to false AFTER a string of digits at the beginning of the line. (This is slightly unprincipled.) - We never break before a numeral (also slightly unprincipled).
2016-01-17render: initialize begin_content to true.John MacFarlane
2016-01-17Commonmark renderer: use HTML comment to separate list fromJohn MacFarlane
following list or code block. This has several advantages. First, the two blank lines breaks out of list syntax is still controversial in CommonMark. And it isn't used in other implementations. HTML comments will always work. Second, two blank lines breaks out of all lists; an HTML comment can be used to break out of just one level of nesting.
2016-01-17commonmark renderer: use 4-space indent for bullet lists.John MacFarlane
This makes the output compatible with more implementations.
2016-01-16Use 2 space + cr for line break in commonmark output.John MacFarlane
This is more portable. Closes #90.
2016-01-11cmark_node_replace - unlink, but don't free, oldnode.John MacFarlane
2016-01-11Fixed edge case with escaped parens in link destination.John MacFarlane
Closes #97. This was also checked against the #82 case with asan.
2016-01-11Removed unnecessary call to cmark_node_unlink in cmark_node_replace.John MacFarlane
2016-01-11cmark.h: moved typedefs for iterator into iterator section.John MacFarlane
This just moves some code around so it makes more sense to read, and in the man page.
2016-01-10Added cmark_node_replace(oldnode, newnode).John MacFarlane
API change. I've found in using the API that this is very often wanted.
2016-01-10html renderer - removed unnecessary check for 'fenced'.John MacFarlane
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'.
2016-01-08Fixed get_containing_block logic in src/commonmark.c.John MacFarlane
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.
2016-01-08Fixed string representations of CUSTOM_BLOCK, CUSTOM_INLINE.John MacFarlane
The old versions raw_inline and raw_block were being used, and this led to incorrect xml output.
2016-01-07Allow multiline setext header content, as per spec.John MacFarlane
2016-01-05Don't allow spaces in link destinations, even with pointy brackets.John MacFarlane
Conforms to latest change in spec.
2016-01-05Updated `scheme` scanner according to spec change.John MacFarlane
We no longer use a whitelist of valid schemes.
2015-12-31Allow NODE_ITEM inside NODE_CUSTOM_BLOCK.John MacFarlane
2015-12-30Allow both block and inline nodes as children of CUSTOM_BLOCK.John MacFarlane
Closes #96.
2015-12-28Defined aliases for old NODE_HTML and NODE_HTML_INLINEJohn MacFarlane
to ease backwards compatibility.
2015-12-28Don't allow space between link text and link labelJohn MacFarlane
in a reference link. (Spec change.)
2015-12-28Commonmark renderer: ensure that literal characters get escapedJohn MacFarlane
when they're at the beginning of a block, e.g. > \- foo
2015-12-28render: added begin_content field.John MacFarlane
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.
2015-12-28Reformat sources.John MacFarlane
2015-12-28Replaced hard-coded 4 with TAB_STOP.John MacFarlane
2015-12-28Rename NODE_HTML -> NODE_HTML_BLOCK, NODE_INLINE_HTML -> NODE_HTML_INLINE.John MacFarlane
API change. Sorry, but this is the time to break things, before 1.0 is released. This matches the recent changes to CommonMark.dtd.
2015-12-28Another small optimization in _scan_at.John MacFarlane
Check for offset greater than string length.
2015-12-28Small optimization in _scan_at.John MacFarlane
If the input is null, we can just return 0.
2015-12-28Use input not parser->curline to determine last line length.John MacFarlane
Ultimately I think we can get rid of parser->curline and avoid an unnecessary allocation per line.
2015-12-28Make LIB_INSTALL_DIR configurable.John MacFarlane
Closes #79. Thanks to Mathieu Bridon for the patch.
2015-12-27latex renderer - better handling of internal links.John MacFarlane
Now we render `[foo](#bar)` as `\protect\hyperlink{bar}{foo}`.
2015-12-24Removed obsolete TIMER macro.John MacFarlane
2015-12-23Added parens around expressions like 1 << 1.John MacFarlane
2015-12-23Added version number to XML namespace.John MacFarlane
1.0 - looking forward. We don't guarantee stability in this until 1.0 is actually released, however.
2015-12-22Adjusted scanner for link url.John MacFarlane
This fixes the heap buffer overflow reported in #82. Closes #82.
2015-12-22Regenerate scanners.c using re2c 0.15.3.John MacFarlane
2015-12-22Separate parsing and rendering opts in cmark.h.John MacFarlane
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. Closes #88.
2015-12-22Rename hrule -> thematic_break.John MacFarlane
CMARK_NODE_HRULE -> CMARK_NODE_THEMATIC_BREAK. However we've defined the former as the latter to keep backwards compatibility. See jgm/CommonMark 8fa94cb460f5e516b0e57adca33f50a669d51f6c
2015-12-22CMARK_NODE_HEADER -> CMARK_NODE_HEADING.John MacFarlane
Defined CMARK_NODE_HEADER to CMARK_NODE_HEADING to ease the transition.
2015-12-22Rename 'header' -> 'heading'.John MacFarlane
See jgm/CommonMark commit 0cdbcee4e840abd0ac7db93797b2b75ca4104314 Note that we have defined cmark_node_get_header_level = cmark_node_get_heading_level and cmark_node_set_header_level = camrk_node_set_heading_level for backwards compatibility in the API.
2015-12-22xml renderer - Added xmlns attribute to document node.John MacFarlane
See jgm/CommonMark#87.
2015-12-19Commonmark renderer: ensure html blocks surrounded by blanks.John MacFarlane
Otherwise we get failures of roundtrip tests.
2015-12-19Fixed bug in html renderer for custom nodes.John MacFarlane
2015-12-19Fixed S_can_contain to allow custom nodes to have children.John MacFarlane
2015-12-19Updated API docs; getters return empty strings if not set.John MacFarlane
rather than NULL, as previously documented...
2015-12-19Changed API for CUSTOM_BLOCK and CUSTOM_INLINE.John MacFarlane
Instead of using their `as.literal` content, we now give each custom node *two* literal fields, one to be printed on entering the node (before rendering the children, if any), the other on exiting (after rendering children). This gives us the flexibility to have custom nodes with children.
2015-12-19Rename RAW_BLOCK -> CUSTOM_BLOCK, RAW_INLINE -> CUSTOM_INLINE.John MacFarlane
2015-12-19Removed bench.h and timing calls in main.cJohn MacFarlane
2015-12-19Added RAW_BLOCK and RAW_INLINE node types.John MacFarlane
These are passed through verbatim by all writers, with no escaping. 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 RAW_BLOCK.
2015-12-19Use fully qualified versions of constants.John MacFarlane