markdownlint 0.31.0 → 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.
- package/CHANGELOG.md +16 -0
- package/CONTRIBUTING.md +2 -2
- package/README.md +19 -28
- package/demo/markdownlint-browser.js +506 -335
- package/doc/Rules.md +178 -144
- package/doc/md001.md +2 -2
- package/doc/md003.md +2 -2
- package/doc/md007.md +4 -7
- package/doc/md013.md +0 -3
- package/doc/md018.md +1 -1
- package/doc/md019.md +1 -1
- package/doc/md020.md +1 -1
- package/doc/md021.md +1 -1
- package/doc/md022.md +2 -2
- package/doc/md023.md +9 -2
- package/doc/md024.md +2 -2
- package/doc/md025.md +1 -1
- package/doc/md026.md +1 -1
- package/doc/md032.md +31 -14
- package/doc/md036.md +2 -2
- package/doc/md041.md +1 -1
- package/doc/md043.md +2 -5
- package/doc/md045.md +6 -0
- package/doc/md049.md +1 -1
- package/doc/md050.md +1 -1
- package/doc/md053.md +3 -3
- package/doc/md054.md +100 -0
- package/helpers/helpers.js +27 -7
- package/helpers/micromark.cjs +62 -15
- package/helpers/package.json +3 -2
- package/helpers/shared.js +3 -0
- package/lib/configuration.d.ts +1152 -0
- package/lib/constants.js +7 -7
- package/lib/markdownlint.d.ts +2 -4
- package/lib/markdownlint.js +9 -8
- package/lib/md001.js +2 -2
- package/lib/md003.js +2 -2
- package/lib/md005.js +21 -17
- package/lib/md007.js +62 -25
- package/lib/md013.js +1 -4
- package/lib/md018.js +1 -1
- package/lib/md019.js +1 -1
- package/lib/md020.js +1 -1
- package/lib/md021.js +1 -1
- package/lib/md022.js +4 -4
- package/lib/md023.js +2 -2
- package/lib/md024.js +2 -2
- package/lib/md025.js +1 -1
- package/lib/md026.js +1 -1
- package/lib/md030.js +33 -22
- package/lib/md032.js +1 -4
- package/lib/md033.js +1 -3
- package/lib/md034.js +12 -8
- package/lib/md036.js +2 -2
- package/lib/md037.js +2 -2
- package/lib/md038.js +7 -5
- package/lib/md041.js +1 -1
- package/lib/md043.js +3 -3
- package/lib/md045.js +33 -3
- package/lib/md049-md050.js +2 -2
- package/lib/md051.js +8 -6
- package/lib/md053.js +1 -1
- package/lib/md054.js +118 -0
- package/lib/rules.js +5 -3
- package/package.json +19 -17
- package/schema/.markdownlint.jsonc +63 -60
- package/schema/.markdownlint.yaml +62 -59
- package/schema/markdownlint-config-schema.json +840 -186
- package/style/relaxed.json +0 -1
- package/doc/md002.md +0 -37
- package/doc/md006.md +0 -46
- package/lib/md002.js +0 -22
- package/lib/md006.js +0 -34
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! markdownlint 0.
|
|
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
|
-
|
|
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("-")
|
|
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
|
-
|
|
1272
|
-
|
|
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 = [
|
|
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[]}
|
|
1457
|
+
* @param {string[]} types Types to allow.
|
|
1424
1458
|
* @returns {Token[]} Filtered tokens.
|
|
1425
1459
|
*/
|
|
1426
|
-
function filterByTypes(tokens,
|
|
1460
|
+
function filterByTypes(tokens, types) {
|
|
1427
1461
|
var predicate = function predicate(token) {
|
|
1428
|
-
return
|
|
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
|
-
*
|
|
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
|
|
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 = [
|
|
1596
|
-
module.exports.fixableRuleNames = ["MD004", "MD005", "
|
|
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.
|
|
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
|
-
|
|
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,
|
|
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
|
|
2085
|
-
|
|
2137
|
+
var _iterator15 = _createForOfIteratorHelper(aliasToRuleNames[keyUpper] || []),
|
|
2138
|
+
_step15;
|
|
2086
2139
|
try {
|
|
2087
|
-
for (
|
|
2088
|
-
var ruleName =
|
|
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
|
-
|
|
2145
|
+
_iterator15.e(err);
|
|
2093
2146
|
} finally {
|
|
2094
|
-
|
|
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
|
|
2156
|
-
|
|
2208
|
+
var _iterator16 = _createForOfIteratorHelper(input.entries()),
|
|
2209
|
+
_step16;
|
|
2157
2210
|
try {
|
|
2158
|
-
for (
|
|
2159
|
-
var
|
|
2160
|
-
lineIndex =
|
|
2161
|
-
line =
|
|
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
|
-
|
|
2233
|
+
_iterator16.e(err);
|
|
2181
2234
|
} finally {
|
|
2182
|
-
|
|
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
|
|
2202
|
-
|
|
2254
|
+
var _iterator17 = _createForOfIteratorHelper(items),
|
|
2255
|
+
_step17;
|
|
2203
2256
|
try {
|
|
2204
|
-
for (
|
|
2205
|
-
var nameUpper =
|
|
2206
|
-
var
|
|
2207
|
-
|
|
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 (
|
|
2210
|
-
var ruleName =
|
|
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
|
-
|
|
2267
|
+
_iterator18.e(err);
|
|
2215
2268
|
} finally {
|
|
2216
|
-
|
|
2269
|
+
_iterator18.f();
|
|
2217
2270
|
}
|
|
2218
2271
|
}
|
|
2219
2272
|
} catch (err) {
|
|
2220
|
-
|
|
2273
|
+
_iterator17.e(err);
|
|
2221
2274
|
} finally {
|
|
2222
|
-
|
|
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
|
|
2259
|
-
|
|
2311
|
+
var _iterator19 = _createForOfIteratorHelper(ruleList),
|
|
2312
|
+
_step19;
|
|
2260
2313
|
try {
|
|
2261
|
-
for (
|
|
2262
|
-
var rule =
|
|
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
|
-
|
|
2321
|
+
_iterator19.e(err);
|
|
2269
2322
|
} finally {
|
|
2270
|
-
|
|
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("
|
|
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
|
|
2474
|
-
|
|
2526
|
+
var _iterator20 = _createForOfIteratorHelper(results),
|
|
2527
|
+
_step20;
|
|
2475
2528
|
try {
|
|
2476
|
-
for (
|
|
2477
|
-
var error =
|
|
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
|
-
|
|
2537
|
+
_iterator20.e(err);
|
|
2485
2538
|
} finally {
|
|
2486
|
-
|
|
2539
|
+
_iterator20.f();
|
|
2487
2540
|
}
|
|
2488
2541
|
results = dictionary;
|
|
2489
2542
|
} else if (resultVersion === 1) {
|
|
2490
2543
|
// Use ruleAlias instead of ruleNames
|
|
2491
|
-
var
|
|
2492
|
-
|
|
2544
|
+
var _iterator21 = _createForOfIteratorHelper(results),
|
|
2545
|
+
_step21;
|
|
2493
2546
|
try {
|
|
2494
|
-
for (
|
|
2495
|
-
var _error =
|
|
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
|
-
|
|
2553
|
+
_iterator21.e(err);
|
|
2501
2554
|
} finally {
|
|
2502
|
-
|
|
2555
|
+
_iterator21.f();
|
|
2503
2556
|
}
|
|
2504
2557
|
} else {
|
|
2505
2558
|
// resultVersion 2 or 3: Remove unwanted ruleName
|
|
2506
|
-
var
|
|
2507
|
-
|
|
2559
|
+
var _iterator22 = _createForOfIteratorHelper(results),
|
|
2560
|
+
_step22;
|
|
2508
2561
|
try {
|
|
2509
|
-
for (
|
|
2510
|
-
var _error2 =
|
|
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
|
-
|
|
2567
|
+
_iterator22.e(err);
|
|
2515
2568
|
} finally {
|
|
2516
|
-
|
|
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
|
|
2634
|
-
|
|
2686
|
+
var _iterator23 = _createForOfIteratorHelper(markdownItPlugins),
|
|
2687
|
+
_step23;
|
|
2635
2688
|
try {
|
|
2636
|
-
for (
|
|
2637
|
-
var plugin =
|
|
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
|
-
|
|
2695
|
+
_iterator23.e(err);
|
|
2643
2696
|
} finally {
|
|
2644
|
-
|
|
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
|
|
3185
|
+
* Configuration object for linting rules. For the JSON schema, see
|
|
3133
3186
|
* {@link ../schema/markdownlint-config-schema.json}.
|
|
3134
3187
|
*
|
|
3135
|
-
* @typedef {
|
|
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"
|
|
3240
|
+
"names": ["MD001", "heading-increment"],
|
|
3188
3241
|
"description": "Heading levels should only increment by one level at a time",
|
|
3189
|
-
"tags": ["headings"
|
|
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"
|
|
3273
|
+
"names": ["MD003", "heading-style"],
|
|
3253
3274
|
"description": "Heading style",
|
|
3254
|
-
"tags": ["headings"
|
|
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
|
-
|
|
3396
|
-
|
|
3397
|
-
|
|
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
|
|
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.
|
|
3432
|
+
var expectedIndent = list.startColumn - 1;
|
|
3412
3433
|
var expectedEnd = 0;
|
|
3413
|
-
var actualEnd = -1;
|
|
3414
3434
|
var endMatching = false;
|
|
3415
|
-
var
|
|
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
|
|
3420
|
-
var
|
|
3421
|
-
|
|
3422
|
-
var
|
|
3423
|
-
var
|
|
3424
|
-
if (list.
|
|
3425
|
-
addErrorDetailIf(onError, lineNumber, expectedIndent, actualIndent, null, null,
|
|
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
|
|
3429
|
-
actualEnd =
|
|
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,
|
|
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
|
-
|
|
3540
|
-
|
|
3541
|
-
|
|
3542
|
-
|
|
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
|
|
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
|
|
3556
|
-
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
|
|
3560
|
-
|
|
3561
|
-
|
|
3562
|
-
|
|
3563
|
-
|
|
3564
|
-
|
|
3565
|
-
|
|
3566
|
-
|
|
3567
|
-
|
|
3568
|
-
|
|
3569
|
-
|
|
3570
|
-
|
|
3571
|
-
|
|
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
|
-
|
|
3580
|
-
|
|
3581
|
-
|
|
3582
|
-
|
|
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", "
|
|
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", "
|
|
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", "
|
|
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", "
|
|
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"
|
|
4275
|
+
"names": ["MD022", "blanks-around-headings"],
|
|
4294
4276
|
"description": "Headings should be surrounded by blank lines",
|
|
4295
|
-
"tags": ["headings", "
|
|
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"
|
|
4352
|
+
"names": ["MD023", "heading-start-left"],
|
|
4369
4353
|
"description": "Headings must start at the beginning of the line",
|
|
4370
|
-
"tags": ["headings", "
|
|
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"
|
|
4395
|
+
"names": ["MD024", "no-duplicate-heading"],
|
|
4412
4396
|
"description": "Multiple headings with the same content",
|
|
4413
|
-
"tags": ["headings"
|
|
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"
|
|
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"
|
|
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__(/*!
|
|
4790
|
-
|
|
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
|
|
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
|
|
4806
|
-
var
|
|
4807
|
-
|
|
4808
|
-
|
|
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
|
|
4813
|
-
var
|
|
4814
|
-
|
|
4815
|
-
|
|
4816
|
-
|
|
4817
|
-
|
|
4818
|
-
|
|
4819
|
-
|
|
4820
|
-
|
|
4821
|
-
|
|
4822
|
-
|
|
4823
|
-
|
|
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
|
-
|
|
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
|
|
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",
|
|
@@ -5057,7 +5047,9 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
|
5057
5047
|
addErrorContext = _require.addErrorContext;
|
|
5058
5048
|
var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
|
|
5059
5049
|
filterByPredicate = _require2.filterByPredicate,
|
|
5050
|
+
filterByTypes = _require2.filterByTypes,
|
|
5060
5051
|
getHtmlTagInfo = _require2.getHtmlTagInfo,
|
|
5052
|
+
inHtmlFlow = _require2.inHtmlFlow,
|
|
5061
5053
|
parse = _require2.parse;
|
|
5062
5054
|
module.exports = {
|
|
5063
5055
|
"names": ["MD034", "no-bare-urls"],
|
|
@@ -5066,18 +5058,18 @@ module.exports = {
|
|
|
5066
5058
|
"function": function MD034(params, onError) {
|
|
5067
5059
|
var literalAutolinks = function literalAutolinks(tokens) {
|
|
5068
5060
|
return filterByPredicate(tokens, function (token) {
|
|
5069
|
-
return token.type === "literalAutolink";
|
|
5061
|
+
return token.type === "literalAutolink" && !inHtmlFlow(token);
|
|
5070
5062
|
}, function (token) {
|
|
5071
5063
|
var children = token.children;
|
|
5072
5064
|
var result = [];
|
|
5073
5065
|
for (var i = 0; i < children.length; i++) {
|
|
5074
|
-
var
|
|
5075
|
-
var openTagInfo = getHtmlTagInfo(
|
|
5066
|
+
var current = children[i];
|
|
5067
|
+
var openTagInfo = getHtmlTagInfo(current);
|
|
5076
5068
|
if (openTagInfo && !openTagInfo.close) {
|
|
5077
5069
|
var count = 1;
|
|
5078
5070
|
for (var j = i + 1; j < children.length; j++) {
|
|
5079
|
-
var
|
|
5080
|
-
var closeTagInfo = getHtmlTagInfo(
|
|
5071
|
+
var candidate = children[j];
|
|
5072
|
+
var closeTagInfo = getHtmlTagInfo(candidate);
|
|
5081
5073
|
if (closeTagInfo && openTagInfo.name === closeTagInfo.name) {
|
|
5082
5074
|
if (closeTagInfo.close) {
|
|
5083
5075
|
count--;
|
|
@@ -5091,13 +5083,14 @@ module.exports = {
|
|
|
5091
5083
|
}
|
|
5092
5084
|
}
|
|
5093
5085
|
} else {
|
|
5094
|
-
result.push(
|
|
5086
|
+
result.push(current);
|
|
5095
5087
|
}
|
|
5096
5088
|
}
|
|
5097
5089
|
return result;
|
|
5098
5090
|
});
|
|
5099
5091
|
};
|
|
5100
|
-
|
|
5092
|
+
var autoLinks = filterByTypes(params.parsers.micromark.tokens, ["literalAutolink"]);
|
|
5093
|
+
if (autoLinks.length > 0) {
|
|
5101
5094
|
// Re-parse with correct link/image reference definition handling
|
|
5102
5095
|
var document = params.lines.join("\n");
|
|
5103
5096
|
var tokens = parse(document, undefined, false);
|
|
@@ -5190,9 +5183,9 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
|
5190
5183
|
addErrorContext = _require.addErrorContext,
|
|
5191
5184
|
allPunctuation = _require.allPunctuation;
|
|
5192
5185
|
module.exports = {
|
|
5193
|
-
"names": ["MD036", "no-emphasis-as-heading"
|
|
5186
|
+
"names": ["MD036", "no-emphasis-as-heading"],
|
|
5194
5187
|
"description": "Emphasis used instead of a heading",
|
|
5195
|
-
"tags": ["headings", "
|
|
5188
|
+
"tags": ["headings", "emphasis"],
|
|
5196
5189
|
"function": function MD036(params, onError) {
|
|
5197
5190
|
var punctuation = params.config.punctuation;
|
|
5198
5191
|
punctuation = String(punctuation === undefined ? allPunctuation : punctuation);
|
|
@@ -5266,7 +5259,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5266
5259
|
var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
5267
5260
|
addError = _require.addError;
|
|
5268
5261
|
var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
|
|
5269
|
-
filterByPredicate = _require2.filterByPredicate
|
|
5262
|
+
filterByPredicate = _require2.filterByPredicate,
|
|
5263
|
+
inHtmlFlow = _require2.inHtmlFlow;
|
|
5270
5264
|
module.exports = {
|
|
5271
5265
|
"names": ["MD037", "no-space-in-emphasis"],
|
|
5272
5266
|
"description": "Spaces inside emphasis markers",
|
|
@@ -5312,7 +5306,7 @@ module.exports = {
|
|
|
5312
5306
|
type = child.type;
|
|
5313
5307
|
if (type === "data" && text.length <= 3) {
|
|
5314
5308
|
var _emphasisTokens = emphasisTokensByMarker.get(text);
|
|
5315
|
-
if (_emphasisTokens) {
|
|
5309
|
+
if (_emphasisTokens && !inHtmlFlow(child)) {
|
|
5316
5310
|
_emphasisTokens.push(child);
|
|
5317
5311
|
}
|
|
5318
5312
|
}
|
|
@@ -5398,6 +5392,7 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
|
5398
5392
|
addErrorContext = _require.addErrorContext;
|
|
5399
5393
|
var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
|
|
5400
5394
|
filterByTypes = _require2.filterByTypes,
|
|
5395
|
+
inHtmlFlow = _require2.inHtmlFlow,
|
|
5401
5396
|
tokenIfType = _require2.tokenIfType;
|
|
5402
5397
|
var leftSpaceRe = /^\s(?:[^`]|$)/;
|
|
5403
5398
|
var rightSpaceRe = /[^`]\s$/;
|
|
@@ -5416,13 +5411,15 @@ module.exports = {
|
|
|
5416
5411
|
"description": "Spaces inside code span elements",
|
|
5417
5412
|
"tags": ["whitespace", "code"],
|
|
5418
5413
|
"function": function MD038(params, onError) {
|
|
5419
|
-
var
|
|
5420
|
-
|
|
5414
|
+
var codeTexts = filterByTypes(params.parsers.micromark.tokens, ["codeText"]).filter(function (codeText) {
|
|
5415
|
+
return !inHtmlFlow(codeText);
|
|
5416
|
+
});
|
|
5417
|
+
var _iterator = _createForOfIteratorHelper(codeTexts),
|
|
5421
5418
|
_step;
|
|
5422
5419
|
try {
|
|
5423
5420
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
5424
|
-
var
|
|
5425
|
-
var children =
|
|
5421
|
+
var codeText = _step.value;
|
|
5422
|
+
var children = codeText.children;
|
|
5426
5423
|
var first = 0;
|
|
5427
5424
|
var last = children.length - 1;
|
|
5428
5425
|
var startSequence = tokenIfType(children[first], "codeTextSequence");
|
|
@@ -5610,7 +5607,7 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
|
5610
5607
|
module.exports = {
|
|
5611
5608
|
"names": ["MD041", "first-line-heading", "first-line-h1"],
|
|
5612
5609
|
"description": "First line in a file should be a top-level heading",
|
|
5613
|
-
"tags": ["headings"
|
|
5610
|
+
"tags": ["headings"],
|
|
5614
5611
|
"function": function MD041(params, onError) {
|
|
5615
5612
|
var level = Number(params.config.level || 1);
|
|
5616
5613
|
var tag = "h" + level;
|
|
@@ -5735,11 +5732,11 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
|
5735
5732
|
addErrorDetailIf = _require.addErrorDetailIf,
|
|
5736
5733
|
forEachHeading = _require.forEachHeading;
|
|
5737
5734
|
module.exports = {
|
|
5738
|
-
"names": ["MD043", "required-headings"
|
|
5735
|
+
"names": ["MD043", "required-headings"],
|
|
5739
5736
|
"description": "Required heading structure",
|
|
5740
|
-
"tags": ["headings"
|
|
5737
|
+
"tags": ["headings"],
|
|
5741
5738
|
"function": function MD043(params, onError) {
|
|
5742
|
-
var requiredHeadings = params.config.headings
|
|
5739
|
+
var requiredHeadings = params.config.headings;
|
|
5743
5740
|
if (!Array.isArray(requiredHeadings)) {
|
|
5744
5741
|
// Nothing to check; avoid doing any work
|
|
5745
5742
|
return;
|
|
@@ -5943,15 +5940,22 @@ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol
|
|
|
5943
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); }
|
|
5944
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; }
|
|
5945
5942
|
var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
5946
|
-
addError = _require.addError
|
|
5943
|
+
addError = _require.addError,
|
|
5944
|
+
getHtmlAttributeRe = _require.getHtmlAttributeRe,
|
|
5945
|
+
nextLinesRe = _require.nextLinesRe;
|
|
5947
5946
|
var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
|
|
5948
|
-
filterByTypes = _require2.filterByTypes
|
|
5947
|
+
filterByTypes = _require2.filterByTypes,
|
|
5948
|
+
getHtmlTagInfo = _require2.getHtmlTagInfo;
|
|
5949
|
+
var altRe = getHtmlAttributeRe("alt");
|
|
5949
5950
|
module.exports = {
|
|
5950
5951
|
"names": ["MD045", "no-alt-text"],
|
|
5951
5952
|
"description": "Images should have alternate text (alt text)",
|
|
5952
5953
|
"tags": ["accessibility", "images"],
|
|
5953
5954
|
"function": function MD045(params, onError) {
|
|
5954
|
-
var
|
|
5955
|
+
var tokens = params.parsers.micromark.tokens;
|
|
5956
|
+
|
|
5957
|
+
// Process Markdown images
|
|
5958
|
+
var images = filterByTypes(tokens, ["image"]);
|
|
5955
5959
|
var _iterator = _createForOfIteratorHelper(images),
|
|
5956
5960
|
_step;
|
|
5957
5961
|
try {
|
|
@@ -5965,11 +5969,33 @@ module.exports = {
|
|
|
5965
5969
|
addError(onError, image.startLine, undefined, undefined, range);
|
|
5966
5970
|
}
|
|
5967
5971
|
}
|
|
5972
|
+
|
|
5973
|
+
// Process HTML images
|
|
5968
5974
|
} catch (err) {
|
|
5969
5975
|
_iterator.e(err);
|
|
5970
5976
|
} finally {
|
|
5971
5977
|
_iterator.f();
|
|
5972
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
|
+
}
|
|
5973
5999
|
}
|
|
5974
6000
|
};
|
|
5975
6001
|
|
|
@@ -6174,14 +6200,14 @@ var impl = function impl(params, onError, type, asterisk, underline) {
|
|
|
6174
6200
|
};
|
|
6175
6201
|
module.exports = [{
|
|
6176
6202
|
"names": ["MD049", "emphasis-style"],
|
|
6177
|
-
"description": "Emphasis style
|
|
6203
|
+
"description": "Emphasis style",
|
|
6178
6204
|
"tags": ["emphasis"],
|
|
6179
6205
|
"function": function MD049(params, onError) {
|
|
6180
6206
|
return impl(params, onError, "emphasis", "*", "_", params.config.style || undefined);
|
|
6181
6207
|
}
|
|
6182
6208
|
}, {
|
|
6183
6209
|
"names": ["MD050", "strong-style"],
|
|
6184
|
-
"description": "Strong style
|
|
6210
|
+
"description": "Strong style",
|
|
6185
6211
|
"tags": ["emphasis"],
|
|
6186
6212
|
"function": function MD050(params, onError) {
|
|
6187
6213
|
return impl(params, onError, "strong", "**", "__", params.config.style || undefined);
|
|
@@ -6214,20 +6240,21 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
6214
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; }
|
|
6215
6241
|
var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
6216
6242
|
addError = _require.addError,
|
|
6217
|
-
addErrorDetailIf = _require.addErrorDetailIf
|
|
6243
|
+
addErrorDetailIf = _require.addErrorDetailIf,
|
|
6244
|
+
getHtmlAttributeRe = _require.getHtmlAttributeRe;
|
|
6218
6245
|
var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
|
|
6219
6246
|
filterByPredicate = _require2.filterByPredicate,
|
|
6220
6247
|
filterByTypes = _require2.filterByTypes,
|
|
6221
6248
|
getHtmlTagInfo = _require2.getHtmlTagInfo;
|
|
6222
6249
|
|
|
6223
6250
|
// Regular expression for identifying HTML anchor names
|
|
6224
|
-
var idRe =
|
|
6225
|
-
var nameRe =
|
|
6251
|
+
var idRe = getHtmlAttributeRe("id");
|
|
6252
|
+
var nameRe = getHtmlAttributeRe("name");
|
|
6226
6253
|
var anchorRe = /\{(#[0-9a-z]+(?:[\x2D_][0-9a-z]+)*)\}/g;
|
|
6227
6254
|
|
|
6228
6255
|
// Sets for filtering heading tokens during conversion
|
|
6229
6256
|
var childrenExclude = new Set(["image", "reference", "resource"]);
|
|
6230
|
-
var tokensInclude = new Set(["codeTextData", "data"]);
|
|
6257
|
+
var tokensInclude = new Set(["characterEscapeValue", "codeTextData", "data"]);
|
|
6231
6258
|
|
|
6232
6259
|
/**
|
|
6233
6260
|
* @typedef {import("../helpers/micromark.cjs").Token} Token
|
|
@@ -6250,10 +6277,9 @@ function convertHeadingToHTMLFragment(headingText) {
|
|
|
6250
6277
|
}).join("");
|
|
6251
6278
|
return "#" + encodeURIComponent(inlineText.toLowerCase()
|
|
6252
6279
|
// RegExp source with Ruby's \p{Word} expanded into its General Categories
|
|
6253
|
-
// eslint-disable-next-line max-len
|
|
6254
6280
|
// https://github.com/gjtorikian/html-pipeline/blob/main/lib/html/pipeline/toc_filter.rb
|
|
6255
6281
|
// https://ruby-doc.org/core-3.0.2/Regexp.html
|
|
6256
|
-
.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\
|
|
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, "-"));
|
|
6257
6283
|
}
|
|
6258
6284
|
|
|
6259
6285
|
/**
|
|
@@ -6315,7 +6341,7 @@ module.exports = {
|
|
|
6315
6341
|
var htmlTagInfo = getHtmlTagInfo(token);
|
|
6316
6342
|
if (htmlTagInfo && !htmlTagInfo.close) {
|
|
6317
6343
|
var anchorMatch = idRe.exec(token.text) || htmlTagInfo.name.toLowerCase() === "a" && nameRe.exec(token.text);
|
|
6318
|
-
if (anchorMatch) {
|
|
6344
|
+
if (anchorMatch && anchorMatch.length > 0) {
|
|
6319
6345
|
fragments.set("#".concat(anchorMatch[1]), 0);
|
|
6320
6346
|
}
|
|
6321
6347
|
}
|
|
@@ -6524,7 +6550,8 @@ module.exports = {
|
|
|
6524
6550
|
var definition = _step.value;
|
|
6525
6551
|
var _definition = _slicedToArray(definition, 2),
|
|
6526
6552
|
label = _definition[0],
|
|
6527
|
-
|
|
6553
|
+
_definition$ = _slicedToArray(_definition[1], 1),
|
|
6554
|
+
lineIndex = _definition$[0];
|
|
6528
6555
|
if (!ignored.has(label) && !references.has(label) && !shortcuts.has(label)) {
|
|
6529
6556
|
var line = lines[lineIndex];
|
|
6530
6557
|
addError(onError, lineIndex + 1, "Unused link or image reference definition: \"".concat(label, "\""), ellipsify(line), [1, line.length], singleLineDefinition(line) ? deleteFixInfo : 0);
|
|
@@ -6559,6 +6586,146 @@ module.exports = {
|
|
|
6559
6586
|
|
|
6560
6587
|
/***/ }),
|
|
6561
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
|
+
|
|
6562
6729
|
/***/ "../lib/rules.js":
|
|
6563
6730
|
/*!***********************!*\
|
|
6564
6731
|
!*** ../lib/rules.js ***!
|
|
@@ -6580,7 +6747,11 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6580
6747
|
var _require = __webpack_require__(/*! ./constants */ "../lib/constants.js"),
|
|
6581
6748
|
homepage = _require.homepage,
|
|
6582
6749
|
version = _require.version;
|
|
6583
|
-
var rules = [__webpack_require__(/*! ./md001 */ "../lib/md001.js"), __webpack_require__(/*! ./
|
|
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
|
+
]);
|
|
6584
6755
|
var _iterator = _createForOfIteratorHelper(rules),
|
|
6585
6756
|
_step;
|
|
6586
6757
|
try {
|