diff options
author | John MacFarlane <jgm@berkeley.edu> | 2014-12-14 14:08:53 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2014-12-14 14:08:53 -0800 |
commit | 9dd7a6510aa63506b4ea13b40f44b3094d8f637a (patch) | |
tree | 4cd917a91d628ab80a403ac9d022eea34697e837 | |
parent | 8a4d49f4571f3a49b298207c99b8578642fe5209 (diff) |
man writer: use chunk literal in code blocks.
-rw-r--r-- | man/man3/cmark.3 | 23 | ||||
-rw-r--r-- | 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 @@ -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); |