aboutsummaryrefslogtreecommitdiff
path: root/src/cmark.h
blob: 4c2e2612b3e0a9231f706884381c8a49e00e8a46 (plain)
  1. #ifndef CMARK_H
  2. #define CMARK_H
  3. #include <stdio.h>
  4. #include "cmark_export.h"
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. #define CMARK_VERSION "0.1"
  9. typedef struct cmark_node_inl cmark_node_inl;
  10. typedef struct cmark_node_block cmark_node_block;
  11. typedef struct cmark_doc_parser cmark_doc_parser;
  12. CMARK_EXPORT
  13. cmark_doc_parser *cmark_new_doc_parser();
  14. CMARK_EXPORT
  15. void cmark_free_doc_parser(cmark_doc_parser *parser);
  16. CMARK_EXPORT
  17. cmark_node_block *cmark_finish(cmark_doc_parser *parser);
  18. CMARK_EXPORT
  19. void cmark_process_line(cmark_doc_parser *parser, const unsigned char *buffer, size_t bytes);
  20. CMARK_EXPORT
  21. cmark_node_block *cmark_finish(cmark_doc_parser *parser);
  22. CMARK_EXPORT
  23. cmark_node_block *cmark_parse_document(const unsigned char *buffer, size_t len);
  24. CMARK_EXPORT
  25. cmark_node_block *cmark_parse_file(FILE *f);
  26. CMARK_EXPORT
  27. void cmark_debug_print(cmark_node_block *root);
  28. CMARK_EXPORT
  29. unsigned char *cmark_render_html(cmark_node_block *root);
  30. CMARK_EXPORT
  31. unsigned char *cmark_markdown_to_html(unsigned char *text, int len);
  32. CMARK_EXPORT
  33. void cmark_free_blocks(cmark_node_block *e);
  34. CMARK_EXPORT
  35. void cmark_free_inlines(cmark_node_inl* e);
  36. #ifndef CMARK_NO_SHORT_NAMES
  37. #define node_inl cmark_node_inl
  38. #define INL_STRING CMARK_INL_STRING
  39. #define INL_SOFTBREAK CMARK_INL_SOFTBREAK
  40. #define INL_LINEBREAK CMARK_INL_LINEBREAK
  41. #define INL_CODE CMARK_INL_CODE
  42. #define INL_RAW_HTML CMARK_INL_RAW_HTML
  43. #define INL_EMPH CMARK_INL_EMPH
  44. #define INL_STRONG CMARK_INL_STRONG
  45. #define INL_LINK CMARK_INL_LINK
  46. #define INL_IMAGE CMARK_INL_IMAGE
  47. #define ListData cmark_ListData
  48. #define FencedCodeData cmark_FencedCodeData
  49. #define node_block cmark_node_block
  50. #define BLOCK_DOCUMENT CMARK_BLOCK_DOCUMENT
  51. #define BLOCK_BQUOTE CMARK_BLOCK_BQUOTE
  52. #define BLOCK_LIST CMARK_BLOCK_LIST
  53. #define BLOCK_LIST_ITEM CMARK_BLOCK_LIST_ITEM
  54. #define BLOCK_FENCED_CODE CMARK_BLOCK_FENCED_CODE
  55. #define BLOCK_INDENTED_CODE CMARK_BLOCK_INDENTED_CODE
  56. #define BLOCK_HTML CMARK_BLOCK_HTML
  57. #define BLOCK_PARAGRAPH CMARK_BLOCK_PARAGRAPH
  58. #define BLOCK_ATX_HEADER CMARK_BLOCK_ATX_HEADER
  59. #define BLOCK_SETEXT_HEADER CMARK_BLOCK_SETEXT_HEADER
  60. #define BLOCK_HRULE CMARK_BLOCK_HRULE
  61. #define BLOCK_REFERENCE_DEF CMARK_BLOCK_REFERENCE_DEF
  62. #define free_simple cmark_free_simple
  63. #define free_blocks cmark_free_blocks
  64. #define doc_parser cmark_doc_parser
  65. #define new_doc_parser cmark_new_doc_parser
  66. #define free_doc_parser cmark_free_doc_parser
  67. #define process_line cmark_process_line
  68. #define finish cmark_finish
  69. #endif
  70. #ifdef __cplusplus
  71. }
  72. #endif
  73. #endif