aboutsummaryrefslogtreecommitdiff
path: root/man/man3/cmark.3
blob: 44fd92f7ba06782d221cf7300541166f6013352a (plain)
  1. .TH cmark 3 "November 30, 2014" "LOCAL" "Library Functions Manual"
  2. .SH NAME
  3. .B cmark
  4. \- CommonMark parsing, manipulating, and rendering
  5. .SH SIMPLE INTERFACE
  6. .nf
  7. .RS 0n
  8. #define CMARK_VERSION "0.1"
  9. .RE
  10. .fi
  11. Current version of library.
  12. \fIchar *\fR \fBcmark_markdown_to_html\fR(\fIconst char *text\fR\fIint len\fR)
  13. Convert
  14. .Fa text
  15. (assumed to be a UTF-8 encoded string with length
  16. .Fa len )
  17. from CommonMark Markdown to HTML, returning a null-terminated,
  18. UTF-8-encoded string.
  19. .SH NODE STRUCTURE
  20. .nf
  21. .RS 0n
  22. typedef enum {
  23. /* Block */
  24. CMARK_NODE_DOCUMENT,
  25. CMARK_NODE_BLOCK_QUOTE,
  26. CMARK_NODE_LIST,
  27. CMARK_NODE_LIST_ITEM,
  28. CMARK_NODE_CODE_BLOCK,
  29. CMARK_NODE_HTML,
  30. CMARK_NODE_PARAGRAPH,
  31. CMARK_NODE_HEADER,
  32. CMARK_NODE_HRULE,
  33. CMARK_NODE_REFERENCE_DEF,
  34. CMARK_NODE_FIRST_BLOCK = CMARK_NODE_DOCUMENT,
  35. CMARK_NODE_LAST_BLOCK = CMARK_NODE_REFERENCE_DEF,
  36. /* Inline */
  37. CMARK_NODE_TEXT,
  38. CMARK_NODE_SOFTBREAK,
  39. CMARK_NODE_LINEBREAK,
  40. CMARK_NODE_INLINE_CODE,
  41. CMARK_NODE_INLINE_HTML,
  42. CMARK_NODE_EMPH,
  43. CMARK_NODE_STRONG,
  44. CMARK_NODE_LINK,
  45. CMARK_NODE_IMAGE,
  46. CMARK_NODE_FIRST_INLINE = CMARK_NODE_TEXT,
  47. CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE,
  48. } cmark_node_type;
  49. .RE
  50. .fi
  51. .nf
  52. .RS 0n
  53. typedef enum {
  54. CMARK_NO_LIST,
  55. CMARK_BULLET_LIST,
  56. CMARK_ORDERED_LIST
  57. } cmark_list_type;
  58. .RE
  59. .fi
  60. .nf
  61. .RS 0n
  62. typedef enum {
  63. CMARK_PERIOD_DELIM,
  64. CMARK_PAREN_DELIM
  65. } cmark_delim_type;
  66. .RE
  67. .fi
  68. .SH CREATING AND DESTROYING NODES
  69. \fIcmark_node*\fR \fBcmark_node_new\fR(\fIcmark_node_type type\fR)
  70. \fIvoid\fR \fBcmark_node_free\fR(\fIcmark_node *node\fR)
  71. \fIcmark_node*\fR \fBcmark_node_next\fR(\fIcmark_node *node\fR)
  72. .SH TREE TRAVERSAL
  73. \fIcmark_node*\fR \fBcmark_node_previous\fR(\fIcmark_node *node\fR)
  74. \fIcmark_node*\fR \fBcmark_node_parent\fR(\fIcmark_node *node\fR)
  75. \fIcmark_node*\fR \fBcmark_node_first_child\fR(\fIcmark_node *node\fR)
  76. \fIcmark_node*\fR \fBcmark_node_last_child\fR(\fIcmark_node *node\fR)
  77. .SH ACCESSORS
  78. \fIcmark_node_type\fR \fBcmark_node_get_type\fR(\fIcmark_node *node\fR)
  79. \fIconst char*\fR \fBcmark_node_get_string_content\fR(\fIcmark_node *node\fR)
  80. \fIint\fR \fBcmark_node_set_string_content\fR(\fIcmark_node *node\fR\fIconst char *content\fR)
  81. \fIint\fR \fBcmark_node_get_header_level\fR(\fIcmark_node *node\fR)
  82. \fIint\fR \fBcmark_node_set_header_level\fR(\fIcmark_node *node\fR\fIint level\fR)
  83. \fIcmark_list_type\fR \fBcmark_node_get_list_type\fR(\fIcmark_node *node\fR)
  84. \fIint\fR \fBcmark_node_set_list_type\fR(\fIcmark_node *node\fR\fIcmark_list_type type\fR)
  85. \fIint\fR \fBcmark_node_get_list_start\fR(\fIcmark_node *node\fR)
  86. \fIint\fR \fBcmark_node_set_list_start\fR(\fIcmark_node *node\fR\fIint start\fR)
  87. \fIint\fR \fBcmark_node_get_list_tight\fR(\fIcmark_node *node\fR)
  88. \fIint\fR \fBcmark_node_set_list_tight\fR(\fIcmark_node *node\fR\fIint tight\fR)
  89. \fIconst char*\fR \fBcmark_node_get_fence_info\fR(\fIcmark_node *node\fR)
  90. \fIint\fR \fBcmark_node_set_fence_info\fR(\fIcmark_node *node\fR\fIconst char *info\fR)
  91. \fIconst char*\fR \fBcmark_node_get_url\fR(\fIcmark_node *node\fR)
  92. \fIint\fR \fBcmark_node_set_url\fR(\fIcmark_node *node\fR\fIconst char *url\fR)
  93. \fIconst char*\fR \fBcmark_node_get_title\fR(\fIcmark_node *node\fR)
  94. \fIint\fR \fBcmark_node_set_title\fR(\fIcmark_node *node\fR\fIconst char *title\fR)
  95. \fIint\fR \fBcmark_node_get_start_line\fR(\fIcmark_node *node\fR)
  96. \fIint\fR \fBcmark_node_get_start_column\fR(\fIcmark_node *node\fR)
  97. \fIint\fR \fBcmark_node_get_end_line\fR(\fIcmark_node *node\fR)
  98. .SH TREE MANIPULATION
  99. \fIvoid\fR \fBcmark_node_unlink\fR(\fIcmark_node *node\fR)
  100. \fIint\fR \fBcmark_node_insert_before\fR(\fIcmark_node *node\fR\fIcmark_node *sibling\fR)
  101. \fIint\fR \fBcmark_node_insert_after\fR(\fIcmark_node *node\fR\fIcmark_node *sibling\fR)
  102. \fIint\fR \fBcmark_node_prepend_child\fR(\fIcmark_node *node\fR\fIcmark_node *child\fR)
  103. \fIint\fR \fBcmark_node_append_child\fR(\fIcmark_node *node\fR\fIcmark_node *child\fR)
  104. .SH PARSING
  105. \fIcmark_parser *\fR \fBcmark_parser_new\fR(\fI\fR)
  106. \fIvoid\fR \fBcmark_parser_free\fR(\fIcmark_parser *parser\fR)
  107. \fIcmark_node *\fR \fBcmark_parser_finish\fR(\fIcmark_parser *parser\fR)
  108. \fIvoid\fR \fBcmark_parser_feed\fR(\fIcmark_parser *parser\fR\fIconst char *buffer\fR\fIsize_t len\fR)
  109. \fIcmark_node *\fR \fBcmark_parse_document\fR(\fIconst char *buffer\fR\fIsize_t len\fR)
  110. \fIcmark_node *\fR \fBcmark_parse_file\fR(\fIFILE *f\fR)
  111. .SH RENDERING
  112. \fIchar *\fR \fBcmark_render_ast\fR(\fIcmark_node *root\fR)
  113. \fIchar *\fR \fBcmark_render_html\fR(\fIcmark_node *root\fR)
  114. .SH AUTHORS
  115. John MacFarlane, Vicent Marti, Kārlis Gaņģis, Nick Wellnhofer.