Be more clear in stats about a successful test strict: exact match including whitespace loose: matches, except for whitespace While not "strictly" needed, it'd be nice to be as strict as possible
diff --git a/pkgs/markdown/tool/common_mark_stats.dart b/pkgs/markdown/tool/common_mark_stats.dart index 39e05d1..d25f4fa 100644 --- a/pkgs/markdown/tool/common_mark_stats.dart +++ b/pkgs/markdown/tool/common_mark_stats.dart
@@ -62,51 +62,18 @@ var sections = _loadCommonMarkSections(); - var scores = new SplayTreeMap<String, SplayTreeMap<int, bool>>( + var scores = new SplayTreeMap<String, SplayTreeMap<int, CompareLevel>>( compareAsciiLowerCaseNatural); - String indent(String s) => s.splitMapJoin('\n', onNonMatch: (n) => ' $n'); - - printVerboseFailure( - String message, CommonMarkTestCase test, String expected, String actual) { - if (!verbose) { - return; - } - - print('$message: http://spec.commonmark.org/0.26/#example-${test.example}'); - print('input:'); - print(indent(test.markdown)); - print('expected:'); - print(indent(expected)); - print('actual:'); - print(indent(actual)); - print('-----------------------'); - } - sections.forEach((section, examples) { if (specifiedSection != null && section != specifiedSection) { return; } for (var e in examples) { - var output; - var nestedMap = - scores.putIfAbsent(section, () => new SplayTreeMap<int, bool>()); - var expected = parseFragment(e.html); + var nestedMap = scores.putIfAbsent( + section, () => new SplayTreeMap<int, CompareLevel>()); - try { - output = markdownToHtml(e.markdown); - } catch (exc, stackTrace) { - nestedMap[e.example] = false; - printVerboseFailure( - 'ERROR', e, expected.outerHtml, 'Thrown: $exc\n$stackTrace'); - continue; - } - - var actual = parseFragment(output); - nestedMap[e.example] = compareHtml(expected.children, actual.children); - if (!nestedMap[e.example]) { - printVerboseFailure('FAIL', e, expected.outerHtml, actual.outerHtml); - } + nestedMap[e.example] = _compareResult(e, verbose); } }); @@ -119,7 +86,67 @@ } } +CompareLevel _compareResult(CommonMarkTestCase expected, bool verboseFail) { + String output; + try { + output = markdownToHtml(expected.markdown); + } catch (err, stackTrace) { + if (verboseFail) { + printVerboseFailure( + 'ERROR', expected, expected.html, 'Thrown: $err\n$stackTrace'); + } + + return CompareLevel.error; + } + + if (expected.html == output) { + return CompareLevel.strict; + } + + var expectedParsed = parseFragment(expected.html); + var actual = parseFragment(output); + + var looseMatch = _compareHtml(expectedParsed.children, actual.children); + + if (!looseMatch && verboseFail) { + printVerboseFailure( + 'FAIL', expected, expectedParsed.outerHtml, actual.outerHtml); + } + + return looseMatch ? CompareLevel.loose : CompareLevel.fail; +} + +String indent(String s) => s.splitMapJoin('\n', onNonMatch: (n) => ' $n'); + +void printVerboseFailure( + String message, CommonMarkTestCase test, String expected, String actual) { + print('$message: http://spec.commonmark.org/0.26/#example-${test.example}'); + print('input:'); + print(indent(test.markdown)); + print('expected:'); + print(indent(expected)); + print('actual:'); + print(indent(actual)); + print('-----------------------'); +} + +enum CompareLevel { strict, loose, fail, error } + _convert(obj) { + if (obj is CompareLevel) { + switch (obj) { + case CompareLevel.strict: + return 'strict'; + case CompareLevel.error: + return 'error'; + case CompareLevel.fail: + return 'fail'; + case CompareLevel.loose: + return 'loose'; + default: + throw 'huh?'; + } + } if (obj is Map) { var map = {}; obj.forEach((k, v) { @@ -131,7 +158,7 @@ return obj; } -Future _printRaw(scores, bool updateFiles) async { +Future _printRaw(Map scores, bool updateFiles) async { IOSink sink; if (updateFiles) { var path = p.join(_currentDir, 'common_mark_stats.json'); @@ -155,7 +182,8 @@ await sink.close(); } -Future _printFriendly(SplayTreeMap<String, SplayTreeMap<int, bool>> scores, +Future _printFriendly( + SplayTreeMap<String, SplayTreeMap<int, CompareLevel>> scores, bool updateFiles) async { const countWidth = 4; @@ -172,11 +200,17 @@ sink = stdout; } - scores.forEach((section, map) { + scores.forEach((section, Map<int, CompareLevel> map) { var total = map.values.length; totalExamples += total; - var sectionValidCount = map.values.where((val) => val).length; + var sectionStrictCount = + map.values.where((val) => val == CompareLevel.strict).length; + + var sectionLooseCount = + map.values.where((val) => val == CompareLevel.loose).length; + + var sectionValidCount = sectionStrictCount + sectionLooseCount; totalValid += sectionValidCount; @@ -198,7 +232,8 @@ } /// Compare two DOM trees for equality. -bool compareHtml(List<Element> expectedElements, List<Element> actualElements) { +bool _compareHtml( + List<Element> expectedElements, List<Element> actualElements) { if (expectedElements.length != actualElements.length) { return false; } @@ -239,7 +274,7 @@ } } - var childrenEqual = compareHtml(expected.children, actual.children); + var childrenEqual = _compareHtml(expected.children, actual.children); if (!childrenEqual) { return false;
diff --git a/pkgs/markdown/tool/common_mark_stats.json b/pkgs/markdown/tool/common_mark_stats.json index a020258..16c6480 100644 --- a/pkgs/markdown/tool/common_mark_stats.json +++ b/pkgs/markdown/tool/common_mark_stats.json
@@ -1,673 +1,673 @@ { "ATX headings": { - "32": true, - "33": true, - "34": true, - "35": true, - "36": true, - "37": true, - "38": false, - "39": true, - "40": true, - "41": false, - "42": true, - "43": true, - "44": true, - "45": true, - "46": true, - "47": true, - "48": true, - "49": false + "32": "strict", + "33": "strict", + "34": "strict", + "35": "strict", + "36": "strict", + "37": "strict", + "38": "fail", + "39": "strict", + "40": "loose", + "41": "fail", + "42": "strict", + "43": "loose", + "44": "strict", + "45": "loose", + "46": "loose", + "47": "strict", + "48": "strict", + "49": "fail" }, "Autolinks": { - "560": true, - "561": true, - "562": false, - "563": false, - "564": false, - "565": false, - "566": true, - "567": false, - "568": false, - "569": false, - "570": false, - "571": false, - "572": true, - "573": true, - "574": true, - "575": true, - "576": true, - "577": true, - "578": true + "560": "strict", + "561": "loose", + "562": "fail", + "563": "fail", + "564": "fail", + "565": "fail", + "566": "strict", + "567": "fail", + "568": "fail", + "569": "fail", + "570": "fail", + "571": "fail", + "572": "loose", + "573": "loose", + "574": "loose", + "575": "loose", + "576": "loose", + "577": "strict", + "578": "strict" }, "Backslash escapes": { - "288": true, - "289": true, - "290": false, - "291": true, - "292": true, - "293": true, - "294": true, - "295": true, - "296": false, - "297": true, - "298": false, - "299": false, - "300": false + "288": "loose", + "289": "strict", + "290": "fail", + "291": "strict", + "292": "strict", + "293": "strict", + "294": "strict", + "295": "strict", + "296": "fail", + "297": "strict", + "298": "fail", + "299": "fail", + "300": "fail" }, "Blank lines": { - "188": true + "188": "strict" }, "Block quotes": { - "189": true, - "190": true, - "191": true, - "192": true, - "193": true, - "194": true, - "195": true, - "196": true, - "197": true, - "198": false, - "199": false, - "200": true, - "201": true, - "202": true, - "203": true, - "204": true, - "205": true, - "206": true, - "207": true, - "208": true, - "209": true, - "210": false, - "211": true, - "212": true, - "213": true + "189": "loose", + "190": "loose", + "191": "loose", + "192": "strict", + "193": "loose", + "194": "loose", + "195": "loose", + "196": "loose", + "197": "loose", + "198": "fail", + "199": "fail", + "200": "loose", + "201": "loose", + "202": "loose", + "203": "loose", + "204": "loose", + "205": "loose", + "206": "loose", + "207": "loose", + "208": "loose", + "209": "loose", + "210": "fail", + "211": "loose", + "212": "loose", + "213": "loose" }, "Code spans": { - "313": true, - "314": true, - "315": true, - "316": true, - "317": true, - "318": true, - "319": true, - "320": true, - "321": true, - "322": true, - "323": true, - "324": true, - "325": false, - "326": false, - "327": true + "313": "strict", + "314": "strict", + "315": "strict", + "316": "strict", + "317": "loose", + "318": "strict", + "319": "strict", + "320": "strict", + "321": "strict", + "322": "loose", + "323": "strict", + "324": "loose", + "325": "fail", + "326": "fail", + "327": "strict" }, "Emphasis and strong emphasis": { - "328": true, - "329": true, - "330": false, - "331": false, - "332": true, - "333": true, - "334": true, - "335": false, - "336": true, - "337": true, - "338": true, - "339": false, - "340": true, - "341": true, - "342": true, - "343": false, - "344": false, - "345": false, - "346": false, - "347": true, - "348": false, - "349": true, - "350": true, - "351": true, - "352": false, - "353": true, - "354": true, - "355": true, - "356": false, - "357": false, - "358": true, - "359": true, - "360": false, - "361": false, - "362": true, - "363": true, - "364": true, - "365": false, - "366": true, - "367": true, - "368": false, - "369": false, - "370": false, - "371": true, - "372": true, - "373": true, - "374": false, - "375": true, - "376": true, - "377": true, - "378": false, - "379": true, - "380": true, - "381": true, - "382": true, - "383": true, - "384": true, - "385": false, - "386": false, - "387": false, - "388": false, - "389": false, - "390": false, - "391": false, - "392": false, - "393": false, - "394": false, - "395": true, - "396": false, - "397": true, - "398": true, - "399": true, - "400": true, - "401": false, - "402": false, - "403": true, - "404": true, - "405": true, - "406": true, - "407": false, - "408": true, - "409": true, - "410": false, - "411": true, - "412": true, - "413": true, - "414": false, - "415": true, - "416": true, - "417": false, - "418": true, - "419": false, - "420": false, - "421": true, - "422": true, - "423": true, - "424": true, - "425": true, - "426": false, - "427": true, - "428": true, - "429": false, - "430": true, - "431": true, - "432": false, - "433": true, - "434": true, - "435": true, - "436": true, - "437": true, - "438": true, - "439": false, - "440": false, - "441": false, - "442": true, - "443": false, - "444": true, - "445": false, - "446": true, - "447": true, - "448": false, - "449": false, - "450": true, - "451": true, - "452": true, - "453": true, - "454": true, - "455": true, - "456": true + "328": "strict", + "329": "strict", + "330": "fail", + "331": "fail", + "332": "strict", + "333": "strict", + "334": "strict", + "335": "fail", + "336": "loose", + "337": "strict", + "338": "strict", + "339": "fail", + "340": "loose", + "341": "strict", + "342": "strict", + "343": "fail", + "344": "fail", + "345": "fail", + "346": "fail", + "347": "strict", + "348": "fail", + "349": "strict", + "350": "strict", + "351": "strict", + "352": "fail", + "353": "strict", + "354": "strict", + "355": "strict", + "356": "fail", + "357": "fail", + "358": "strict", + "359": "strict", + "360": "fail", + "361": "fail", + "362": "loose", + "363": "strict", + "364": "strict", + "365": "fail", + "366": "strict", + "367": "strict", + "368": "fail", + "369": "fail", + "370": "fail", + "371": "strict", + "372": "loose", + "373": "strict", + "374": "fail", + "375": "strict", + "376": "strict", + "377": "strict", + "378": "fail", + "379": "strict", + "380": "strict", + "381": "strict", + "382": "strict", + "383": "strict", + "384": "strict", + "385": "fail", + "386": "fail", + "387": "fail", + "388": "fail", + "389": "fail", + "390": "fail", + "391": "fail", + "392": "fail", + "393": "fail", + "394": "fail", + "395": "strict", + "396": "fail", + "397": "strict", + "398": "strict", + "399": "strict", + "400": "strict", + "401": "fail", + "402": "fail", + "403": "strict", + "404": "strict", + "405": "strict", + "406": "strict", + "407": "fail", + "408": "strict", + "409": "strict", + "410": "fail", + "411": "strict", + "412": "strict", + "413": "strict", + "414": "fail", + "415": "strict", + "416": "strict", + "417": "fail", + "418": "strict", + "419": "fail", + "420": "fail", + "421": "strict", + "422": "strict", + "423": "strict", + "424": "strict", + "425": "strict", + "426": "fail", + "427": "strict", + "428": "strict", + "429": "fail", + "430": "loose", + "431": "loose", + "432": "fail", + "433": "loose", + "434": "loose", + "435": "strict", + "436": "strict", + "437": "strict", + "438": "strict", + "439": "fail", + "440": "fail", + "441": "fail", + "442": "strict", + "443": "fail", + "444": "strict", + "445": "fail", + "446": "loose", + "447": "loose", + "448": "fail", + "449": "fail", + "450": "strict", + "451": "strict", + "452": "strict", + "453": "strict", + "454": "strict", + "455": "strict", + "456": "strict" }, "Entity and numeric character references": { - "301": true, - "302": true, - "303": true, - "304": true, - "305": true, - "306": true, - "307": true, - "308": false, - "309": false, - "310": true, - "311": true, - "312": true + "301": "loose", + "302": "loose", + "303": "loose", + "304": "loose", + "305": "strict", + "306": "loose", + "307": "strict", + "308": "fail", + "309": "fail", + "310": "loose", + "311": "strict", + "312": "strict" }, "Fenced code blocks": { - "88": true, - "89": true, - "90": true, - "91": true, - "92": true, - "93": true, - "94": true, - "95": true, - "96": true, - "97": true, - "98": true, - "99": true, - "100": true, - "101": true, - "102": true, - "103": true, - "104": true, - "105": true, - "106": false, - "107": true, - "108": true, - "109": true, - "110": true, - "111": true, - "112": true, - "113": false, - "114": false + "88": "strict", + "89": "strict", + "90": "strict", + "91": "strict", + "92": "strict", + "93": "strict", + "94": "loose", + "95": "loose", + "96": "loose", + "97": "strict", + "98": "strict", + "99": "loose", + "100": "loose", + "101": "loose", + "102": "strict", + "103": "strict", + "104": "strict", + "105": "loose", + "106": "fail", + "107": "loose", + "108": "strict", + "109": "strict", + "110": "strict", + "111": "strict", + "112": "strict", + "113": "fail", + "114": "fail" }, "Hard line breaks": { - "600": true, - "601": true, - "602": true, - "603": true, - "604": true, - "605": true, - "606": true, - "607": true, - "608": true, - "609": true, - "610": true, - "611": true, - "612": true, - "613": true, - "614": true + "600": "strict", + "601": "strict", + "602": "strict", + "603": "loose", + "604": "loose", + "605": "strict", + "606": "strict", + "607": "loose", + "608": "loose", + "609": "strict", + "610": "strict", + "611": "strict", + "612": "loose", + "613": "strict", + "614": "strict" }, "HTML blocks": { - "115": true, - "116": true, - "117": true, - "118": true, - "119": true, - "120": true, - "121": true, - "122": true, - "123": true, - "124": true, - "125": true, - "126": true, - "127": true, - "128": true, - "129": true, - "130": true, - "131": true, - "132": true, - "133": true, - "134": true, - "135": true, - "136": true, - "137": true, - "138": true, - "139": true, - "140": true, - "141": true, - "142": true, - "143": true, - "144": true, - "145": true, - "146": true, - "147": true, - "148": true, - "149": true, - "150": true, - "151": true, - "152": true, - "153": true, - "154": true, - "155": true, - "156": true + "115": "strict", + "116": "strict", + "117": "strict", + "118": "loose", + "119": "strict", + "120": "strict", + "121": "strict", + "122": "strict", + "123": "strict", + "124": "strict", + "125": "strict", + "126": "strict", + "127": "strict", + "128": "strict", + "129": "strict", + "130": "strict", + "131": "strict", + "132": "strict", + "133": "loose", + "134": "strict", + "135": "strict", + "136": "strict", + "137": "strict", + "138": "loose", + "139": "loose", + "140": "loose", + "141": "strict", + "142": "strict", + "143": "strict", + "144": "strict", + "145": "strict", + "146": "strict", + "147": "strict", + "148": "strict", + "149": "strict", + "150": "loose", + "151": "strict", + "152": "strict", + "153": "loose", + "154": "strict", + "155": "loose", + "156": "loose" }, "Images": { - "538": true, - "539": true, - "540": false, - "541": true, - "542": true, - "543": true, - "544": true, - "545": true, - "546": true, - "547": true, - "548": true, - "549": true, - "550": true, - "551": true, - "552": true, - "553": true, - "554": true, - "555": true, - "556": true, - "557": true, - "558": true, - "559": true + "538": "loose", + "539": "loose", + "540": "fail", + "541": "loose", + "542": "loose", + "543": "loose", + "544": "loose", + "545": "loose", + "546": "loose", + "547": "loose", + "548": "loose", + "549": "loose", + "550": "loose", + "551": "loose", + "552": "loose", + "553": "loose", + "554": "loose", + "555": "loose", + "556": "loose", + "557": "loose", + "558": "strict", + "559": "strict" }, "Indented code blocks": { - "76": true, - "77": true, - "78": true, - "79": true, - "80": false, - "81": true, - "82": true, - "83": true, - "84": false, - "85": true, - "86": true, - "87": true + "76": "strict", + "77": "loose", + "78": "loose", + "79": "strict", + "80": "fail", + "81": "strict", + "82": "loose", + "83": "strict", + "84": "fail", + "85": "strict", + "86": "loose", + "87": "strict" }, "Inlines": { - "287": true + "287": "strict" }, "Link reference definitions": { - "157": true, - "158": true, - "159": false, - "160": true, - "161": true, - "162": true, - "163": true, - "164": true, - "165": false, - "166": true, - "167": true, - "168": true, - "169": false, - "170": true, - "171": true, - "172": true, - "173": true, - "174": true, - "175": true, - "176": true, - "177": true, - "178": true, - "179": true + "157": "strict", + "158": "strict", + "159": "fail", + "160": "strict", + "161": "strict", + "162": "strict", + "163": "strict", + "164": "strict", + "165": "fail", + "166": "strict", + "167": "strict", + "168": "strict", + "169": "fail", + "170": "loose", + "171": "strict", + "172": "loose", + "173": "loose", + "174": "loose", + "175": "strict", + "176": "strict", + "177": "loose", + "178": "strict", + "179": "loose" }, "Links": { - "457": true, - "458": true, - "459": true, - "460": true, - "461": true, - "462": true, - "463": true, - "464": false, - "465": false, - "466": false, - "467": false, - "468": false, - "469": false, - "470": false, - "471": true, - "472": false, - "473": false, - "474": false, - "475": false, - "476": false, - "477": true, - "478": false, - "479": false, - "480": true, - "481": false, - "482": true, - "483": true, - "484": true, - "485": false, - "486": true, - "487": false, - "488": false, - "489": false, - "490": false, - "491": true, - "492": true, - "493": true, - "494": true, - "495": false, - "496": true, - "497": true, - "498": true, - "499": false, - "500": true, - "501": true, - "502": false, - "503": false, - "504": true, - "505": true, - "506": true, - "507": false, - "508": true, - "509": true, - "510": false, - "511": true, - "512": true, - "513": true, - "514": true, - "515": false, - "516": true, - "517": true, - "518": true, - "519": true, - "520": true, - "521": true, - "522": true, - "523": true, - "524": true, - "525": true, - "526": true, - "527": true, - "528": true, - "529": true, - "530": true, - "531": true, - "532": true, - "533": false, - "534": true, - "535": true, - "536": true, - "537": true + "457": "strict", + "458": "strict", + "459": "strict", + "460": "strict", + "461": "strict", + "462": "loose", + "463": "strict", + "464": "fail", + "465": "fail", + "466": "fail", + "467": "fail", + "468": "fail", + "469": "fail", + "470": "fail", + "471": "strict", + "472": "fail", + "473": "fail", + "474": "fail", + "475": "fail", + "476": "fail", + "477": "loose", + "478": "fail", + "479": "fail", + "480": "strict", + "481": "fail", + "482": "strict", + "483": "strict", + "484": "strict", + "485": "fail", + "486": "loose", + "487": "fail", + "488": "fail", + "489": "fail", + "490": "fail", + "491": "strict", + "492": "strict", + "493": "strict", + "494": "strict", + "495": "fail", + "496": "strict", + "497": "loose", + "498": "strict", + "499": "fail", + "500": "loose", + "501": "loose", + "502": "fail", + "503": "fail", + "504": "strict", + "505": "strict", + "506": "strict", + "507": "fail", + "508": "strict", + "509": "strict", + "510": "fail", + "511": "strict", + "512": "strict", + "513": "strict", + "514": "strict", + "515": "fail", + "516": "strict", + "517": "strict", + "518": "strict", + "519": "strict", + "520": "strict", + "521": "loose", + "522": "strict", + "523": "strict", + "524": "strict", + "525": "loose", + "526": "strict", + "527": "strict", + "528": "strict", + "529": "strict", + "530": "strict", + "531": "strict", + "532": "strict", + "533": "fail", + "534": "strict", + "535": "loose", + "536": "strict", + "537": "loose" }, "List items": { - "214": true, - "215": true, - "216": true, - "217": true, - "218": true, - "219": true, - "220": true, - "221": true, - "222": true, - "223": false, - "224": true, - "225": false, - "226": false, - "227": true, - "228": false, - "229": false, - "230": true, - "231": true, - "232": false, - "233": true, - "234": false, - "235": false, - "236": true, - "237": true, - "238": true, - "239": false, - "240": false, - "241": false, - "242": false, - "243": false, - "244": false, - "245": true, - "246": false, - "247": true, - "248": true, - "249": true, - "250": true, - "251": true, - "252": true, - "253": true, - "254": true, - "255": true, - "256": true, - "257": false, - "258": false, - "259": true, - "260": false, - "261": true + "214": "loose", + "215": "loose", + "216": "loose", + "217": "loose", + "218": "loose", + "219": "loose", + "220": "loose", + "221": "loose", + "222": "strict", + "223": "fail", + "224": "loose", + "225": "fail", + "226": "fail", + "227": "strict", + "228": "fail", + "229": "fail", + "230": "strict", + "231": "loose", + "232": "fail", + "233": "strict", + "234": "fail", + "235": "fail", + "236": "loose", + "237": "loose", + "238": "loose", + "239": "fail", + "240": "fail", + "241": "fail", + "242": "fail", + "243": "fail", + "244": "fail", + "245": "loose", + "246": "fail", + "247": "loose", + "248": "loose", + "249": "loose", + "250": "strict", + "251": "loose", + "252": "loose", + "253": "loose", + "254": "loose", + "255": "loose", + "256": "loose", + "257": "fail", + "258": "fail", + "259": "loose", + "260": "fail", + "261": "loose" }, "Lists": { - "262": true, - "263": false, - "264": true, - "265": true, - "266": false, - "267": true, - "268": false, - "269": false, - "270": true, - "271": true, - "272": false, - "273": false, - "274": true, - "275": true, - "276": true, - "277": true, - "278": false, - "279": true, - "280": true, - "281": true, - "282": true, - "283": true, - "284": true, - "285": false, - "286": true + "262": "loose", + "263": "fail", + "264": "loose", + "265": "loose", + "266": "fail", + "267": "loose", + "268": "fail", + "269": "fail", + "270": "loose", + "271": "loose", + "272": "fail", + "273": "fail", + "274": "loose", + "275": "loose", + "276": "loose", + "277": "loose", + "278": "fail", + "279": "loose", + "280": "loose", + "281": "loose", + "282": "loose", + "283": "loose", + "284": "loose", + "285": "fail", + "286": "loose" }, "Paragraphs": { - "180": true, - "181": true, - "182": true, - "183": true, - "184": true, - "185": true, - "186": true, - "187": true + "180": "strict", + "181": "strict", + "182": "strict", + "183": "loose", + "184": "loose", + "185": "loose", + "186": "strict", + "187": "loose" }, "Precedence": { - "12": true + "12": "loose" }, "Raw HTML": { - "579": true, - "580": false, - "581": false, - "582": true, - "583": true, - "584": true, - "585": false, - "586": true, - "587": true, - "588": false, - "589": true, - "590": false, - "591": true, - "592": true, - "593": true, - "594": true, - "595": true, - "596": true, - "597": true, - "598": true, - "599": false + "579": "strict", + "580": "fail", + "581": "fail", + "582": "strict", + "583": "strict", + "584": "loose", + "585": "fail", + "586": "loose", + "587": "loose", + "588": "fail", + "589": "strict", + "590": "fail", + "591": "loose", + "592": "loose", + "593": "loose", + "594": "strict", + "595": "strict", + "596": "loose", + "597": "strict", + "598": "strict", + "599": "fail" }, "Setext headings": { - "50": true, - "51": false, - "52": true, - "53": false, - "54": true, - "55": false, - "56": true, - "57": true, - "58": true, - "59": true, - "60": true, - "61": true, - "62": false, - "63": true, - "64": false, - "65": true, - "66": true, - "67": true, - "68": true, - "69": false, - "70": true, - "71": true, - "72": true, - "73": true, - "74": true, - "75": true + "50": "strict", + "51": "fail", + "52": "strict", + "53": "fail", + "54": "strict", + "55": "fail", + "56": "loose", + "57": "strict", + "58": "loose", + "59": "strict", + "60": "loose", + "61": "loose", + "62": "fail", + "63": "loose", + "64": "fail", + "65": "strict", + "66": "strict", + "67": "strict", + "68": "loose", + "69": "fail", + "70": "loose", + "71": "loose", + "72": "strict", + "73": "strict", + "74": "strict", + "75": "strict" }, "Soft line breaks": { - "615": true, - "616": true + "615": "strict", + "616": "loose" }, "Tabs": { - "1": true, - "2": false, - "3": true, - "4": false, - "5": false, - "6": true, - "7": true, - "8": true, - "9": false, - "10": true, - "11": false + "1": "strict", + "2": "fail", + "3": "strict", + "4": "fail", + "5": "fail", + "6": "loose", + "7": "loose", + "8": "strict", + "9": "fail", + "10": "strict", + "11": "fail" }, "Textual content": { - "617": true, - "618": true, - "619": true + "617": "strict", + "618": "strict", + "619": "strict" }, "Thematic breaks": { - "13": true, - "14": true, - "15": true, - "16": true, - "17": true, - "18": true, - "19": true, - "20": true, - "21": true, - "22": true, - "23": true, - "24": true, - "25": false, - "26": true, - "27": true, - "28": true, - "29": true, - "30": false, - "31": true + "13": "strict", + "14": "strict", + "15": "strict", + "16": "strict", + "17": "strict", + "18": "strict", + "19": "loose", + "20": "strict", + "21": "strict", + "22": "strict", + "23": "strict", + "24": "strict", + "25": "fail", + "26": "loose", + "27": "loose", + "28": "strict", + "29": "strict", + "30": "fail", + "31": "loose" } }