aboutsummaryrefslogtreecommitdiff
path: root/man/man3/cmark.3
blob: f61178604d0ac3667186c063cd2316b444cb6cde (plain)
  1. .TH "" "" "" "" ""
  2. .SH NAME
  3. .PP
  4. cmark \- CommonMark parsing, manipulating, and rendering
  5. .SH SIMPLE INTERFACE
  6. .IP
  7. .nf
  8. \f[C]
  9. #define\ CMARK_VERSION\ "0.1"
  10. \f[]
  11. .fi
  12. .PP
  13. Current version of library.
  14. .IP
  15. .nf
  16. \f[C]
  17. char\ *cmark_markdown_to_html(const\ char\ *text,\ int\ len);
  18. \f[]
  19. .fi
  20. .PP
  21. Convert \f[C]text\f[] (assumed to be a UTF\-8 encoded string with length
  22. \f[C]len\f[]) from CommonMark Markdown to HTML, returning a
  23. null\-terminated, UTF\-8\-encoded string.
  24. .SH NODE STRUCTURE
  25. .IP
  26. .nf
  27. \f[C]
  28. typedef\ enum\ {
  29. \ \ \ \ //\ Block
  30. \ \ \ \ CMARK_NODE_DOCUMENT,
  31. \ \ \ \ CMARK_NODE_BLOCK_QUOTE,
  32. \ \ \ \ CMARK_NODE_LIST,
  33. \ \ \ \ CMARK_NODE_LIST_ITEM,
  34. \ \ \ \ CMARK_NODE_CODE_BLOCK,
  35. \ \ \ \ CMARK_NODE_HTML,
  36. \ \ \ \ CMARK_NODE_PARAGRAPH,
  37. \ \ \ \ CMARK_NODE_HEADER,
  38. \ \ \ \ CMARK_NODE_HRULE,
  39. \ \ \ \ CMARK_NODE_REFERENCE_DEF,
  40. typedef\ enum\ {
  41. \ \ \ \ CMARK_NO_LIST,
  42. \ \ \ \ CMARK_BULLET_LIST,
  43. \ \ \ \ CMARK_ORDERED_LIST
  44. }\ \ cmark_list_type;
  45. typedef\ enum\ {
  46. \ \ \ \ CMARK_PERIOD_DELIM,
  47. \ \ \ \ CMARK_PAREN_DELIM
  48. }\ cmark_delim_type;
  49. \f[]
  50. .fi
  51. .SH CREATING AND DESTORYING NODES
  52. .IP
  53. .nf
  54. \f[C]
  55. cmark_node*
  56. cmark_node_new(cmark_node_type\ type);
  57. void
  58. cmark_node_free(cmark_node\ *node);
  59. \f[]
  60. .fi
  61. .SH TREE TRAVERSAL
  62. .IP
  63. .nf
  64. \f[C]
  65. cmark_node*
  66. cmark_node_next(cmark_node\ *node);
  67. cmark_node*
  68. cmark_node_previous(cmark_node\ *node);
  69. cmark_node*
  70. cmark_node_parent(cmark_node\ *node);
  71. cmark_node*
  72. cmark_node_first_child(cmark_node\ *node);
  73. cmark_node*
  74. cmark_node_last_child(cmark_node\ *node);
  75. \f[]
  76. .fi
  77. .SH ACCESSORS
  78. .IP
  79. .nf
  80. \f[C]
  81. cmark_node_type
  82. cmark_node_get_type(cmark_node\ *node);
  83. const\ char*
  84. cmark_node_get_string_content(cmark_node\ *node);
  85. int
  86. cmark_node_set_string_content(cmark_node\ *node,\ const\ char\ *content);
  87. int
  88. cmark_node_get_header_level(cmark_node\ *node);
  89. int
  90. cmark_node_set_header_level(cmark_node\ *node,\ int\ level);
  91. cmark_list_type
  92. cmark_node_get_list_type(cmark_node\ *node);
  93. int
  94. cmark_node_set_list_type(cmark_node\ *node,\ cmark_list_type\ type);
  95. int
  96. cmark_node_get_list_start(cmark_node\ *node);
  97. int
  98. cmark_node_set_list_start(cmark_node\ *node,\ int\ start);
  99. int
  100. cmark_node_get_list_tight(cmark_node\ *node);
  101. int
  102. cmark_node_set_list_tight(cmark_node\ *node,\ int\ tight);
  103. const\ char*
  104. cmark_node_get_fence_info(cmark_node\ *node);
  105. int
  106. cmark_node_set_fence_info(cmark_node\ *node,\ const\ char\ *info);
  107. const\ char*
  108. cmark_node_get_url(cmark_node\ *node);
  109. int
  110. cmark_node_set_url(cmark_node\ *node,\ const\ char\ *url);
  111. const\ char*
  112. cmark_node_get_title(cmark_node\ *node);
  113. int
  114. cmark_node_set_title(cmark_node\ *node,\ const\ char\ *title);
  115. int
  116. cmark_node_get_start_line(cmark_node\ *node);
  117. int
  118. cmark_node_get_start_column(cmark_node\ *node);
  119. int
  120. cmark_node_get_end_line(cmark_node\ *node);
  121. \f[]
  122. .fi
  123. .SH TREE MANIPULATION
  124. .IP
  125. .nf
  126. \f[C]
  127. void
  128. cmark_node_unlink(cmark_node\ *node);
  129. int
  130. cmark_node_insert_before(cmark_node\ *node,\ cmark_node\ *sibling);
  131. int
  132. cmark_node_insert_after(cmark_node\ *node,\ cmark_node\ *sibling);
  133. int
  134. cmark_node_prepend_child(cmark_node\ *node,\ cmark_node\ *child);
  135. int
  136. cmark_node_append_child(cmark_node\ *node,\ cmark_node\ *child);
  137. \f[]
  138. .fi
  139. .SH PARSING
  140. .IP
  141. .nf
  142. \f[C]
  143. cmark_parser\ *cmark_parser_new();
  144. void\ cmark_parser_free(cmark_parser\ *parser);
  145. cmark_node\ *cmark_parser_finish(cmark_parser\ *parser);
  146. void\ cmark_parser_push(cmark_parser\ *parser,\ const\ char\ *buffer,\ size_t\ len);
  147. cmark_node\ *cmark_parse_document(const\ char\ *buffer,\ size_t\ len);
  148. cmark_node\ *cmark_parse_file(FILE\ *f);
  149. \f[]
  150. .fi
  151. .SH RENDERING
  152. .IP
  153. .nf
  154. \f[C]
  155. char\ *cmark_render_ast(cmark_node\ *root);
  156. char\ *cmark_render_html(cmark_node\ *root);
  157. \f[]
  158. .fi
  159. .SH AUTHORS
  160. .PP
  161. John MacFarlane, Vicent Marti, Kārlis Gaņģis, Nick Wellnhofer.