.TH "" "" "" "" "" .SH NAME .PP cmark \- CommonMark parsing, manipulating, and rendering .SH SIMPLE INTERFACE .IP .nf \f[C] #define\ CMARK_VERSION\ "0.1" \f[] .fi .PP Current version of library. .IP .nf \f[C] char\ *cmark_markdown_to_html(const\ char\ *text,\ int\ len); \f[] .fi .PP Convert \f[C]text\f[] (assumed to be a UTF\-8 encoded string with length \f[C]len\f[]) from CommonMark Markdown to HTML, returning a null\-terminated, UTF\-8\-encoded string. .SH NODE STRUCTURE .IP .nf \f[C] typedef\ enum\ { \ \ \ \ /*\ Block\ */ \ \ \ \ CMARK_NODE_DOCUMENT, \ \ \ \ CMARK_NODE_BLOCK_QUOTE, \ \ \ \ CMARK_NODE_LIST, \ \ \ \ CMARK_NODE_LIST_ITEM, \ \ \ \ CMARK_NODE_CODE_BLOCK, \ \ \ \ CMARK_NODE_HTML, \ \ \ \ CMARK_NODE_PARAGRAPH, \ \ \ \ CMARK_NODE_HEADER, \ \ \ \ CMARK_NODE_HRULE, \ \ \ \ CMARK_NODE_REFERENCE_DEF, typedef\ enum\ { \ \ \ \ CMARK_NO_LIST, \ \ \ \ CMARK_BULLET_LIST, \ \ \ \ CMARK_ORDERED_LIST }\ \ cmark_list_type; typedef\ enum\ { \ \ \ \ CMARK_PERIOD_DELIM, \ \ \ \ CMARK_PAREN_DELIM }\ cmark_delim_type; \f[] .fi .SH CREATING AND DESTORYING NODES .IP .nf \f[C] cmark_node* cmark_node_new(cmark_node_type\ type); void cmark_node_free(cmark_node\ *node); cmark_node* cmark_node_next(cmark_node\ *node); \f[] .fi .SH TREE TRAVERSAL .IP .nf \f[C] cmark_node* cmark_node_previous(cmark_node\ *node); cmark_node* cmark_node_parent(cmark_node\ *node); cmark_node* cmark_node_first_child(cmark_node\ *node); cmark_node* cmark_node_last_child(cmark_node\ *node); \f[] .fi .SH ACCESSORS .IP .nf \f[C] cmark_node_type cmark_node_get_type(cmark_node\ *node); const\ char* cmark_node_get_string_content(cmark_node\ *node); int cmark_node_set_string_content(cmark_node\ *node,\ const\ char\ *content); int cmark_node_get_header_level(cmark_node\ *node); int cmark_node_set_header_level(cmark_node\ *node,\ int\ level); cmark_list_type cmark_node_get_list_type(cmark_node\ *node); int cmark_node_set_list_type(cmark_node\ *node,\ cmark_list_type\ type); int cmark_node_get_list_start(cmark_node\ *node); int cmark_node_set_list_start(cmark_node\ *node,\ int\ start); int cmark_node_get_list_tight(cmark_node\ *node); int cmark_node_set_list_tight(cmark_node\ *node,\ int\ tight); const\ char* cmark_node_get_fence_info(cmark_node\ *node); int cmark_node_set_fence_info(cmark_node\ *node,\ const\ char\ *info); const\ char* cmark_node_get_url(cmark_node\ *node); int cmark_node_set_url(cmark_node\ *node,\ const\ char\ *url); const\ char* cmark_node_get_title(cmark_node\ *node); int cmark_node_set_title(cmark_node\ *node,\ const\ char\ *title); int cmark_node_get_start_line(cmark_node\ *node); int cmark_node_get_start_column(cmark_node\ *node); int cmark_node_get_end_line(cmark_node\ *node); \f[] .fi .SH TREE MANIPULATION .IP .nf \f[C] void cmark_node_unlink(cmark_node\ *node); int cmark_node_insert_before(cmark_node\ *node,\ cmark_node\ *sibling); int cmark_node_insert_after(cmark_node\ *node,\ cmark_node\ *sibling); int cmark_node_prepend_child(cmark_node\ *node,\ cmark_node\ *child); int cmark_node_append_child(cmark_node\ *node,\ cmark_node\ *child); \f[] .fi .SH PARSING .IP .nf \f[C] cmark_parser\ *cmark_parser_new(); void\ cmark_parser_free(cmark_parser\ *parser); cmark_node\ *cmark_parser_finish(cmark_parser\ *parser); void\ cmark_parser_feed(cmark_parser\ *parser,\ const\ char\ *buffer,\ size_t\ len); cmark_node\ *cmark_parse_document(const\ char\ *buffer,\ size_t\ len); cmark_node\ *cmark_parse_file(FILE\ *f); \f[] .fi .SH RENDERING .IP .nf \f[C] char\ *cmark_render_ast(cmark_node\ *root); char\ *cmark_render_html(cmark_node\ *root); \f[] .fi .SH AUTHORS .PP John MacFarlane, Vicent Marti, Kārlis Gaņģis, Nick Wellnhofer.