A Markdown shard for the Crystal programming language
Révision | 2d1f5ddddd16e49486c4056f692ae3c81f408d30 (tree) |
---|---|
l'heure | 2023-04-08 11:40:34 |
Auteur | supercell <stigma@disr...> |
Commiter | supercell |
Some cleanup and fixes for Crystal 1.0.0
@@ -141,7 +141,7 @@ puts Luce.to_html("nyan", inline_syntaxes: syntaxes) | ||
141 | 141 | ## HTML sanitization |
142 | 142 | |
143 | 143 | This package offers no features in the way of HTML sanitization. |
144 | -Read Read Estevão Soares dos Santos's great article, | |
144 | +Read Estevão Soares dos Santos's great article, | |
145 | 145 | ["Markdown's XSS Vulnerability (and how to mitigate it)"](https://github.com/showdownjs/showdown/wiki/Markdown%27s-XSS-Vulnerability-(and-how-to-mitigate-it)), |
146 | 146 | to learn more. |
147 | 147 |
@@ -16,10 +16,6 @@ module Luce | ||
16 | 16 | EmailAutoLinkSyntax.new, |
17 | 17 | AutolinkSyntax.new, |
18 | 18 | LineBreakSyntax.new, |
19 | - # "*" surrounded by spaces is left alone | |
20 | - TextSyntax.new(%q( \* ), start_character: Charcode::SPACE), | |
21 | - # "_" surrounded by spaces is left alone | |
22 | - TextSyntax.new(%q( _ ), start_character: Charcode::SPACE), | |
23 | 19 | # Parse "**strong**" and "*emphasis*" tags. |
24 | 20 | EmphasisSyntax.asterisk, |
25 | 21 | # Parse "__strong__" and "_emphasis_" tags. |
@@ -30,19 +26,13 @@ module Luce | ||
30 | 26 | # resolver. |
31 | 27 | ] |
32 | 28 | |
33 | - @@html_syntaxes = [ | |
34 | - # Leave already-encoded HTML entities alone. Ensures we don't | |
35 | - # turn "&" into "&&" | |
36 | - TextSyntax.new(%q(&[#a-zA-Z0-9]*;), start_character: Charcode::AMPERSAND), | |
37 | - ] of InlineSyntax | |
38 | - | |
39 | 29 | # The string of Markdown being parsed |
40 | 30 | getter source : String |
41 | 31 | |
42 | 32 | # The Markdown document this parser is parsing |
43 | 33 | getter document : Document |
44 | 34 | |
45 | - getter syntaxes : Array(InlineSyntax) = [] of InlineSyntax | |
35 | + getter syntaxes = [] of InlineSyntax | |
46 | 36 | |
47 | 37 | # The current read position |
48 | 38 | property pos : Int32 = 0 |
@@ -85,8 +75,12 @@ module Luce | ||
85 | 75 | @syntaxes.concat @@default_syntaxes |
86 | 76 | end |
87 | 77 | |
88 | - @syntaxes << EscapeHTMLSyntax.new if encode_html? | |
89 | - @syntaxes.concat @@html_syntaxes if encode_html? | |
78 | + if encode_html? | |
79 | + @syntaxes << EscapeHTMLSyntax.new | |
80 | + # Leave already-encoded HTML entities alone. Ensures we don't turn | |
81 | + # "&" into "&amp;" | |
82 | + @syntaxes << TextSyntax.new("&[#a-zA-Z0-9]*;", start_character: Charcode::AMPERSAND) | |
83 | + end | |
90 | 84 | end |
91 | 85 | |
92 | 86 | def parse : Array(Node) |
@@ -7,28 +7,28 @@ | ||
7 | 7 | module Luce |
8 | 8 | # Matches autolinks like `http://foo.com` and `foo@bar.com` |
9 | 9 | class AutolinkExtensionSyntax < InlineSyntax |
10 | - @@link_pattern = "" + | |
11 | - # Autolinks can only come at the beginning of a line, after whitespace, | |
12 | - # or any of the delimiting characters *, _, ~, and (. | |
13 | - %q{(?<=^|[\s*_~(>])} + | |
14 | - # An extended url autolink will be recognised when one of the schemes | |
15 | - # http://, or https://, followed by a valid domain. See | |
16 | - # https://github.github.com/gfm/#extended-url-autolink. | |
17 | - %q{(?:(?:https?|ftp):\/\/|www\.)} + | |
18 | - # A valid domain consists of segments of alphanumeric characters, | |
19 | - # underscores (_) and hyphens (-) separated by periods (.). There must | |
20 | - # be at least one period, and no underscores may be present in the last | |
21 | - # two segments of the domain. See | |
22 | - # https://github.github.com/gfm/#valid-domain | |
23 | - %q{(?:[-_a-z0-9]+\.)*(?:[-a-z0-9]+\.[-a-z0-9]+)} + | |
24 | - # After a valid domain, zero or more non-space non-< characters may | |
25 | - # follow | |
26 | - %q{[^\s<]*} + | |
27 | - # Trailing punctuation (specifically, ?, !, ., ,, :, *, _, and ~) will | |
28 | - # not be considered part of the autolink, though they may be included in | |
29 | - # the interior of the link. See | |
30 | - # https://github.github.com/gfm/#extended-autolink-path-validation. | |
31 | - "(?<![?!.,:*_~])" | |
10 | + @@link_pattern : String = "" + | |
11 | + # Autolinks can only come at the beginning of a line, after whitespace, | |
12 | + # or any of the delimiting characters *, _, ~, and (. | |
13 | + %q{(?<=^|[\s*_~(>])} + | |
14 | + # An extended url autolink will be recognised when one of the schemes | |
15 | + # http://, or https://, followed by a valid domain. See | |
16 | + # https://github.github.com/gfm/#extended-url-autolink. | |
17 | + %q{(?:(?:https?|ftp):\/\/|www\.)} + | |
18 | + # A valid domain consists of segments of alphanumeric characters, | |
19 | + # underscores (_) and hyphens (-) separated by periods (.). There must | |
20 | + # be at least one period, and no underscores may be present in the last | |
21 | + # two segments of the domain. See | |
22 | + # https://github.github.com/gfm/#valid-domain | |
23 | + %q{(?:[-_a-z0-9]+\.)*(?:[-a-z0-9]+\.[-a-z0-9]+)} + | |
24 | + # After a valid domain, zero or more non-space non-< characters may | |
25 | + # follow | |
26 | + %q{[^\s<]*} + | |
27 | + # Trailing punctuation (specifically, ?, !, ., ,, :, *, _, and ~) will | |
28 | + # not be considered part of the autolink, though they may be included in | |
29 | + # the interior of the link. See | |
30 | + # https://github.github.com/gfm/#extended-autolink-path-validation. | |
31 | + "(?<![?!.,:*_~])" | |
32 | 32 | |
33 | 33 | # An extended email autolink, see |
34 | 34 | # https://github.github.com/gfm/#extended-email-autolink |
@@ -18,14 +18,13 @@ module Luce | ||
18 | 18 | def on_match(parser : InlineParser, match : Regex::MatchData) : Bool |
19 | 19 | chars = match.match |
20 | 20 | |
21 | - if %{&"<>}.includes?(match[1].not_nil!) && parser.encode_html? | |
22 | - text = Luce.escape_html(match[1].not_nil!) | |
23 | - parser.add_node(Text.new(text)) | |
24 | - true | |
25 | - else | |
26 | - parser.add_node(Text.new(chars[1].to_s)) | |
27 | - true | |
28 | - end | |
21 | + text = if %{&"<>}.includes?(match[1].not_nil!) && parser.encode_html? | |
22 | + Luce.escape_html(match[1].not_nil!) | |
23 | + else | |
24 | + chars[1].to_s | |
25 | + end | |
26 | + parser.add_node(Text.new(text)) | |
27 | + true | |
29 | 28 | end |
30 | 29 | end |
31 | 30 | end |
@@ -136,7 +136,7 @@ module Luce | ||
136 | 136 | unless decimal_number.nil? |
137 | 137 | decimal_value = Int32.new(decimal_number) |
138 | 138 | hex_value = if decimal_value < 1_114_112 && decimal_value > 1 |
139 | - Int32.new(decimal_value.to_s(16), base: 16) | |
139 | + decimal_value.to_s(16).to_i32(16) | |
140 | 140 | else |
141 | 141 | 0xFFFD |
142 | 142 | end |
@@ -147,7 +147,7 @@ module Luce | ||
147 | 147 | # Hexadecimal numeric character references, see |
148 | 148 | # https://spec.commonmark.org/0.30/#hexadecimal-numeric-character-references. |
149 | 149 | unless hexadecimal_number.nil? |
150 | - hex_value = Int32.new(hexadecimal_number, base: 16) | |
150 | + hex_value = hexadecimal_number.to_i32(16) | |
151 | 151 | hex_value = 0xFFFd if hex_value > 0x10FFFF || hex_value == 0 |
152 | 152 | return hex_value.chr.to_s |
153 | 153 | end |
@@ -275,14 +275,14 @@ class Regex < Reference | ||
275 | 275 | raise IndexError.new("*start* is less than 0") if start < 0 |
276 | 276 | raise IndexError.new("*start* is greater than *string* size") if start > string.size |
277 | 277 | matches = [] of Regex::MatchData |
278 | - offset = start | |
278 | + offset : Int32 = start | |
279 | 279 | |
280 | 280 | loop do |
281 | 281 | _match = self.match(string, offset) |
282 | 282 | break if _match.nil? |
283 | 283 | matches << _match |
284 | 284 | # account for empty spaces |
285 | - offset = (_match[0].size == 0 ? offset + 1 : _match.end) | |
285 | + offset = _match.match.size == 0 ? offset + 1 : _match.end.not_nil! | |
286 | 286 | end |
287 | 287 | matches |
288 | 288 | end |
@@ -1,75 +1,4 @@ | ||
1 | 1 | { |
2 | - "Tabs": { | |
3 | - "1": "strict", | |
4 | - "2": "strict", | |
5 | - "3": "strict", | |
6 | - "4": "strict", | |
7 | - "5": "strict", | |
8 | - "6": "loose", | |
9 | - "7": "loose", | |
10 | - "8": "strict", | |
11 | - "9": "strict", | |
12 | - "10": "strict", | |
13 | - "11": "strict" | |
14 | - }, | |
15 | - "Backslash escapes": { | |
16 | - "12": "strict", | |
17 | - "13": "strict", | |
18 | - "14": "strict", | |
19 | - "15": "strict", | |
20 | - "16": "strict", | |
21 | - "17": "strict", | |
22 | - "18": "strict", | |
23 | - "19": "strict", | |
24 | - "20": "strict", | |
25 | - "21": "strict", | |
26 | - "22": "strict", | |
27 | - "23": "strict", | |
28 | - "24": "strict" | |
29 | - }, | |
30 | - "Entity and numeric character references": { | |
31 | - "25": "loose", | |
32 | - "26": "strict", | |
33 | - "27": "strict", | |
34 | - "28": "strict", | |
35 | - "29": "strict", | |
36 | - "30": "strict", | |
37 | - "31": "strict", | |
38 | - "32": "strict", | |
39 | - "33": "strict", | |
40 | - "34": "strict", | |
41 | - "35": "strict", | |
42 | - "36": "strict", | |
43 | - "37": "strict", | |
44 | - "38": "strict", | |
45 | - "39": "strict", | |
46 | - "40": "loose", | |
47 | - "41": "strict" | |
48 | - }, | |
49 | - "Precedence": { | |
50 | - "42": "strict" | |
51 | - }, | |
52 | - "Thematic breaks": { | |
53 | - "43": "strict", | |
54 | - "44": "strict", | |
55 | - "45": "strict", | |
56 | - "46": "strict", | |
57 | - "47": "strict", | |
58 | - "48": "strict", | |
59 | - "49": "strict", | |
60 | - "50": "strict", | |
61 | - "51": "strict", | |
62 | - "52": "strict", | |
63 | - "53": "strict", | |
64 | - "54": "strict", | |
65 | - "55": "strict", | |
66 | - "56": "strict", | |
67 | - "57": "strict", | |
68 | - "58": "strict", | |
69 | - "59": "strict", | |
70 | - "60": "strict", | |
71 | - "61": "strict" | |
72 | - }, | |
73 | 2 | "ATX headings": { |
74 | 3 | "62": "strict", |
75 | 4 | "63": "strict", |
@@ -90,164 +19,41 @@ | ||
90 | 19 | "78": "strict", |
91 | 20 | "79": "fail" |
92 | 21 | }, |
93 | - "Setext headings": { | |
94 | - "80": "strict", | |
95 | - "81": "strict", | |
96 | - "82": "loose", | |
97 | - "83": "strict", | |
98 | - "84": "loose", | |
99 | - "85": "strict", | |
100 | - "86": "strict", | |
101 | - "87": "strict", | |
102 | - "88": "strict", | |
103 | - "89": "strict", | |
104 | - "90": "strict", | |
105 | - "91": "strict", | |
106 | - "92": "strict", | |
107 | - "93": "fail", | |
108 | - "94": "strict", | |
109 | - "95": "strict", | |
110 | - "96": "strict", | |
111 | - "97": "strict", | |
112 | - "98": "strict", | |
113 | - "99": "strict", | |
114 | - "100": "strict", | |
115 | - "101": "strict", | |
116 | - "102": "strict", | |
117 | - "103": "strict", | |
118 | - "104": "strict", | |
119 | - "105": "strict", | |
120 | - "106": "strict" | |
121 | - }, | |
122 | - "Indented code blocks": { | |
123 | - "107": "strict", | |
124 | - "108": "strict", | |
125 | - "109": "strict", | |
126 | - "110": "strict", | |
127 | - "111": "fail", | |
128 | - "112": "strict", | |
129 | - "113": "strict", | |
130 | - "114": "strict", | |
131 | - "115": "strict", | |
132 | - "116": "strict", | |
133 | - "117": "loose", | |
134 | - "118": "strict" | |
135 | - }, | |
136 | - "Fenced code blocks": { | |
137 | - "119": "strict", | |
138 | - "120": "strict", | |
139 | - "121": "strict", | |
140 | - "122": "strict", | |
141 | - "123": "strict", | |
142 | - "124": "strict", | |
143 | - "125": "strict", | |
144 | - "126": "strict", | |
145 | - "127": "strict", | |
146 | - "128": "strict", | |
147 | - "129": "strict", | |
148 | - "130": "strict", | |
149 | - "131": "strict", | |
150 | - "132": "strict", | |
151 | - "133": "strict", | |
152 | - "134": "strict", | |
153 | - "135": "strict", | |
154 | - "136": "strict", | |
155 | - "137": "strict", | |
156 | - "138": "strict", | |
157 | - "139": "strict", | |
158 | - "140": "strict", | |
159 | - "141": "strict", | |
160 | - "142": "strict", | |
161 | - "143": "strict", | |
162 | - "144": "strict", | |
163 | - "145": "strict", | |
164 | - "146": "strict", | |
165 | - "147": "strict" | |
166 | - }, | |
167 | - "HTML blocks": { | |
168 | - "148": "fail", | |
169 | - "149": "strict", | |
170 | - "150": "strict", | |
171 | - "151": "strict", | |
172 | - "152": "fail", | |
173 | - "153": "strict", | |
174 | - "154": "strict", | |
175 | - "155": "strict", | |
176 | - "156": "strict", | |
177 | - "157": "strict", | |
178 | - "158": "strict", | |
179 | - "159": "strict", | |
180 | - "160": "strict", | |
181 | - "161": "strict", | |
182 | - "162": "strict", | |
183 | - "163": "strict", | |
184 | - "164": "strict", | |
185 | - "165": "strict", | |
186 | - "166": "strict", | |
187 | - "167": "fail", | |
188 | - "168": "strict", | |
189 | - "169": "strict", | |
190 | - "170": "strict", | |
191 | - "171": "strict", | |
192 | - "172": "strict", | |
193 | - "173": "strict", | |
194 | - "174": "fail", | |
195 | - "175": "fail", | |
196 | - "176": "strict", | |
197 | - "177": "strict", | |
198 | - "178": "strict", | |
199 | - "179": "strict", | |
200 | - "180": "strict", | |
201 | - "181": "strict", | |
202 | - "182": "strict", | |
203 | - "183": "strict", | |
204 | - "184": "strict", | |
205 | - "185": "loose", | |
206 | - "186": "strict", | |
207 | - "187": "strict", | |
208 | - "188": "fail", | |
209 | - "189": "strict", | |
210 | - "190": "strict", | |
211 | - "191": "loose" | |
212 | - }, | |
213 | - "Link reference definitions": { | |
214 | - "192": "strict", | |
215 | - "193": "strict", | |
216 | - "194": "strict", | |
217 | - "195": "fail", | |
218 | - "196": "strict", | |
219 | - "197": "strict", | |
220 | - "198": "strict", | |
221 | - "199": "strict", | |
222 | - "200": "fail", | |
223 | - "201": "fail", | |
224 | - "202": "fail", | |
225 | - "203": "strict", | |
226 | - "204": "strict", | |
227 | - "205": "strict", | |
228 | - "206": "strict", | |
229 | - "207": "loose", | |
230 | - "208": "strict", | |
231 | - "209": "strict", | |
232 | - "210": "strict", | |
233 | - "211": "strict", | |
234 | - "212": "strict", | |
235 | - "213": "strict", | |
236 | - "214": "strict", | |
237 | - "215": "fail", | |
238 | - "216": "fail", | |
239 | - "217": "strict", | |
240 | - "218": "strict" | |
22 | + "Autolinks": { | |
23 | + "593": "strict", | |
24 | + "594": "strict", | |
25 | + "595": "strict", | |
26 | + "596": "strict", | |
27 | + "597": "strict", | |
28 | + "598": "strict", | |
29 | + "599": "strict", | |
30 | + "600": "strict", | |
31 | + "601": "strict", | |
32 | + "602": "strict", | |
33 | + "603": "strict", | |
34 | + "604": "strict", | |
35 | + "605": "strict", | |
36 | + "606": "strict", | |
37 | + "607": "strict", | |
38 | + "608": "strict", | |
39 | + "609": "strict", | |
40 | + "610": "strict", | |
41 | + "611": "strict" | |
241 | 42 | }, |
242 | - "Paragraphs": { | |
243 | - "219": "strict", | |
244 | - "220": "strict", | |
245 | - "221": "strict", | |
246 | - "222": "strict", | |
247 | - "223": "strict", | |
248 | - "224": "strict", | |
249 | - "225": "strict", | |
250 | - "226": "strict" | |
43 | + "Backslash escapes": { | |
44 | + "12": "strict", | |
45 | + "13": "strict", | |
46 | + "14": "strict", | |
47 | + "15": "strict", | |
48 | + "16": "strict", | |
49 | + "17": "strict", | |
50 | + "18": "strict", | |
51 | + "19": "strict", | |
52 | + "20": "strict", | |
53 | + "21": "strict", | |
54 | + "22": "strict", | |
55 | + "23": "strict", | |
56 | + "24": "strict" | |
251 | 57 | }, |
252 | 58 | "Blank lines": { |
253 | 59 | "227": "strict" |
@@ -279,87 +85,6 @@ | ||
279 | 85 | "251": "strict", |
280 | 86 | "252": "strict" |
281 | 87 | }, |
282 | - "List items": { | |
283 | - "253": "strict", | |
284 | - "254": "strict", | |
285 | - "255": "strict", | |
286 | - "256": "strict", | |
287 | - "257": "strict", | |
288 | - "258": "strict", | |
289 | - "259": "strict", | |
290 | - "260": "strict", | |
291 | - "261": "strict", | |
292 | - "262": "fail", | |
293 | - "263": "strict", | |
294 | - "264": "fail", | |
295 | - "265": "strict", | |
296 | - "266": "strict", | |
297 | - "267": "strict", | |
298 | - "268": "strict", | |
299 | - "269": "strict", | |
300 | - "270": "strict", | |
301 | - "271": "strict", | |
302 | - "272": "strict", | |
303 | - "273": "strict", | |
304 | - "274": "strict", | |
305 | - "275": "strict", | |
306 | - "276": "strict", | |
307 | - "277": "strict", | |
308 | - "278": "strict", | |
309 | - "279": "strict", | |
310 | - "280": "fail", | |
311 | - "281": "strict", | |
312 | - "282": "strict", | |
313 | - "283": "strict", | |
314 | - "284": "strict", | |
315 | - "285": "strict", | |
316 | - "286": "strict", | |
317 | - "287": "strict", | |
318 | - "288": "strict", | |
319 | - "289": "strict", | |
320 | - "290": "strict", | |
321 | - "291": "strict", | |
322 | - "292": "strict", | |
323 | - "293": "strict", | |
324 | - "294": "strict", | |
325 | - "295": "strict", | |
326 | - "296": "strict", | |
327 | - "297": "strict", | |
328 | - "298": "strict", | |
329 | - "299": "strict", | |
330 | - "300": "loose" | |
331 | - }, | |
332 | - "Lists": { | |
333 | - "301": "strict", | |
334 | - "302": "strict", | |
335 | - "303": "strict", | |
336 | - "304": "fail", | |
337 | - "305": "strict", | |
338 | - "306": "fail", | |
339 | - "307": "fail", | |
340 | - "308": "loose", | |
341 | - "309": "loose", | |
342 | - "310": "strict", | |
343 | - "311": "strict", | |
344 | - "312": "strict", | |
345 | - "313": "strict", | |
346 | - "314": "strict", | |
347 | - "315": "strict", | |
348 | - "316": "strict", | |
349 | - "317": "fail", | |
350 | - "318": "fail", | |
351 | - "319": "strict", | |
352 | - "320": "strict", | |
353 | - "321": "strict", | |
354 | - "322": "strict", | |
355 | - "323": "strict", | |
356 | - "324": "strict", | |
357 | - "325": "strict", | |
358 | - "326": "strict" | |
359 | - }, | |
360 | - "Inlines": { | |
361 | - "327": "strict" | |
362 | - }, | |
363 | 88 | "Code spans": { |
364 | 89 | "328": "strict", |
365 | 90 | "329": "strict", |
@@ -517,6 +242,189 @@ | ||
517 | 242 | "479": "strict", |
518 | 243 | "480": "strict" |
519 | 244 | }, |
245 | + "Entity and numeric character references": { | |
246 | + "25": "loose", | |
247 | + "26": "strict", | |
248 | + "27": "strict", | |
249 | + "28": "strict", | |
250 | + "29": "strict", | |
251 | + "30": "strict", | |
252 | + "31": "strict", | |
253 | + "32": "strict", | |
254 | + "33": "strict", | |
255 | + "34": "strict", | |
256 | + "35": "strict", | |
257 | + "36": "strict", | |
258 | + "37": "strict", | |
259 | + "38": "strict", | |
260 | + "39": "strict", | |
261 | + "40": "loose", | |
262 | + "41": "strict" | |
263 | + }, | |
264 | + "Fenced code blocks": { | |
265 | + "119": "strict", | |
266 | + "120": "strict", | |
267 | + "121": "strict", | |
268 | + "122": "strict", | |
269 | + "123": "strict", | |
270 | + "124": "strict", | |
271 | + "125": "strict", | |
272 | + "126": "strict", | |
273 | + "127": "strict", | |
274 | + "128": "strict", | |
275 | + "129": "strict", | |
276 | + "130": "strict", | |
277 | + "131": "strict", | |
278 | + "132": "strict", | |
279 | + "133": "strict", | |
280 | + "134": "strict", | |
281 | + "135": "strict", | |
282 | + "136": "strict", | |
283 | + "137": "strict", | |
284 | + "138": "strict", | |
285 | + "139": "strict", | |
286 | + "140": "strict", | |
287 | + "141": "strict", | |
288 | + "142": "strict", | |
289 | + "143": "strict", | |
290 | + "144": "strict", | |
291 | + "145": "strict", | |
292 | + "146": "strict", | |
293 | + "147": "strict" | |
294 | + }, | |
295 | + "HTML blocks": { | |
296 | + "148": "fail", | |
297 | + "149": "strict", | |
298 | + "150": "strict", | |
299 | + "151": "strict", | |
300 | + "152": "fail", | |
301 | + "153": "strict", | |
302 | + "154": "strict", | |
303 | + "155": "strict", | |
304 | + "156": "strict", | |
305 | + "157": "strict", | |
306 | + "158": "strict", | |
307 | + "159": "strict", | |
308 | + "160": "strict", | |
309 | + "161": "strict", | |
310 | + "162": "strict", | |
311 | + "163": "strict", | |
312 | + "164": "strict", | |
313 | + "165": "strict", | |
314 | + "166": "strict", | |
315 | + "167": "fail", | |
316 | + "168": "strict", | |
317 | + "169": "strict", | |
318 | + "170": "strict", | |
319 | + "171": "strict", | |
320 | + "172": "strict", | |
321 | + "173": "strict", | |
322 | + "174": "fail", | |
323 | + "175": "fail", | |
324 | + "176": "strict", | |
325 | + "177": "strict", | |
326 | + "178": "strict", | |
327 | + "179": "strict", | |
328 | + "180": "strict", | |
329 | + "181": "strict", | |
330 | + "182": "strict", | |
331 | + "183": "strict", | |
332 | + "184": "strict", | |
333 | + "185": "loose", | |
334 | + "186": "strict", | |
335 | + "187": "strict", | |
336 | + "188": "fail", | |
337 | + "189": "strict", | |
338 | + "190": "strict", | |
339 | + "191": "loose" | |
340 | + }, | |
341 | + "Hard line breaks": { | |
342 | + "633": "strict", | |
343 | + "634": "strict", | |
344 | + "635": "strict", | |
345 | + "636": "strict", | |
346 | + "637": "strict", | |
347 | + "638": "strict", | |
348 | + "639": "strict", | |
349 | + "640": "strict", | |
350 | + "641": "strict", | |
351 | + "642": "strict", | |
352 | + "643": "strict", | |
353 | + "644": "strict", | |
354 | + "645": "strict", | |
355 | + "646": "strict", | |
356 | + "647": "strict" | |
357 | + }, | |
358 | + "Images": { | |
359 | + "571": "strict", | |
360 | + "572": "strict", | |
361 | + "573": "fail", | |
362 | + "574": "strict", | |
363 | + "575": "strict", | |
364 | + "576": "strict", | |
365 | + "577": "strict", | |
366 | + "578": "strict", | |
367 | + "579": "strict", | |
368 | + "580": "strict", | |
369 | + "581": "strict", | |
370 | + "582": "strict", | |
371 | + "583": "strict", | |
372 | + "584": "strict", | |
373 | + "585": "strict", | |
374 | + "586": "strict", | |
375 | + "587": "strict", | |
376 | + "588": "strict", | |
377 | + "589": "strict", | |
378 | + "590": "strict", | |
379 | + "591": "strict", | |
380 | + "592": "strict" | |
381 | + }, | |
382 | + "Indented code blocks": { | |
383 | + "107": "strict", | |
384 | + "108": "strict", | |
385 | + "109": "strict", | |
386 | + "110": "strict", | |
387 | + "111": "fail", | |
388 | + "112": "strict", | |
389 | + "113": "strict", | |
390 | + "114": "strict", | |
391 | + "115": "strict", | |
392 | + "116": "strict", | |
393 | + "117": "loose", | |
394 | + "118": "strict" | |
395 | + }, | |
396 | + "Inlines": { | |
397 | + "327": "strict" | |
398 | + }, | |
399 | + "Link reference definitions": { | |
400 | + "192": "strict", | |
401 | + "193": "strict", | |
402 | + "194": "strict", | |
403 | + "195": "fail", | |
404 | + "196": "strict", | |
405 | + "197": "strict", | |
406 | + "198": "strict", | |
407 | + "199": "strict", | |
408 | + "200": "fail", | |
409 | + "201": "fail", | |
410 | + "202": "fail", | |
411 | + "203": "strict", | |
412 | + "204": "strict", | |
413 | + "205": "strict", | |
414 | + "206": "strict", | |
415 | + "207": "loose", | |
416 | + "208": "strict", | |
417 | + "209": "strict", | |
418 | + "210": "strict", | |
419 | + "211": "strict", | |
420 | + "212": "strict", | |
421 | + "213": "strict", | |
422 | + "214": "strict", | |
423 | + "215": "fail", | |
424 | + "216": "fail", | |
425 | + "217": "strict", | |
426 | + "218": "strict" | |
427 | + }, | |
520 | 428 | "Links": { |
521 | 429 | "481": "strict", |
522 | 430 | "482": "strict", |
@@ -609,50 +517,96 @@ | ||
609 | 517 | "569": "strict", |
610 | 518 | "570": "strict" |
611 | 519 | }, |
612 | - "Images": { | |
613 | - "571": "strict", | |
614 | - "572": "strict", | |
615 | - "573": "fail", | |
616 | - "574": "strict", | |
617 | - "575": "strict", | |
618 | - "576": "strict", | |
619 | - "577": "strict", | |
620 | - "578": "strict", | |
621 | - "579": "strict", | |
622 | - "580": "strict", | |
623 | - "581": "strict", | |
624 | - "582": "strict", | |
625 | - "583": "strict", | |
626 | - "584": "strict", | |
627 | - "585": "strict", | |
628 | - "586": "strict", | |
629 | - "587": "strict", | |
630 | - "588": "strict", | |
631 | - "589": "strict", | |
632 | - "590": "strict", | |
633 | - "591": "strict", | |
634 | - "592": "strict" | |
520 | + "List items": { | |
521 | + "253": "strict", | |
522 | + "254": "strict", | |
523 | + "255": "strict", | |
524 | + "256": "strict", | |
525 | + "257": "strict", | |
526 | + "258": "strict", | |
527 | + "259": "strict", | |
528 | + "260": "strict", | |
529 | + "261": "strict", | |
530 | + "262": "fail", | |
531 | + "263": "strict", | |
532 | + "264": "fail", | |
533 | + "265": "strict", | |
534 | + "266": "strict", | |
535 | + "267": "strict", | |
536 | + "268": "strict", | |
537 | + "269": "strict", | |
538 | + "270": "strict", | |
539 | + "271": "strict", | |
540 | + "272": "strict", | |
541 | + "273": "strict", | |
542 | + "274": "strict", | |
543 | + "275": "strict", | |
544 | + "276": "strict", | |
545 | + "277": "strict", | |
546 | + "278": "strict", | |
547 | + "279": "strict", | |
548 | + "280": "fail", | |
549 | + "281": "strict", | |
550 | + "282": "strict", | |
551 | + "283": "strict", | |
552 | + "284": "strict", | |
553 | + "285": "strict", | |
554 | + "286": "strict", | |
555 | + "287": "strict", | |
556 | + "288": "strict", | |
557 | + "289": "strict", | |
558 | + "290": "strict", | |
559 | + "291": "strict", | |
560 | + "292": "strict", | |
561 | + "293": "strict", | |
562 | + "294": "strict", | |
563 | + "295": "strict", | |
564 | + "296": "strict", | |
565 | + "297": "strict", | |
566 | + "298": "strict", | |
567 | + "299": "strict", | |
568 | + "300": "loose" | |
635 | 569 | }, |
636 | - "Autolinks": { | |
637 | - "593": "strict", | |
638 | - "594": "strict", | |
639 | - "595": "strict", | |
640 | - "596": "strict", | |
641 | - "597": "strict", | |
642 | - "598": "strict", | |
643 | - "599": "strict", | |
644 | - "600": "strict", | |
645 | - "601": "strict", | |
646 | - "602": "strict", | |
647 | - "603": "strict", | |
648 | - "604": "strict", | |
649 | - "605": "strict", | |
650 | - "606": "strict", | |
651 | - "607": "strict", | |
652 | - "608": "strict", | |
653 | - "609": "strict", | |
654 | - "610": "strict", | |
655 | - "611": "strict" | |
570 | + "Lists": { | |
571 | + "301": "strict", | |
572 | + "302": "strict", | |
573 | + "303": "strict", | |
574 | + "304": "fail", | |
575 | + "305": "strict", | |
576 | + "306": "fail", | |
577 | + "307": "fail", | |
578 | + "308": "loose", | |
579 | + "309": "loose", | |
580 | + "310": "strict", | |
581 | + "311": "strict", | |
582 | + "312": "strict", | |
583 | + "313": "strict", | |
584 | + "314": "strict", | |
585 | + "315": "strict", | |
586 | + "316": "strict", | |
587 | + "317": "fail", | |
588 | + "318": "fail", | |
589 | + "319": "strict", | |
590 | + "320": "strict", | |
591 | + "321": "strict", | |
592 | + "322": "strict", | |
593 | + "323": "strict", | |
594 | + "324": "strict", | |
595 | + "325": "strict", | |
596 | + "326": "strict" | |
597 | + }, | |
598 | + "Paragraphs": { | |
599 | + "219": "strict", | |
600 | + "220": "strict", | |
601 | + "221": "strict", | |
602 | + "222": "strict", | |
603 | + "223": "strict", | |
604 | + "224": "strict", | |
605 | + "225": "strict", | |
606 | + "226": "strict" | |
607 | + }, | |
608 | + "Precedence": { | |
609 | + "42": "strict" | |
656 | 610 | }, |
657 | 611 | "Raw HTML": { |
658 | 612 | "612": "strict", |
@@ -677,30 +631,76 @@ | ||
677 | 631 | "631": "strict", |
678 | 632 | "632": "strict" |
679 | 633 | }, |
680 | - "Hard line breaks": { | |
681 | - "633": "strict", | |
682 | - "634": "strict", | |
683 | - "635": "strict", | |
684 | - "636": "strict", | |
685 | - "637": "strict", | |
686 | - "638": "strict", | |
687 | - "639": "strict", | |
688 | - "640": "strict", | |
689 | - "641": "strict", | |
690 | - "642": "strict", | |
691 | - "643": "strict", | |
692 | - "644": "strict", | |
693 | - "645": "strict", | |
694 | - "646": "strict", | |
695 | - "647": "strict" | |
634 | + "Setext headings": { | |
635 | + "80": "strict", | |
636 | + "81": "strict", | |
637 | + "82": "loose", | |
638 | + "83": "strict", | |
639 | + "84": "loose", | |
640 | + "85": "strict", | |
641 | + "86": "strict", | |
642 | + "87": "strict", | |
643 | + "88": "strict", | |
644 | + "89": "strict", | |
645 | + "90": "strict", | |
646 | + "91": "strict", | |
647 | + "92": "strict", | |
648 | + "93": "fail", | |
649 | + "94": "strict", | |
650 | + "95": "strict", | |
651 | + "96": "strict", | |
652 | + "97": "strict", | |
653 | + "98": "strict", | |
654 | + "99": "strict", | |
655 | + "100": "strict", | |
656 | + "101": "strict", | |
657 | + "102": "strict", | |
658 | + "103": "strict", | |
659 | + "104": "strict", | |
660 | + "105": "strict", | |
661 | + "106": "strict" | |
696 | 662 | }, |
697 | 663 | "Soft line breaks": { |
698 | 664 | "648": "strict", |
699 | 665 | "649": "strict" |
700 | 666 | }, |
667 | + "Tabs": { | |
668 | + "1": "strict", | |
669 | + "2": "strict", | |
670 | + "3": "strict", | |
671 | + "4": "strict", | |
672 | + "5": "strict", | |
673 | + "6": "loose", | |
674 | + "7": "loose", | |
675 | + "8": "strict", | |
676 | + "9": "strict", | |
677 | + "10": "strict", | |
678 | + "11": "strict" | |
679 | + }, | |
701 | 680 | "Textual content": { |
702 | 681 | "650": "strict", |
703 | 682 | "651": "strict", |
704 | 683 | "652": "strict" |
684 | + }, | |
685 | + "Thematic breaks": { | |
686 | + "43": "strict", | |
687 | + "44": "strict", | |
688 | + "45": "strict", | |
689 | + "46": "strict", | |
690 | + "47": "strict", | |
691 | + "48": "strict", | |
692 | + "49": "strict", | |
693 | + "50": "strict", | |
694 | + "51": "strict", | |
695 | + "52": "strict", | |
696 | + "53": "strict", | |
697 | + "54": "strict", | |
698 | + "55": "strict", | |
699 | + "56": "strict", | |
700 | + "57": "strict", | |
701 | + "58": "strict", | |
702 | + "59": "strict", | |
703 | + "60": "strict", | |
704 | + "61": "strict" | |
705 | 705 | } |
706 | 706 | } |
@@ -1,28 +1,28 @@ | ||
1 | - 11 of 11 - 100.0% Tabs | |
1 | + 17 of 18 - 94.4% ATX headings | |
2 | + 19 of 19 - 100.0% Autolinks | |
2 | 3 | 13 of 13 - 100.0% Backslash escapes |
4 | + 1 of 1 - 100.0% Blank lines | |
5 | + 25 of 25 - 100.0% Block quotes | |
6 | + 22 of 22 - 100.0% Code spans | |
7 | + 130 of 131 - 99.2% Emphasis and strong emphasis | |
3 | 8 | 17 of 17 - 100.0% Entity and numeric character references |
4 | - 1 of 1 - 100.0% Precedence | |
5 | - 19 of 19 - 100.0% Thematic breaks | |
6 | - 17 of 18 - 94.4% ATX headings | |
7 | - 26 of 27 - 96.3% Setext headings | |
8 | - 11 of 12 - 91.7% Indented code blocks | |
9 | 9 | 29 of 29 - 100.0% Fenced code blocks |
10 | 10 | 38 of 44 - 86.4% HTML blocks |
11 | + 15 of 15 - 100.0% Hard line breaks | |
12 | + 21 of 22 - 95.5% Images | |
13 | + 11 of 12 - 91.7% Indented code blocks | |
14 | + 1 of 1 - 100.0% Inlines | |
11 | 15 | 21 of 27 - 77.8% Link reference definitions |
12 | - 8 of 8 - 100.0% Paragraphs | |
13 | - 1 of 1 - 100.0% Blank lines | |
14 | - 25 of 25 - 100.0% Block quotes | |
16 | + 89 of 90 - 98.9% Links | |
15 | 17 | 45 of 48 - 93.8% List items |
16 | 18 | 21 of 26 - 80.8% Lists |
17 | - 1 of 1 - 100.0% Inlines | |
18 | - 22 of 22 - 100.0% Code spans | |
19 | - 130 of 131 - 99.2% Emphasis and strong emphasis | |
20 | - 89 of 90 - 98.9% Links | |
21 | - 21 of 22 - 95.5% Images | |
22 | - 19 of 19 - 100.0% Autolinks | |
19 | + 8 of 8 - 100.0% Paragraphs | |
20 | + 1 of 1 - 100.0% Precedence | |
23 | 21 | 21 of 21 - 100.0% Raw HTML |
24 | - 15 of 15 - 100.0% Hard line breaks | |
22 | + 26 of 27 - 96.3% Setext headings | |
25 | 23 | 2 of 2 - 100.0% Soft line breaks |
24 | + 11 of 11 - 100.0% Tabs | |
26 | 25 | 3 of 3 - 100.0% Textual content |
26 | + 19 of 19 - 100.0% Thematic breaks | |
27 | 27 | 626 of 652 - 96.0% TOTAL |
28 | 28 | 610 of 626 - 97.4% TOTAL Strict |
@@ -1,41 +1,4 @@ | ||
1 | 1 | { |
2 | - "Tabs": { | |
3 | - "1": "strict", | |
4 | - "2": "strict", | |
5 | - "3": "strict", | |
6 | - "4": "strict", | |
7 | - "5": "strict", | |
8 | - "6": "loose", | |
9 | - "7": "loose", | |
10 | - "8": "strict", | |
11 | - "9": "strict", | |
12 | - "10": "strict", | |
13 | - "11": "strict" | |
14 | - }, | |
15 | - "Precedence": { | |
16 | - "12": "strict" | |
17 | - }, | |
18 | - "Thematic breaks": { | |
19 | - "13": "strict", | |
20 | - "14": "strict", | |
21 | - "15": "strict", | |
22 | - "16": "strict", | |
23 | - "17": "strict", | |
24 | - "18": "strict", | |
25 | - "19": "strict", | |
26 | - "20": "strict", | |
27 | - "21": "strict", | |
28 | - "22": "strict", | |
29 | - "23": "strict", | |
30 | - "24": "strict", | |
31 | - "25": "strict", | |
32 | - "26": "strict", | |
33 | - "27": "strict", | |
34 | - "28": "strict", | |
35 | - "29": "strict", | |
36 | - "30": "strict", | |
37 | - "31": "strict" | |
38 | - }, | |
39 | 2 | "ATX headings": { |
40 | 3 | "32": "strict", |
41 | 4 | "33": "strict", |
@@ -51,290 +14,44 @@ | ||
51 | 14 | "43": "loose", |
52 | 15 | "44": "strict", |
53 | 16 | "45": "loose", |
54 | - "46": "loose", | |
55 | - "47": "strict", | |
56 | - "48": "strict", | |
57 | - "49": "fail" | |
58 | - }, | |
59 | - "Setext headings": { | |
60 | - "50": "strict", | |
61 | - "51": "strict", | |
62 | - "52": "loose", | |
63 | - "53": "strict", | |
64 | - "54": "loose", | |
65 | - "55": "strict", | |
66 | - "56": "strict", | |
67 | - "57": "strict", | |
68 | - "58": "strict", | |
69 | - "59": "strict", | |
70 | - "60": "strict", | |
71 | - "61": "strict", | |
72 | - "62": "strict", | |
73 | - "63": "fail", | |
74 | - "64": "strict", | |
75 | - "65": "strict", | |
76 | - "66": "strict", | |
77 | - "67": "strict", | |
78 | - "68": "strict", | |
79 | - "69": "strict", | |
80 | - "70": "strict", | |
81 | - "71": "strict", | |
82 | - "72": "strict", | |
83 | - "73": "strict", | |
84 | - "74": "strict", | |
85 | - "75": "strict", | |
86 | - "76": "strict" | |
87 | - }, | |
88 | - "Indented code blocks": { | |
89 | - "77": "strict", | |
90 | - "78": "strict", | |
91 | - "79": "strict", | |
92 | - "80": "strict", | |
93 | - "81": "fail", | |
94 | - "82": "strict", | |
95 | - "83": "strict", | |
96 | - "84": "strict", | |
97 | - "85": "strict", | |
98 | - "86": "strict", | |
99 | - "87": "loose", | |
100 | - "88": "strict" | |
101 | - }, | |
102 | - "Fenced code blocks": { | |
103 | - "89": "strict", | |
104 | - "90": "strict", | |
105 | - "91": "strict", | |
106 | - "92": "strict", | |
107 | - "93": "strict", | |
108 | - "94": "strict", | |
109 | - "95": "strict", | |
110 | - "96": "strict", | |
111 | - "97": "strict", | |
112 | - "98": "strict", | |
113 | - "99": "strict", | |
114 | - "100": "strict", | |
115 | - "101": "strict", | |
116 | - "102": "strict", | |
117 | - "103": "strict", | |
118 | - "104": "strict", | |
119 | - "105": "strict", | |
120 | - "106": "strict", | |
121 | - "107": "strict", | |
122 | - "108": "strict", | |
123 | - "109": "strict", | |
124 | - "110": "strict", | |
125 | - "111": "strict", | |
126 | - "112": "strict", | |
127 | - "113": "strict", | |
128 | - "114": "strict", | |
129 | - "115": "strict", | |
130 | - "116": "strict", | |
131 | - "117": "strict" | |
132 | - }, | |
133 | - "HTML blocks": { | |
134 | - "118": "fail", | |
135 | - "119": "strict", | |
136 | - "120": "strict", | |
137 | - "121": "strict", | |
138 | - "122": "fail", | |
139 | - "123": "strict", | |
140 | - "124": "strict", | |
141 | - "125": "strict", | |
142 | - "126": "strict", | |
143 | - "127": "strict", | |
144 | - "128": "strict", | |
145 | - "129": "strict", | |
146 | - "130": "strict", | |
147 | - "131": "strict", | |
148 | - "132": "strict", | |
149 | - "133": "strict", | |
150 | - "134": "strict", | |
151 | - "135": "strict", | |
152 | - "136": "strict", | |
153 | - "137": "fail", | |
154 | - "138": "strict", | |
155 | - "139": "strict", | |
156 | - "140": "strict", | |
157 | - "141": "strict", | |
158 | - "142": "strict", | |
159 | - "143": "fail", | |
160 | - "144": "fail", | |
161 | - "145": "strict", | |
162 | - "146": "strict", | |
163 | - "147": "strict", | |
164 | - "148": "strict", | |
165 | - "149": "strict", | |
166 | - "150": "strict", | |
167 | - "151": "strict", | |
168 | - "152": "strict", | |
169 | - "153": "strict", | |
170 | - "154": "loose", | |
171 | - "155": "strict", | |
172 | - "156": "strict", | |
173 | - "157": "fail", | |
174 | - "158": "strict", | |
175 | - "159": "strict", | |
176 | - "160": "loose" | |
177 | - }, | |
178 | - "Link reference definitions": { | |
179 | - "161": "strict", | |
180 | - "162": "strict", | |
181 | - "163": "strict", | |
182 | - "164": "fail", | |
183 | - "165": "strict", | |
184 | - "166": "strict", | |
185 | - "167": "strict", | |
186 | - "168": "strict", | |
187 | - "169": "fail", | |
188 | - "170": "fail", | |
189 | - "171": "fail", | |
190 | - "172": "strict", | |
191 | - "173": "strict", | |
192 | - "174": "strict", | |
193 | - "175": "strict", | |
194 | - "176": "loose", | |
195 | - "177": "strict", | |
196 | - "178": "strict", | |
197 | - "179": "strict", | |
198 | - "180": "strict", | |
199 | - "181": "strict", | |
200 | - "182": "strict", | |
201 | - "183": "strict", | |
202 | - "184": "fail", | |
203 | - "185": "fail", | |
204 | - "186": "strict", | |
205 | - "187": "strict", | |
206 | - "188": "loose" | |
207 | - }, | |
208 | - "Paragraphs": { | |
209 | - "189": "strict", | |
210 | - "190": "strict", | |
211 | - "191": "strict", | |
212 | - "192": "strict", | |
213 | - "193": "strict", | |
214 | - "194": "strict", | |
215 | - "195": "strict", | |
216 | - "196": "strict" | |
217 | - }, | |
218 | - "Blank lines": { | |
219 | - "197": "strict" | |
220 | - }, | |
221 | - "Tables (extension)": { | |
222 | - "198": "strict", | |
223 | - "199": "strict", | |
224 | - "200": "strict", | |
225 | - "201": "strict", | |
226 | - "202": "strict", | |
227 | - "203": "strict", | |
228 | - "204": "strict", | |
229 | - "205": "strict" | |
230 | - }, | |
231 | - "Block quotes": { | |
232 | - "206": "strict", | |
233 | - "207": "strict", | |
234 | - "208": "strict", | |
235 | - "209": "strict", | |
236 | - "210": "strict", | |
237 | - "211": "strict", | |
238 | - "212": "strict", | |
239 | - "213": "strict", | |
240 | - "214": "strict", | |
241 | - "215": "strict", | |
242 | - "216": "strict", | |
243 | - "217": "strict", | |
244 | - "218": "strict", | |
245 | - "219": "strict", | |
246 | - "220": "strict", | |
247 | - "221": "strict", | |
248 | - "222": "strict", | |
249 | - "223": "strict", | |
250 | - "224": "strict", | |
251 | - "225": "strict", | |
252 | - "226": "strict", | |
253 | - "227": "strict", | |
254 | - "228": "strict", | |
255 | - "229": "strict", | |
256 | - "230": "strict" | |
257 | - }, | |
258 | - "List items": { | |
259 | - "231": "strict", | |
260 | - "232": "strict", | |
261 | - "233": "strict", | |
262 | - "234": "strict", | |
263 | - "235": "strict", | |
264 | - "236": "strict", | |
265 | - "237": "strict", | |
266 | - "238": "strict", | |
267 | - "239": "strict", | |
268 | - "240": "fail", | |
269 | - "241": "strict", | |
270 | - "242": "fail", | |
271 | - "243": "strict", | |
272 | - "244": "strict", | |
273 | - "245": "strict", | |
274 | - "246": "strict", | |
275 | - "247": "strict", | |
276 | - "248": "strict", | |
277 | - "249": "strict", | |
278 | - "250": "strict", | |
279 | - "251": "strict", | |
280 | - "252": "strict", | |
281 | - "253": "strict", | |
282 | - "254": "strict", | |
283 | - "255": "strict", | |
284 | - "256": "strict", | |
285 | - "257": "strict", | |
286 | - "258": "fail", | |
287 | - "259": "strict", | |
288 | - "260": "strict", | |
289 | - "261": "strict", | |
290 | - "262": "strict", | |
291 | - "263": "strict", | |
292 | - "264": "strict", | |
293 | - "265": "strict", | |
294 | - "266": "strict", | |
295 | - "267": "strict", | |
296 | - "268": "strict", | |
297 | - "269": "strict", | |
298 | - "270": "strict", | |
299 | - "271": "strict", | |
300 | - "272": "strict", | |
301 | - "273": "strict", | |
302 | - "274": "strict", | |
303 | - "275": "strict", | |
304 | - "276": "strict", | |
305 | - "277": "strict", | |
306 | - "278": "loose" | |
307 | - }, | |
308 | - "Lists": { | |
309 | - "281": "strict", | |
310 | - "282": "strict", | |
311 | - "283": "strict", | |
312 | - "284": "fail", | |
313 | - "285": "strict", | |
314 | - "286": "fail", | |
315 | - "287": "fail", | |
316 | - "288": "loose", | |
317 | - "289": "loose", | |
318 | - "290": "strict", | |
319 | - "291": "strict", | |
320 | - "292": "strict", | |
321 | - "293": "strict", | |
322 | - "294": "strict", | |
323 | - "295": "strict", | |
324 | - "296": "strict", | |
325 | - "297": "fail", | |
326 | - "298": "fail", | |
327 | - "299": "strict", | |
328 | - "300": "strict", | |
329 | - "301": "strict", | |
330 | - "302": "strict", | |
331 | - "303": "strict", | |
332 | - "304": "strict", | |
333 | - "305": "strict", | |
334 | - "306": "strict" | |
17 | + "46": "loose", | |
18 | + "47": "strict", | |
19 | + "48": "strict", | |
20 | + "49": "fail" | |
335 | 21 | }, |
336 | - "Inlines": { | |
337 | - "307": "strict" | |
22 | + "Autolinks": { | |
23 | + "602": "strict", | |
24 | + "603": "strict", | |
25 | + "604": "strict", | |
26 | + "605": "strict", | |
27 | + "606": "strict", | |
28 | + "607": "strict", | |
29 | + "608": "strict", | |
30 | + "609": "strict", | |
31 | + "610": "strict", | |
32 | + "611": "strict", | |
33 | + "612": "strict", | |
34 | + "613": "strict", | |
35 | + "614": "strict", | |
36 | + "615": "strict", | |
37 | + "616": "strict", | |
38 | + "617": "strict", | |
39 | + "618": "strict", | |
40 | + "619": "strict", | |
41 | + "620": "strict" | |
42 | + }, | |
43 | + "Autolinks (extension)": { | |
44 | + "621": "strict", | |
45 | + "622": "strict", | |
46 | + "623": "strict", | |
47 | + "624": "strict", | |
48 | + "625": "strict", | |
49 | + "626": "strict", | |
50 | + "627": "strict", | |
51 | + "628": "strict", | |
52 | + "629": "strict", | |
53 | + "630": "strict", | |
54 | + "631": "strict" | |
338 | 55 | }, |
339 | 56 | "Backslash escapes": { |
340 | 57 | "308": "strict", |
@@ -351,24 +68,35 @@ | ||
351 | 68 | "319": "strict", |
352 | 69 | "320": "strict" |
353 | 70 | }, |
354 | - "Entity and numeric character references": { | |
355 | - "321": "loose", | |
356 | - "322": "strict", | |
357 | - "323": "strict", | |
358 | - "324": "strict", | |
359 | - "325": "strict", | |
360 | - "326": "strict", | |
361 | - "327": "strict", | |
362 | - "328": "strict", | |
363 | - "329": "strict", | |
364 | - "330": "strict", | |
365 | - "331": "strict", | |
366 | - "332": "strict", | |
367 | - "333": "strict", | |
368 | - "334": "strict", | |
369 | - "335": "strict", | |
370 | - "336": "loose", | |
371 | - "337": "strict" | |
71 | + "Blank lines": { | |
72 | + "197": "strict" | |
73 | + }, | |
74 | + "Block quotes": { | |
75 | + "206": "strict", | |
76 | + "207": "strict", | |
77 | + "208": "strict", | |
78 | + "209": "strict", | |
79 | + "210": "strict", | |
80 | + "211": "strict", | |
81 | + "212": "strict", | |
82 | + "213": "strict", | |
83 | + "214": "strict", | |
84 | + "215": "strict", | |
85 | + "216": "strict", | |
86 | + "217": "strict", | |
87 | + "218": "strict", | |
88 | + "219": "strict", | |
89 | + "220": "strict", | |
90 | + "221": "strict", | |
91 | + "222": "strict", | |
92 | + "223": "strict", | |
93 | + "224": "strict", | |
94 | + "225": "strict", | |
95 | + "226": "strict", | |
96 | + "227": "strict", | |
97 | + "228": "strict", | |
98 | + "229": "strict", | |
99 | + "230": "strict" | |
372 | 100 | }, |
373 | 101 | "Code spans": { |
374 | 102 | "338": "strict", |
@@ -394,6 +122,9 @@ | ||
394 | 122 | "358": "strict", |
395 | 123 | "359": "strict" |
396 | 124 | }, |
125 | + "Disallowed Raw HTML (extension)": { | |
126 | + "653": "fail" | |
127 | + }, | |
397 | 128 | "Emphasis and strong emphasis": { |
398 | 129 | "360": "strict", |
399 | 130 | "361": "strict", |
@@ -527,9 +258,188 @@ | ||
527 | 258 | "489": "strict", |
528 | 259 | "490": "strict" |
529 | 260 | }, |
530 | - "Strikethrough (extension)": { | |
531 | - "491": "strict", | |
532 | - "492": "strict" | |
261 | + "Entity and numeric character references": { | |
262 | + "321": "loose", | |
263 | + "322": "strict", | |
264 | + "323": "strict", | |
265 | + "324": "strict", | |
266 | + "325": "strict", | |
267 | + "326": "strict", | |
268 | + "327": "strict", | |
269 | + "328": "strict", | |
270 | + "329": "strict", | |
271 | + "330": "strict", | |
272 | + "331": "strict", | |
273 | + "332": "strict", | |
274 | + "333": "strict", | |
275 | + "334": "strict", | |
276 | + "335": "strict", | |
277 | + "336": "loose", | |
278 | + "337": "strict" | |
279 | + }, | |
280 | + "Fenced code blocks": { | |
281 | + "89": "strict", | |
282 | + "90": "strict", | |
283 | + "91": "strict", | |
284 | + "92": "strict", | |
285 | + "93": "strict", | |
286 | + "94": "strict", | |
287 | + "95": "strict", | |
288 | + "96": "strict", | |
289 | + "97": "strict", | |
290 | + "98": "strict", | |
291 | + "99": "strict", | |
292 | + "100": "strict", | |
293 | + "101": "strict", | |
294 | + "102": "strict", | |
295 | + "103": "strict", | |
296 | + "104": "strict", | |
297 | + "105": "strict", | |
298 | + "106": "strict", | |
299 | + "107": "strict", | |
300 | + "108": "strict", | |
301 | + "109": "strict", | |
302 | + "110": "strict", | |
303 | + "111": "strict", | |
304 | + "112": "strict", | |
305 | + "113": "strict", | |
306 | + "114": "strict", | |
307 | + "115": "strict", | |
308 | + "116": "strict", | |
309 | + "117": "strict" | |
310 | + }, | |
311 | + "HTML blocks": { | |
312 | + "118": "fail", | |
313 | + "119": "strict", | |
314 | + "120": "strict", | |
315 | + "121": "strict", | |
316 | + "122": "fail", | |
317 | + "123": "strict", | |
318 | + "124": "strict", | |
319 | + "125": "strict", | |
320 | + "126": "strict", | |
321 | + "127": "strict", | |
322 | + "128": "strict", | |
323 | + "129": "strict", | |
324 | + "130": "strict", | |
325 | + "131": "strict", | |
326 | + "132": "strict", | |
327 | + "133": "strict", | |
328 | + "134": "strict", | |
329 | + "135": "strict", | |
330 | + "136": "strict", | |
331 | + "137": "fail", | |
332 | + "138": "strict", | |
333 | + "139": "strict", | |
334 | + "140": "strict", | |
335 | + "141": "strict", | |
336 | + "142": "strict", | |
337 | + "143": "fail", | |
338 | + "144": "fail", | |
339 | + "145": "strict", | |
340 | + "146": "strict", | |
341 | + "147": "strict", | |
342 | + "148": "strict", | |
343 | + "149": "strict", | |
344 | + "150": "strict", | |
345 | + "151": "strict", | |
346 | + "152": "strict", | |
347 | + "153": "strict", | |
348 | + "154": "loose", | |
349 | + "155": "strict", | |
350 | + "156": "strict", | |
351 | + "157": "fail", | |
352 | + "158": "strict", | |
353 | + "159": "strict", | |
354 | + "160": "loose" | |
355 | + }, | |
356 | + "Hard line breaks": { | |
357 | + "654": "strict", | |
358 | + "655": "strict", | |
359 | + "656": "strict", | |
360 | + "657": "strict", | |
361 | + "658": "strict", | |
362 | + "659": "strict", | |
363 | + "660": "strict", | |
364 | + "661": "strict", | |
365 | + "662": "strict", | |
366 | + "663": "strict", | |
367 | + "664": "strict", | |
368 | + "665": "strict", | |
369 | + "666": "strict", | |
370 | + "667": "strict", | |
371 | + "668": "strict" | |
372 | + }, | |
373 | + "Images": { | |
374 | + "580": "strict", | |
375 | + "581": "strict", | |
376 | + "582": "fail", | |
377 | + "583": "strict", | |
378 | + "584": "strict", | |
379 | + "585": "strict", | |
380 | + "586": "strict", | |
381 | + "587": "strict", | |
382 | + "588": "strict", | |
383 | + "589": "strict", | |
384 | + "590": "strict", | |
385 | + "591": "strict", | |
386 | + "592": "strict", | |
387 | + "593": "strict", | |
388 | + "594": "strict", | |
389 | + "595": "strict", | |
390 | + "596": "strict", | |
391 | + "597": "strict", | |
392 | + "598": "strict", | |
393 | + "599": "strict", | |
394 | + "600": "strict", | |
395 | + "601": "strict" | |
396 | + }, | |
397 | + "Indented code blocks": { | |
398 | + "77": "strict", | |
399 | + "78": "strict", | |
400 | + "79": "strict", | |
401 | + "80": "strict", | |
402 | + "81": "fail", | |
403 | + "82": "strict", | |
404 | + "83": "strict", | |
405 | + "84": "strict", | |
406 | + "85": "strict", | |
407 | + "86": "strict", | |
408 | + "87": "loose", | |
409 | + "88": "strict" | |
410 | + }, | |
411 | + "Inlines": { | |
412 | + "307": "strict" | |
413 | + }, | |
414 | + "Link reference definitions": { | |
415 | + "161": "strict", | |
416 | + "162": "strict", | |
417 | + "163": "strict", | |
418 | + "164": "fail", | |
419 | + "165": "strict", | |
420 | + "166": "strict", | |
421 | + "167": "strict", | |
422 | + "168": "strict", | |
423 | + "169": "fail", | |
424 | + "170": "fail", | |
425 | + "171": "fail", | |
426 | + "172": "strict", | |
427 | + "173": "strict", | |
428 | + "174": "strict", | |
429 | + "175": "strict", | |
430 | + "176": "loose", | |
431 | + "177": "strict", | |
432 | + "178": "strict", | |
433 | + "179": "strict", | |
434 | + "180": "strict", | |
435 | + "181": "strict", | |
436 | + "182": "strict", | |
437 | + "183": "strict", | |
438 | + "184": "fail", | |
439 | + "185": "fail", | |
440 | + "186": "strict", | |
441 | + "187": "strict", | |
442 | + "188": "loose" | |
533 | 443 | }, |
534 | 444 | "Links": { |
535 | 445 | "493": "strict", |
@@ -620,63 +530,96 @@ | ||
620 | 530 | "578": "strict", |
621 | 531 | "579": "strict" |
622 | 532 | }, |
623 | - "Images": { | |
624 | - "580": "strict", | |
625 | - "581": "strict", | |
626 | - "582": "fail", | |
627 | - "583": "strict", | |
628 | - "584": "strict", | |
629 | - "585": "strict", | |
630 | - "586": "strict", | |
631 | - "587": "strict", | |
632 | - "588": "strict", | |
633 | - "589": "strict", | |
634 | - "590": "strict", | |
635 | - "591": "strict", | |
636 | - "592": "strict", | |
637 | - "593": "strict", | |
638 | - "594": "strict", | |
639 | - "595": "strict", | |
640 | - "596": "strict", | |
641 | - "597": "strict", | |
642 | - "598": "strict", | |
643 | - "599": "strict", | |
644 | - "600": "strict", | |
645 | - "601": "strict" | |
533 | + "List items": { | |
534 | + "231": "strict", | |
535 | + "232": "strict", | |
536 | + "233": "strict", | |
537 | + "234": "strict", | |
538 | + "235": "strict", | |
539 | + "236": "strict", | |
540 | + "237": "strict", | |
541 | + "238": "strict", | |
542 | + "239": "strict", | |
543 | + "240": "fail", | |
544 | + "241": "strict", | |
545 | + "242": "fail", | |
546 | + "243": "strict", | |
547 | + "244": "strict", | |
548 | + "245": "strict", | |
549 | + "246": "strict", | |
550 | + "247": "strict", | |
551 | + "248": "strict", | |
552 | + "249": "strict", | |
553 | + "250": "strict", | |
554 | + "251": "strict", | |
555 | + "252": "strict", | |
556 | + "253": "strict", | |
557 | + "254": "strict", | |
558 | + "255": "strict", | |
559 | + "256": "strict", | |
560 | + "257": "strict", | |
561 | + "258": "fail", | |
562 | + "259": "strict", | |
563 | + "260": "strict", | |
564 | + "261": "strict", | |
565 | + "262": "strict", | |
566 | + "263": "strict", | |
567 | + "264": "strict", | |
568 | + "265": "strict", | |
569 | + "266": "strict", | |
570 | + "267": "strict", | |
571 | + "268": "strict", | |
572 | + "269": "strict", | |
573 | + "270": "strict", | |
574 | + "271": "strict", | |
575 | + "272": "strict", | |
576 | + "273": "strict", | |
577 | + "274": "strict", | |
578 | + "275": "strict", | |
579 | + "276": "strict", | |
580 | + "277": "strict", | |
581 | + "278": "loose" | |
646 | 582 | }, |
647 | - "Autolinks": { | |
648 | - "602": "strict", | |
649 | - "603": "strict", | |
650 | - "604": "strict", | |
651 | - "605": "strict", | |
652 | - "606": "strict", | |
653 | - "607": "strict", | |
654 | - "608": "strict", | |
655 | - "609": "strict", | |
656 | - "610": "strict", | |
657 | - "611": "strict", | |
658 | - "612": "strict", | |
659 | - "613": "strict", | |
660 | - "614": "strict", | |
661 | - "615": "strict", | |
662 | - "616": "strict", | |
663 | - "617": "strict", | |
664 | - "618": "strict", | |
665 | - "619": "strict", | |
666 | - "620": "strict" | |
583 | + "Lists": { | |
584 | + "281": "strict", | |
585 | + "282": "strict", | |
586 | + "283": "strict", | |
587 | + "284": "fail", | |
588 | + "285": "strict", | |
589 | + "286": "fail", | |
590 | + "287": "fail", | |
591 | + "288": "loose", | |
592 | + "289": "loose", | |
593 | + "290": "strict", | |
594 | + "291": "strict", | |
595 | + "292": "strict", | |
596 | + "293": "strict", | |
597 | + "294": "strict", | |
598 | + "295": "strict", | |
599 | + "296": "strict", | |
600 | + "297": "fail", | |
601 | + "298": "fail", | |
602 | + "299": "strict", | |
603 | + "300": "strict", | |
604 | + "301": "strict", | |
605 | + "302": "strict", | |
606 | + "303": "strict", | |
607 | + "304": "strict", | |
608 | + "305": "strict", | |
609 | + "306": "strict" | |
667 | 610 | }, |
668 | - "Autolinks (extension)": { | |
669 | - "621": "strict", | |
670 | - "622": "strict", | |
671 | - "623": "strict", | |
672 | - "624": "strict", | |
673 | - "625": "strict", | |
674 | - "626": "strict", | |
675 | - "627": "strict", | |
676 | - "628": "strict", | |
677 | - "629": "strict", | |
678 | - "630": "strict", | |
679 | - "631": "strict" | |
611 | + "Paragraphs": { | |
612 | + "189": "strict", | |
613 | + "190": "strict", | |
614 | + "191": "strict", | |
615 | + "192": "strict", | |
616 | + "193": "strict", | |
617 | + "194": "strict", | |
618 | + "195": "strict", | |
619 | + "196": "strict" | |
620 | + }, | |
621 | + "Precedence": { | |
622 | + "12": "strict" | |
680 | 623 | }, |
681 | 624 | "Raw HTML": { |
682 | 625 | "632": "strict", |
@@ -701,33 +644,90 @@ | ||
701 | 644 | "651": "strict", |
702 | 645 | "652": "strict" |
703 | 646 | }, |
704 | - "Disallowed Raw HTML (extension)": { | |
705 | - "653": "fail" | |
706 | - }, | |
707 | - "Hard line breaks": { | |
708 | - "654": "strict", | |
709 | - "655": "strict", | |
710 | - "656": "strict", | |
711 | - "657": "strict", | |
712 | - "658": "strict", | |
713 | - "659": "strict", | |
714 | - "660": "strict", | |
715 | - "661": "strict", | |
716 | - "662": "strict", | |
717 | - "663": "strict", | |
718 | - "664": "strict", | |
719 | - "665": "strict", | |
720 | - "666": "strict", | |
721 | - "667": "strict", | |
722 | - "668": "strict" | |
647 | + "Setext headings": { | |
648 | + "50": "strict", | |
649 | + "51": "strict", | |
650 | + "52": "loose", | |
651 | + "53": "strict", | |
652 | + "54": "loose", | |
653 | + "55": "strict", | |
654 | + "56": "strict", | |
655 | + "57": "strict", | |
656 | + "58": "strict", | |
657 | + "59": "strict", | |
658 | + "60": "strict", | |
659 | + "61": "strict", | |
660 | + "62": "strict", | |
661 | + "63": "fail", | |
662 | + "64": "strict", | |
663 | + "65": "strict", | |
664 | + "66": "strict", | |
665 | + "67": "strict", | |
666 | + "68": "strict", | |
667 | + "69": "strict", | |
668 | + "70": "strict", | |
669 | + "71": "strict", | |
670 | + "72": "strict", | |
671 | + "73": "strict", | |
672 | + "74": "strict", | |
673 | + "75": "strict", | |
674 | + "76": "strict" | |
723 | 675 | }, |
724 | 676 | "Soft line breaks": { |
725 | 677 | "669": "strict", |
726 | 678 | "670": "strict" |
727 | 679 | }, |
680 | + "Strikethrough (extension)": { | |
681 | + "491": "strict", | |
682 | + "492": "strict" | |
683 | + }, | |
684 | + "Tables (extension)": { | |
685 | + "198": "strict", | |
686 | + "199": "strict", | |
687 | + "200": "strict", | |
688 | + "201": "strict", | |
689 | + "202": "strict", | |
690 | + "203": "strict", | |
691 | + "204": "strict", | |
692 | + "205": "strict" | |
693 | + }, | |
694 | + "Tabs": { | |
695 | + "1": "strict", | |
696 | + "2": "strict", | |
697 | + "3": "strict", | |
698 | + "4": "strict", | |
699 | + "5": "strict", | |
700 | + "6": "loose", | |
701 | + "7": "loose", | |
702 | + "8": "strict", | |
703 | + "9": "strict", | |
704 | + "10": "strict", | |
705 | + "11": "strict" | |
706 | + }, | |
728 | 707 | "Textual content": { |
729 | 708 | "671": "strict", |
730 | 709 | "672": "strict", |
731 | 710 | "673": "strict" |
711 | + }, | |
712 | + "Thematic breaks": { | |
713 | + "13": "strict", | |
714 | + "14": "strict", | |
715 | + "15": "strict", | |
716 | + "16": "strict", | |
717 | + "17": "strict", | |
718 | + "18": "strict", | |
719 | + "19": "strict", | |
720 | + "20": "strict", | |
721 | + "21": "strict", | |
722 | + "22": "strict", | |
723 | + "23": "strict", | |
724 | + "24": "strict", | |
725 | + "25": "strict", | |
726 | + "26": "strict", | |
727 | + "27": "strict", | |
728 | + "28": "strict", | |
729 | + "29": "strict", | |
730 | + "30": "strict", | |
731 | + "31": "strict" | |
732 | 732 | } |
733 | 733 | } |
@@ -1,32 +1,32 @@ | ||
1 | - 11 of 11 - 100.0% Tabs | |
2 | - 1 of 1 - 100.0% Precedence | |
3 | - 19 of 19 - 100.0% Thematic breaks | |
4 | 1 | 17 of 18 - 94.4% ATX headings |
5 | - 26 of 27 - 96.3% Setext headings | |
6 | - 11 of 12 - 91.7% Indented code blocks | |
7 | - 29 of 29 - 100.0% Fenced code blocks | |
8 | - 37 of 43 - 86.0% HTML blocks | |
9 | - 22 of 28 - 78.6% Link reference definitions | |
10 | - 8 of 8 - 100.0% Paragraphs | |
2 | + 19 of 19 - 100.0% Autolinks | |
3 | + 11 of 11 - 100.0% Autolinks (extension) | |
4 | + 13 of 13 - 100.0% Backslash escapes | |
11 | 5 | 1 of 1 - 100.0% Blank lines |
12 | - 8 of 8 - 100.0% Tables (extension) | |
13 | 6 | 25 of 25 - 100.0% Block quotes |
14 | - 45 of 48 - 93.8% List items | |
15 | - 21 of 26 - 80.8% Lists | |
16 | - 1 of 1 - 100.0% Inlines | |
17 | - 13 of 13 - 100.0% Backslash escapes | |
18 | - 17 of 17 - 100.0% Entity and numeric character references | |
19 | 7 | 22 of 22 - 100.0% Code spans |
8 | + 0 of 1 - 0.0% Disallowed Raw HTML (extension) | |
20 | 9 | 130 of 131 - 99.2% Emphasis and strong emphasis |
21 | - 2 of 2 - 100.0% Strikethrough (extension) | |
22 | - 86 of 87 - 98.9% Links | |
10 | + 17 of 17 - 100.0% Entity and numeric character references | |
11 | + 29 of 29 - 100.0% Fenced code blocks | |
12 | + 37 of 43 - 86.0% HTML blocks | |
13 | + 15 of 15 - 100.0% Hard line breaks | |
23 | 14 | 21 of 22 - 95.5% Images |
24 | - 19 of 19 - 100.0% Autolinks | |
25 | - 11 of 11 - 100.0% Autolinks (extension) | |
15 | + 11 of 12 - 91.7% Indented code blocks | |
16 | + 1 of 1 - 100.0% Inlines | |
17 | + 22 of 28 - 78.6% Link reference definitions | |
18 | + 86 of 87 - 98.9% Links | |
19 | + 45 of 48 - 93.8% List items | |
20 | + 21 of 26 - 80.8% Lists | |
21 | + 8 of 8 - 100.0% Paragraphs | |
22 | + 1 of 1 - 100.0% Precedence | |
26 | 23 | 21 of 21 - 100.0% Raw HTML |
27 | - 0 of 1 - 0.0% Disallowed Raw HTML (extension) | |
28 | - 15 of 15 - 100.0% Hard line breaks | |
24 | + 26 of 27 - 96.3% Setext headings | |
29 | 25 | 2 of 2 - 100.0% Soft line breaks |
26 | + 2 of 2 - 100.0% Strikethrough (extension) | |
27 | + 8 of 8 - 100.0% Tables (extension) | |
28 | + 11 of 11 - 100.0% Tabs | |
30 | 29 | 3 of 3 - 100.0% Textual content |
30 | + 19 of 19 - 100.0% Thematic breaks | |
31 | 31 | 644 of 671 - 96.0% TOTAL |
32 | 32 | 627 of 644 - 97.4% TOTAL Strict |
@@ -16,7 +16,7 @@ def load_common_mark_sections(test_prefix : String) : Hash(String, Array(CommonM | ||
16 | 16 | test_file = File.open(Path[tool_dir, "#{test_prefix}_tests.json"]) |
17 | 17 | tests_json = test_file.gets_to_end |
18 | 18 | |
19 | - test_array = Array(JSON::Any).from_json(tests_json) | |
19 | + test_array = Array(JSON::Any).from_json(tests_json).sort! { |a, b| a["section"].as_s <=> b["section"].as_s } | |
20 | 20 | |
21 | 21 | sections = Hash(String, Array(CommonMarkTestCase)).new |
22 | 22 |