From 9dd7a6510aa63506b4ea13b40f44b3094d8f637a Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Sun, 14 Dec 2014 14:08:53 -0800 Subject: man writer: use chunk literal in code blocks. --- man/man3/cmark.3 | 23 +++++++++++++++++++++++ src/man.c | 5 ++--- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/man/man3/cmark.3 b/man/man3/cmark.3 index cdfcfa5..0a281ed 100644 --- a/man/man3/cmark.3 +++ b/man/man3/cmark.3 @@ -102,6 +102,18 @@ way, for example, turning all level\-3 headers into regular paragraphs. .IP .nf \f[C] +void +usage_example(cmark_node *root) { + cmark_event_type ev_type; + cmark_iter *iter = cmark_iter_new(root); + + while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) { + cmark_node *cur = cmark_iter_get_node(iter); + // Do something with `cur` and `ev_type` + } + + cmark_iter_free(iter); +} \f[] .fi @@ -302,6 +314,7 @@ Simple interface: .IP .nf \f[C] +cmark_node *document = cmark_parse_document("Hello *world*", 12); \f[] .fi .PP @@ -309,6 +322,16 @@ Streaming interface: .IP .nf \f[C] +cmark_parser *parser = cmark_parser_new(); +FILE *fp = fopen("myfile.md", "r"); +while ((bytes = fread(buffer, 1, sizeof(buffer), fp)) > 0) { + cmark_parser_feed(parser, buffer, bytes); + if (bytes < sizeof(buffer)) { + break; + } +} +document = cmark_parser_finish(parser); +cmark_parser_free(parser); \f[] .fi diff --git a/src/man.c b/src/man.c index 31247cb..3f63d13 100644 --- a/src/man.c +++ b/src/man.c @@ -59,7 +59,6 @@ S_render_node(cmark_node *node, cmark_event_type ev_type, void *vstate) switch(node->type) { case CMARK_NODE_TEXT: case CMARK_NODE_CODE: - case CMARK_NODE_INLINE_HTML: escape_man(man, node->as.literal.data, node->as.literal.len); break; @@ -131,8 +130,8 @@ S_render_node(cmark_node *node, cmark_event_type ev_type, void *vstate) case CMARK_NODE_CODE_BLOCK: cr(man); strbuf_puts(man, ".IP\n.nf\n\\f[C]\n"); - escape_man(man, node->string_content.ptr, - node->string_content.size); + escape_man(man, node->as.literal.data, + node->as.literal.len); cr(man); strbuf_puts(man, "\\f[]\n.fi"); cr(man); -- cgit v1.2.3