diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cmark.h | 6 | ||||
-rw-r--r-- | src/commonmark.c | 2 | ||||
-rw-r--r-- | src/html.c | 10 | ||||
-rw-r--r-- | src/latex.c | 10 | ||||
-rw-r--r-- | src/man.c | 10 | ||||
-rw-r--r-- | src/node.c | 4 | ||||
-rw-r--r-- | src/xml.c | 2 |
7 files changed, 44 insertions, 0 deletions
diff --git a/src/cmark.h b/src/cmark.h index 79bfbc5..612440f 100644 --- a/src/cmark.h +++ b/src/cmark.h @@ -40,6 +40,7 @@ typedef enum { CMARK_NODE_ITEM, CMARK_NODE_CODE_BLOCK, CMARK_NODE_HTML, + CMARK_NODE_RAW_BLOCK, CMARK_NODE_PARAGRAPH, CMARK_NODE_HEADER, CMARK_NODE_HRULE, @@ -53,6 +54,7 @@ typedef enum { CMARK_NODE_LINEBREAK, CMARK_NODE_CODE, CMARK_NODE_INLINE_HTML, + CMARK_NODE_RAW_INLINE, CMARK_NODE_EMPH, CMARK_NODE_STRONG, CMARK_NODE_LINK, @@ -158,6 +160,7 @@ CMARK_EXPORT cmark_node *cmark_node_last_child(cmark_node *node); * of type: * * * CMARK_NODE_HTML + * * CMARK_NODE_RAW_BLOCK * * CMARK_NODE_HRULE * * CMARK_NODE_CODE_BLOCK * * CMARK_NODE_TEXT @@ -165,6 +168,7 @@ CMARK_EXPORT cmark_node *cmark_node_last_child(cmark_node *node); * * CMARK_NODE_LINEBREAK * * CMARK_NODE_CODE * * CMARK_NODE_INLINE_HTML + * * CMARK_NODE_RAW_INLINE * * Nodes must only be modified after an `EXIT` event, or an `ENTER` event for * leaf nodes. @@ -514,6 +518,7 @@ const char *cmark_version_string(); #define NODE_ITEM CMARK_NODE_ITEM #define NODE_CODE_BLOCK CMARK_NODE_CODE_BLOCK #define NODE_HTML CMARK_NODE_HTML +#define NODE_RAW_BLOCK CMARK_NODE_RAW_BLOCK #define NODE_PARAGRAPH CMARK_NODE_PARAGRAPH #define NODE_HEADER CMARK_NODE_HEADER #define NODE_HRULE CMARK_NODE_HRULE @@ -522,6 +527,7 @@ const char *cmark_version_string(); #define NODE_LINEBREAK CMARK_NODE_LINEBREAK #define NODE_CODE CMARK_NODE_CODE #define NODE_INLINE_HTML CMARK_NODE_INLINE_HTML +#define NODE_RAW_INLINE CMARK_NODE_RAW_INLINE #define NODE_EMPH CMARK_NODE_EMPH #define NODE_STRONG CMARK_NODE_STRONG #define NODE_LINK CMARK_NODE_LINK diff --git a/src/commonmark.c b/src/commonmark.c index cbf99c1..32b09a1 100644 --- a/src/commonmark.c +++ b/src/commonmark.c @@ -280,6 +280,7 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node, break; case CMARK_NODE_HTML: + case CMARK_NODE_RAW_BLOCK: BLANKLINE(); OUT(cmark_node_get_literal(node), false, LITERAL); BLANKLINE(); @@ -336,6 +337,7 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node, break; case CMARK_NODE_INLINE_HTML: + case CMARK_NODE_RAW_INLINE: OUT(cmark_node_get_literal(node), false, LITERAL); break; @@ -176,6 +176,12 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type, cr(html); break; + case CMARK_NODE_RAW_BLOCK: + cr(html); + cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len); + cr(html); + break; + case CMARK_NODE_HRULE: cr(html); cmark_strbuf_puts(html, "<hr"); @@ -233,6 +239,10 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type, } break; + case CMARK_NODE_RAW_INLINE: + cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len); + break; + case CMARK_NODE_STRONG: if (entering) { cmark_strbuf_puts(html, "<strong>"); diff --git a/src/latex.c b/src/latex.c index 146062e..e7cb9f7 100644 --- a/src/latex.c +++ b/src/latex.c @@ -303,6 +303,12 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node, case CMARK_NODE_HTML: break; + case CMARK_NODE_RAW_BLOCK: + CR(); + OUT(cmark_node_get_literal(node), false, LITERAL); + CR(); + break; + case CMARK_NODE_HRULE: BLANKLINE(); LIT("\\begin{center}\\rule{0.5\\linewidth}{\\linethickness}\\end{center}"); @@ -341,6 +347,10 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node, case CMARK_NODE_INLINE_HTML: break; + case CMARK_NODE_RAW_INLINE: + OUT(cmark_node_get_literal(node), false, LITERAL); + break; + case CMARK_NODE_STRONG: if (entering) { LIT("\\textbf{"); @@ -142,6 +142,12 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node, case CMARK_NODE_HTML: break; + case CMARK_NODE_RAW_BLOCK: + CR(); + OUT(cmark_node_get_literal(node), false, LITERAL); + CR(); + break; + case CMARK_NODE_HRULE: CR(); LIT(".PP\n * * * * *"); @@ -190,6 +196,10 @@ static int S_render_node(cmark_renderer *renderer, cmark_node *node, case CMARK_NODE_INLINE_HTML: break; + case CMARK_NODE_RAW_INLINE: + OUT(cmark_node_get_literal(node), false, LITERAL); + break; + case CMARK_NODE_STRONG: if (entering) { LIT("\\f[B]"); @@ -161,6 +161,8 @@ const char *cmark_node_get_type_string(cmark_node *node) { return "code_block"; case CMARK_NODE_HTML: return "html"; + case CMARK_NODE_RAW_BLOCK: + return "raw_block"; case CMARK_NODE_PARAGRAPH: return "paragraph"; case CMARK_NODE_HEADER: @@ -177,6 +179,8 @@ const char *cmark_node_get_type_string(cmark_node *node) { return "code"; case CMARK_NODE_INLINE_HTML: return "inline_html"; + case CMARK_NODE_RAW_INLINE: + return "raw_inline"; case CMARK_NODE_EMPH: return "emph"; case CMARK_NODE_STRONG: @@ -53,7 +53,9 @@ static int S_render_node(cmark_node *node, cmark_event_type ev_type, case CMARK_NODE_TEXT: case CMARK_NODE_CODE: case CMARK_NODE_HTML: + case CMARK_NODE_RAW_BLOCK: case CMARK_NODE_INLINE_HTML: + case CMARK_NODE_RAW_INLINE: cmark_strbuf_puts(xml, ">"); escape_xml(xml, node->as.literal.data, node->as.literal.len); cmark_strbuf_puts(xml, "</"); |