From cb744bd09103321b18ee979edac2cb26a414f7be Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Tue, 11 Nov 2014 12:00:42 -0800 Subject: Added cmark_markdown_to_html with a simple interface. See #70. --- src/CMakeLists.txt | 1 + src/cmark.c | 19 +++++++++++++++++++ src/cmark.h | 2 ++ src/html/html.c | 2 +- 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 src/cmark.c (limited to 'src') diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c0792cd..45b0fec 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -13,6 +13,7 @@ set(HEADERS html/houdini.h ) set(LIBRARY_SOURCES + cmark.c blocks.c inlines.c print.c diff --git a/src/cmark.c b/src/cmark.c new file mode 100644 index 0000000..064c080 --- /dev/null +++ b/src/cmark.c @@ -0,0 +1,19 @@ +#include +#include +#include + +#include "cmark.h" +#include "buffer.h" + +extern unsigned char *cmark_markdown_to_html(unsigned char *text) +{ + node_block *blocks; + strbuf htmlbuf = GH_BUF_INIT; + + blocks = cmark_parse_document(text, sizeof(text)); + + cmark_render_html(&htmlbuf, blocks); + cmark_free_nodes(blocks); + + return strbuf_detach(&htmlbuf); +} diff --git a/src/cmark.h b/src/cmark.h index 1fb8668..6347901 100644 --- a/src/cmark.h +++ b/src/cmark.h @@ -118,6 +118,8 @@ void cmark_free_nodes(node_block *e); void cmark_debug_print(node_block *root); void cmark_render_html(strbuf *html, node_block *root); +unsigned char *cmark_markdown_to_html(unsigned char *text); + #ifdef __cplusplus } #endif diff --git a/src/html/html.c b/src/html/html.c index ea83992..6b5d614 100644 --- a/src/html/html.c +++ b/src/html/html.c @@ -372,7 +372,7 @@ static void blocks_to_html(strbuf *html, node_block *b) free_render_stack(rstack); } -void cmark_render_html(strbuf *html, node_block *root) +extern void cmark_render_html(strbuf *html, node_block *root) { blocks_to_html(html, root); } -- cgit v1.2.3