rmultimarkdown 6.4.0.3 → 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.
- checksums.yaml +5 -5
- data/Rakefile +7 -13
- data/ext/Makefile +67 -55
- data/ext/extconf.rb +8 -6
- data/ext/mmd/aho-corasick.c +8 -8
- data/ext/mmd/aho-corasick.h +3 -3
- data/ext/mmd/argtable3.c +6537 -0
- data/ext/mmd/argtable3.h +273 -0
- data/ext/mmd/beamer.c +12 -1
- data/ext/mmd/char.c +120 -27
- data/ext/mmd/char.h +23 -23
- data/ext/mmd/critic_markup.c +7 -6
- data/ext/mmd/d_string.c +88 -32
- data/ext/mmd/{include/d_string.h → d_string.h} +50 -38
- data/ext/mmd/epub.c +36 -12
- data/ext/mmd/epub.h +2 -2
- data/ext/mmd/file.c +50 -40
- data/ext/mmd/file.h +2 -2
- data/ext/mmd/html.c +164 -99
- data/ext/mmd/html.h +3 -2
- data/ext/mmd/i18n.h +15 -11
- data/ext/mmd/itmz-lexer.c +16978 -0
- data/ext/mmd/itmz-lexer.h +132 -0
- data/ext/mmd/itmz-parser.c +1189 -0
- data/ext/mmd/itmz-parser.h +11 -0
- data/ext/mmd/itmz-reader.c +388 -0
- data/ext/mmd/itmz-reader.h +111 -0
- data/ext/mmd/itmz.c +567 -0
- data/ext/mmd/itmz.h +117 -0
- data/ext/mmd/latex.c +93 -41
- data/ext/mmd/lexer.c +3506 -2774
- data/ext/mmd/{include/libMultiMarkdown.h → libMultiMarkdown.h} +49 -2
- data/ext/mmd/main.c +612 -0
- data/ext/mmd/memoir.c +4 -1
- data/ext/mmd/miniz.c +6905 -6680
- data/ext/mmd/miniz.h +456 -476
- data/ext/mmd/mmd.c +399 -94
- data/ext/mmd/mmd.h +25 -25
- data/ext/mmd/object_pool.h +3 -3
- data/ext/mmd/opendocument-content.c +137 -69
- data/ext/mmd/opendocument-content.h +2 -2
- data/ext/mmd/opendocument.c +35 -14
- data/ext/mmd/opendocument.h +2 -2
- data/ext/mmd/opml-lexer.c +259 -637
- data/ext/mmd/opml-lexer.h +1 -17
- data/ext/mmd/opml-parser.c +194 -188
- data/ext/mmd/opml-reader.c +72 -142
- data/ext/mmd/opml-reader.h +1 -1
- data/ext/mmd/opml.c +13 -13
- data/ext/mmd/opml.h +1 -1
- data/ext/mmd/parser.c +1623 -1244
- data/ext/mmd/rng.c +8 -3
- data/ext/mmd/scanners.c +66625 -103198
- data/ext/mmd/scanners.h +1 -0
- data/ext/mmd/stack.c +62 -20
- data/ext/mmd/stack.h +10 -21
- data/ext/mmd/textbundle.c +23 -7
- data/ext/mmd/textbundle.h +2 -2
- data/ext/mmd/token.c +42 -16
- data/ext/mmd/{include/token.h → token.h} +22 -8
- data/ext/mmd/token_pairs.c +0 -16
- data/ext/mmd/transclude.c +6 -2
- data/ext/mmd/uthash.h +745 -745
- data/ext/mmd/version.h +8 -8
- data/ext/mmd/writer.c +225 -63
- data/ext/mmd/writer.h +50 -36
- data/ext/mmd/xml.c +855 -0
- data/ext/mmd/xml.h +134 -0
- data/ext/mmd/zip.c +71 -4
- data/ext/mmd/zip.h +7 -1
- data/ext/ruby_multi_markdown.c +9 -18
- data/lib/multi_markdown/version.rb +1 -1
- data/lib/multi_markdown.bundle +0 -0
- data/rmultimarkdown.gemspec +0 -2
- metadata +22 -28
- data/ext/mmd/char_lookup.c +0 -212
data/ext/mmd/writer.h
CHANGED
|
@@ -60,20 +60,27 @@
|
|
|
60
60
|
#include "CuTest.h"
|
|
61
61
|
#endif
|
|
62
62
|
|
|
63
|
-
#include "
|
|
63
|
+
#include "libMultiMarkdown.h"
|
|
64
|
+
#include "uthash.h"
|
|
65
|
+
|
|
66
|
+
/*
|
|
67
|
+
#include "d_string.h"
|
|
64
68
|
#include "mmd.h"
|
|
65
69
|
#include "stack.h"
|
|
66
70
|
#include "token.h"
|
|
67
71
|
#include "uthash.h"
|
|
68
|
-
|
|
72
|
+
*/
|
|
69
73
|
|
|
70
74
|
#define kMaxExportRecursiveDepth 1000 //!< Maximum recursion depth when exporting token tree -- to prevent stack overflow with "pathologic" input
|
|
71
75
|
|
|
72
76
|
#define kMaxTableColumns 48 //!< Maximum number of table columns for specifying alignment
|
|
73
77
|
|
|
78
|
+
typedef struct asset asset;
|
|
79
|
+
typedef struct stack stack;
|
|
80
|
+
|
|
74
81
|
typedef struct {
|
|
75
|
-
struct link
|
|
76
|
-
struct meta
|
|
82
|
+
struct link * link_hash;
|
|
83
|
+
struct meta * meta_hash;
|
|
77
84
|
|
|
78
85
|
unsigned long extensions;
|
|
79
86
|
short output_format;
|
|
@@ -83,26 +90,29 @@ typedef struct {
|
|
|
83
90
|
short skip_token;
|
|
84
91
|
|
|
85
92
|
short footnote_para_counter;
|
|
86
|
-
stack
|
|
87
|
-
stack
|
|
93
|
+
stack * used_footnotes;
|
|
94
|
+
stack * inline_footnotes_to_free;
|
|
88
95
|
struct fn_holder * footnote_hash;
|
|
89
96
|
short footnote_being_printed;
|
|
90
97
|
|
|
91
98
|
int random_seed_base;
|
|
92
99
|
|
|
93
|
-
|
|
94
|
-
|
|
100
|
+
int random_seed_base_labels;
|
|
101
|
+
int label_counter;
|
|
102
|
+
|
|
103
|
+
stack * used_citations;
|
|
104
|
+
stack * inline_citations_to_free;
|
|
95
105
|
struct fn_holder * citation_hash;
|
|
96
106
|
short citation_being_printed;
|
|
97
|
-
char
|
|
107
|
+
char * bibtex_file;
|
|
98
108
|
|
|
99
|
-
stack
|
|
100
|
-
stack
|
|
109
|
+
stack * used_glossaries;
|
|
110
|
+
stack * inline_glossaries_to_free;
|
|
101
111
|
struct fn_holder * glossary_hash;
|
|
102
112
|
short glossary_being_printed;
|
|
103
113
|
|
|
104
|
-
stack
|
|
105
|
-
stack
|
|
114
|
+
stack * used_abbreviations;
|
|
115
|
+
stack * inline_abbreviations_to_free;
|
|
106
116
|
struct fn_holder * abbreviation_hash;
|
|
107
117
|
|
|
108
118
|
short language;
|
|
@@ -110,9 +120,9 @@ typedef struct {
|
|
|
110
120
|
|
|
111
121
|
short base_header_level;
|
|
112
122
|
|
|
113
|
-
stack
|
|
123
|
+
stack * header_stack;
|
|
114
124
|
|
|
115
|
-
stack
|
|
125
|
+
stack * outline_stack;
|
|
116
126
|
short opml_item_closed;
|
|
117
127
|
|
|
118
128
|
short recurse_depth;
|
|
@@ -124,27 +134,29 @@ typedef struct {
|
|
|
124
134
|
|
|
125
135
|
short odf_para_type;
|
|
126
136
|
|
|
127
|
-
struct asset
|
|
137
|
+
struct asset * asset_hash;
|
|
128
138
|
short store_assets;
|
|
129
139
|
short remember_assets;
|
|
140
|
+
|
|
141
|
+
stack * critic_stack;
|
|
130
142
|
} scratch_pad;
|
|
131
143
|
|
|
132
144
|
|
|
133
145
|
struct attr {
|
|
134
|
-
char
|
|
135
|
-
char
|
|
136
|
-
struct attr
|
|
146
|
+
char * key;
|
|
147
|
+
char * value;
|
|
148
|
+
struct attr * next;
|
|
137
149
|
};
|
|
138
150
|
|
|
139
151
|
typedef struct attr attr;
|
|
140
152
|
|
|
141
153
|
struct link {
|
|
142
|
-
token
|
|
143
|
-
char
|
|
144
|
-
char
|
|
145
|
-
char
|
|
146
|
-
char
|
|
147
|
-
attr
|
|
154
|
+
token * label;
|
|
155
|
+
char * label_text;
|
|
156
|
+
char * clean_text;
|
|
157
|
+
char * url;
|
|
158
|
+
char * title;
|
|
159
|
+
attr * attributes;
|
|
148
160
|
short flags;
|
|
149
161
|
UT_hash_handle hh;
|
|
150
162
|
};
|
|
@@ -159,10 +171,10 @@ enum link_flags {
|
|
|
159
171
|
typedef struct link link;
|
|
160
172
|
|
|
161
173
|
struct footnote {
|
|
162
|
-
token
|
|
163
|
-
char
|
|
164
|
-
char
|
|
165
|
-
token
|
|
174
|
+
token * label;
|
|
175
|
+
char * label_text;
|
|
176
|
+
char * clean_text;
|
|
177
|
+
token * content;
|
|
166
178
|
size_t count;
|
|
167
179
|
bool free_para;
|
|
168
180
|
|
|
@@ -172,15 +184,15 @@ struct footnote {
|
|
|
172
184
|
typedef struct footnote footnote;
|
|
173
185
|
|
|
174
186
|
struct fn_holder {
|
|
175
|
-
footnote
|
|
187
|
+
footnote * note;
|
|
176
188
|
UT_hash_handle hh;
|
|
177
189
|
};
|
|
178
190
|
|
|
179
191
|
typedef struct fn_holder fn_holder;
|
|
180
192
|
|
|
181
193
|
struct meta {
|
|
182
|
-
char
|
|
183
|
-
char
|
|
194
|
+
char * key;
|
|
195
|
+
char * value;
|
|
184
196
|
size_t start;
|
|
185
197
|
UT_hash_handle hh;
|
|
186
198
|
};
|
|
@@ -188,9 +200,9 @@ struct meta {
|
|
|
188
200
|
typedef struct meta meta;
|
|
189
201
|
|
|
190
202
|
struct abbr {
|
|
191
|
-
char
|
|
203
|
+
char * abbr;
|
|
192
204
|
size_t abbr_len;
|
|
193
|
-
char
|
|
205
|
+
char * expansion;
|
|
194
206
|
size_t expansion_len;
|
|
195
207
|
UT_hash_handle hh;
|
|
196
208
|
};
|
|
@@ -219,7 +231,7 @@ void link_free(link * l);
|
|
|
219
231
|
void footnote_free(footnote * f);
|
|
220
232
|
|
|
221
233
|
char * label_from_token(const char * source, token * t);
|
|
222
|
-
char * label_from_header(const char * source, token * t);
|
|
234
|
+
char * label_from_header(const char * source, token * t, scratch_pad * scratch);
|
|
223
235
|
|
|
224
236
|
void parse_brackets(const char * source, scratch_pad * scratch, token * bracket, link ** link, short * skip_token, bool * free_link);
|
|
225
237
|
|
|
@@ -255,10 +267,12 @@ token * manual_label_from_header(token * h, const char * source);
|
|
|
255
267
|
|
|
256
268
|
char * label_from_string(const char * str);
|
|
257
269
|
|
|
258
|
-
char * clean_string(const char * str, bool lowercase);
|
|
270
|
+
char * clean_string(const char * str, bool lowercase, bool clean_url);
|
|
259
271
|
|
|
260
272
|
short raw_level_for_header(token * header);
|
|
261
273
|
|
|
274
|
+
void header_clean_trailing_whitespace(token * header, const char * source);
|
|
275
|
+
|
|
262
276
|
void store_asset(scratch_pad * scratch_pad, char * url);
|
|
263
277
|
asset * extract_asset(scratch_pad * scratch, char * url);
|
|
264
278
|
void asset_free(asset * a);
|