rmultimarkdown 6.4.0.4 → 6.7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. checksums.yaml +5 -5
  2. data/Rakefile +7 -13
  3. data/ext/Makefile +67 -55
  4. data/ext/extconf.rb +7 -5
  5. data/ext/mmd/aho-corasick.c +8 -8
  6. data/ext/mmd/aho-corasick.h +3 -3
  7. data/ext/mmd/argtable3.c +6537 -0
  8. data/ext/mmd/argtable3.h +273 -0
  9. data/ext/mmd/beamer.c +12 -1
  10. data/ext/mmd/char.c +120 -27
  11. data/ext/mmd/char.h +23 -23
  12. data/ext/mmd/critic_markup.c +7 -6
  13. data/ext/mmd/d_string.c +88 -32
  14. data/ext/mmd/{include/d_string.h → d_string.h} +50 -38
  15. data/ext/mmd/epub.c +36 -12
  16. data/ext/mmd/epub.h +2 -2
  17. data/ext/mmd/file.c +50 -40
  18. data/ext/mmd/file.h +2 -2
  19. data/ext/mmd/html.c +164 -99
  20. data/ext/mmd/html.h +3 -2
  21. data/ext/mmd/i18n.h +15 -11
  22. data/ext/mmd/itmz-lexer.c +16978 -0
  23. data/ext/mmd/itmz-lexer.h +132 -0
  24. data/ext/mmd/itmz-parser.c +1189 -0
  25. data/ext/mmd/itmz-parser.h +11 -0
  26. data/ext/mmd/itmz-reader.c +388 -0
  27. data/ext/mmd/itmz-reader.h +111 -0
  28. data/ext/mmd/itmz.c +567 -0
  29. data/ext/mmd/itmz.h +117 -0
  30. data/ext/mmd/latex.c +93 -41
  31. data/ext/mmd/lexer.c +3506 -2774
  32. data/ext/mmd/{include/libMultiMarkdown.h → libMultiMarkdown.h} +49 -2
  33. data/ext/mmd/main.c +612 -0
  34. data/ext/mmd/memoir.c +4 -1
  35. data/ext/mmd/miniz.c +6905 -6680
  36. data/ext/mmd/miniz.h +456 -476
  37. data/ext/mmd/mmd.c +399 -94
  38. data/ext/mmd/mmd.h +25 -25
  39. data/ext/mmd/object_pool.h +3 -3
  40. data/ext/mmd/opendocument-content.c +137 -69
  41. data/ext/mmd/opendocument-content.h +2 -2
  42. data/ext/mmd/opendocument.c +35 -14
  43. data/ext/mmd/opendocument.h +2 -2
  44. data/ext/mmd/opml-lexer.c +259 -637
  45. data/ext/mmd/opml-lexer.h +1 -17
  46. data/ext/mmd/opml-parser.c +194 -188
  47. data/ext/mmd/opml-reader.c +72 -142
  48. data/ext/mmd/opml-reader.h +1 -1
  49. data/ext/mmd/opml.c +13 -13
  50. data/ext/mmd/opml.h +1 -1
  51. data/ext/mmd/parser.c +1623 -1244
  52. data/ext/mmd/rng.c +8 -3
  53. data/ext/mmd/scanners.c +66625 -103198
  54. data/ext/mmd/scanners.h +1 -0
  55. data/ext/mmd/stack.c +62 -20
  56. data/ext/mmd/stack.h +10 -21
  57. data/ext/mmd/textbundle.c +23 -7
  58. data/ext/mmd/textbundle.h +2 -2
  59. data/ext/mmd/token.c +42 -16
  60. data/ext/mmd/{include/token.h → token.h} +22 -8
  61. data/ext/mmd/token_pairs.c +0 -16
  62. data/ext/mmd/transclude.c +6 -2
  63. data/ext/mmd/uthash.h +745 -745
  64. data/ext/mmd/version.h +8 -8
  65. data/ext/mmd/writer.c +225 -63
  66. data/ext/mmd/writer.h +50 -36
  67. data/ext/mmd/xml.c +855 -0
  68. data/ext/mmd/xml.h +134 -0
  69. data/ext/mmd/zip.c +71 -4
  70. data/ext/mmd/zip.h +7 -1
  71. data/ext/ruby_multi_markdown.c +9 -18
  72. data/lib/multi_markdown/version.rb +1 -1
  73. data/lib/multi_markdown.bundle +0 -0
  74. data/rmultimarkdown.gemspec +0 -2
  75. metadata +22 -28
  76. data/ext/mmd/char_lookup.c +0 -212
@@ -2,7 +2,7 @@
2
2
 
3
3
  MultiMarkdown 6 -- Lightweight markup processor to produce HTML, LaTeX, and more.
4
4
 
5
- @file mmd.h
5
+ @file libMultiMarkdown.h
6
6
 
7
7
  @brief Header file for libMultiMarkdown.
8
8
 
@@ -101,6 +101,14 @@ typedef struct stack stack;
101
101
  C string variants
102
102
  */
103
103
 
104
+ /// Convert OPML string to MMD
105
+ DString * mmd_string_convert_opml_to_text(const char * source);
106
+
107
+
108
+ /// Convert ITMZ string to MMD
109
+ DString * mmd_string_convert_itmz_to_text(const char * source);
110
+
111
+
104
112
  /// Convert MMD text to specified format, with specified extensions, and language
105
113
  /// Returned char * must be freed
106
114
  char * mmd_string_convert(const char * source, unsigned long extensions, short format, short language);
@@ -147,6 +155,14 @@ struct stack * mmd_string_transclusion_manifest(const char * source, const char
147
155
  DString variants - DString ("dynamic string") is a mutable string implementation used in this project
148
156
  */
149
157
 
158
+ /// Convert OPML DString to MMD
159
+ DString * mmd_d_string_convert_opml_to_text(DString * source);
160
+
161
+
162
+ /// Convert ITMZ DString to MMD
163
+ DString * mmd_d_string_convert_itmz_to_text(DString * source);
164
+
165
+
150
166
  /// Convert MMD text to specified format, with specified extensions, and language
151
167
  /// Returned char * must be freed
152
168
  char * mmd_d_string_convert(DString * source, unsigned long extensions, short format, short language);
@@ -195,7 +211,7 @@ struct stack * mmd_d_string_transclusion_manifest(DString * source, const char *
195
211
 
196
212
  /// Create MMD Engine using an existing DString (A new copy is *not* made)
197
213
  mmd_engine * mmd_engine_create_with_dstring(
198
- DString * d,
214
+ DString * d,
199
215
  unsigned long extensions
200
216
  );
201
217
 
@@ -223,6 +239,13 @@ void mmd_engine_free(
223
239
  void mmd_engine_set_language(mmd_engine * e, short language);
224
240
 
225
241
 
242
+ /// Access DString directly
243
+ DString * mmd_engine_d_string(mmd_engine * e);
244
+
245
+ /// Return token tree after previous parsing
246
+ token * mmd_engine_root(mmd_engine * e);
247
+
248
+
226
249
  /// Parse part of the string into a token tree
227
250
  token * mmd_engine_parse_substring(mmd_engine * e, size_t byte_start, size_t byte_len);
228
251
 
@@ -245,6 +268,14 @@ char * mmd_engine_convert(mmd_engine * e, short format);
245
268
  void mmd_engine_convert_to_file(mmd_engine * e, short format, const char * directory, const char * filepath);
246
269
 
247
270
 
271
+ /// Convert OPML to text without modifying original engine source
272
+ DString * mmd_engine_convert_opml_to_text(mmd_engine * e);
273
+
274
+
275
+ /// Convert ITMZ to text without modifying original engine source
276
+ DString * mmd_engine_convert_itmz_to_text(mmd_engine * e);
277
+
278
+
248
279
  /// Convert MMD text to specified format using DString as a container for block of data
249
280
  /// and length of that block. Must be used for "complex" output formats such as EPUB.
250
281
  /// Returned DString * must be freed
@@ -393,6 +424,7 @@ enum token_types {
393
424
  PAIR_EMPH,
394
425
  PAIR_MATH,
395
426
  PAIR_PAREN,
427
+ PAIR_PAREN_LINK,
396
428
  PAIR_QUOTE_SINGLE,
397
429
  PAIR_QUOTE_DOUBLE,
398
430
  PAIR_QUOTE_ALT,
@@ -404,6 +436,7 @@ enum token_types {
404
436
  PAIR_UL,
405
437
  PAIR_BRACES,
406
438
 
439
+ MARKUP,
407
440
  STAR,
408
441
  UL,
409
442
  EMPH_START,
@@ -422,6 +455,8 @@ enum token_types {
422
455
 
423
456
  PAREN_LEFT,
424
457
  PAREN_RIGHT,
458
+ PAREN_LINK_LEFT,
459
+ PAREN_LINK_RIGHT,
425
460
 
426
461
  ANGLE_LEFT,
427
462
  ANGLE_RIGHT,
@@ -433,6 +468,7 @@ enum token_types {
433
468
  AMPERSAND_LONG,
434
469
  APOSTROPHE,
435
470
  BACKTICK,
471
+ CODE_FENCE_LINE,
436
472
  CODE_FENCE,
437
473
  COLON,
438
474
  DASH_M,
@@ -485,14 +521,19 @@ enum token_types {
485
521
  MARKER_H4,
486
522
  MARKER_H5,
487
523
  MARKER_H6,
524
+ MARKER_SETEXT_1,
525
+ MARKER_SETEXT_2,
488
526
  MARKER_LIST_BULLET,
489
527
  MARKER_LIST_ENUMERATOR,
528
+ MARKER_DEFLIST_COLON,
490
529
 
491
530
  TABLE_ROW,
492
531
  TABLE_CELL,
493
532
  TABLE_DIVIDER,
494
533
 
495
534
  TOC,
535
+ TOC_SINGLE,
536
+ TOC_RANGE,
496
537
 
497
538
  TEXT_BACKSLASH,
498
539
  RAW_FILTER_LEFT,
@@ -510,6 +551,8 @@ enum token_types {
510
551
  TEXT_PLAIN,
511
552
 
512
553
  MANUAL_LABEL,
554
+
555
+ OBJECT_REPLACEMENT_CHARACTER,
513
556
  };
514
557
 
515
558
 
@@ -536,7 +579,9 @@ enum output_format {
536
579
  FORMAT_TEXTBUNDLE,
537
580
  FORMAT_TEXTBUNDLE_COMPRESSED,
538
581
  FORMAT_OPML,
582
+ FORMAT_ITMZ,
539
583
  FORMAT_MMD,
584
+ FORMAT_HTML_WITH_ASSETS
540
585
  };
541
586
 
542
587
 
@@ -556,6 +601,8 @@ enum parser_extensions {
556
601
  EXT_RANDOM_FOOT = 1 << 12, //!< Use random numbers for footnote links
557
602
  EXT_TRANSCLUDE = 1 << 13, //!< Perform transclusion(s)
558
603
  EXT_PARSE_OPML = 1 << 14, //!< Convert from OPML before processing source text
604
+ EXT_PARSE_ITMZ = 1 << 15, //!< Convert from ITMZ (iThoughts) before processing source text
605
+ EXT_RANDOM_LABELS = 1 << 16, //!< Use random numbers for header labels (unless manually defined)
559
606
  EXT_FAKE = 1 << 31, //!< 31 is highest number allowed
560
607
  };
561
608