aboutsummaryrefslogtreecommitdiff
path: root/man/man3/cmark.3
blob: 431e9615a2da60025ff758cd31f22a6fd8afa319 (plain)
  1. .TH "cmark" "3" "November 29, 2014" "libcmark manual" ""
  2. .SH NAME
  3. .PP
  4. cmark \- parse, manipulate, and render CommonMark formatted text
  5. .IP
  6. .nf
  7. \f[C]
  8. #include\ <cmark.h>
  9. \f[]
  10. .fi
  11. .SH SIMPLE INTERFACE
  12. .IP
  13. .nf
  14. \f[C]
  15. char*
  16. cmark_markdown_to_html(const\ char\ *text,\ int\ len);
  17. \f[]
  18. .fi
  19. .SH PARSING
  20. .IP
  21. .nf
  22. \f[C]
  23. void
  24. cmark_parser_push(cmark_parser\ *parser,\ const\ char\ *buffer,\ size_t\ len);
  25. cmark_node*
  26. cmark_parse_document(const\ char\ *buffer,\ size_t\ len);
  27. cmark_node*
  28. cmark_parse_file(FILE\ *f);
  29. \f[]
  30. .fi
  31. .SH RENDERING
  32. .IP
  33. .nf
  34. \f[C]
  35. char*
  36. cmark_render_ast(cmark_node\ *root);
  37. char*
  38. cmark_render_html(cmark_node\ *root);
  39. \f[]
  40. .fi
  41. .SH CREATING AND DESTROYING NODES
  42. .IP
  43. .nf
  44. \f[C]
  45. cmark_node*
  46. cmark_node_new(cmark_node_type\ type);
  47. void
  48. cmark_node_free(cmark_node\ *node);
  49. \f[]
  50. .fi
  51. .SH TREE TRAVERSAL
  52. .IP
  53. .nf
  54. \f[C]
  55. cmark_node*
  56. cmark_node_next(cmark_node\ *node);
  57. cmark_node*
  58. cmark_node_previous(cmark_node\ *node);
  59. cmark_node*
  60. cmark_node_parent(cmark_node\ *node);
  61. cmark_node*
  62. cmark_node_first_child(cmark_node\ *node);
  63. cmark_node*
  64. cmark_node_last_child(cmark_node\ *node);
  65. \f[]
  66. .fi
  67. .SH TREE MANIPULATION
  68. .IP
  69. .nf
  70. \f[C]
  71. void
  72. cmark_node_unlink(cmark_node\ *node);
  73. int
  74. cmark_node_insert_before(cmark_node\ *node,\ cmark_node\ *sibling);
  75. int
  76. cmark_node_insert_after(cmark_node\ *node,\ cmark_node\ *sibling);
  77. int
  78. cmark_node_prepend_child(cmark_node\ *node,\ cmark_node\ *child);
  79. int
  80. cmark_node_append_child(cmark_node\ *node,\ cmark_node\ *child);
  81. \f[]
  82. .fi
  83. .SH ACCESSORS
  84. .IP
  85. .nf
  86. \f[C]
  87. cmark_node_type
  88. cmark_node_get_type(cmark_node\ *node);
  89. const\ char*
  90. cmark_node_get_string_content(cmark_node\ *node);
  91. int
  92. cmark_node_set_string_content(cmark_node\ *node,\ const\ char\ *content);
  93. int
  94. cmark_node_get_header_level(cmark_node\ *node);
  95. int
  96. cmark_node_set_header_level(cmark_node\ *node,\ int\ level);
  97. cmark_list_type
  98. cmark_node_get_list_type(cmark_node\ *node);
  99. int
  100. cmark_node_set_list_type(cmark_node\ *node,\ cmark_list_type\ type);
  101. int
  102. cmark_node_get_list_start(cmark_node\ *node);
  103. int
  104. cmark_node_set_list_start(cmark_node\ *node,\ int\ start);
  105. int
  106. cmark_node_get_list_tight(cmark_node\ *node);
  107. int
  108. cmark_node_set_list_tight(cmark_node\ *node,\ int\ tight);
  109. const\ char*
  110. cmark_node_get_fence_info(cmark_node\ *node);
  111. int
  112. cmark_node_set_fence_info(cmark_node\ *node,\ const\ char\ *info);
  113. const\ char*
  114. cmark_node_get_url(cmark_node\ *node);
  115. int
  116. cmark_node_set_url(cmark_node\ *node,\ const\ char\ *url);
  117. const\ char*
  118. cmark_node_get_title(cmark_node\ *node);
  119. int
  120. cmark_node_set_title(cmark_node\ *node,\ const\ char\ *title);
  121. int
  122. cmark_node_get_start_line(cmark_node\ *node);
  123. int
  124. cmark_node_get_start_column(cmark_node\ *node);
  125. int
  126. cmark_node_get_end_line(cmark_node\ *node);
  127. \f[]
  128. .fi
  129. .SH DEFINITIONS
  130. .IP
  131. .nf
  132. \f[C]
  133. CMARK_VERSION
  134. typedef\ enum\ {
  135. \ \ \ \ //\ Block
  136. \ \ \ \ CMARK_NODE_DOCUMENT,
  137. \ \ \ \ CMARK_NODE_BLOCK_QUOTE,
  138. \ \ \ \ CMARK_NODE_LIST,
  139. \ \ \ \ CMARK_NODE_LIST_ITEM,
  140. \ \ \ \ CMARK_NODE_CODE_BLOCK,
  141. \ \ \ \ CMARK_NODE_HTML,
  142. \ \ \ \ CMARK_NODE_PARAGRAPH,
  143. \ \ \ \ CMARK_NODE_HEADER,
  144. \ \ \ \ CMARK_NODE_HRULE,
  145. \ \ \ \ CMARK_NODE_REFERENCE_DEF,
  146. \ \ \ \ CMARK_NODE_FIRST_BLOCK\ =\ CMARK_NODE_DOCUMENT,
  147. \ \ \ \ CMARK_NODE_LAST_BLOCK\ \ =\ CMARK_NODE_REFERENCE_DEF,
  148. \ \ \ \ //\ Inline
  149. \ \ \ \ CMARK_NODE_TEXT,
  150. \ \ \ \ CMARK_NODE_SOFTBREAK,
  151. \ \ \ \ CMARK_NODE_LINEBREAK,
  152. \ \ \ \ CMARK_NODE_INLINE_CODE,
  153. \ \ \ \ CMARK_NODE_INLINE_HTML,
  154. \ \ \ \ CMARK_NODE_EMPH,
  155. \ \ \ \ CMARK_NODE_STRONG,
  156. \ \ \ \ CMARK_NODE_LINK,
  157. \ \ \ \ CMARK_NODE_IMAGE,
  158. \ \ \ \ CMARK_NODE_FIRST_INLINE\ =\ CMARK_NODE_TEXT,
  159. \ \ \ \ CMARK_NODE_LAST_INLINE\ \ =\ CMARK_NODE_IMAGE,
  160. }\ cmark_node_type;
  161. typedef\ enum\ {
  162. \ \ \ \ CMARK_NO_LIST,
  163. \ \ \ \ CMARK_BULLET_LIST,
  164. \ \ \ \ CMARK_ORDERED_LIST
  165. }\ \ cmark_list_type;
  166. typedef\ enum\ {
  167. \ \ \ \ CMARK_PERIOD_DELIM,
  168. \ \ \ \ CMARK_PAREN_DELIM
  169. }\ cmark_delim_type;
  170. \f[]
  171. .fi
  172. .SH AUTHORS
  173. .PP
  174. John MacFarlane