Text::Markdown::Discount
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

109 lines
3.6 KiB

  1. #ifndef _MKDIO_D
  2. #define _MKDIO_D
  3. #include <stdio.h>
  4. typedef void MMIOT;
  5. typedef @DWORD@ mkd_flag_t;
  6. /* line builder for markdown()
  7. */
  8. MMIOT *mkd_in(FILE*,mkd_flag_t); /* assemble input from a file */
  9. MMIOT *mkd_string(const char*,int,mkd_flag_t); /* assemble input from a buffer */
  10. void mkd_basename(MMIOT*,char*);
  11. void mkd_initialize();
  12. void mkd_with_html5_tags();
  13. void mkd_shlib_destructor();
  14. /* compilation, debugging, cleanup
  15. */
  16. int mkd_compile(MMIOT*, mkd_flag_t);
  17. int mkd_cleanup(MMIOT*);
  18. /* markup functions
  19. */
  20. int mkd_dump(MMIOT*, FILE*, int, char*);
  21. int markdown(MMIOT*, FILE*, mkd_flag_t);
  22. int mkd_line(char *, int, char **, mkd_flag_t);
  23. typedef int (*mkd_sta_function_t)(const int,const void*);
  24. void mkd_string_to_anchor(char *, int, mkd_sta_function_t, void*, int);
  25. int mkd_xhtmlpage(MMIOT*,int,FILE*);
  26. /* header block access
  27. */
  28. char* mkd_doc_title(MMIOT*);
  29. char* mkd_doc_author(MMIOT*);
  30. char* mkd_doc_date(MMIOT*);
  31. /* compiled data access
  32. */
  33. int mkd_document(MMIOT*, char**);
  34. int mkd_toc(MMIOT*, char**);
  35. int mkd_css(MMIOT*, char **);
  36. int mkd_xml(char *, int, char **);
  37. /* write-to-file functions
  38. */
  39. int mkd_generatehtml(MMIOT*,FILE*);
  40. int mkd_generatetoc(MMIOT*,FILE*);
  41. int mkd_generatexml(char *, int,FILE*);
  42. int mkd_generatecss(MMIOT*,FILE*);
  43. #define mkd_style mkd_generatecss
  44. int mkd_generateline(char *, int, FILE*, mkd_flag_t);
  45. #define mkd_text mkd_generateline
  46. /* url generator callbacks
  47. */
  48. typedef char * (*mkd_callback_t)(const char*, const int, void*);
  49. typedef void (*mkd_free_t)(char*, void*);
  50. void mkd_e_url(void *, mkd_callback_t);
  51. void mkd_e_flags(void *, mkd_callback_t);
  52. void mkd_e_free(void *, mkd_free_t );
  53. void mkd_e_data(void *, void *);
  54. /* version#.
  55. */
  56. extern char markdown_version[];
  57. void mkd_mmiot_flags(FILE *, MMIOT *, int);
  58. void mkd_flags_are(FILE*, mkd_flag_t, int);
  59. void mkd_ref_prefix(MMIOT*, char*);
  60. /* special flags for markdown() and mkd_text()
  61. */
  62. #define MKD_NOLINKS 0x00000001 /* don't do link processing, block <a> tags */
  63. #define MKD_NOIMAGE 0x00000002 /* don't do image processing, block <img> */
  64. #define MKD_NOPANTS 0x00000004 /* don't run smartypants() */
  65. #define MKD_NOHTML 0x00000008 /* don't allow raw html through AT ALL */
  66. #define MKD_STRICT 0x00000010 /* disable SUPERSCRIPT, RELAXED_EMPHASIS */
  67. #define MKD_TAGTEXT 0x00000020 /* process text inside an html tag; no
  68. * <em>, no <bold>, no html or [] expansion */
  69. #define MKD_NO_EXT 0x00000040 /* don't allow pseudo-protocols */
  70. #define MKD_NOEXT MKD_NO_EXT /* ^^^ (aliased for user convenience) */
  71. #define MKD_CDATA 0x00000080 /* generate code for xml ![CDATA[...]] */
  72. #define MKD_NOSUPERSCRIPT 0x00000100 /* no A^B */
  73. #define MKD_NORELAXED 0x00000200 /* emphasis happens /everywhere/ */
  74. #define MKD_NOTABLES 0x00000400 /* disallow tables */
  75. #define MKD_NOSTRIKETHROUGH 0x00000800 /* forbid ~~strikethrough~~ */
  76. #define MKD_TOC 0x00001000 /* do table-of-contents processing */
  77. #define MKD_1_COMPAT 0x00002000 /* compatibility with MarkdownTest_1.0 */
  78. #define MKD_AUTOLINK 0x00004000 /* make http://foo.com link even without <>s */
  79. #define MKD_SAFELINK 0x00008000 /* paranoid check for link protocol */
  80. #define MKD_NOHEADER 0x00010000 /* don't process header blocks */
  81. #define MKD_TABSTOP 0x00020000 /* expand tabs to 4 spaces */
  82. #define MKD_NODIVQUOTE 0x00040000 /* forbid >%class% blocks */
  83. #define MKD_NOALPHALIST 0x00080000 /* forbid alphabetic lists */
  84. #define MKD_NODLIST 0x00100000 /* forbid definition lists */
  85. #define MKD_EXTRA_FOOTNOTE 0x00200000 /* enable markdown extra-style footnotes */
  86. #define MKD_EMBED MKD_NOLINKS|MKD_NOIMAGE|MKD_TAGTEXT
  87. /* special flags for mkd_in() and mkd_string()
  88. */
  89. #endif/*_MKDIO_D*/