markdownlint 0.31.1 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/CONTRIBUTING.md +2 -2
  3. package/README.md +19 -28
  4. package/demo/markdownlint-browser.js +521 -352
  5. package/doc/Rules.md +146 -127
  6. package/doc/md001.md +2 -2
  7. package/doc/md003.md +2 -2
  8. package/doc/md007.md +3 -4
  9. package/doc/md013.md +0 -3
  10. package/doc/md018.md +1 -1
  11. package/doc/md019.md +1 -1
  12. package/doc/md020.md +1 -1
  13. package/doc/md021.md +1 -1
  14. package/doc/md022.md +2 -2
  15. package/doc/md023.md +9 -2
  16. package/doc/md024.md +2 -2
  17. package/doc/md025.md +1 -1
  18. package/doc/md026.md +1 -1
  19. package/doc/md036.md +2 -2
  20. package/doc/md041.md +1 -1
  21. package/doc/md043.md +2 -5
  22. package/doc/md045.md +6 -0
  23. package/doc/md049.md +1 -1
  24. package/doc/md050.md +1 -1
  25. package/doc/md053.md +3 -3
  26. package/doc/md054.md +100 -0
  27. package/helpers/helpers.js +27 -7
  28. package/helpers/micromark.cjs +62 -15
  29. package/helpers/package.json +2 -1
  30. package/helpers/shared.js +3 -0
  31. package/lib/configuration.d.ts +1152 -0
  32. package/lib/constants.js +7 -7
  33. package/lib/markdownlint.d.ts +2 -4
  34. package/lib/markdownlint.js +9 -8
  35. package/lib/md001.js +2 -2
  36. package/lib/md003.js +2 -2
  37. package/lib/md005.js +21 -17
  38. package/lib/md007.js +62 -25
  39. package/lib/md013.js +1 -4
  40. package/lib/md018.js +1 -1
  41. package/lib/md019.js +1 -1
  42. package/lib/md020.js +1 -1
  43. package/lib/md021.js +1 -1
  44. package/lib/md022.js +4 -4
  45. package/lib/md023.js +2 -2
  46. package/lib/md024.js +2 -2
  47. package/lib/md025.js +1 -1
  48. package/lib/md026.js +1 -1
  49. package/lib/md030.js +33 -22
  50. package/lib/md032.js +1 -4
  51. package/lib/md033.js +1 -3
  52. package/lib/md034.js +31 -25
  53. package/lib/md036.js +2 -2
  54. package/lib/md037.js +2 -2
  55. package/lib/md038.js +7 -5
  56. package/lib/md041.js +1 -1
  57. package/lib/md043.js +3 -3
  58. package/lib/md045.js +33 -3
  59. package/lib/md049-md050.js +2 -2
  60. package/lib/md051.js +8 -6
  61. package/lib/md053.js +1 -1
  62. package/lib/md054.js +118 -0
  63. package/lib/rules.js +5 -3
  64. package/package.json +17 -15
  65. package/schema/.markdownlint.jsonc +63 -60
  66. package/schema/.markdownlint.yaml +62 -59
  67. package/schema/markdownlint-config-schema.json +840 -186
  68. package/style/relaxed.json +0 -1
  69. package/doc/md002.md +0 -37
  70. package/doc/md006.md +0 -46
  71. package/lib/md002.js +0 -22
  72. package/lib/md006.js +0 -34
@@ -1,4 +1,4 @@
1
- /*! markdownlint 0.31.1 https://github.com/DavidAnson/markdownlint @license MIT */
1
+ /*! markdownlint 0.32.0 https://github.com/DavidAnson/markdownlint @license MIT */
2
2
  var markdownlint;
3
3
  /******/ (() => { // webpackBootstrap
4
4
  /******/ var __webpack_modules__ = ({
@@ -46,18 +46,16 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
46
46
  function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
47
47
  var micromark = __webpack_require__(/*! ./micromark.cjs */ "../helpers/micromark.cjs");
48
48
  var _require = __webpack_require__(/*! ./shared.js */ "../helpers/shared.js"),
49
- newLineRe = _require.newLineRe;
49
+ newLineRe = _require.newLineRe,
50
+ nextLinesRe = _require.nextLinesRe;
50
51
  module.exports.newLineRe = newLineRe;
52
+ module.exports.nextLinesRe = nextLinesRe;
51
53
 
52
54
  // Regular expression for matching common front matter (YAML and TOML)
53
- module.exports.frontMatterRe =
54
- // eslint-disable-next-line max-len
55
- /((^---\s*$[\s\S]*?^---\s*)|(^\+\+\+\s*$[\s\S]*?^(\+\+\+|\.\.\.)\s*)|(^\{\s*$[\s\S]*?^\}\s*))(\r\n|\r|\n|$)/m;
55
+ module.exports.frontMatterRe = /((^---\s*$[\s\S]+?^---\s*)|(^\+\+\+\s*$[\s\S]+?^(\+\+\+|\.\.\.)\s*)|(^\{\s*$[\s\S]+?^\}\s*))(\r\n|\r|\n|$)/m;
56
56
 
57
57
  // Regular expression for matching the start of inline disable/enable comments
58
- var inlineCommentStartRe =
59
- // eslint-disable-next-line max-len
60
- /(<!--\s*markdownlint-(disable|enable|capture|restore|disable-file|enable-file|disable-line|disable-next-line|configure-file))(?:\s|-->)/gi;
58
+ var inlineCommentStartRe = /(<!--\s*markdownlint-(disable|enable|capture|restore|disable-file|enable-file|disable-line|disable-next-line|configure-file))(?:\s|-->)/gi;
61
59
  module.exports.inlineCommentStartRe = inlineCommentStartRe;
62
60
 
63
61
  // Regular expressions for range matching
@@ -73,14 +71,10 @@ var linkReferenceDefinitionRe = /^ {0,3}\[([^\]]*[^\\])\]:/;
73
71
  module.exports.linkReferenceDefinitionRe = linkReferenceDefinitionRe;
74
72
 
75
73
  // Regular expression for identifying an HTML entity at the end of a line
76
- module.exports.endOfLineHtmlEntityRe =
77
- // eslint-disable-next-line max-len
78
- /&(?:#\d+|#[xX][\da-fA-F]+|[a-zA-Z]{2,31}|blk\d{2}|emsp1[34]|frac\d{2}|sup\d|there4);$/;
74
+ module.exports.endOfLineHtmlEntityRe = /&(?:#\d+|#[xX][\da-fA-F]+|[a-zA-Z]{2,31}|blk\d{2}|emsp1[34]|frac\d{2}|sup\d|there4);$/;
79
75
 
80
76
  // Regular expression for identifying a GitHub emoji code at the end of a line
81
- module.exports.endOfLineGemojiCodeRe =
82
- // eslint-disable-next-line max-len
83
- /:(?:[abmovx]|[-+]1|100|1234|(?:1st|2nd|3rd)_place_medal|8ball|clock\d{1,4}|e-mail|non-potable_water|o2|t-rex|u5272|u5408|u55b6|u6307|u6708|u6709|u6e80|u7121|u7533|u7981|u7a7a|[a-z]{2,15}2?|[a-z]{1,14}(?:_[a-z\d]{1,16})+):$/;
77
+ module.exports.endOfLineGemojiCodeRe = /:(?:[abmovx]|[-+]1|100|1234|(?:1st|2nd|3rd)_place_medal|8ball|clock\d{1,4}|e-mail|non-potable_water|o2|t-rex|u5272|u5408|u55b6|u6307|u6708|u6709|u6e80|u7121|u7533|u7981|u7a7a|[a-z]{2,15}2?|[a-z]{1,14}(?:_[a-z\d]{1,16})+):$/;
84
78
 
85
79
  // All punctuation characters (normal and full-width)
86
80
  var allPunctuation = ".,;:!?。,;:!?";
@@ -166,6 +160,16 @@ function cloneIfUrl(url) {
166
160
  }
167
161
  module.exports.cloneIfUrl = cloneIfUrl;
168
162
 
163
+ /**
164
+ * Gets a Regular Expression for matching the specified HTML attribute.
165
+ *
166
+ * @param {string} name HTML attribute name.
167
+ * @returns {RegExp} Regular Expression for matching.
168
+ */
169
+ module.exports.getHtmlAttributeRe = function getHtmlAttributeRe(name) {
170
+ return new RegExp("\\s".concat(name, "\\s*=\\s*['\"]?([^'\"\\s>]*)"), "iu");
171
+ };
172
+
169
173
  /**
170
174
  * Returns true iff the input line is blank (contains nothing, whitespace, or
171
175
  * comments (unclosed start/end comments allowed)).
@@ -787,7 +791,12 @@ function getReferenceLinkImageData(params) {
787
791
  if (definitions.has(reference)) {
788
792
  duplicateDefinitions.push([reference, token.startLine - 1]);
789
793
  } else {
790
- definitions.set(reference, token.startLine - 1);
794
+ var destinationString = null;
795
+ var parent = micromark.getTokenParentOfType(token, ["definition"]);
796
+ if (parent) {
797
+ destinationString = micromark.getTokenTextByType(micromark.filterByPredicate(parent.children), "definitionDestinationString");
798
+ }
799
+ definitions.set(reference, [token.startLine - 1, destinationString]);
791
800
  }
792
801
  }
793
802
  break;
@@ -1064,6 +1073,9 @@ module.exports.expandTildePath = expandTildePath;
1064
1073
  // See NEWLINES_RE in markdown-it/lib/rules_core/normalize.js
1065
1074
  module.exports.newLineRe = /\r\n?|\n/g;
1066
1075
 
1076
+ // Regular expression for matching next lines
1077
+ module.exports.nextLinesRe = /[\r\n][\s\S]*$/;
1078
+
1067
1079
  /***/ }),
1068
1080
 
1069
1081
  /***/ "markdown-it":
@@ -1204,6 +1216,7 @@ var flatTokensSymbol = Symbol("flat-tokens");
1204
1216
  * @property {number} endColumn End column (1-based).
1205
1217
  * @property {string} text Token text.
1206
1218
  * @property {Token[]} children Child tokens.
1219
+ * @property {Token | null} parent Parent token.
1207
1220
  */
1208
1221
 
1209
1222
  /**
@@ -1217,8 +1230,16 @@ function isHtmlFlowComment(token) {
1217
1230
  type = token.type;
1218
1231
  if (type === "htmlFlow" && text.startsWith("<!--") && text.endsWith("-->")) {
1219
1232
  var comment = text.slice(4, -3);
1220
- return !comment.startsWith(">") && !comment.startsWith("->") && !comment.endsWith("-") && !comment.includes("--");
1233
+ return !comment.startsWith(">") && !comment.startsWith("->") && !comment.endsWith("-")
1234
+ // The following condition from the CommonMark specification is commented
1235
+ // to avoid parsing HTML comments that include "--" because that is NOT a
1236
+ // condition of the HTML specification.
1237
+ // https://spec.commonmark.org/0.30/#raw-html
1238
+ // https://html.spec.whatwg.org/multipage/syntax.html#comments
1239
+ // && !comment.includes("--")
1240
+ ;
1221
1241
  }
1242
+
1222
1243
  return false;
1223
1244
  }
1224
1245
 
@@ -1259,19 +1280,29 @@ function getMicromarkEvents(markdown) {
1259
1280
  * @param {Object} micromarkOptions Options for micromark.
1260
1281
  * @param {boolean} referencesDefined Treat references as defined.
1261
1282
  * @param {number} lineDelta Offset to apply to start/end line.
1283
+ * @param {Token} [ancestor] Parent of top-most tokens.
1262
1284
  * @returns {Token[]} Micromark tokens (frozen).
1263
1285
  */
1264
- function micromarkParseWithOffset(markdown, micromarkOptions, referencesDefined, lineDelta) {
1286
+ function micromarkParseWithOffset(markdown, micromarkOptions, referencesDefined, lineDelta, ancestor) {
1265
1287
  // Use micromark to parse document into Events
1266
1288
  var events = getMicromarkEvents(markdown, micromarkOptions, referencesDefined);
1267
1289
 
1268
1290
  // Create Token objects
1269
1291
  var document = [];
1270
1292
  var flatTokens = [];
1271
- var current = {
1272
- "children": document
1293
+ /** @type {Token} */
1294
+ var root = {
1295
+ "type": "ROOT",
1296
+ "startLine": -1,
1297
+ "startColumn": -1,
1298
+ "endLine": -1,
1299
+ "endColumn": -1,
1300
+ "text": "ROOT",
1301
+ "children": document,
1302
+ "parent": null
1273
1303
  };
1274
- var history = [current];
1304
+ var history = [root];
1305
+ var current = root;
1275
1306
  var reparseOptions = null;
1276
1307
  var lines = null;
1277
1308
  var skipHtmlFlowChildren = false;
@@ -1302,11 +1333,11 @@ function micromarkParseWithOffset(markdown, micromarkOptions, referencesDefined,
1302
1333
  "endLine": endLine + lineDelta,
1303
1334
  endColumn: endColumn,
1304
1335
  text: text,
1305
- "children": []
1336
+ "children": [],
1337
+ "parent": previous === root ? ancestor || null : previous
1306
1338
  };
1307
1339
  previous.children.push(current);
1308
1340
  flatTokens.push(current);
1309
- // @ts-ignore
1310
1341
  if (current.type === "htmlFlow" && !isHtmlFlowComment(current)) {
1311
1342
  skipHtmlFlowChildren = true;
1312
1343
  if (!reparseOptions || !lines) {
@@ -1320,7 +1351,7 @@ function micromarkParseWithOffset(markdown, micromarkOptions, referencesDefined,
1320
1351
  lines = markdown.split(newLineRe);
1321
1352
  }
1322
1353
  var reparseMarkdown = lines.slice(current.startLine - 1, current.endLine).join("\n");
1323
- var tokens = micromarkParseWithOffset(reparseMarkdown, reparseOptions, referencesDefined, current.startLine - 1);
1354
+ var tokens = micromarkParseWithOffset(reparseMarkdown, reparseOptions, referencesDefined, current.startLine - 1, current);
1324
1355
  current.children = tokens;
1325
1356
  // Avoid stack overflow of Array.push(...spread)
1326
1357
  // eslint-disable-next-line unicorn/prefer-spread
@@ -1382,11 +1413,14 @@ function micromarkParse(markdown) {
1382
1413
  * Filter a list of Micromark tokens by predicate.
1383
1414
  *
1384
1415
  * @param {Token[]} tokens Micromark tokens.
1385
- * @param {AllowedPredicate} allowed Allowed token predicate.
1416
+ * @param {AllowedPredicate} [allowed] Allowed token predicate.
1386
1417
  * @param {TransformPredicate} [transformChildren] Transform predicate.
1387
1418
  * @returns {Token[]} Filtered tokens.
1388
1419
  */
1389
1420
  function filterByPredicate(tokens, allowed, transformChildren) {
1421
+ allowed = allowed || function () {
1422
+ return true;
1423
+ };
1390
1424
  var result = [];
1391
1425
  var queue = [{
1392
1426
  "array": tokens,
@@ -1420,12 +1454,12 @@ function filterByPredicate(tokens, allowed, transformChildren) {
1420
1454
  * Filter a list of Micromark tokens by type.
1421
1455
  *
1422
1456
  * @param {Token[]} tokens Micromark tokens.
1423
- * @param {string[]} allowed Types to allow.
1457
+ * @param {string[]} types Types to allow.
1424
1458
  * @returns {Token[]} Filtered tokens.
1425
1459
  */
1426
- function filterByTypes(tokens, allowed) {
1460
+ function filterByTypes(tokens, types) {
1427
1461
  var predicate = function predicate(token) {
1428
- return allowed.includes(token.type);
1462
+ return types.includes(token.type);
1429
1463
  };
1430
1464
  var flatTokens = tokens[flatTokensSymbol];
1431
1465
  if (flatTokens) {
@@ -1475,7 +1509,23 @@ function getHtmlTagInfo(token) {
1475
1509
  }
1476
1510
 
1477
1511
  /**
1478
- * Get the text of a single token from a list of Micromark tokens by type.
1512
+ * Gets the nearest parent of the specified type for a Micromark token.
1513
+ *
1514
+ * @param {Token} token Micromark token.
1515
+ * @param {string[]} types Types to allow.
1516
+ * @returns {Token | null} Parent token.
1517
+ */
1518
+ function getTokenParentOfType(token, types) {
1519
+ /** @type {Token | null} */
1520
+ var current = token;
1521
+ while ((current = current.parent) && !types.includes(current.type)) {
1522
+ // Empty
1523
+ }
1524
+ return current;
1525
+ }
1526
+
1527
+ /**
1528
+ * Get the text of the first match from a list of Micromark tokens by type.
1479
1529
  *
1480
1530
  * @param {Token[]} tokens Micromark tokens.
1481
1531
  * @param {string} type Types to match.
@@ -1485,7 +1535,17 @@ function getTokenTextByType(tokens, type) {
1485
1535
  var filtered = tokens.filter(function (token) {
1486
1536
  return token.type === type;
1487
1537
  });
1488
- return filtered.length === 1 ? filtered[0].text : null;
1538
+ return filtered.length > 0 ? filtered[0].text : null;
1539
+ }
1540
+
1541
+ /**
1542
+ * Determines if a Micromark token has an htmlFlow-type parent.
1543
+ *
1544
+ * @param {Token} token Micromark token.
1545
+ * @returns {boolean} True iff the token has an htmlFlow-type parent.
1546
+ */
1547
+ function inHtmlFlow(token) {
1548
+ return getTokenParentOfType(token, ["htmlFlow"]) !== null;
1489
1549
  }
1490
1550
 
1491
1551
  /**
@@ -1530,7 +1590,9 @@ module.exports = {
1530
1590
  getHeadingLevel: getHeadingLevel,
1531
1591
  getHtmlTagInfo: getHtmlTagInfo,
1532
1592
  getMicromarkEvents: getMicromarkEvents,
1593
+ getTokenParentOfType: getTokenParentOfType,
1533
1594
  getTokenTextByType: getTokenTextByType,
1595
+ inHtmlFlow: inHtmlFlow,
1534
1596
  matchAndGetTokensByType: matchAndGetTokensByType,
1535
1597
  tokenIfType: tokenIfType
1536
1598
  };
@@ -1592,10 +1654,10 @@ module.exports.referenceLinkImageData = function () {
1592
1654
 
1593
1655
 
1594
1656
 
1595
- module.exports.deprecatedRuleNames = ["MD002", "MD006"];
1596
- module.exports.fixableRuleNames = ["MD004", "MD005", "MD006", "MD007", "MD009", "MD010", "MD011", "MD012", "MD014", "MD018", "MD019", "MD020", "MD021", "MD022", "MD023", "MD026", "MD027", "MD030", "MD031", "MD032", "MD034", "MD037", "MD038", "MD039", "MD044", "MD047", "MD049", "MD050", "MD051", "MD053"];
1657
+ module.exports.deprecatedRuleNames = [];
1658
+ module.exports.fixableRuleNames = ["MD004", "MD005", "MD007", "MD009", "MD010", "MD011", "MD012", "MD014", "MD018", "MD019", "MD020", "MD021", "MD022", "MD023", "MD026", "MD027", "MD030", "MD031", "MD032", "MD034", "MD037", "MD038", "MD039", "MD044", "MD047", "MD049", "MD050", "MD051", "MD053", "MD054"];
1597
1659
  module.exports.homepage = "https://github.com/DavidAnson/markdownlint";
1598
- module.exports.version = "0.31.1";
1660
+ module.exports.version = "0.32.0";
1599
1661
 
1600
1662
  /***/ }),
1601
1663
 
@@ -1632,14 +1694,13 @@ var _require = __webpack_require__(/*! node:util */ "?39e5"),
1632
1694
  promisify = _require.promisify;
1633
1695
  var markdownit = __webpack_require__(/*! markdown-it */ "markdown-it");
1634
1696
  var micromark = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs");
1635
- var _require2 = __webpack_require__(/*! ./constants */ "../lib/constants.js"),
1636
- deprecatedRuleNames = _require2.deprecatedRuleNames;
1697
+ // const { deprecatedRuleNames } = require("./constants");
1637
1698
  var rules = __webpack_require__(/*! ./rules */ "../lib/rules.js");
1638
1699
  var helpers = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js");
1639
1700
  var cache = __webpack_require__(/*! ./cache */ "../lib/cache.js");
1640
1701
 
1641
1702
  // @ts-ignore
1642
- // eslint-disable-next-line camelcase, max-len, no-inline-comments, no-undef
1703
+ // eslint-disable-next-line camelcase, no-inline-comments, no-undef
1643
1704
  var dynamicRequire = typeof require === "undefined" ? __webpack_require__("../lib sync recursive") : /* c8 ignore next */require;
1644
1705
  // Capture native require implementation for dynamic loading of modules
1645
1706
 
@@ -2044,6 +2105,7 @@ function getEffectiveConfig(ruleList, config, aliasToRuleNames) {
2044
2105
  return key.toUpperCase() === "DEFAULT";
2045
2106
  });
2046
2107
  var ruleDefault = defaultKey.length === 0 || !!config[defaultKey[0]];
2108
+ /** @type {Configuration} */
2047
2109
  var effectiveConfig = {};
2048
2110
  var _iterator14 = _createForOfIteratorHelper(ruleList),
2049
2111
  _step14;
@@ -2053,23 +2115,14 @@ function getEffectiveConfig(ruleList, config, aliasToRuleNames) {
2053
2115
  var _ruleName2 = rule.names[0].toUpperCase();
2054
2116
  effectiveConfig[_ruleName2] = ruleDefault;
2055
2117
  }
2118
+ // for (const ruleName of deprecatedRuleNames) {
2119
+ // effectiveConfig[ruleName] = false;
2120
+ // }
2056
2121
  } catch (err) {
2057
2122
  _iterator14.e(err);
2058
2123
  } finally {
2059
2124
  _iterator14.f();
2060
2125
  }
2061
- var _iterator15 = _createForOfIteratorHelper(deprecatedRuleNames),
2062
- _step15;
2063
- try {
2064
- for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
2065
- var _ruleName3 = _step15.value;
2066
- effectiveConfig[_ruleName3] = false;
2067
- }
2068
- } catch (err) {
2069
- _iterator15.e(err);
2070
- } finally {
2071
- _iterator15.f();
2072
- }
2073
2126
  for (var _i5 = 0, _Object$keys = Object.keys(config); _i5 < _Object$keys.length; _i5++) {
2074
2127
  var key = _Object$keys[_i5];
2075
2128
  var value = config[key];
@@ -2081,17 +2134,17 @@ function getEffectiveConfig(ruleList, config, aliasToRuleNames) {
2081
2134
  value = false;
2082
2135
  }
2083
2136
  var keyUpper = key.toUpperCase();
2084
- var _iterator16 = _createForOfIteratorHelper(aliasToRuleNames[keyUpper] || []),
2085
- _step16;
2137
+ var _iterator15 = _createForOfIteratorHelper(aliasToRuleNames[keyUpper] || []),
2138
+ _step15;
2086
2139
  try {
2087
- for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
2088
- var ruleName = _step16.value;
2140
+ for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {
2141
+ var ruleName = _step15.value;
2089
2142
  effectiveConfig[ruleName] = value;
2090
2143
  }
2091
2144
  } catch (err) {
2092
- _iterator16.e(err);
2145
+ _iterator15.e(err);
2093
2146
  } finally {
2094
- _iterator16.f();
2147
+ _iterator15.f();
2095
2148
  }
2096
2149
  }
2097
2150
  return effectiveConfig;
@@ -2152,13 +2205,13 @@ function getEnabledRulesPerLineNumber(ruleList, lines, frontMatterLines, noInlin
2152
2205
  // Helper functions
2153
2206
  // eslint-disable-next-line jsdoc/require-jsdoc
2154
2207
  function handleInlineConfig(input, forEachMatch, forEachLine) {
2155
- var _iterator17 = _createForOfIteratorHelper(input.entries()),
2156
- _step17;
2208
+ var _iterator16 = _createForOfIteratorHelper(input.entries()),
2209
+ _step16;
2157
2210
  try {
2158
- for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
2159
- var _step17$value = _slicedToArray(_step17.value, 2),
2160
- lineIndex = _step17$value[0],
2161
- line = _step17$value[1];
2211
+ for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {
2212
+ var _step16$value = _slicedToArray(_step16.value, 2),
2213
+ lineIndex = _step16$value[0],
2214
+ line = _step16$value[1];
2162
2215
  if (!noInlineConfig) {
2163
2216
  var match = null;
2164
2217
  while (match = helpers.inlineCommentStartRe.exec(line)) {
@@ -2177,9 +2230,9 @@ function getEnabledRulesPerLineNumber(ruleList, lines, frontMatterLines, noInlin
2177
2230
  }
2178
2231
  }
2179
2232
  } catch (err) {
2180
- _iterator17.e(err);
2233
+ _iterator16.e(err);
2181
2234
  } finally {
2182
- _iterator17.f();
2235
+ _iterator16.f();
2183
2236
  }
2184
2237
  }
2185
2238
  // eslint-disable-next-line jsdoc/require-jsdoc
@@ -2198,28 +2251,28 @@ function getEnabledRulesPerLineNumber(ruleList, lines, frontMatterLines, noInlin
2198
2251
  var enabled = action.startsWith("ENABLE");
2199
2252
  var trimmed = parameter && parameter.trim();
2200
2253
  var items = trimmed ? trimmed.toUpperCase().split(/\s+/) : allRuleNames;
2201
- var _iterator18 = _createForOfIteratorHelper(items),
2202
- _step18;
2254
+ var _iterator17 = _createForOfIteratorHelper(items),
2255
+ _step17;
2203
2256
  try {
2204
- for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
2205
- var nameUpper = _step18.value;
2206
- var _iterator19 = _createForOfIteratorHelper(aliasToRuleNames[nameUpper] || []),
2207
- _step19;
2257
+ for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {
2258
+ var nameUpper = _step17.value;
2259
+ var _iterator18 = _createForOfIteratorHelper(aliasToRuleNames[nameUpper] || []),
2260
+ _step18;
2208
2261
  try {
2209
- for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
2210
- var ruleName = _step19.value;
2262
+ for (_iterator18.s(); !(_step18 = _iterator18.n()).done;) {
2263
+ var ruleName = _step18.value;
2211
2264
  state[ruleName] = enabled;
2212
2265
  }
2213
2266
  } catch (err) {
2214
- _iterator19.e(err);
2267
+ _iterator18.e(err);
2215
2268
  } finally {
2216
- _iterator19.f();
2269
+ _iterator18.f();
2217
2270
  }
2218
2271
  }
2219
2272
  } catch (err) {
2220
- _iterator18.e(err);
2273
+ _iterator17.e(err);
2221
2274
  } finally {
2222
- _iterator18.f();
2275
+ _iterator17.f();
2223
2276
  }
2224
2277
  return state;
2225
2278
  }
@@ -2255,19 +2308,19 @@ function getEnabledRulesPerLineNumber(ruleList, lines, frontMatterLines, noInlin
2255
2308
  // Handle inline comments
2256
2309
  handleInlineConfig([lines.join("\n")], configureFile);
2257
2310
  var effectiveConfig = getEffectiveConfig(ruleList, config, aliasToRuleNames);
2258
- var _iterator20 = _createForOfIteratorHelper(ruleList),
2259
- _step20;
2311
+ var _iterator19 = _createForOfIteratorHelper(ruleList),
2312
+ _step19;
2260
2313
  try {
2261
- for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
2262
- var rule = _step20.value;
2314
+ for (_iterator19.s(); !(_step19 = _iterator19.n()).done;) {
2315
+ var rule = _step19.value;
2263
2316
  var ruleName = rule.names[0].toUpperCase();
2264
2317
  allRuleNames.push(ruleName);
2265
2318
  enabledRules[ruleName] = !!effectiveConfig[ruleName];
2266
2319
  }
2267
2320
  } catch (err) {
2268
- _iterator20.e(err);
2321
+ _iterator19.e(err);
2269
2322
  } finally {
2270
- _iterator20.f();
2323
+ _iterator19.f();
2271
2324
  }
2272
2325
  capturedRules = enabledRules;
2273
2326
  handleInlineConfig(lines, enableDisableFile);
@@ -2354,7 +2407,7 @@ function lintContent(ruleList, aliasToRuleNames, name, content, md, config, conf
2354
2407
  });
2355
2408
  // eslint-disable-next-line jsdoc/require-jsdoc
2356
2409
  function throwError(property) {
2357
- throw new Error("Property '" + property + "' of onError parameter is incorrect.");
2410
+ throw new Error("Value of '".concat(property, "' passed to onError by '").concat(ruleName, "' is incorrect for '").concat(name, "'."));
2358
2411
  }
2359
2412
  // eslint-disable-next-line jsdoc/require-jsdoc
2360
2413
  function onError(errorInfo) {
@@ -2470,50 +2523,50 @@ function lintContent(ruleList, aliasToRuleNames, name, content, md, config, conf
2470
2523
  if (resultVersion === 0) {
2471
2524
  // Return a dictionary of rule->[line numbers]
2472
2525
  var dictionary = {};
2473
- var _iterator21 = _createForOfIteratorHelper(results),
2474
- _step21;
2526
+ var _iterator20 = _createForOfIteratorHelper(results),
2527
+ _step20;
2475
2528
  try {
2476
- for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
2477
- var error = _step21.value;
2529
+ for (_iterator20.s(); !(_step20 = _iterator20.n()).done;) {
2530
+ var error = _step20.value;
2478
2531
  var ruleLines = dictionary[error.ruleName] || [];
2479
2532
  ruleLines.push(error.lineNumber);
2480
2533
  dictionary[error.ruleName] = ruleLines;
2481
2534
  }
2482
2535
  // @ts-ignore
2483
2536
  } catch (err) {
2484
- _iterator21.e(err);
2537
+ _iterator20.e(err);
2485
2538
  } finally {
2486
- _iterator21.f();
2539
+ _iterator20.f();
2487
2540
  }
2488
2541
  results = dictionary;
2489
2542
  } else if (resultVersion === 1) {
2490
2543
  // Use ruleAlias instead of ruleNames
2491
- var _iterator22 = _createForOfIteratorHelper(results),
2492
- _step22;
2544
+ var _iterator21 = _createForOfIteratorHelper(results),
2545
+ _step21;
2493
2546
  try {
2494
- for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
2495
- var _error = _step22.value;
2547
+ for (_iterator21.s(); !(_step21 = _iterator21.n()).done;) {
2548
+ var _error = _step21.value;
2496
2549
  _error.ruleAlias = _error.ruleNames[1] || _error.ruleName;
2497
2550
  delete _error.ruleNames;
2498
2551
  }
2499
2552
  } catch (err) {
2500
- _iterator22.e(err);
2553
+ _iterator21.e(err);
2501
2554
  } finally {
2502
- _iterator22.f();
2555
+ _iterator21.f();
2503
2556
  }
2504
2557
  } else {
2505
2558
  // resultVersion 2 or 3: Remove unwanted ruleName
2506
- var _iterator23 = _createForOfIteratorHelper(results),
2507
- _step23;
2559
+ var _iterator22 = _createForOfIteratorHelper(results),
2560
+ _step22;
2508
2561
  try {
2509
- for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
2510
- var _error2 = _step23.value;
2562
+ for (_iterator22.s(); !(_step22 = _iterator22.n()).done;) {
2563
+ var _error2 = _step22.value;
2511
2564
  delete _error2.ruleName;
2512
2565
  }
2513
2566
  } catch (err) {
2514
- _iterator23.e(err);
2567
+ _iterator22.e(err);
2515
2568
  } finally {
2516
- _iterator23.f();
2569
+ _iterator22.f();
2517
2570
  }
2518
2571
  }
2519
2572
  return results;
@@ -2630,18 +2683,18 @@ function lintInput(options, synchronous, callback) {
2630
2683
  "html": true
2631
2684
  });
2632
2685
  var markdownItPlugins = options.markdownItPlugins || [];
2633
- var _iterator24 = _createForOfIteratorHelper(markdownItPlugins),
2634
- _step24;
2686
+ var _iterator23 = _createForOfIteratorHelper(markdownItPlugins),
2687
+ _step23;
2635
2688
  try {
2636
- for (_iterator24.s(); !(_step24 = _iterator24.n()).done;) {
2637
- var plugin = _step24.value;
2689
+ for (_iterator23.s(); !(_step23 = _iterator23.n()).done;) {
2690
+ var plugin = _step23.value;
2638
2691
  // @ts-ignore
2639
2692
  md.use.apply(md, _toConsumableArray(plugin));
2640
2693
  }
2641
2694
  } catch (err) {
2642
- _iterator24.e(err);
2695
+ _iterator23.e(err);
2643
2696
  } finally {
2644
- _iterator24.f();
2697
+ _iterator23.f();
2645
2698
  }
2646
2699
  var fs = options.fs || __webpack_require__(/*! node:fs */ "?d0ee");
2647
2700
  var aliasToRuleNames = mapAliasToRuleNames(ruleList);
@@ -3129,10 +3182,10 @@ module.exports = markdownlint;
3129
3182
  */
3130
3183
 
3131
3184
  /**
3132
- * Configuration object for linting rules. For a detailed schema, see
3185
+ * Configuration object for linting rules. For the JSON schema, see
3133
3186
  * {@link ../schema/markdownlint-config-schema.json}.
3134
3187
  *
3135
- * @typedef {Object.<string, RuleConfiguration>} Configuration
3188
+ * @typedef {import("./configuration").Configuration} Configuration
3136
3189
  */
3137
3190
 
3138
3191
  /**
@@ -3184,9 +3237,9 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
3184
3237
  addErrorDetailIf = _require.addErrorDetailIf,
3185
3238
  filterTokens = _require.filterTokens;
3186
3239
  module.exports = {
3187
- "names": ["MD001", "heading-increment", "header-increment"],
3240
+ "names": ["MD001", "heading-increment"],
3188
3241
  "description": "Heading levels should only increment by one level at a time",
3189
- "tags": ["headings", "headers"],
3242
+ "tags": ["headings"],
3190
3243
  "function": function MD001(params, onError) {
3191
3244
  var prevLevel = 0;
3192
3245
  filterTokens(params, "heading_open", function forToken(token) {
@@ -3201,38 +3254,6 @@ module.exports = {
3201
3254
 
3202
3255
  /***/ }),
3203
3256
 
3204
- /***/ "../lib/md002.js":
3205
- /*!***********************!*\
3206
- !*** ../lib/md002.js ***!
3207
- \***********************/
3208
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3209
-
3210
- "use strict";
3211
- // @ts-check
3212
-
3213
-
3214
-
3215
- var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
3216
- addErrorDetailIf = _require.addErrorDetailIf;
3217
- module.exports = {
3218
- "names": ["MD002", "first-heading-h1", "first-header-h1"],
3219
- "description": "First heading should be a top-level heading",
3220
- "tags": ["headings", "headers"],
3221
- "function": function MD002(params, onError) {
3222
- var level = Number(params.config.level || 1);
3223
- var tag = "h" + level;
3224
- params.parsers.markdownit.tokens.every(function forToken(token) {
3225
- if (token.type === "heading_open") {
3226
- addErrorDetailIf(onError, token.lineNumber, tag, token.tag);
3227
- return false;
3228
- }
3229
- return true;
3230
- });
3231
- }
3232
- };
3233
-
3234
- /***/ }),
3235
-
3236
3257
  /***/ "../lib/md003.js":
3237
3258
  /*!***********************!*\
3238
3259
  !*** ../lib/md003.js ***!
@@ -3249,9 +3270,9 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
3249
3270
  filterTokens = _require.filterTokens,
3250
3271
  headingStyleFor = _require.headingStyleFor;
3251
3272
  module.exports = {
3252
- "names": ["MD003", "heading-style", "header-style"],
3273
+ "names": ["MD003", "heading-style"],
3253
3274
  "description": "Heading style",
3254
- "tags": ["headings", "headers"],
3275
+ "tags": ["headings"],
3255
3276
  "function": function MD003(params, onError) {
3256
3277
  var style = String(params.config.style || "consistent");
3257
3278
  filterTokens(params, "heading_open", function forToken(token) {
@@ -3391,44 +3412,45 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
3391
3412
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
3392
3413
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
3393
3414
  addError = _require.addError,
3394
- addErrorDetailIf = _require.addErrorDetailIf,
3395
- indentFor = _require.indentFor,
3396
- listItemMarkerRe = _require.listItemMarkerRe,
3397
- orderedListItemMarkerRe = _require.orderedListItemMarkerRe,
3398
- rangeFromRegExp = _require.rangeFromRegExp;
3399
- var _require2 = __webpack_require__(/*! ./cache */ "../lib/cache.js"),
3400
- flattenedLists = _require2.flattenedLists;
3415
+ addErrorDetailIf = _require.addErrorDetailIf;
3416
+ var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
3417
+ filterByTypes = _require2.filterByTypes,
3418
+ inHtmlFlow = _require2.inHtmlFlow;
3401
3419
  module.exports = {
3402
3420
  "names": ["MD005", "list-indent"],
3403
3421
  "description": "Inconsistent indentation for list items at the same level",
3404
3422
  "tags": ["bullet", "ul", "indentation"],
3405
3423
  "function": function MD005(params, onError) {
3406
- var _iterator = _createForOfIteratorHelper(flattenedLists()),
3424
+ var lists = filterByTypes(params.parsers.micromark.tokens, ["listOrdered", "listUnordered"]).filter(function (list) {
3425
+ return !inHtmlFlow(list);
3426
+ });
3427
+ var _iterator = _createForOfIteratorHelper(lists),
3407
3428
  _step;
3408
3429
  try {
3409
3430
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
3410
3431
  var list = _step.value;
3411
- var expectedIndent = list.indent;
3432
+ var expectedIndent = list.startColumn - 1;
3412
3433
  var expectedEnd = 0;
3413
- var actualEnd = -1;
3414
3434
  var endMatching = false;
3415
- var _iterator2 = _createForOfIteratorHelper(list.items),
3435
+ var listItemPrefixes = list.children.filter(function (token) {
3436
+ return token.type === "listItemPrefix";
3437
+ });
3438
+ var _iterator2 = _createForOfIteratorHelper(listItemPrefixes),
3416
3439
  _step2;
3417
3440
  try {
3418
3441
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
3419
- var item = _step2.value;
3420
- var line = item.line,
3421
- lineNumber = item.lineNumber;
3422
- var actualIndent = indentFor(item);
3423
- var match = null;
3424
- if (list.unordered) {
3425
- addErrorDetailIf(onError, lineNumber, expectedIndent, actualIndent, null, null, rangeFromRegExp(line, listItemMarkerRe)
3442
+ var listItemPrefix = _step2.value;
3443
+ var lineNumber = listItemPrefix.startLine;
3444
+ var actualIndent = listItemPrefix.startColumn - 1;
3445
+ var markerLength = listItemPrefix.text.trim().length;
3446
+ var range = [1, listItemPrefix.startColumn + markerLength];
3447
+ if (list.type === "listUnordered") {
3448
+ addErrorDetailIf(onError, lineNumber, expectedIndent, actualIndent, null, null, range
3426
3449
  // No fixInfo; MD007 handles this scenario better
3427
3450
  );
3428
- } else if (match = orderedListItemMarkerRe.exec(line)) {
3429
- actualEnd = match[0].length;
3451
+ } else {
3452
+ var actualEnd = range[1] - 1;
3430
3453
  expectedEnd = expectedEnd || actualEnd;
3431
- var markerLength = match[1].length + 1;
3432
3454
  if (expectedIndent !== actualIndent || endMatching) {
3433
3455
  if (expectedEnd === actualEnd) {
3434
3456
  endMatching = true;
@@ -3436,7 +3458,7 @@ module.exports = {
3436
3458
  var detail = endMatching ? "Expected: (".concat(expectedEnd, "); Actual: (").concat(actualEnd, ")") : "Expected: ".concat(expectedIndent, "; Actual: ").concat(actualIndent);
3437
3459
  var expected = endMatching ? expectedEnd - markerLength : expectedIndent;
3438
3460
  var actual = endMatching ? actualEnd - markerLength : actualIndent;
3439
- addError(onError, lineNumber, detail, null, rangeFromRegExp(line, listItemMarkerRe), {
3461
+ addError(onError, lineNumber, detail, undefined, range, {
3440
3462
  "editColumn": Math.min(actual, expected) + 1,
3441
3463
  "deleteCount": Math.max(actual - expected, 0),
3442
3464
  "insertText": "".padEnd(Math.max(expected - actual, 0))
@@ -3461,65 +3483,6 @@ module.exports = {
3461
3483
 
3462
3484
  /***/ }),
3463
3485
 
3464
- /***/ "../lib/md006.js":
3465
- /*!***********************!*\
3466
- !*** ../lib/md006.js ***!
3467
- \***********************/
3468
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3469
-
3470
- "use strict";
3471
- // @ts-check
3472
-
3473
-
3474
-
3475
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
3476
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
3477
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
3478
- var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
3479
- addErrorDetailIf = _require.addErrorDetailIf,
3480
- listItemMarkerRe = _require.listItemMarkerRe,
3481
- rangeFromRegExp = _require.rangeFromRegExp;
3482
- var _require2 = __webpack_require__(/*! ./cache */ "../lib/cache.js"),
3483
- flattenedLists = _require2.flattenedLists;
3484
- module.exports = {
3485
- "names": ["MD006", "ul-start-left"],
3486
- "description": "Consider starting bulleted lists at the beginning of the line",
3487
- "tags": ["bullet", "ul", "indentation"],
3488
- "function": function MD006(params, onError) {
3489
- var _iterator = _createForOfIteratorHelper(flattenedLists()),
3490
- _step;
3491
- try {
3492
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
3493
- var list = _step.value;
3494
- if (list.unordered && !list.nesting && list.indent !== 0) {
3495
- var _iterator2 = _createForOfIteratorHelper(list.items),
3496
- _step2;
3497
- try {
3498
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
3499
- var item = _step2.value;
3500
- var lineNumber = item.lineNumber,
3501
- line = item.line;
3502
- addErrorDetailIf(onError, lineNumber, 0, list.indent, null, null, rangeFromRegExp(line, listItemMarkerRe), {
3503
- "deleteCount": line.length - line.trimStart().length
3504
- });
3505
- }
3506
- } catch (err) {
3507
- _iterator2.e(err);
3508
- } finally {
3509
- _iterator2.f();
3510
- }
3511
- }
3512
- }
3513
- } catch (err) {
3514
- _iterator.e(err);
3515
- } finally {
3516
- _iterator.f();
3517
- }
3518
- }
3519
- };
3520
-
3521
- /***/ }),
3522
-
3523
3486
  /***/ "../lib/md007.js":
3524
3487
  /*!***********************!*\
3525
3488
  !*** ../lib/md007.js ***!
@@ -3535,11 +3498,18 @@ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol
3535
3498
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
3536
3499
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
3537
3500
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
3538
- addErrorDetailIf = _require.addErrorDetailIf,
3539
- indentFor = _require.indentFor,
3540
- listItemMarkerRe = _require.listItemMarkerRe;
3541
- var _require2 = __webpack_require__(/*! ./cache */ "../lib/cache.js"),
3542
- flattenedLists = _require2.flattenedLists;
3501
+ addErrorDetailIf = _require.addErrorDetailIf;
3502
+ var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
3503
+ filterByTypes = _require2.filterByTypes,
3504
+ getTokenParentOfType = _require2.getTokenParentOfType,
3505
+ inHtmlFlow = _require2.inHtmlFlow;
3506
+
3507
+ /**
3508
+ * @typedef {import("../helpers/micromark.cjs").Token} Token
3509
+ */
3510
+
3511
+ var unorderedListTypes = ["blockQuotePrefix", "listItemPrefix", "listUnordered"];
3512
+ var unorderedParentTypes = ["blockQuote", "listOrdered", "listUnordered"];
3543
3513
  module.exports = {
3544
3514
  "names": ["MD007", "ul-indent"],
3545
3515
  "description": "Unordered list indentation",
@@ -3548,38 +3518,52 @@ module.exports = {
3548
3518
  var indent = Number(params.config.indent || 2);
3549
3519
  var startIndented = !!params.config.start_indented;
3550
3520
  var startIndent = Number(params.config.start_indent || indent);
3551
- var _iterator = _createForOfIteratorHelper(flattenedLists()),
3521
+ var unorderedListNesting = new Map();
3522
+ var lastBlockQuotePrefix = null;
3523
+ var tokens = filterByTypes(params.parsers.micromark.tokens, unorderedListTypes);
3524
+ var _iterator = _createForOfIteratorHelper(tokens),
3552
3525
  _step;
3553
3526
  try {
3554
3527
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
3555
- var list = _step.value;
3556
- if (list.unordered && list.parentsUnordered) {
3557
- var _iterator2 = _createForOfIteratorHelper(list.items),
3558
- _step2;
3559
- try {
3560
- for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
3561
- var item = _step2.value;
3562
- var lineNumber = item.lineNumber,
3563
- line = item.line;
3564
- var expectedIndent = (startIndented ? startIndent : 0) + list.nesting * indent;
3565
- var actualIndent = indentFor(item);
3566
- var range = null;
3567
- var editColumn = 1;
3568
- var match = line.match(listItemMarkerRe);
3569
- if (match) {
3570
- range = [1, match[0].length];
3571
- editColumn += match[1].length - actualIndent;
3572
- }
3573
- addErrorDetailIf(onError, lineNumber, expectedIndent, actualIndent, null, null, range, {
3574
- editColumn: editColumn,
3575
- "deleteCount": actualIndent,
3576
- "insertText": "".padEnd(expectedIndent)
3577
- });
3528
+ var token = _step.value;
3529
+ var parent = token.parent,
3530
+ startColumn = token.startColumn,
3531
+ startLine = token.startLine,
3532
+ type = token.type;
3533
+ if (type === "blockQuotePrefix") {
3534
+ lastBlockQuotePrefix = token;
3535
+ } else if (type === "listUnordered") {
3536
+ var nesting = 0;
3537
+ /** @type {Token | null} */
3538
+ var current = token;
3539
+ while (current = getTokenParentOfType(current, unorderedParentTypes)) {
3540
+ if (current.type === "listUnordered") {
3541
+ nesting++;
3542
+ continue;
3543
+ } else if (current.type === "listOrdered") {
3544
+ nesting = -1;
3578
3545
  }
3579
- } catch (err) {
3580
- _iterator2.e(err);
3581
- } finally {
3582
- _iterator2.f();
3546
+ break;
3547
+ }
3548
+ if (nesting >= 0) {
3549
+ unorderedListNesting.set(token, nesting);
3550
+ }
3551
+ } else if (!inHtmlFlow(token)) {
3552
+ // listItemPrefix
3553
+ var _nesting = unorderedListNesting.get(parent);
3554
+ if (_nesting !== undefined) {
3555
+ var _lastBlockQuotePrefix;
3556
+ // listItemPrefix for listUnordered
3557
+ var expectedIndent = (startIndented ? startIndent : 0) + _nesting * indent;
3558
+ var blockQuoteAdjustment = ((_lastBlockQuotePrefix = lastBlockQuotePrefix) === null || _lastBlockQuotePrefix === void 0 ? void 0 : _lastBlockQuotePrefix.endLine) === startLine ? lastBlockQuotePrefix.endColumn - 1 : 0;
3559
+ var actualIndent = startColumn - 1 - blockQuoteAdjustment;
3560
+ var range = [1, startColumn + 1];
3561
+ var fixInfo = {
3562
+ "editColumn": startColumn - actualIndent,
3563
+ "deleteCount": Math.max(actualIndent - expectedIndent, 0),
3564
+ "insertText": "".padEnd(Math.max(expectedIndent - actualIndent, 0))
3565
+ };
3566
+ addErrorDetailIf(onError, startLine, expectedIndent, actualIndent, undefined, undefined, range, fixInfo);
3583
3567
  }
3584
3568
  }
3585
3569
  }
@@ -3903,9 +3887,6 @@ module.exports = {
3903
3887
  var tables = params.config.tables;
3904
3888
  var includeTables = tables === undefined ? true : !!tables;
3905
3889
  var headings = params.config.headings;
3906
- if (headings === undefined) {
3907
- headings = params.config.headers;
3908
- }
3909
3890
  var includeHeadings = headings === undefined ? true : !!headings;
3910
3891
  var headingLineNumbers = [];
3911
3892
  forEachHeading(params, function (heading) {
@@ -4043,7 +4024,7 @@ var _require2 = __webpack_require__(/*! ./cache */ "../lib/cache.js"),
4043
4024
  module.exports = {
4044
4025
  "names": ["MD018", "no-missing-space-atx"],
4045
4026
  "description": "No space after hash on atx style heading",
4046
- "tags": ["headings", "headers", "atx", "spaces"],
4027
+ "tags": ["headings", "atx", "spaces"],
4047
4028
  "function": function MD018(params, onError) {
4048
4029
  forEachLine(lineMetadata(), function (line, lineIndex, inCode) {
4049
4030
  if (!inCode && /^#+[^# \t]/.test(line) && !/#\s*$/.test(line) && !line.startsWith("#️⃣")) {
@@ -4083,7 +4064,7 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
4083
4064
  module.exports = {
4084
4065
  "names": ["MD019", "no-multiple-space-atx"],
4085
4066
  "description": "Multiple spaces after hash on atx style heading",
4086
- "tags": ["headings", "headers", "atx", "spaces"],
4067
+ "tags": ["headings", "atx", "spaces"],
4087
4068
  "function": function MD019(params, onError) {
4088
4069
  filterTokens(params, "heading_open", function (token) {
4089
4070
  if (headingStyleFor(token) === "atx") {
@@ -4131,7 +4112,7 @@ var _require2 = __webpack_require__(/*! ./cache */ "../lib/cache.js"),
4131
4112
  module.exports = {
4132
4113
  "names": ["MD020", "no-missing-space-closed-atx"],
4133
4114
  "description": "No space inside hashes on closed atx style heading",
4134
- "tags": ["headings", "headers", "atx_closed", "spaces"],
4115
+ "tags": ["headings", "atx_closed", "spaces"],
4135
4116
  "function": function MD020(params, onError) {
4136
4117
  forEachLine(lineMetadata(), function (line, lineIndex, inCode) {
4137
4118
  if (!inCode) {
@@ -4191,7 +4172,7 @@ var closedAtxRe = /^(#+)([ \t]+)([^ \t]|[^ \t].*[^ \t])([ \t]+)(#+)(\s*)$/;
4191
4172
  module.exports = {
4192
4173
  "names": ["MD021", "no-multiple-space-closed-atx"],
4193
4174
  "description": "Multiple spaces inside hashes on closed atx style heading",
4194
- "tags": ["headings", "headers", "atx_closed", "spaces"],
4175
+ "tags": ["headings", "atx_closed", "spaces"],
4195
4176
  "function": function MD021(params, onError) {
4196
4177
  filterTokens(params, "heading_open", function (token) {
4197
4178
  if (headingStyleFor(token) === "atx_closed") {
@@ -4255,7 +4236,8 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
4255
4236
  isBlankLine = _require.isBlankLine;
4256
4237
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
4257
4238
  filterByTypes = _require2.filterByTypes,
4258
- getHeadingLevel = _require2.getHeadingLevel;
4239
+ getHeadingLevel = _require2.getHeadingLevel,
4240
+ inHtmlFlow = _require2.inHtmlFlow;
4259
4241
  var defaultLines = 1;
4260
4242
  var getLinesFunction = function getLinesFunction(linesParam) {
4261
4243
  if (Array.isArray(linesParam)) {
@@ -4290,15 +4272,17 @@ var getBlockQuote = function getBlockQuote(str, count) {
4290
4272
  .concat("\n").repeat(count);
4291
4273
  };
4292
4274
  module.exports = {
4293
- "names": ["MD022", "blanks-around-headings", "blanks-around-headers"],
4275
+ "names": ["MD022", "blanks-around-headings"],
4294
4276
  "description": "Headings should be surrounded by blank lines",
4295
- "tags": ["headings", "headers", "blank_lines"],
4277
+ "tags": ["headings", "blank_lines"],
4296
4278
  "function": function MD022(params, onError) {
4297
4279
  var getLinesAbove = getLinesFunction(params.config.lines_above);
4298
4280
  var getLinesBelow = getLinesFunction(params.config.lines_below);
4299
4281
  var lines = params.lines,
4300
4282
  parsers = params.parsers;
4301
- var headings = filterByTypes(parsers.micromark.tokens, ["atxHeading", "setextHeading"]);
4283
+ var headings = filterByTypes(parsers.micromark.tokens, ["atxHeading", "setextHeading"]).filter(function (heading) {
4284
+ return !inHtmlFlow(heading);
4285
+ });
4302
4286
  var _iterator2 = _createForOfIteratorHelper(headings),
4303
4287
  _step2;
4304
4288
  try {
@@ -4365,9 +4349,9 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
4365
4349
  filterTokens = _require.filterTokens;
4366
4350
  var spaceBeforeHeadingRe = /^(\s+|[>\s]+\s\s)[^>\s]/;
4367
4351
  module.exports = {
4368
- "names": ["MD023", "heading-start-left", "header-start-left"],
4352
+ "names": ["MD023", "heading-start-left"],
4369
4353
  "description": "Headings must start at the beginning of the line",
4370
- "tags": ["headings", "headers", "spaces"],
4354
+ "tags": ["headings", "spaces"],
4371
4355
  "function": function MD023(params, onError) {
4372
4356
  filterTokens(params, "heading_open", function forToken(token) {
4373
4357
  var lineNumber = token.lineNumber,
@@ -4408,9 +4392,9 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
4408
4392
  addErrorContext = _require.addErrorContext,
4409
4393
  forEachHeading = _require.forEachHeading;
4410
4394
  module.exports = {
4411
- "names": ["MD024", "no-duplicate-heading", "no-duplicate-header"],
4395
+ "names": ["MD024", "no-duplicate-heading"],
4412
4396
  "description": "Multiple headings with the same content",
4413
- "tags": ["headings", "headers"],
4397
+ "tags": ["headings"],
4414
4398
  "function": function MD024(params, onError) {
4415
4399
  var siblingsOnly = !!params.config.siblings_only || !!params.config.allow_different_nesting || false;
4416
4400
  var knownContents = [null, []];
@@ -4458,7 +4442,7 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
4458
4442
  module.exports = {
4459
4443
  "names": ["MD025", "single-title", "single-h1"],
4460
4444
  "description": "Multiple top-level headings in the same document",
4461
- "tags": ["headings", "headers"],
4445
+ "tags": ["headings"],
4462
4446
  "function": function MD025(params, onError) {
4463
4447
  var level = Number(params.config.level || 1);
4464
4448
  var tag = "h" + level;
@@ -4503,7 +4487,7 @@ var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/
4503
4487
  module.exports = {
4504
4488
  "names": ["MD026", "no-trailing-punctuation"],
4505
4489
  "description": "Trailing punctuation in heading",
4506
- "tags": ["headings", "headers"],
4490
+ "tags": ["headings"],
4507
4491
  "function": function MD026(params, onError) {
4508
4492
  var punctuation = params.config.punctuation;
4509
4493
  punctuation = String(punctuation === undefined ? allPunctuationNoQuestion : punctuation);
@@ -4777,17 +4761,13 @@ module.exports = {
4777
4761
 
4778
4762
 
4779
4763
 
4780
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
4781
- function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4782
- function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
4783
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
4784
4764
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
4785
4765
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4786
4766
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
4787
4767
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
4788
4768
  addErrorDetailIf = _require.addErrorDetailIf;
4789
- var _require2 = __webpack_require__(/*! ./cache */ "../lib/cache.js"),
4790
- flattenedLists = _require2.flattenedLists;
4769
+ var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
4770
+ filterByTypes = _require2.filterByTypes;
4791
4771
  module.exports = {
4792
4772
  "names": ["MD030", "list-marker-space"],
4793
4773
  "description": "Spaces after list markers",
@@ -4797,35 +4777,47 @@ module.exports = {
4797
4777
  var olSingle = Number(params.config.ol_single || 1);
4798
4778
  var ulMulti = Number(params.config.ul_multi || 1);
4799
4779
  var olMulti = Number(params.config.ol_multi || 1);
4800
- var _iterator = _createForOfIteratorHelper(flattenedLists()),
4780
+ var lists = filterByTypes(params.parsers.micromark.tokens, ["listOrdered", "listUnordered"]);
4781
+ var _iterator = _createForOfIteratorHelper(lists),
4801
4782
  _step;
4802
4783
  try {
4803
4784
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
4804
4785
  var list = _step.value;
4805
- var lineCount = list.lastLineIndex - list.open.map[0];
4806
- var allSingle = lineCount === list.items.length;
4807
- var expectedSpaces = list.unordered ? allSingle ? ulSingle : ulMulti : allSingle ? olSingle : olMulti;
4808
- var _iterator2 = _createForOfIteratorHelper(list.items),
4786
+ var ordered = list.type === "listOrdered";
4787
+ var listItemPrefixes = list.children.filter(function (token) {
4788
+ return token.type === "listItemPrefix";
4789
+ });
4790
+ var allSingleLine = list.endLine - list.startLine + 1 === listItemPrefixes.length;
4791
+ var expectedSpaces = ordered ? allSingleLine ? olSingle : olMulti : allSingleLine ? ulSingle : ulMulti;
4792
+ var _iterator2 = _createForOfIteratorHelper(listItemPrefixes),
4809
4793
  _step2;
4810
4794
  try {
4811
4795
  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
4812
- var item = _step2.value;
4813
- var line = item.line,
4814
- lineNumber = item.lineNumber;
4815
- var match = /^[\s>]*\S+(\s*)/.exec(line);
4816
- var _match = _slicedToArray(match, 2),
4817
- matchLength = _match[0]["length"],
4818
- actualSpaces = _match[1]["length"];
4819
- if (matchLength < line.length) {
4820
- var fixInfo = null;
4821
- if (expectedSpaces !== actualSpaces) {
4822
- fixInfo = {
4823
- "editColumn": matchLength - actualSpaces + 1,
4796
+ var listItemPrefix = _step2.value;
4797
+ var range = [listItemPrefix.startColumn, listItemPrefix.endColumn - listItemPrefix.startColumn];
4798
+ var listItemPrefixWhitespaces = listItemPrefix.children.filter(function (token) {
4799
+ return token.type === "listItemPrefixWhitespace";
4800
+ });
4801
+ var _iterator3 = _createForOfIteratorHelper(listItemPrefixWhitespaces),
4802
+ _step3;
4803
+ try {
4804
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
4805
+ var listItemPrefixWhitespace = _step3.value;
4806
+ var endColumn = listItemPrefixWhitespace.endColumn,
4807
+ startColumn = listItemPrefixWhitespace.startColumn,
4808
+ startLine = listItemPrefixWhitespace.startLine;
4809
+ var actualSpaces = endColumn - startColumn;
4810
+ var fixInfo = {
4811
+ "editColumn": startColumn,
4824
4812
  "deleteCount": actualSpaces,
4825
4813
  "insertText": "".padEnd(expectedSpaces)
4826
4814
  };
4815
+ addErrorDetailIf(onError, startLine, expectedSpaces, actualSpaces, null, null, range, fixInfo);
4827
4816
  }
4828
- addErrorDetailIf(onError, lineNumber, expectedSpaces, actualSpaces, null, null, [1, matchLength], fixInfo);
4817
+ } catch (err) {
4818
+ _iterator3.e(err);
4819
+ } finally {
4820
+ _iterator3.f();
4829
4821
  }
4830
4822
  }
4831
4823
  } catch (err) {
@@ -4952,9 +4944,7 @@ module.exports = {
4952
4944
 
4953
4945
  // Find the "visual" end of the list
4954
4946
  var endLine = list.endLine;
4955
- var flattenedChildren = filterByPredicate(list.children, function () {
4956
- return true;
4957
- });
4947
+ var flattenedChildren = filterByPredicate(list.children);
4958
4948
  var _iterator2 = _createForOfIteratorHelper(flattenedChildren.reverse()),
4959
4949
  _step2;
4960
4950
  try {
@@ -5002,11 +4992,11 @@ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol
5002
4992
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5003
4993
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5004
4994
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
5005
- addError = _require.addError;
4995
+ addError = _require.addError,
4996
+ nextLinesRe = _require.nextLinesRe;
5006
4997
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
5007
4998
  filterByTypes = _require2.filterByTypes,
5008
4999
  getHtmlTagInfo = _require2.getHtmlTagInfo;
5009
- var nextLinesRe = /[\r\n][\s\S]*$/;
5010
5000
  module.exports = {
5011
5001
  "names": ["MD033", "no-inline-html"],
5012
5002
  "description": "Inline HTML",
@@ -5059,6 +5049,7 @@ var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/
5059
5049
  filterByPredicate = _require2.filterByPredicate,
5060
5050
  filterByTypes = _require2.filterByTypes,
5061
5051
  getHtmlTagInfo = _require2.getHtmlTagInfo,
5052
+ inHtmlFlow = _require2.inHtmlFlow,
5062
5053
  parse = _require2.parse;
5063
5054
  module.exports = {
5064
5055
  "names": ["MD034", "no-bare-urls"],
@@ -5066,36 +5057,36 @@ module.exports = {
5066
5057
  "tags": ["links", "url"],
5067
5058
  "function": function MD034(params, onError) {
5068
5059
  var literalAutolinks = function literalAutolinks(tokens) {
5069
- var flattened = filterByPredicate(tokens, function () {
5070
- return true;
5071
- });
5072
- var result = [];
5073
- for (var i = 0; i < flattened.length; i++) {
5074
- var current = flattened[i];
5075
- var openTagInfo = getHtmlTagInfo(current);
5076
- if (openTagInfo && !openTagInfo.close) {
5077
- var count = 1;
5078
- for (var j = i + 1; j < flattened.length; j++) {
5079
- var candidate = flattened[j];
5080
- var closeTagInfo = getHtmlTagInfo(candidate);
5081
- if (closeTagInfo && openTagInfo.name === closeTagInfo.name) {
5082
- if (closeTagInfo.close) {
5083
- count--;
5084
- if (count === 0) {
5085
- i = j;
5086
- break;
5060
+ return filterByPredicate(tokens, function (token) {
5061
+ return token.type === "literalAutolink" && !inHtmlFlow(token);
5062
+ }, function (token) {
5063
+ var children = token.children;
5064
+ var result = [];
5065
+ for (var i = 0; i < children.length; i++) {
5066
+ var current = children[i];
5067
+ var openTagInfo = getHtmlTagInfo(current);
5068
+ if (openTagInfo && !openTagInfo.close) {
5069
+ var count = 1;
5070
+ for (var j = i + 1; j < children.length; j++) {
5071
+ var candidate = children[j];
5072
+ var closeTagInfo = getHtmlTagInfo(candidate);
5073
+ if (closeTagInfo && openTagInfo.name === closeTagInfo.name) {
5074
+ if (closeTagInfo.close) {
5075
+ count--;
5076
+ if (count === 0) {
5077
+ i = j;
5078
+ break;
5079
+ }
5080
+ } else {
5081
+ count++;
5087
5082
  }
5088
- } else {
5089
- count++;
5090
5083
  }
5091
5084
  }
5085
+ } else {
5086
+ result.push(current);
5092
5087
  }
5093
- } else {
5094
- result.push(current);
5095
5088
  }
5096
- }
5097
- return result.filter(function (token) {
5098
- return token.type === "literalAutolink";
5089
+ return result;
5099
5090
  });
5100
5091
  };
5101
5092
  var autoLinks = filterByTypes(params.parsers.micromark.tokens, ["literalAutolink"]);
@@ -5192,9 +5183,9 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
5192
5183
  addErrorContext = _require.addErrorContext,
5193
5184
  allPunctuation = _require.allPunctuation;
5194
5185
  module.exports = {
5195
- "names": ["MD036", "no-emphasis-as-heading", "no-emphasis-as-header"],
5186
+ "names": ["MD036", "no-emphasis-as-heading"],
5196
5187
  "description": "Emphasis used instead of a heading",
5197
- "tags": ["headings", "headers", "emphasis"],
5188
+ "tags": ["headings", "emphasis"],
5198
5189
  "function": function MD036(params, onError) {
5199
5190
  var punctuation = params.config.punctuation;
5200
5191
  punctuation = String(punctuation === undefined ? allPunctuation : punctuation);
@@ -5268,7 +5259,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
5268
5259
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
5269
5260
  addError = _require.addError;
5270
5261
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
5271
- filterByPredicate = _require2.filterByPredicate;
5262
+ filterByPredicate = _require2.filterByPredicate,
5263
+ inHtmlFlow = _require2.inHtmlFlow;
5272
5264
  module.exports = {
5273
5265
  "names": ["MD037", "no-space-in-emphasis"],
5274
5266
  "description": "Spaces inside emphasis markers",
@@ -5314,7 +5306,7 @@ module.exports = {
5314
5306
  type = child.type;
5315
5307
  if (type === "data" && text.length <= 3) {
5316
5308
  var _emphasisTokens = emphasisTokensByMarker.get(text);
5317
- if (_emphasisTokens) {
5309
+ if (_emphasisTokens && !inHtmlFlow(child)) {
5318
5310
  _emphasisTokens.push(child);
5319
5311
  }
5320
5312
  }
@@ -5400,6 +5392,7 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
5400
5392
  addErrorContext = _require.addErrorContext;
5401
5393
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
5402
5394
  filterByTypes = _require2.filterByTypes,
5395
+ inHtmlFlow = _require2.inHtmlFlow,
5403
5396
  tokenIfType = _require2.tokenIfType;
5404
5397
  var leftSpaceRe = /^\s(?:[^`]|$)/;
5405
5398
  var rightSpaceRe = /[^`]\s$/;
@@ -5418,13 +5411,15 @@ module.exports = {
5418
5411
  "description": "Spaces inside code span elements",
5419
5412
  "tags": ["whitespace", "code"],
5420
5413
  "function": function MD038(params, onError) {
5421
- var codeTextTokens = filterByTypes(params.parsers.micromark.tokens, ["codeText"]);
5422
- var _iterator = _createForOfIteratorHelper(codeTextTokens),
5414
+ var codeTexts = filterByTypes(params.parsers.micromark.tokens, ["codeText"]).filter(function (codeText) {
5415
+ return !inHtmlFlow(codeText);
5416
+ });
5417
+ var _iterator = _createForOfIteratorHelper(codeTexts),
5423
5418
  _step;
5424
5419
  try {
5425
5420
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
5426
- var token = _step.value;
5427
- var children = token.children;
5421
+ var codeText = _step.value;
5422
+ var children = codeText.children;
5428
5423
  var first = 0;
5429
5424
  var last = children.length - 1;
5430
5425
  var startSequence = tokenIfType(children[first], "codeTextSequence");
@@ -5612,7 +5607,7 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
5612
5607
  module.exports = {
5613
5608
  "names": ["MD041", "first-line-heading", "first-line-h1"],
5614
5609
  "description": "First line in a file should be a top-level heading",
5615
- "tags": ["headings", "headers"],
5610
+ "tags": ["headings"],
5616
5611
  "function": function MD041(params, onError) {
5617
5612
  var level = Number(params.config.level || 1);
5618
5613
  var tag = "h" + level;
@@ -5737,11 +5732,11 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
5737
5732
  addErrorDetailIf = _require.addErrorDetailIf,
5738
5733
  forEachHeading = _require.forEachHeading;
5739
5734
  module.exports = {
5740
- "names": ["MD043", "required-headings", "required-headers"],
5735
+ "names": ["MD043", "required-headings"],
5741
5736
  "description": "Required heading structure",
5742
- "tags": ["headings", "headers"],
5737
+ "tags": ["headings"],
5743
5738
  "function": function MD043(params, onError) {
5744
- var requiredHeadings = params.config.headings || params.config.headers;
5739
+ var requiredHeadings = params.config.headings;
5745
5740
  if (!Array.isArray(requiredHeadings)) {
5746
5741
  // Nothing to check; avoid doing any work
5747
5742
  return;
@@ -5945,15 +5940,22 @@ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol
5945
5940
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5946
5941
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5947
5942
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
5948
- addError = _require.addError;
5943
+ addError = _require.addError,
5944
+ getHtmlAttributeRe = _require.getHtmlAttributeRe,
5945
+ nextLinesRe = _require.nextLinesRe;
5949
5946
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
5950
- filterByTypes = _require2.filterByTypes;
5947
+ filterByTypes = _require2.filterByTypes,
5948
+ getHtmlTagInfo = _require2.getHtmlTagInfo;
5949
+ var altRe = getHtmlAttributeRe("alt");
5951
5950
  module.exports = {
5952
5951
  "names": ["MD045", "no-alt-text"],
5953
5952
  "description": "Images should have alternate text (alt text)",
5954
5953
  "tags": ["accessibility", "images"],
5955
5954
  "function": function MD045(params, onError) {
5956
- var images = filterByTypes(params.parsers.micromark.tokens, ["image"]);
5955
+ var tokens = params.parsers.micromark.tokens;
5956
+
5957
+ // Process Markdown images
5958
+ var images = filterByTypes(tokens, ["image"]);
5957
5959
  var _iterator = _createForOfIteratorHelper(images),
5958
5960
  _step;
5959
5961
  try {
@@ -5967,11 +5969,33 @@ module.exports = {
5967
5969
  addError(onError, image.startLine, undefined, undefined, range);
5968
5970
  }
5969
5971
  }
5972
+
5973
+ // Process HTML images
5970
5974
  } catch (err) {
5971
5975
  _iterator.e(err);
5972
5976
  } finally {
5973
5977
  _iterator.f();
5974
5978
  }
5979
+ var htmlTexts = filterByTypes(tokens, ["htmlText"]);
5980
+ var _iterator2 = _createForOfIteratorHelper(htmlTexts),
5981
+ _step2;
5982
+ try {
5983
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
5984
+ var htmlText = _step2.value;
5985
+ var startColumn = htmlText.startColumn,
5986
+ startLine = htmlText.startLine,
5987
+ text = htmlText.text;
5988
+ var htmlTagInfo = getHtmlTagInfo(htmlText);
5989
+ if (htmlTagInfo && !htmlTagInfo.close && htmlTagInfo.name.toLowerCase() === "img" && !altRe.test(text)) {
5990
+ var _range = [startColumn, text.replace(nextLinesRe, "").length];
5991
+ addError(onError, startLine, undefined, undefined, _range);
5992
+ }
5993
+ }
5994
+ } catch (err) {
5995
+ _iterator2.e(err);
5996
+ } finally {
5997
+ _iterator2.f();
5998
+ }
5975
5999
  }
5976
6000
  };
5977
6001
 
@@ -6176,14 +6200,14 @@ var impl = function impl(params, onError, type, asterisk, underline) {
6176
6200
  };
6177
6201
  module.exports = [{
6178
6202
  "names": ["MD049", "emphasis-style"],
6179
- "description": "Emphasis style should be consistent",
6203
+ "description": "Emphasis style",
6180
6204
  "tags": ["emphasis"],
6181
6205
  "function": function MD049(params, onError) {
6182
6206
  return impl(params, onError, "emphasis", "*", "_", params.config.style || undefined);
6183
6207
  }
6184
6208
  }, {
6185
6209
  "names": ["MD050", "strong-style"],
6186
- "description": "Strong style should be consistent",
6210
+ "description": "Strong style",
6187
6211
  "tags": ["emphasis"],
6188
6212
  "function": function MD050(params, onError) {
6189
6213
  return impl(params, onError, "strong", "**", "__", params.config.style || undefined);
@@ -6216,20 +6240,21 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
6216
6240
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6217
6241
  var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
6218
6242
  addError = _require.addError,
6219
- addErrorDetailIf = _require.addErrorDetailIf;
6243
+ addErrorDetailIf = _require.addErrorDetailIf,
6244
+ getHtmlAttributeRe = _require.getHtmlAttributeRe;
6220
6245
  var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
6221
6246
  filterByPredicate = _require2.filterByPredicate,
6222
6247
  filterByTypes = _require2.filterByTypes,
6223
6248
  getHtmlTagInfo = _require2.getHtmlTagInfo;
6224
6249
 
6225
6250
  // Regular expression for identifying HTML anchor names
6226
- var idRe = /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]id[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*=[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*["']?((?:(?![\t-\r "'>\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uD800-\uDFFF\uFEFF])[\s\S]|[\uD800-\uDBFF][\uDC00-\uDFFF])+)/i;
6227
- var nameRe = /[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]name[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*=[\t-\r \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uFEFF]*["']?((?:(?![\t-\r "'>\xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000\uD800-\uDFFF\uFEFF])[\s\S]|[\uD800-\uDBFF][\uDC00-\uDFFF])+)/i;
6251
+ var idRe = getHtmlAttributeRe("id");
6252
+ var nameRe = getHtmlAttributeRe("name");
6228
6253
  var anchorRe = /\{(#[0-9a-z]+(?:[\x2D_][0-9a-z]+)*)\}/g;
6229
6254
 
6230
6255
  // Sets for filtering heading tokens during conversion
6231
6256
  var childrenExclude = new Set(["image", "reference", "resource"]);
6232
- var tokensInclude = new Set(["codeTextData", "data"]);
6257
+ var tokensInclude = new Set(["characterEscapeValue", "codeTextData", "data"]);
6233
6258
 
6234
6259
  /**
6235
6260
  * @typedef {import("../helpers/micromark.cjs").Token} Token
@@ -6252,7 +6277,6 @@ function convertHeadingToHTMLFragment(headingText) {
6252
6277
  }).join("");
6253
6278
  return "#" + encodeURIComponent(inlineText.toLowerCase()
6254
6279
  // RegExp source with Ruby's \p{Word} expanded into its General Categories
6255
- // eslint-disable-next-line max-len
6256
6280
  // https://github.com/gjtorikian/html-pipeline/blob/main/lib/html/pipeline/toc_filter.rb
6257
6281
  // https://ruby-doc.org/core-3.0.2/Regexp.html
6258
6282
  .replace(/(?:[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB1\xB4\xB6-\xB8\xBB\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u086F\u0888\u088F-\u0897\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2\u09F3\u09FA\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF3-\u0BFF\u0C0D\u0C11\u0C29\u0C3A\u0C3B\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B\u0C5C\u0C5E\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDC\u0CDF\u0CE4\u0CE5\u0CF0\u0CF4-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D64\u0D65\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u1368\u137D-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u1716-\u171E\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u17EF\u17FA-\u180A\u180E\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1ACF-\u1AFF\u1B4D-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u206F\u2072\u2073\u207A-\u207E\u208A-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A-\u245F\u249C-\u24E9\u2500-\u2775\u2794-\u2BFF\u2CE5-\u2CEA\u2CF4-\u2CFC\u2CFE\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u3191\u3196-\u319F\u31C0-\u31EF\u3200-\u321F\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7CB-\uA7CF\uA7D2\uA7D4\uA7DA-\uA7F1\uA828-\uA82B\uA82D-\uA82F\uA836-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD06\uDD34-\uDD3F\uDD79-\uDD89\uDD8C-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6F\uDD7B\uDD8B\uDD93\uDD96\uDDA2\uDDB2\uDDBA\uDDBD-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDF7F\uDF86\uDFB1\uDFBB-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC57\uDC77\uDC78\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE5F\uDE7F\uDEA0-\uDEBF\uDEC8\uDEE7-\uDEEA\uDEF0-\uDEFF\uDF36-\uDF3F\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFC\uDF28-\uDF2F\uDF55-\uDF6F\uDF86-\uDFAF\uDFCC-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC51\uDC76-\uDC7E\uDCBB-\uDCC1\uDCC3-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDE0\uDDF5-\uDDFF\uDE12\uDE38-\uDE3D\uDE42-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3C-\uDF3F\uDF47-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCF3-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEAF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC6D-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDEFF\uDF11\uDF3B-\uDF3D\uDF43-\uDF4F\uDF5A-\uDFAF\uDFB1-\uDFBF\uDFD5-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80E-\uD810\uD812-\uD819\uD824-\uD82A\uD82D\uD82E\uD830-\uD832\uD83D\uD83F\uD87C\uD87D\uD87F\uD889-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80B[\uDC00-\uDF8F\uDFF1-\uDFFF]|\uD80D[\uDC30-\uDC3F\uDC56-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6F\uDEBF\uDECA-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE97-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82B[\uDC00-\uDFEF\uDFF4\uDFFC\uDFFF]|\uD82C[\uDD23-\uDD31\uDD33-\uDD4F\uDD53\uDD54\uDD56-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD833[\uDC00-\uDEFF\uDF2E\uDF2F\uDF47-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDEBF\uDED4-\uDEDF\uDEF4-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD837[\uDC00-\uDEFF\uDF1F-\uDF24\uDF2B-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDC2F\uDC6E-\uDC8E\uDC90-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDE8F\uDEAF-\uDEBF\uDEFA-\uDFFF]|\uD839[\uDC00-\uDCCF\uDCFA-\uDFDF\uDFE7\uDFEC\uDFEF\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCAC\uDCB0\uDCB5-\uDD00\uDD2E\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEE0-\uDEFF]|\uD86D[\uDF3A-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFEF]|\uD87B[\uDE5E-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDF4F]|\uD888[\uDFB0-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g, "").replace(/ /g, "-"));
@@ -6317,7 +6341,7 @@ module.exports = {
6317
6341
  var htmlTagInfo = getHtmlTagInfo(token);
6318
6342
  if (htmlTagInfo && !htmlTagInfo.close) {
6319
6343
  var anchorMatch = idRe.exec(token.text) || htmlTagInfo.name.toLowerCase() === "a" && nameRe.exec(token.text);
6320
- if (anchorMatch) {
6344
+ if (anchorMatch && anchorMatch.length > 0) {
6321
6345
  fragments.set("#".concat(anchorMatch[1]), 0);
6322
6346
  }
6323
6347
  }
@@ -6526,7 +6550,8 @@ module.exports = {
6526
6550
  var definition = _step.value;
6527
6551
  var _definition = _slicedToArray(definition, 2),
6528
6552
  label = _definition[0],
6529
- lineIndex = _definition[1];
6553
+ _definition$ = _slicedToArray(_definition[1], 1),
6554
+ lineIndex = _definition$[0];
6530
6555
  if (!ignored.has(label) && !references.has(label) && !shortcuts.has(label)) {
6531
6556
  var line = lines[lineIndex];
6532
6557
  addError(onError, lineIndex + 1, "Unused link or image reference definition: \"".concat(label, "\""), ellipsify(line), [1, line.length], singleLineDefinition(line) ? deleteFixInfo : 0);
@@ -6561,6 +6586,146 @@ module.exports = {
6561
6586
 
6562
6587
  /***/ }),
6563
6588
 
6589
+ /***/ "../lib/md054.js":
6590
+ /*!***********************!*\
6591
+ !*** ../lib/md054.js ***!
6592
+ \***********************/
6593
+ /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
6594
+
6595
+ "use strict";
6596
+ // @ts-check
6597
+
6598
+
6599
+
6600
+ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
6601
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
6602
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6603
+ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
6604
+ addErrorContext = _require.addErrorContext,
6605
+ nextLinesRe = _require.nextLinesRe;
6606
+ var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
6607
+ filterByTypes = _require2.filterByTypes,
6608
+ filterByPredicate = _require2.filterByPredicate,
6609
+ getTokenTextByType = _require2.getTokenTextByType;
6610
+ var _require3 = __webpack_require__(/*! ./cache */ "../lib/cache.js"),
6611
+ referenceLinkImageData = _require3.referenceLinkImageData;
6612
+ var backslashEscapeRe = /\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g;
6613
+ var removeBackslashEscapes = function removeBackslashEscapes(text) {
6614
+ return text.replace(backslashEscapeRe, "$1");
6615
+ };
6616
+ var autolinkDisallowedRe = /[ <>]/;
6617
+ var autolinkAble = function autolinkAble(destination) {
6618
+ try {
6619
+ // eslint-disable-next-line no-new
6620
+ new URL(destination);
6621
+ } catch (_unused) {
6622
+ // Not an absolute URL
6623
+ return false;
6624
+ }
6625
+ return !autolinkDisallowedRe.test(destination);
6626
+ };
6627
+ module.exports = {
6628
+ "names": ["MD054", "link-image-style"],
6629
+ "description": "Link and image style",
6630
+ "tags": ["images", "links"],
6631
+ "function": function _function(params, onError) {
6632
+ var parsers = params.parsers,
6633
+ config = params.config;
6634
+ var autolink = config.autolink === undefined || !!config.autolink;
6635
+ var inline = config.inline === undefined || !!config.inline;
6636
+ var full = config.full === undefined || !!config.full;
6637
+ var collapsed = config.collapsed === undefined || !!config.collapsed;
6638
+ var shortcut = config.shortcut === undefined || !!config.shortcut;
6639
+ var urlInline = config.url_inline === undefined || !!config.url_inline;
6640
+ if (autolink && inline && full && collapsed && shortcut && urlInline) {
6641
+ // Everything allowed, nothing to check
6642
+ return;
6643
+ }
6644
+ var _referenceLinkImageDa = referenceLinkImageData(),
6645
+ definitions = _referenceLinkImageDa.definitions;
6646
+ var links = filterByTypes(parsers.micromark.tokens, ["autolink", "image", "link"]);
6647
+ var _iterator = _createForOfIteratorHelper(links),
6648
+ _step;
6649
+ try {
6650
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
6651
+ var link = _step.value;
6652
+ var label = null;
6653
+ var destination = null;
6654
+ var children = link.children,
6655
+ endColumn = link.endColumn,
6656
+ endLine = link.endLine,
6657
+ startColumn = link.startColumn,
6658
+ startLine = link.startLine,
6659
+ text = link.text,
6660
+ type = link.type;
6661
+ var image = type === "image";
6662
+ var isError = false;
6663
+ if (type === "autolink") {
6664
+ // link kind is an autolink
6665
+ destination = getTokenTextByType(children, "autolinkProtocol");
6666
+ label = destination;
6667
+ isError = !autolink;
6668
+ } else {
6669
+ // link type is "image" or "link"
6670
+ var descendents = filterByPredicate(children);
6671
+ label = getTokenTextByType(descendents, "labelText");
6672
+ destination = getTokenTextByType(descendents, "resourceDestinationString");
6673
+ if (destination) {
6674
+ // link kind is an inline link
6675
+ var title = getTokenTextByType(descendents, "resourceTitleString");
6676
+ isError = !inline || !urlInline && autolink && !title && !image;
6677
+ } else {
6678
+ // link kind is a full/collapsed/shortcut reference link
6679
+ var isShortcut = !children.some(function (t) {
6680
+ return t.type === "reference";
6681
+ });
6682
+ var referenceString = getTokenTextByType(descendents, "referenceString");
6683
+ var isCollapsed = referenceString === null;
6684
+ var definition = definitions.get(referenceString || label);
6685
+ destination = definition && definition[1];
6686
+ isError = destination && (isShortcut ? !shortcut : isCollapsed ? !collapsed : !full);
6687
+ }
6688
+ }
6689
+ if (isError) {
6690
+ var range = null;
6691
+ var fixInfo = null;
6692
+ if (startLine === endLine) {
6693
+ range = [startColumn, endColumn - startColumn];
6694
+ var insertText = null;
6695
+ var canInline = inline && label;
6696
+ var canAutolink = autolink && !image && autolinkAble(destination);
6697
+ if (canInline && (urlInline || !canAutolink)) {
6698
+ // Most useful form
6699
+ var prefix = image ? "!" : "";
6700
+ // @ts-ignore
6701
+ var escapedLabel = label.replace(/[[\]]/g, "\\$&");
6702
+ var escapedDestination = destination.replace(/[()]/g, "\\$&");
6703
+ insertText = "".concat(prefix, "[").concat(escapedLabel, "](").concat(escapedDestination, ")");
6704
+ } else if (canAutolink) {
6705
+ // Simplest form
6706
+ insertText = "<".concat(removeBackslashEscapes(destination), ">");
6707
+ }
6708
+ if (insertText) {
6709
+ fixInfo = {
6710
+ "editColumn": range[0],
6711
+ insertText: insertText,
6712
+ "deleteCount": range[1]
6713
+ };
6714
+ }
6715
+ }
6716
+ addErrorContext(onError, startLine, text.replace(nextLinesRe, ""), null, null, range, fixInfo);
6717
+ }
6718
+ }
6719
+ } catch (err) {
6720
+ _iterator.e(err);
6721
+ } finally {
6722
+ _iterator.f();
6723
+ }
6724
+ }
6725
+ };
6726
+
6727
+ /***/ }),
6728
+
6564
6729
  /***/ "../lib/rules.js":
6565
6730
  /*!***********************!*\
6566
6731
  !*** ../lib/rules.js ***!
@@ -6582,7 +6747,11 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
6582
6747
  var _require = __webpack_require__(/*! ./constants */ "../lib/constants.js"),
6583
6748
  homepage = _require.homepage,
6584
6749
  version = _require.version;
6585
- var rules = [__webpack_require__(/*! ./md001 */ "../lib/md001.js"), __webpack_require__(/*! ./md002 */ "../lib/md002.js"), __webpack_require__(/*! ./md003 */ "../lib/md003.js"), __webpack_require__(/*! ./md004 */ "../lib/md004.js"), __webpack_require__(/*! ./md005 */ "../lib/md005.js"), __webpack_require__(/*! ./md006 */ "../lib/md006.js"), __webpack_require__(/*! ./md007 */ "../lib/md007.js"), __webpack_require__(/*! ./md009 */ "../lib/md009.js"), __webpack_require__(/*! ./md010 */ "../lib/md010.js"), __webpack_require__(/*! ./md011 */ "../lib/md011.js"), __webpack_require__(/*! ./md012 */ "../lib/md012.js"), __webpack_require__(/*! ./md013 */ "../lib/md013.js"), __webpack_require__(/*! ./md014 */ "../lib/md014.js"), __webpack_require__(/*! ./md018 */ "../lib/md018.js"), __webpack_require__(/*! ./md019 */ "../lib/md019.js"), __webpack_require__(/*! ./md020 */ "../lib/md020.js"), __webpack_require__(/*! ./md021 */ "../lib/md021.js"), __webpack_require__(/*! ./md022 */ "../lib/md022.js"), __webpack_require__(/*! ./md023 */ "../lib/md023.js"), __webpack_require__(/*! ./md024 */ "../lib/md024.js"), __webpack_require__(/*! ./md025 */ "../lib/md025.js"), __webpack_require__(/*! ./md026 */ "../lib/md026.js"), __webpack_require__(/*! ./md027 */ "../lib/md027.js"), __webpack_require__(/*! ./md028 */ "../lib/md028.js"), __webpack_require__(/*! ./md029 */ "../lib/md029.js"), __webpack_require__(/*! ./md030 */ "../lib/md030.js"), __webpack_require__(/*! ./md031 */ "../lib/md031.js"), __webpack_require__(/*! ./md032 */ "../lib/md032.js"), __webpack_require__(/*! ./md033 */ "../lib/md033.js"), __webpack_require__(/*! ./md034 */ "../lib/md034.js"), __webpack_require__(/*! ./md035 */ "../lib/md035.js"), __webpack_require__(/*! ./md036 */ "../lib/md036.js"), __webpack_require__(/*! ./md037 */ "../lib/md037.js"), __webpack_require__(/*! ./md038 */ "../lib/md038.js"), __webpack_require__(/*! ./md039 */ "../lib/md039.js"), __webpack_require__(/*! ./md040 */ "../lib/md040.js"), __webpack_require__(/*! ./md041 */ "../lib/md041.js"), __webpack_require__(/*! ./md042 */ "../lib/md042.js"), __webpack_require__(/*! ./md043 */ "../lib/md043.js"), __webpack_require__(/*! ./md044 */ "../lib/md044.js"), __webpack_require__(/*! ./md045 */ "../lib/md045.js"), __webpack_require__(/*! ./md046 */ "../lib/md046.js"), __webpack_require__(/*! ./md047 */ "../lib/md047.js"), __webpack_require__(/*! ./md048 */ "../lib/md048.js")].concat(_toConsumableArray(__webpack_require__(/*! ./md049-md050 */ "../lib/md049-md050.js")), [__webpack_require__(/*! ./md051 */ "../lib/md051.js"), __webpack_require__(/*! ./md052 */ "../lib/md052.js"), __webpack_require__(/*! ./md053 */ "../lib/md053.js")]);
6750
+ var rules = [__webpack_require__(/*! ./md001 */ "../lib/md001.js"), __webpack_require__(/*! ./md003 */ "../lib/md003.js"), __webpack_require__(/*! ./md004 */ "../lib/md004.js"), __webpack_require__(/*! ./md005 */ "../lib/md005.js"), __webpack_require__(/*! ./md007 */ "../lib/md007.js"), __webpack_require__(/*! ./md009 */ "../lib/md009.js"), __webpack_require__(/*! ./md010 */ "../lib/md010.js"), __webpack_require__(/*! ./md011 */ "../lib/md011.js"), __webpack_require__(/*! ./md012 */ "../lib/md012.js"), __webpack_require__(/*! ./md013 */ "../lib/md013.js"), __webpack_require__(/*! ./md014 */ "../lib/md014.js"), __webpack_require__(/*! ./md018 */ "../lib/md018.js"), __webpack_require__(/*! ./md019 */ "../lib/md019.js"), __webpack_require__(/*! ./md020 */ "../lib/md020.js"), __webpack_require__(/*! ./md021 */ "../lib/md021.js"), __webpack_require__(/*! ./md022 */ "../lib/md022.js"), __webpack_require__(/*! ./md023 */ "../lib/md023.js"), __webpack_require__(/*! ./md024 */ "../lib/md024.js"), __webpack_require__(/*! ./md025 */ "../lib/md025.js"), __webpack_require__(/*! ./md026 */ "../lib/md026.js"), __webpack_require__(/*! ./md027 */ "../lib/md027.js"), __webpack_require__(/*! ./md028 */ "../lib/md028.js"), __webpack_require__(/*! ./md029 */ "../lib/md029.js"), __webpack_require__(/*! ./md030 */ "../lib/md030.js"), __webpack_require__(/*! ./md031 */ "../lib/md031.js"), __webpack_require__(/*! ./md032 */ "../lib/md032.js"), __webpack_require__(/*! ./md033 */ "../lib/md033.js"), __webpack_require__(/*! ./md034 */ "../lib/md034.js"), __webpack_require__(/*! ./md035 */ "../lib/md035.js"), __webpack_require__(/*! ./md036 */ "../lib/md036.js"), __webpack_require__(/*! ./md037 */ "../lib/md037.js"), __webpack_require__(/*! ./md038 */ "../lib/md038.js"), __webpack_require__(/*! ./md039 */ "../lib/md039.js"), __webpack_require__(/*! ./md040 */ "../lib/md040.js"), __webpack_require__(/*! ./md041 */ "../lib/md041.js"), __webpack_require__(/*! ./md042 */ "../lib/md042.js"), __webpack_require__(/*! ./md043 */ "../lib/md043.js"), __webpack_require__(/*! ./md044 */ "../lib/md044.js"), __webpack_require__(/*! ./md045 */ "../lib/md045.js"), __webpack_require__(/*! ./md046 */ "../lib/md046.js"), __webpack_require__(/*! ./md047 */ "../lib/md047.js"), __webpack_require__(/*! ./md048 */ "../lib/md048.js")].concat(_toConsumableArray(__webpack_require__(/*! ./md049-md050 */ "../lib/md049-md050.js")), [__webpack_require__(/*! ./md051 */ "../lib/md051.js"), __webpack_require__(/*! ./md052 */ "../lib/md052.js"), __webpack_require__(/*! ./md053 */ "../lib/md053.js"), __webpack_require__(/*! ./md054 */ "../lib/md054.js")
6751
+ // md055: See https://github.com/markdownlint/markdownlint
6752
+ // md056: See https://github.com/markdownlint/markdownlint
6753
+ // md057: See https://github.com/markdownlint/markdownlint
6754
+ ]);
6586
6755
  var _iterator = _createForOfIteratorHelper(rules),
6587
6756
  _step;
6588
6757
  try {