bluecloth 2.0.7-x86-mingw32 → 2.0.11pre158-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. data.tar.gz.sig +0 -0
  2. data/.gemtest +0 -0
  3. data/History.md +4 -0
  4. data/LICENSE +1 -1
  5. data/Manifest.txt +103 -0
  6. data/README.md +103 -0
  7. data/Rakefile +95 -301
  8. data/ext/VERSION +1 -1
  9. data/ext/bluecloth.c +69 -23
  10. data/ext/bluecloth.h +13 -2
  11. data/ext/config.h +13 -2
  12. data/ext/css.c +14 -5
  13. data/ext/cstring.h +4 -2
  14. data/ext/docheader.c +13 -7
  15. data/ext/emmatch.c +188 -0
  16. data/ext/extconf.rb +7 -9
  17. data/ext/generate.c +333 -293
  18. data/ext/html5.c +24 -0
  19. data/ext/markdown.c +326 -185
  20. data/ext/markdown.h +52 -29
  21. data/ext/mkdio.c +82 -41
  22. data/ext/mkdio.h +44 -23
  23. data/ext/resource.c +4 -2
  24. data/ext/setup.c +47 -0
  25. data/ext/tags.c +123 -0
  26. data/ext/tags.h +19 -0
  27. data/lib/1.8/bluecloth_ext.so +0 -0
  28. data/lib/1.9/bluecloth_ext.so +0 -0
  29. data/lib/bluecloth.rb +77 -42
  30. data/spec/bluecloth/101_changes_spec.rb +18 -21
  31. data/spec/bluecloth/TEMPLATE +36 -0
  32. data/spec/bluecloth/autolinks_spec.rb +4 -7
  33. data/spec/bluecloth/blockquotes_spec.rb +20 -23
  34. data/spec/bluecloth/code_spans_spec.rb +2 -5
  35. data/spec/bluecloth/emphasis_spec.rb +2 -5
  36. data/spec/bluecloth/entities_spec.rb +2 -5
  37. data/spec/bluecloth/hrules_spec.rb +2 -5
  38. data/spec/bluecloth/images_spec.rb +2 -5
  39. data/spec/bluecloth/inline_html_spec.rb +26 -66
  40. data/spec/bluecloth/links_spec.rb +1 -5
  41. data/spec/bluecloth/lists_spec.rb +2 -5
  42. data/spec/bluecloth/paragraphs_spec.rb +2 -5
  43. data/spec/bluecloth/titles_spec.rb +2 -5
  44. data/spec/bluecloth_spec.rb +36 -22
  45. data/spec/bugfix_spec.rb +90 -10
  46. data/spec/contributions_spec.rb +2 -3
  47. data/spec/discount_spec.rb +50 -10
  48. data/spec/lib/helpers.rb +18 -117
  49. data/spec/lib/matchers.rb +7 -18
  50. data/spec/markdowntest_spec.rb +3 -39
  51. metadata +257 -143
  52. metadata.gz.sig +0 -0
  53. data/ChangeLog +0 -387
  54. data/README +0 -81
  55. data/Rakefile.local +0 -41
  56. data/rake/191_compat.rb +0 -26
  57. data/rake/dependencies.rb +0 -76
  58. data/rake/helpers.rb +0 -435
  59. data/rake/hg.rb +0 -273
  60. data/rake/manual.rb +0 -782
  61. data/rake/packaging.rb +0 -123
  62. data/rake/publishing.rb +0 -274
  63. data/rake/rdoc.rb +0 -30
  64. data/rake/style.rb +0 -62
  65. data/rake/svn.rb +0 -668
  66. data/rake/testing.rb +0 -187
  67. data/rake/verifytask.rb +0 -64
data/ext/markdown.h CHANGED
@@ -56,6 +56,17 @@ typedef struct block {
56
56
  typedef STRING(block) Qblock;
57
57
 
58
58
 
59
+ typedef char* (*mkd_callback_t)(const char*, const int, void*);
60
+ typedef void (*mkd_free_t)(char*, void*);
61
+
62
+ typedef struct callback_data {
63
+ void *e_data; /* private data for callbacks */
64
+ mkd_callback_t e_url; /* url edit callback */
65
+ mkd_callback_t e_flags; /* extra href flags callback */
66
+ mkd_free_t e_free; /* edit/flags callback memory deallocator */
67
+ } Callback_data;
68
+
69
+
59
70
  /* a magic markdown io thing holds all the data structures needed to
60
71
  * do the backend processing of a markdown document
61
72
  */
@@ -65,23 +76,33 @@ typedef struct mmiot {
65
76
  Qblock Q;
66
77
  int isp;
67
78
  STRING(Footnote) *footnotes;
68
- int flags;
69
- #define DENY_A 0x0001
70
- #define DENY_IMG 0x0002
71
- #define DENY_SMARTY 0x0004
72
- #define DENY_HTML 0x0008
73
- #define STRICT 0x0010
74
- #define INSIDE_TAG 0x0020
75
- #define NO_PSEUDO_PROTO 0x0040
76
- #define CDATA_OUTPUT 0x0080
77
- #define NOTABLES 0x0400
78
- #define TOC 0x1000
79
- #define MKD_1_COMPAT 0x2000
80
- #define AUTOLINK 0x4000
81
- #define SAFELINK 0x8000
82
- #define USER_FLAGS 0xFCFF
83
- #define EMBEDDED DENY_A|DENY_IMG|NO_PSEUDO_PROTO|CDATA_OUTPUT
84
- char *base;
79
+ DWORD flags;
80
+ #define MKD_NOLINKS 0x00000001
81
+ #define MKD_NOIMAGE 0x00000002
82
+ #define MKD_NOPANTS 0x00000004
83
+ #define MKD_NOHTML 0x00000008
84
+ #define MKD_STRICT 0x00000010
85
+ #define MKD_TAGTEXT 0x00000020
86
+ #define MKD_NO_EXT 0x00000040
87
+ #define MKD_CDATA 0x00000080
88
+ #define MKD_NOSUPERSCRIPT 0x00000100
89
+ #define MKD_NORELAXED 0x00000200
90
+ #define MKD_NOTABLES 0x00000400
91
+ #define MKD_NOSTRIKETHROUGH 0x00000800
92
+ #define MKD_TOC 0x00001000
93
+ #define MKD_1_COMPAT 0x00002000
94
+ #define MKD_AUTOLINK 0x00004000
95
+ #define MKD_SAFELINK 0x00008000
96
+ #define MKD_NOHEADER 0x00010000
97
+ #define MKD_TABSTOP 0x00020000
98
+ #define MKD_NODIVQUOTE 0x00040000
99
+ #define MKD_NOALPHALIST 0x00080000
100
+ #define MKD_NODLIST 0x00100000
101
+ #define IS_LABEL 0x08000000
102
+ #define USER_FLAGS 0x0FFFFFFF
103
+ #define INPUT_MASK (MKD_NOHEADER|MKD_TABSTOP)
104
+
105
+ Callback_data *cb;
85
106
  } MMIOT;
86
107
 
87
108
 
@@ -93,19 +114,23 @@ typedef struct mmiot {
93
114
  * root of the linked list of Lines.
94
115
  */
95
116
  typedef struct document {
96
- Line *headers; /* title -> author(s) -> date */
117
+ int magic; /* "I AM VALID" magic number */
118
+ #define VALID_DOCUMENT 0x19600731
119
+ Line *title;
120
+ Line *author;
121
+ Line *date;
97
122
  ANCHOR(Line) content; /* uncompiled text, not valid after compile() */
98
123
  Paragraph *code; /* intermediate code generated by compile() */
99
124
  int compiled; /* set after mkd_compile() */
100
125
  int html; /* set after (internal) htmlify() */
101
126
  int tabstop; /* for properly expanding tabs (ick) */
102
127
  MMIOT *ctx; /* backend buffers, flags, and structures */
103
- char *base; /* url basename for url fragments */
128
+ Callback_data cb; /* callback functions & private data */
104
129
  } Document;
105
130
 
106
131
 
107
132
  extern int mkd_firstnonblank(Line *);
108
- extern int mkd_compile(Document *, int);
133
+ extern int mkd_compile(Document *, DWORD);
109
134
  extern int mkd_document(Document *, char **);
110
135
  extern int mkd_generatehtml(Document *, FILE *);
111
136
  extern int mkd_css(Document *, char **);
@@ -114,19 +139,17 @@ extern int mkd_generatecss(Document *, FILE *);
114
139
  extern int mkd_xml(char *, int , char **);
115
140
  extern int mkd_generatexml(char *, int, FILE *);
116
141
  extern void mkd_cleanup(Document *);
117
- extern int mkd_line(char *, int, char **, int);
118
- extern int mkd_generateline(char *, int, FILE*, int);
142
+ extern int mkd_line(char *, int, char **, DWORD);
143
+ extern int mkd_generateline(char *, int, FILE*, DWORD);
119
144
  #define mkd_text mkd_generateline
120
145
  extern void mkd_basename(Document*, char *);
121
- extern void mkd_string_to_anchor(char*,int, void(*)(int,void*), void*);
122
-
123
- extern Document *mkd_in(FILE *, int);
124
- extern Document *mkd_string(char*,int, int);
146
+ extern void mkd_string_to_anchor(char*,int, void(*)(int,void*), void*, int);
125
147
 
126
- #define NO_HEADER 0x0100
127
- #define STD_TABSTOP 0x0200
128
- #define INPUT_MASK (NO_HEADER|STD_TABSTOP)
148
+ extern Document *mkd_in(FILE *, DWORD);
149
+ extern Document *mkd_string(char*,int, DWORD);
129
150
 
151
+ extern void mkd_initialize();
152
+ extern void mkd_shlib_destructor();
130
153
 
131
154
  /* internal resource handling functions.
132
155
  */
data/ext/mkdio.c CHANGED
@@ -24,8 +24,10 @@ new_Document()
24
24
  Document *ret = calloc(sizeof(Document), 1);
25
25
 
26
26
  if ( ret ) {
27
- if (( ret->ctx = calloc(sizeof(MMIOT), 1) ))
27
+ if (( ret->ctx = calloc(sizeof(MMIOT), 1) )) {
28
+ ret->magic = VALID_DOCUMENT;
28
29
  return ret;
30
+ }
29
31
  free(ret);
30
32
  }
31
33
  return 0;
@@ -68,16 +70,14 @@ queue(Document* a, Cstring *line)
68
70
  }
69
71
 
70
72
 
71
- #ifdef PANDOC_HEADER
72
73
  /* trim leading blanks from a header line
73
74
  */
74
75
  static void
75
- snip(Line *p)
76
+ header_dle(Line *p)
76
77
  {
77
78
  CLIP(p->text, 0, 1);
78
79
  p->dle = mkd_firstnonblank(p);
79
80
  }
80
- #endif
81
81
 
82
82
 
83
83
  /* build a Document from any old input.
@@ -90,26 +90,22 @@ populate(getc_func getc, void* ctx, int flags)
90
90
  Cstring line;
91
91
  Document *a = new_Document();
92
92
  int c;
93
- #ifdef PANDOC_HEADER
94
93
  int pandoc = 0;
95
- #endif
96
94
 
97
95
  if ( !a ) return 0;
98
96
 
99
- a->tabstop = (flags & STD_TABSTOP) ? 4 : TABSTOP;
97
+ a->tabstop = (flags & MKD_TABSTOP) ? 4 : TABSTOP;
100
98
 
101
99
  CREATE(line);
102
100
 
103
101
  while ( (c = (*getc)(ctx)) != EOF ) {
104
102
  if ( c == '\n' ) {
105
- #ifdef PANDOC_HEADER
106
103
  if ( pandoc != EOF && pandoc < 3 ) {
107
104
  if ( S(line) && (T(line)[0] == '%') )
108
105
  pandoc++;
109
106
  else
110
107
  pandoc = EOF;
111
108
  }
112
- #endif
113
109
  queue(a, &line);
114
110
  S(line) = 0;
115
111
  }
@@ -122,20 +118,19 @@ populate(getc_func getc, void* ctx, int flags)
122
118
 
123
119
  DELETE(line);
124
120
 
125
- #ifdef PANDOC_HEADER
126
- if ( (pandoc == 3) && !(flags & NO_HEADER) ) {
121
+ if ( (pandoc == 3) && !(flags & (MKD_NOHEADER|MKD_STRICT)) ) {
127
122
  /* the first three lines started with %, so we have a header.
128
123
  * clip the first three lines out of content and hang them
129
124
  * off header.
130
125
  */
131
- a->headers = T(a->content);
132
- T(a->content) = a->headers->next->next->next;
133
- a->headers->next->next->next = 0;
134
- snip(a->headers);
135
- snip(a->headers->next);
136
- snip(a->headers->next->next);
126
+ Line *headers = T(a->content);
127
+
128
+ a->title = headers; header_dle(a->title);
129
+ a->author= headers->next; header_dle(a->author);
130
+ a->date = headers->next->next; header_dle(a->date);
131
+
132
+ T(a->content) = headers->next->next->next;
137
133
  }
138
- #endif
139
134
 
140
135
  return a;
141
136
  }
@@ -144,7 +139,7 @@ populate(getc_func getc, void* ctx, int flags)
144
139
  /* convert a file into a linked list
145
140
  */
146
141
  Document *
147
- mkd_in(FILE *f, int flags)
142
+ mkd_in(FILE *f, DWORD flags)
148
143
  {
149
144
  return populate((getc_func)fgetc, f, flags & INPUT_MASK);
150
145
  }
@@ -172,7 +167,7 @@ strget(struct string_ctx *in)
172
167
  /* convert a block of text into a linked list
173
168
  */
174
169
  Document *
175
- mkd_string(char *buf, int len, int flags)
170
+ mkd_string(char *buf, int len, DWORD flags)
176
171
  {
177
172
  struct string_ctx about;
178
173
 
@@ -192,7 +187,7 @@ mkd_generatehtml(Document *p, FILE *output)
192
187
  int szdoc;
193
188
 
194
189
  if ( (szdoc = mkd_document(p, &doc)) != EOF ) {
195
- if ( p->ctx->flags & CDATA_OUTPUT )
190
+ if ( p->ctx->flags & MKD_CDATA )
196
191
  mkd_generatexml(doc, szdoc, output);
197
192
  else
198
193
  fwrite(doc, szdoc, 1, output);
@@ -217,30 +212,35 @@ markdown(Document *document, FILE *out, int flags)
217
212
  }
218
213
 
219
214
 
220
- void
221
- mkd_basename(Document *document, char *base)
222
- {
223
- if ( document )
224
- document->base = base;
225
- }
226
-
227
-
228
215
  /* write out a Cstring, mangled into a form suitable for `<a href=` or `<a id=`
229
216
  */
230
217
  void
231
- mkd_string_to_anchor(char *s, int len, void(*outchar)(int,void*), void *out)
218
+ mkd_string_to_anchor(char *s, int len, void(*outchar)(int,void*),
219
+ void *out, int labelformat)
232
220
  {
233
221
  unsigned char c;
222
+
223
+ int i, size;
224
+ char *line;
225
+
226
+ size = mkd_line(s, len, &line, IS_LABEL);
234
227
 
235
- for ( ; len-- > 0; ) {
236
- c = *s++;
237
- if ( c == ' ' || c == '&' || c == '<' || c == '"' )
238
- (*outchar)('+', out);
239
- else if ( isalnum(c) || ispunct(c) || (c & 0x80) )
240
- (*outchar)(c, out);
228
+ if ( labelformat && size && !isalpha(line[0]) )
229
+ (*outchar)('L',out);
230
+ for ( i=0; i < size ; i++ ) {
231
+ c = line[i];
232
+ if ( labelformat ) {
233
+ if ( isalnum(c) || (c == '_') || (c == ':') || (c == '-') || (c == '.' ) )
234
+ (*outchar)(c, out);
235
+ else
236
+ (*outchar)('.',out);
237
+ }
241
238
  else
242
- (*outchar)('~',out);
239
+ (*outchar)(c,out);
243
240
  }
241
+
242
+ if (line)
243
+ free(line);
244
244
  }
245
245
 
246
246
 
@@ -259,7 +259,7 @@ mkd_parse_line(char *bfr, int size, MMIOT *f, int flags)
259
259
  /* ___mkd_reparse() a line, returning it in malloc()ed memory
260
260
  */
261
261
  int
262
- mkd_line(char *bfr, int size, char **res, int flags)
262
+ mkd_line(char *bfr, int size, char **res, DWORD flags)
263
263
  {
264
264
  MMIOT f;
265
265
  int len;
@@ -272,9 +272,10 @@ mkd_line(char *bfr, int size, char **res, int flags)
272
272
  * should be an opaque method that transparently moves
273
273
  * the pointer out of the embedded Cstring.
274
274
  */
275
+ EXPAND(f.out) = 0;
275
276
  *res = T(f.out);
276
277
  T(f.out) = 0;
277
- S(f.out) = 0;
278
+ S(f.out) = ALLOCATED(f.out) = 0;
278
279
  }
279
280
  else {
280
281
  *res = 0;
@@ -288,12 +289,12 @@ mkd_line(char *bfr, int size, char **res, int flags)
288
289
  /* ___mkd_reparse() a line, writing it to a FILE
289
290
  */
290
291
  int
291
- mkd_generateline(char *bfr, int size, FILE *output, int flags)
292
+ mkd_generateline(char *bfr, int size, FILE *output, DWORD flags)
292
293
  {
293
294
  MMIOT f;
294
295
 
295
296
  mkd_parse_line(bfr, size, &f, flags);
296
- if ( flags & CDATA_OUTPUT )
297
+ if ( flags & MKD_CDATA )
297
298
  mkd_generatexml(T(f.out), S(f.out), output);
298
299
  else
299
300
  fwrite(T(f.out), S(f.out), 1, output);
@@ -301,3 +302,43 @@ mkd_generateline(char *bfr, int size, FILE *output, int flags)
301
302
  ___mkd_freemmiot(&f, 0);
302
303
  return 0;
303
304
  }
305
+
306
+
307
+ /* set the url display callback
308
+ */
309
+ void
310
+ mkd_e_url(Document *f, mkd_callback_t edit)
311
+ {
312
+ if ( f )
313
+ f->cb.e_url = edit;
314
+ }
315
+
316
+
317
+ /* set the url options callback
318
+ */
319
+ void
320
+ mkd_e_flags(Document *f, mkd_callback_t edit)
321
+ {
322
+ if ( f )
323
+ f->cb.e_flags = edit;
324
+ }
325
+
326
+
327
+ /* set the url display/options deallocator
328
+ */
329
+ void
330
+ mkd_e_free(Document *f, mkd_free_t dealloc)
331
+ {
332
+ if ( f )
333
+ f->cb.e_free = dealloc;
334
+ }
335
+
336
+
337
+ /* set the url display/options context data field
338
+ */
339
+ void
340
+ mkd_e_data(Document *f, void *data)
341
+ {
342
+ if ( f )
343
+ f->cb.e_data = data;
344
+ }
data/ext/mkdio.h CHANGED
@@ -5,24 +5,29 @@
5
5
 
6
6
  typedef void MMIOT;
7
7
 
8
+ typedef unsigned int mkd_flag_t;
9
+
8
10
  /* line builder for markdown()
9
11
  */
10
- MMIOT *mkd_in(FILE*,int); /* assemble input from a file */
11
- MMIOT *mkd_string(char*,int,int); /* assemble input from a buffer */
12
+ MMIOT *mkd_in(FILE*,mkd_flag_t); /* assemble input from a file */
13
+ MMIOT *mkd_string(char*,int,mkd_flag_t); /* assemble input from a buffer */
12
14
 
13
15
  void mkd_basename(MMIOT*,char*);
14
16
 
17
+ void mkd_initialize();
18
+ void mkd_shlib_destructor();
19
+
15
20
  /* compilation, debugging, cleanup
16
21
  */
17
- int mkd_compile(MMIOT*, int);
22
+ int mkd_compile(MMIOT*, mkd_flag_t);
18
23
  int mkd_cleanup(MMIOT*);
19
24
 
20
25
  /* markup functions
21
26
  */
22
27
  int mkd_dump(MMIOT*, FILE*, int, char*);
23
- int markdown(MMIOT*, FILE*, int);
24
- int mkd_line(char *, int, char **, int);
25
- void mkd_string_to_anchor(char *, int, int (*)(int,void*), void*);
28
+ int markdown(MMIOT*, FILE*, mkd_flag_t);
29
+ int mkd_line(char *, int, char **, mkd_flag_t);
30
+ void mkd_string_to_anchor(char *, int, int (*)(int,void*), void*, int);
26
31
  int mkd_xhtmlpage(MMIOT*,int,FILE*);
27
32
 
28
33
  /* header block access
@@ -45,35 +50,51 @@ int mkd_generatetoc(MMIOT*,FILE*);
45
50
  int mkd_generatexml(char *, int,FILE*);
46
51
  int mkd_generatecss(MMIOT*,FILE*);
47
52
  #define mkd_style mkd_generatecss
48
- int mkd_generateline(char *, int, FILE*, int);
53
+ int mkd_generateline(char *, int, FILE*, mkd_flag_t);
49
54
  #define mkd_text mkd_generateline
50
55
 
56
+ /* url generator callbacks
57
+ */
58
+ typedef char * (*mkd_callback_t)(const char*, const int, void*);
59
+ typedef void (*mkd_free_t)(char*, void*);
60
+
61
+ void mkd_e_url(void *, mkd_callback_t);
62
+ void mkd_e_flags(void *, mkd_callback_t);
63
+ void mkd_e_free(void *, mkd_free_t );
64
+ void mkd_e_data(void *, void *);
65
+
51
66
  /* version#.
52
67
  */
53
68
  extern char markdown_version[];
54
69
 
55
70
  /* special flags for markdown() and mkd_text()
56
71
  */
57
- #define MKD_NOLINKS 0x0001 /* don't do link processing, block <a> tags */
58
- #define MKD_NOIMAGE 0x0002 /* don't do image processing, block <img> */
59
- #define MKD_NOPANTS 0x0004 /* don't run smartypants() */
60
- #define MKD_NOHTML 0x0008 /* don't allow raw html through AT ALL */
61
- #define MKD_STRICT 0x0010 /* disable SUPERSCRIPT, RELAXED_EMPHASIS */
62
- #define MKD_TAGTEXT 0x0020 /* process text inside an html tag; no
63
- * <em>, no <bold>, no html or [] expansion */
64
- #define MKD_NO_EXT 0x0040 /* don't allow pseudo-protocols */
65
- #define MKD_CDATA 0x0080 /* generate code for xml ![CDATA[...]] */
66
- #define MKD_NOTABLES 0x0400 /* disallow tables */
67
- #define MKD_TOC 0x1000 /* do table-of-contents processing */
68
- #define MKD_1_COMPAT 0x2000 /* compatability with MarkdownTest_1.0 */
69
- #define MKD_AUTOLINK 0x4000 /* make http://foo.com link even without <>s */
70
- #define MKD_SAFELINK 0x8000 /* paranoid check for link protocol */
72
+ #define MKD_NOLINKS 0x00000001 /* don't do link processing, block <a> tags */
73
+ #define MKD_NOIMAGE 0x00000002 /* don't do image processing, block <img> */
74
+ #define MKD_NOPANTS 0x00000004 /* don't run smartypants() */
75
+ #define MKD_NOHTML 0x00000008 /* don't allow raw html through AT ALL */
76
+ #define MKD_STRICT 0x00000010 /* disable SUPERSCRIPT, RELAXED_EMPHASIS */
77
+ #define MKD_TAGTEXT 0x00000020 /* process text inside an html tag; no
78
+ * <em>, no <bold>, no html or [] expansion */
79
+ #define MKD_NO_EXT 0x00000040 /* don't allow pseudo-protocols */
80
+ #define MKD_CDATA 0x00000080 /* generate code for xml ![CDATA[...]] */
81
+ #define MKD_NOSUPERSCRIPT 0x00000100 /* no A^B */
82
+ #define MKD_NORELAXED 0x00000200 /* emphasis happens /everywhere/ */
83
+ #define MKD_NOTABLES 0x00000400 /* disallow tables */
84
+ #define MKD_NOSTRIKETHROUGH 0x00000800 /* forbid ~~strikethrough~~ */
85
+ #define MKD_TOC 0x00001000 /* do table-of-contents processing */
86
+ #define MKD_1_COMPAT 0x00002000 /* compatibility with MarkdownTest_1.0 */
87
+ #define MKD_AUTOLINK 0x00004000 /* make http://foo.com link even without <>s */
88
+ #define MKD_SAFELINK 0x00008000 /* paranoid check for link protocol */
89
+ #define MKD_NOHEADER 0x00010000 /* don't process header blocks */
90
+ #define MKD_TABSTOP 0x00020000 /* expand tabs to 4 spaces */
91
+ #define MKD_NODIVQUOTE 0x00040000 /* forbid >%class% blocks */
92
+ #define MKD_NOALPHALIST 0x00080000 /* forbid alphabetic lists */
93
+ #define MKD_NODLIST 0x00100000 /* forbid definition lists */
71
94
  #define MKD_EMBED MKD_NOLINKS|MKD_NOIMAGE|MKD_TAGTEXT
72
95
 
73
96
  /* special flags for mkd_in() and mkd_string()
74
97
  */
75
- #define MKD_NOHEADER 0x0100 /* don't process header blocks */
76
- #define MKD_TABSTOP 0x0200 /* expand tabs to 4 spaces */
77
98
 
78
99
 
79
100
  #endif/*_MKDIO_D*/