diff options
author | John MacFarlane <jgm@berkeley.edu> | 2015-12-19 21:15:43 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2015-12-19 21:18:02 -0800 |
commit | b0a6c472f881a3e0a7b61722fb6fddbcc39e5139 (patch) | |
tree | 511cc8147fef48a302128eae05af1ff37c21d092 /src/html.c | |
parent | 774ac507fc7e86c6fe0d7b16a3c1abaed4849fab (diff) |
Changed API for CUSTOM_BLOCK and CUSTOM_INLINE.
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.
Diffstat (limited to 'src/html.c')
-rw-r--r-- | src/html.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -178,7 +178,10 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type, case CMARK_NODE_CUSTOM_BLOCK: cr(html); - cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len); + cmark_strbuf_put( + html, (const unsigned char *)(entering ? cmark_node_get_on_enter(node) + : cmark_node_get_on_exit(node)), + node->as.literal.len); cr(html); break; @@ -240,7 +243,10 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type, break; case CMARK_NODE_CUSTOM_INLINE: - cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len); + cmark_strbuf_put( + html, (const unsigned char *)(entering ? cmark_node_get_on_enter(node) + : cmark_node_get_on_exit(node)), + node->as.literal.len); break; case CMARK_NODE_STRONG: |