markdownlint 0.31.1 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/CONTRIBUTING.md +2 -2
- package/README.md +19 -28
- package/demo/markdownlint-browser.js +521 -352
- package/doc/Rules.md +146 -127
- package/doc/md001.md +2 -2
- package/doc/md003.md +2 -2
- package/doc/md007.md +3 -4
- 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/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 +2 -1
- 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 +31 -25
- 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 +17 -15
- 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",
|
|
@@ -5059,6 +5049,7 @@ var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/
|
|
|
5059
5049
|
filterByPredicate = _require2.filterByPredicate,
|
|
5060
5050
|
filterByTypes = _require2.filterByTypes,
|
|
5061
5051
|
getHtmlTagInfo = _require2.getHtmlTagInfo,
|
|
5052
|
+
inHtmlFlow = _require2.inHtmlFlow,
|
|
5062
5053
|
parse = _require2.parse;
|
|
5063
5054
|
module.exports = {
|
|
5064
5055
|
"names": ["MD034", "no-bare-urls"],
|
|
@@ -5066,36 +5057,36 @@ module.exports = {
|
|
|
5066
5057
|
"tags": ["links", "url"],
|
|
5067
5058
|
"function": function MD034(params, onError) {
|
|
5068
5059
|
var literalAutolinks = function literalAutolinks(tokens) {
|
|
5069
|
-
|
|
5070
|
-
return
|
|
5071
|
-
})
|
|
5072
|
-
|
|
5073
|
-
|
|
5074
|
-
var
|
|
5075
|
-
|
|
5076
|
-
|
|
5077
|
-
|
|
5078
|
-
|
|
5079
|
-
var
|
|
5080
|
-
|
|
5081
|
-
|
|
5082
|
-
if (closeTagInfo.
|
|
5083
|
-
|
|
5084
|
-
|
|
5085
|
-
|
|
5086
|
-
|
|
5060
|
+
return filterByPredicate(tokens, function (token) {
|
|
5061
|
+
return token.type === "literalAutolink" && !inHtmlFlow(token);
|
|
5062
|
+
}, function (token) {
|
|
5063
|
+
var children = token.children;
|
|
5064
|
+
var result = [];
|
|
5065
|
+
for (var i = 0; i < children.length; i++) {
|
|
5066
|
+
var current = children[i];
|
|
5067
|
+
var openTagInfo = getHtmlTagInfo(current);
|
|
5068
|
+
if (openTagInfo && !openTagInfo.close) {
|
|
5069
|
+
var count = 1;
|
|
5070
|
+
for (var j = i + 1; j < children.length; j++) {
|
|
5071
|
+
var candidate = children[j];
|
|
5072
|
+
var closeTagInfo = getHtmlTagInfo(candidate);
|
|
5073
|
+
if (closeTagInfo && openTagInfo.name === closeTagInfo.name) {
|
|
5074
|
+
if (closeTagInfo.close) {
|
|
5075
|
+
count--;
|
|
5076
|
+
if (count === 0) {
|
|
5077
|
+
i = j;
|
|
5078
|
+
break;
|
|
5079
|
+
}
|
|
5080
|
+
} else {
|
|
5081
|
+
count++;
|
|
5087
5082
|
}
|
|
5088
|
-
} else {
|
|
5089
|
-
count++;
|
|
5090
5083
|
}
|
|
5091
5084
|
}
|
|
5085
|
+
} else {
|
|
5086
|
+
result.push(current);
|
|
5092
5087
|
}
|
|
5093
|
-
} else {
|
|
5094
|
-
result.push(current);
|
|
5095
5088
|
}
|
|
5096
|
-
|
|
5097
|
-
return result.filter(function (token) {
|
|
5098
|
-
return token.type === "literalAutolink";
|
|
5089
|
+
return result;
|
|
5099
5090
|
});
|
|
5100
5091
|
};
|
|
5101
5092
|
var autoLinks = filterByTypes(params.parsers.micromark.tokens, ["literalAutolink"]);
|
|
@@ -5192,9 +5183,9 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
|
5192
5183
|
addErrorContext = _require.addErrorContext,
|
|
5193
5184
|
allPunctuation = _require.allPunctuation;
|
|
5194
5185
|
module.exports = {
|
|
5195
|
-
"names": ["MD036", "no-emphasis-as-heading"
|
|
5186
|
+
"names": ["MD036", "no-emphasis-as-heading"],
|
|
5196
5187
|
"description": "Emphasis used instead of a heading",
|
|
5197
|
-
"tags": ["headings", "
|
|
5188
|
+
"tags": ["headings", "emphasis"],
|
|
5198
5189
|
"function": function MD036(params, onError) {
|
|
5199
5190
|
var punctuation = params.config.punctuation;
|
|
5200
5191
|
punctuation = String(punctuation === undefined ? allPunctuation : punctuation);
|
|
@@ -5268,7 +5259,8 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
5268
5259
|
var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
5269
5260
|
addError = _require.addError;
|
|
5270
5261
|
var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
|
|
5271
|
-
filterByPredicate = _require2.filterByPredicate
|
|
5262
|
+
filterByPredicate = _require2.filterByPredicate,
|
|
5263
|
+
inHtmlFlow = _require2.inHtmlFlow;
|
|
5272
5264
|
module.exports = {
|
|
5273
5265
|
"names": ["MD037", "no-space-in-emphasis"],
|
|
5274
5266
|
"description": "Spaces inside emphasis markers",
|
|
@@ -5314,7 +5306,7 @@ module.exports = {
|
|
|
5314
5306
|
type = child.type;
|
|
5315
5307
|
if (type === "data" && text.length <= 3) {
|
|
5316
5308
|
var _emphasisTokens = emphasisTokensByMarker.get(text);
|
|
5317
|
-
if (_emphasisTokens) {
|
|
5309
|
+
if (_emphasisTokens && !inHtmlFlow(child)) {
|
|
5318
5310
|
_emphasisTokens.push(child);
|
|
5319
5311
|
}
|
|
5320
5312
|
}
|
|
@@ -5400,6 +5392,7 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
|
5400
5392
|
addErrorContext = _require.addErrorContext;
|
|
5401
5393
|
var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
|
|
5402
5394
|
filterByTypes = _require2.filterByTypes,
|
|
5395
|
+
inHtmlFlow = _require2.inHtmlFlow,
|
|
5403
5396
|
tokenIfType = _require2.tokenIfType;
|
|
5404
5397
|
var leftSpaceRe = /^\s(?:[^`]|$)/;
|
|
5405
5398
|
var rightSpaceRe = /[^`]\s$/;
|
|
@@ -5418,13 +5411,15 @@ module.exports = {
|
|
|
5418
5411
|
"description": "Spaces inside code span elements",
|
|
5419
5412
|
"tags": ["whitespace", "code"],
|
|
5420
5413
|
"function": function MD038(params, onError) {
|
|
5421
|
-
var
|
|
5422
|
-
|
|
5414
|
+
var codeTexts = filterByTypes(params.parsers.micromark.tokens, ["codeText"]).filter(function (codeText) {
|
|
5415
|
+
return !inHtmlFlow(codeText);
|
|
5416
|
+
});
|
|
5417
|
+
var _iterator = _createForOfIteratorHelper(codeTexts),
|
|
5423
5418
|
_step;
|
|
5424
5419
|
try {
|
|
5425
5420
|
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
5426
|
-
var
|
|
5427
|
-
var children =
|
|
5421
|
+
var codeText = _step.value;
|
|
5422
|
+
var children = codeText.children;
|
|
5428
5423
|
var first = 0;
|
|
5429
5424
|
var last = children.length - 1;
|
|
5430
5425
|
var startSequence = tokenIfType(children[first], "codeTextSequence");
|
|
@@ -5612,7 +5607,7 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
|
5612
5607
|
module.exports = {
|
|
5613
5608
|
"names": ["MD041", "first-line-heading", "first-line-h1"],
|
|
5614
5609
|
"description": "First line in a file should be a top-level heading",
|
|
5615
|
-
"tags": ["headings"
|
|
5610
|
+
"tags": ["headings"],
|
|
5616
5611
|
"function": function MD041(params, onError) {
|
|
5617
5612
|
var level = Number(params.config.level || 1);
|
|
5618
5613
|
var tag = "h" + level;
|
|
@@ -5737,11 +5732,11 @@ var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
|
5737
5732
|
addErrorDetailIf = _require.addErrorDetailIf,
|
|
5738
5733
|
forEachHeading = _require.forEachHeading;
|
|
5739
5734
|
module.exports = {
|
|
5740
|
-
"names": ["MD043", "required-headings"
|
|
5735
|
+
"names": ["MD043", "required-headings"],
|
|
5741
5736
|
"description": "Required heading structure",
|
|
5742
|
-
"tags": ["headings"
|
|
5737
|
+
"tags": ["headings"],
|
|
5743
5738
|
"function": function MD043(params, onError) {
|
|
5744
|
-
var requiredHeadings = params.config.headings
|
|
5739
|
+
var requiredHeadings = params.config.headings;
|
|
5745
5740
|
if (!Array.isArray(requiredHeadings)) {
|
|
5746
5741
|
// Nothing to check; avoid doing any work
|
|
5747
5742
|
return;
|
|
@@ -5945,15 +5940,22 @@ function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol
|
|
|
5945
5940
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
5946
5941
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
5947
5942
|
var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
5948
|
-
addError = _require.addError
|
|
5943
|
+
addError = _require.addError,
|
|
5944
|
+
getHtmlAttributeRe = _require.getHtmlAttributeRe,
|
|
5945
|
+
nextLinesRe = _require.nextLinesRe;
|
|
5949
5946
|
var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
|
|
5950
|
-
filterByTypes = _require2.filterByTypes
|
|
5947
|
+
filterByTypes = _require2.filterByTypes,
|
|
5948
|
+
getHtmlTagInfo = _require2.getHtmlTagInfo;
|
|
5949
|
+
var altRe = getHtmlAttributeRe("alt");
|
|
5951
5950
|
module.exports = {
|
|
5952
5951
|
"names": ["MD045", "no-alt-text"],
|
|
5953
5952
|
"description": "Images should have alternate text (alt text)",
|
|
5954
5953
|
"tags": ["accessibility", "images"],
|
|
5955
5954
|
"function": function MD045(params, onError) {
|
|
5956
|
-
var
|
|
5955
|
+
var tokens = params.parsers.micromark.tokens;
|
|
5956
|
+
|
|
5957
|
+
// Process Markdown images
|
|
5958
|
+
var images = filterByTypes(tokens, ["image"]);
|
|
5957
5959
|
var _iterator = _createForOfIteratorHelper(images),
|
|
5958
5960
|
_step;
|
|
5959
5961
|
try {
|
|
@@ -5967,11 +5969,33 @@ module.exports = {
|
|
|
5967
5969
|
addError(onError, image.startLine, undefined, undefined, range);
|
|
5968
5970
|
}
|
|
5969
5971
|
}
|
|
5972
|
+
|
|
5973
|
+
// Process HTML images
|
|
5970
5974
|
} catch (err) {
|
|
5971
5975
|
_iterator.e(err);
|
|
5972
5976
|
} finally {
|
|
5973
5977
|
_iterator.f();
|
|
5974
5978
|
}
|
|
5979
|
+
var htmlTexts = filterByTypes(tokens, ["htmlText"]);
|
|
5980
|
+
var _iterator2 = _createForOfIteratorHelper(htmlTexts),
|
|
5981
|
+
_step2;
|
|
5982
|
+
try {
|
|
5983
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
5984
|
+
var htmlText = _step2.value;
|
|
5985
|
+
var startColumn = htmlText.startColumn,
|
|
5986
|
+
startLine = htmlText.startLine,
|
|
5987
|
+
text = htmlText.text;
|
|
5988
|
+
var htmlTagInfo = getHtmlTagInfo(htmlText);
|
|
5989
|
+
if (htmlTagInfo && !htmlTagInfo.close && htmlTagInfo.name.toLowerCase() === "img" && !altRe.test(text)) {
|
|
5990
|
+
var _range = [startColumn, text.replace(nextLinesRe, "").length];
|
|
5991
|
+
addError(onError, startLine, undefined, undefined, _range);
|
|
5992
|
+
}
|
|
5993
|
+
}
|
|
5994
|
+
} catch (err) {
|
|
5995
|
+
_iterator2.e(err);
|
|
5996
|
+
} finally {
|
|
5997
|
+
_iterator2.f();
|
|
5998
|
+
}
|
|
5975
5999
|
}
|
|
5976
6000
|
};
|
|
5977
6001
|
|
|
@@ -6176,14 +6200,14 @@ var impl = function impl(params, onError, type, asterisk, underline) {
|
|
|
6176
6200
|
};
|
|
6177
6201
|
module.exports = [{
|
|
6178
6202
|
"names": ["MD049", "emphasis-style"],
|
|
6179
|
-
"description": "Emphasis style
|
|
6203
|
+
"description": "Emphasis style",
|
|
6180
6204
|
"tags": ["emphasis"],
|
|
6181
6205
|
"function": function MD049(params, onError) {
|
|
6182
6206
|
return impl(params, onError, "emphasis", "*", "_", params.config.style || undefined);
|
|
6183
6207
|
}
|
|
6184
6208
|
}, {
|
|
6185
6209
|
"names": ["MD050", "strong-style"],
|
|
6186
|
-
"description": "Strong style
|
|
6210
|
+
"description": "Strong style",
|
|
6187
6211
|
"tags": ["emphasis"],
|
|
6188
6212
|
"function": function MD050(params, onError) {
|
|
6189
6213
|
return impl(params, onError, "strong", "**", "__", params.config.style || undefined);
|
|
@@ -6216,20 +6240,21 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
|
|
|
6216
6240
|
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
6217
6241
|
var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
6218
6242
|
addError = _require.addError,
|
|
6219
|
-
addErrorDetailIf = _require.addErrorDetailIf
|
|
6243
|
+
addErrorDetailIf = _require.addErrorDetailIf,
|
|
6244
|
+
getHtmlAttributeRe = _require.getHtmlAttributeRe;
|
|
6220
6245
|
var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
|
|
6221
6246
|
filterByPredicate = _require2.filterByPredicate,
|
|
6222
6247
|
filterByTypes = _require2.filterByTypes,
|
|
6223
6248
|
getHtmlTagInfo = _require2.getHtmlTagInfo;
|
|
6224
6249
|
|
|
6225
6250
|
// Regular expression for identifying HTML anchor names
|
|
6226
|
-
var idRe =
|
|
6227
|
-
var nameRe =
|
|
6251
|
+
var idRe = getHtmlAttributeRe("id");
|
|
6252
|
+
var nameRe = getHtmlAttributeRe("name");
|
|
6228
6253
|
var anchorRe = /\{(#[0-9a-z]+(?:[\x2D_][0-9a-z]+)*)\}/g;
|
|
6229
6254
|
|
|
6230
6255
|
// Sets for filtering heading tokens during conversion
|
|
6231
6256
|
var childrenExclude = new Set(["image", "reference", "resource"]);
|
|
6232
|
-
var tokensInclude = new Set(["codeTextData", "data"]);
|
|
6257
|
+
var tokensInclude = new Set(["characterEscapeValue", "codeTextData", "data"]);
|
|
6233
6258
|
|
|
6234
6259
|
/**
|
|
6235
6260
|
* @typedef {import("../helpers/micromark.cjs").Token} Token
|
|
@@ -6252,7 +6277,6 @@ function convertHeadingToHTMLFragment(headingText) {
|
|
|
6252
6277
|
}).join("");
|
|
6253
6278
|
return "#" + encodeURIComponent(inlineText.toLowerCase()
|
|
6254
6279
|
// RegExp source with Ruby's \p{Word} expanded into its General Categories
|
|
6255
|
-
// eslint-disable-next-line max-len
|
|
6256
6280
|
// https://github.com/gjtorikian/html-pipeline/blob/main/lib/html/pipeline/toc_filter.rb
|
|
6257
6281
|
// https://ruby-doc.org/core-3.0.2/Regexp.html
|
|
6258
6282
|
.replace(/(?:[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB1\xB4\xB6-\xB8\xBB\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u086F\u0888\u088F-\u0897\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2\u09F3\u09FA\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF3-\u0BFF\u0C0D\u0C11\u0C29\u0C3A\u0C3B\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B\u0C5C\u0C5E\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDC\u0CDF\u0CE4\u0CE5\u0CF0\u0CF4-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D64\u0D65\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u1368\u137D-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u1716-\u171E\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u17EF\u17FA-\u180A\u180E\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1ACF-\u1AFF\u1B4D-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u206F\u2072\u2073\u207A-\u207E\u208A-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A-\u245F\u249C-\u24E9\u2500-\u2775\u2794-\u2BFF\u2CE5-\u2CEA\u2CF4-\u2CFC\u2CFE\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u3191\u3196-\u319F\u31C0-\u31EF\u3200-\u321F\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7CB-\uA7CF\uA7D2\uA7D4\uA7DA-\uA7F1\uA828-\uA82B\uA82D-\uA82F\uA836-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD06\uDD34-\uDD3F\uDD79-\uDD89\uDD8C-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDD6F\uDD7B\uDD8B\uDD93\uDD96\uDDA2\uDDB2\uDDBA\uDDBD-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDF7F\uDF86\uDFB1\uDFBB-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC57\uDC77\uDC78\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE49-\uDE5F\uDE7F\uDEA0-\uDEBF\uDEC8\uDEE7-\uDEEA\uDEF0-\uDEFF\uDF36-\uDF3F\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD28-\uDD2F\uDD3A-\uDE5F\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFC\uDF28-\uDF2F\uDF55-\uDF6F\uDF86-\uDFAF\uDFCC-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC51\uDC76-\uDC7E\uDCBB-\uDCC1\uDCC3-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDE0\uDDF5-\uDDFF\uDE12\uDE38-\uDE3D\uDE42-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3C-\uDF3F\uDF47-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCF3-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEAF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC6D-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDEFF\uDF11\uDF3B-\uDF3D\uDF43-\uDF4F\uDF5A-\uDFAF\uDFB1-\uDFBF\uDFD5-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80E-\uD810\uD812-\uD819\uD824-\uD82A\uD82D\uD82E\uD830-\uD832\uD83D\uD83F\uD87C\uD87D\uD87F\uD889-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80B[\uDC00-\uDF8F\uDFF1-\uDFFF]|\uD80D[\uDC30-\uDC3F\uDC56-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDE6F\uDEBF\uDECA-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE97-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82B[\uDC00-\uDFEF\uDFF4\uDFFC\uDFFF]|\uD82C[\uDD23-\uDD31\uDD33-\uDD4F\uDD53\uDD54\uDD56-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD833[\uDC00-\uDEFF\uDF2E\uDF2F\uDF47-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDEBF\uDED4-\uDEDF\uDEF4-\uDF5F\uDF79-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD837[\uDC00-\uDEFF\uDF1F-\uDF24\uDF2B-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDC2F\uDC6E-\uDC8E\uDC90-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDE8F\uDEAF-\uDEBF\uDEFA-\uDFFF]|\uD839[\uDC00-\uDCCF\uDCFA-\uDFDF\uDFE7\uDFEC\uDFEF\uDFFF]|\uD83A[\uDCC5\uDCC6\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDC70\uDCAC\uDCB0\uDCB5-\uDD00\uDD2E\uDD3E-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEE0-\uDEFF]|\uD86D[\uDF3A-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFEF]|\uD87B[\uDE5E-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDF4F]|\uD888[\uDFB0-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/g, "").replace(/ /g, "-"));
|
|
@@ -6317,7 +6341,7 @@ module.exports = {
|
|
|
6317
6341
|
var htmlTagInfo = getHtmlTagInfo(token);
|
|
6318
6342
|
if (htmlTagInfo && !htmlTagInfo.close) {
|
|
6319
6343
|
var anchorMatch = idRe.exec(token.text) || htmlTagInfo.name.toLowerCase() === "a" && nameRe.exec(token.text);
|
|
6320
|
-
if (anchorMatch) {
|
|
6344
|
+
if (anchorMatch && anchorMatch.length > 0) {
|
|
6321
6345
|
fragments.set("#".concat(anchorMatch[1]), 0);
|
|
6322
6346
|
}
|
|
6323
6347
|
}
|
|
@@ -6526,7 +6550,8 @@ module.exports = {
|
|
|
6526
6550
|
var definition = _step.value;
|
|
6527
6551
|
var _definition = _slicedToArray(definition, 2),
|
|
6528
6552
|
label = _definition[0],
|
|
6529
|
-
|
|
6553
|
+
_definition$ = _slicedToArray(_definition[1], 1),
|
|
6554
|
+
lineIndex = _definition$[0];
|
|
6530
6555
|
if (!ignored.has(label) && !references.has(label) && !shortcuts.has(label)) {
|
|
6531
6556
|
var line = lines[lineIndex];
|
|
6532
6557
|
addError(onError, lineIndex + 1, "Unused link or image reference definition: \"".concat(label, "\""), ellipsify(line), [1, line.length], singleLineDefinition(line) ? deleteFixInfo : 0);
|
|
@@ -6561,6 +6586,146 @@ module.exports = {
|
|
|
6561
6586
|
|
|
6562
6587
|
/***/ }),
|
|
6563
6588
|
|
|
6589
|
+
/***/ "../lib/md054.js":
|
|
6590
|
+
/*!***********************!*\
|
|
6591
|
+
!*** ../lib/md054.js ***!
|
|
6592
|
+
\***********************/
|
|
6593
|
+
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
|
|
6594
|
+
|
|
6595
|
+
"use strict";
|
|
6596
|
+
// @ts-check
|
|
6597
|
+
|
|
6598
|
+
|
|
6599
|
+
|
|
6600
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
6601
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
6602
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
6603
|
+
var _require = __webpack_require__(/*! ../helpers */ "../helpers/helpers.js"),
|
|
6604
|
+
addErrorContext = _require.addErrorContext,
|
|
6605
|
+
nextLinesRe = _require.nextLinesRe;
|
|
6606
|
+
var _require2 = __webpack_require__(/*! ../helpers/micromark.cjs */ "../helpers/micromark.cjs"),
|
|
6607
|
+
filterByTypes = _require2.filterByTypes,
|
|
6608
|
+
filterByPredicate = _require2.filterByPredicate,
|
|
6609
|
+
getTokenTextByType = _require2.getTokenTextByType;
|
|
6610
|
+
var _require3 = __webpack_require__(/*! ./cache */ "../lib/cache.js"),
|
|
6611
|
+
referenceLinkImageData = _require3.referenceLinkImageData;
|
|
6612
|
+
var backslashEscapeRe = /\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g;
|
|
6613
|
+
var removeBackslashEscapes = function removeBackslashEscapes(text) {
|
|
6614
|
+
return text.replace(backslashEscapeRe, "$1");
|
|
6615
|
+
};
|
|
6616
|
+
var autolinkDisallowedRe = /[ <>]/;
|
|
6617
|
+
var autolinkAble = function autolinkAble(destination) {
|
|
6618
|
+
try {
|
|
6619
|
+
// eslint-disable-next-line no-new
|
|
6620
|
+
new URL(destination);
|
|
6621
|
+
} catch (_unused) {
|
|
6622
|
+
// Not an absolute URL
|
|
6623
|
+
return false;
|
|
6624
|
+
}
|
|
6625
|
+
return !autolinkDisallowedRe.test(destination);
|
|
6626
|
+
};
|
|
6627
|
+
module.exports = {
|
|
6628
|
+
"names": ["MD054", "link-image-style"],
|
|
6629
|
+
"description": "Link and image style",
|
|
6630
|
+
"tags": ["images", "links"],
|
|
6631
|
+
"function": function _function(params, onError) {
|
|
6632
|
+
var parsers = params.parsers,
|
|
6633
|
+
config = params.config;
|
|
6634
|
+
var autolink = config.autolink === undefined || !!config.autolink;
|
|
6635
|
+
var inline = config.inline === undefined || !!config.inline;
|
|
6636
|
+
var full = config.full === undefined || !!config.full;
|
|
6637
|
+
var collapsed = config.collapsed === undefined || !!config.collapsed;
|
|
6638
|
+
var shortcut = config.shortcut === undefined || !!config.shortcut;
|
|
6639
|
+
var urlInline = config.url_inline === undefined || !!config.url_inline;
|
|
6640
|
+
if (autolink && inline && full && collapsed && shortcut && urlInline) {
|
|
6641
|
+
// Everything allowed, nothing to check
|
|
6642
|
+
return;
|
|
6643
|
+
}
|
|
6644
|
+
var _referenceLinkImageDa = referenceLinkImageData(),
|
|
6645
|
+
definitions = _referenceLinkImageDa.definitions;
|
|
6646
|
+
var links = filterByTypes(parsers.micromark.tokens, ["autolink", "image", "link"]);
|
|
6647
|
+
var _iterator = _createForOfIteratorHelper(links),
|
|
6648
|
+
_step;
|
|
6649
|
+
try {
|
|
6650
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
6651
|
+
var link = _step.value;
|
|
6652
|
+
var label = null;
|
|
6653
|
+
var destination = null;
|
|
6654
|
+
var children = link.children,
|
|
6655
|
+
endColumn = link.endColumn,
|
|
6656
|
+
endLine = link.endLine,
|
|
6657
|
+
startColumn = link.startColumn,
|
|
6658
|
+
startLine = link.startLine,
|
|
6659
|
+
text = link.text,
|
|
6660
|
+
type = link.type;
|
|
6661
|
+
var image = type === "image";
|
|
6662
|
+
var isError = false;
|
|
6663
|
+
if (type === "autolink") {
|
|
6664
|
+
// link kind is an autolink
|
|
6665
|
+
destination = getTokenTextByType(children, "autolinkProtocol");
|
|
6666
|
+
label = destination;
|
|
6667
|
+
isError = !autolink;
|
|
6668
|
+
} else {
|
|
6669
|
+
// link type is "image" or "link"
|
|
6670
|
+
var descendents = filterByPredicate(children);
|
|
6671
|
+
label = getTokenTextByType(descendents, "labelText");
|
|
6672
|
+
destination = getTokenTextByType(descendents, "resourceDestinationString");
|
|
6673
|
+
if (destination) {
|
|
6674
|
+
// link kind is an inline link
|
|
6675
|
+
var title = getTokenTextByType(descendents, "resourceTitleString");
|
|
6676
|
+
isError = !inline || !urlInline && autolink && !title && !image;
|
|
6677
|
+
} else {
|
|
6678
|
+
// link kind is a full/collapsed/shortcut reference link
|
|
6679
|
+
var isShortcut = !children.some(function (t) {
|
|
6680
|
+
return t.type === "reference";
|
|
6681
|
+
});
|
|
6682
|
+
var referenceString = getTokenTextByType(descendents, "referenceString");
|
|
6683
|
+
var isCollapsed = referenceString === null;
|
|
6684
|
+
var definition = definitions.get(referenceString || label);
|
|
6685
|
+
destination = definition && definition[1];
|
|
6686
|
+
isError = destination && (isShortcut ? !shortcut : isCollapsed ? !collapsed : !full);
|
|
6687
|
+
}
|
|
6688
|
+
}
|
|
6689
|
+
if (isError) {
|
|
6690
|
+
var range = null;
|
|
6691
|
+
var fixInfo = null;
|
|
6692
|
+
if (startLine === endLine) {
|
|
6693
|
+
range = [startColumn, endColumn - startColumn];
|
|
6694
|
+
var insertText = null;
|
|
6695
|
+
var canInline = inline && label;
|
|
6696
|
+
var canAutolink = autolink && !image && autolinkAble(destination);
|
|
6697
|
+
if (canInline && (urlInline || !canAutolink)) {
|
|
6698
|
+
// Most useful form
|
|
6699
|
+
var prefix = image ? "!" : "";
|
|
6700
|
+
// @ts-ignore
|
|
6701
|
+
var escapedLabel = label.replace(/[[\]]/g, "\\$&");
|
|
6702
|
+
var escapedDestination = destination.replace(/[()]/g, "\\$&");
|
|
6703
|
+
insertText = "".concat(prefix, "[").concat(escapedLabel, "](").concat(escapedDestination, ")");
|
|
6704
|
+
} else if (canAutolink) {
|
|
6705
|
+
// Simplest form
|
|
6706
|
+
insertText = "<".concat(removeBackslashEscapes(destination), ">");
|
|
6707
|
+
}
|
|
6708
|
+
if (insertText) {
|
|
6709
|
+
fixInfo = {
|
|
6710
|
+
"editColumn": range[0],
|
|
6711
|
+
insertText: insertText,
|
|
6712
|
+
"deleteCount": range[1]
|
|
6713
|
+
};
|
|
6714
|
+
}
|
|
6715
|
+
}
|
|
6716
|
+
addErrorContext(onError, startLine, text.replace(nextLinesRe, ""), null, null, range, fixInfo);
|
|
6717
|
+
}
|
|
6718
|
+
}
|
|
6719
|
+
} catch (err) {
|
|
6720
|
+
_iterator.e(err);
|
|
6721
|
+
} finally {
|
|
6722
|
+
_iterator.f();
|
|
6723
|
+
}
|
|
6724
|
+
}
|
|
6725
|
+
};
|
|
6726
|
+
|
|
6727
|
+
/***/ }),
|
|
6728
|
+
|
|
6564
6729
|
/***/ "../lib/rules.js":
|
|
6565
6730
|
/*!***********************!*\
|
|
6566
6731
|
!*** ../lib/rules.js ***!
|
|
@@ -6582,7 +6747,11 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
6582
6747
|
var _require = __webpack_require__(/*! ./constants */ "../lib/constants.js"),
|
|
6583
6748
|
homepage = _require.homepage,
|
|
6584
6749
|
version = _require.version;
|
|
6585
|
-
var rules = [__webpack_require__(/*! ./md001 */ "../lib/md001.js"), __webpack_require__(/*! ./
|
|
6750
|
+
var rules = [__webpack_require__(/*! ./md001 */ "../lib/md001.js"), __webpack_require__(/*! ./md003 */ "../lib/md003.js"), __webpack_require__(/*! ./md004 */ "../lib/md004.js"), __webpack_require__(/*! ./md005 */ "../lib/md005.js"), __webpack_require__(/*! ./md007 */ "../lib/md007.js"), __webpack_require__(/*! ./md009 */ "../lib/md009.js"), __webpack_require__(/*! ./md010 */ "../lib/md010.js"), __webpack_require__(/*! ./md011 */ "../lib/md011.js"), __webpack_require__(/*! ./md012 */ "../lib/md012.js"), __webpack_require__(/*! ./md013 */ "../lib/md013.js"), __webpack_require__(/*! ./md014 */ "../lib/md014.js"), __webpack_require__(/*! ./md018 */ "../lib/md018.js"), __webpack_require__(/*! ./md019 */ "../lib/md019.js"), __webpack_require__(/*! ./md020 */ "../lib/md020.js"), __webpack_require__(/*! ./md021 */ "../lib/md021.js"), __webpack_require__(/*! ./md022 */ "../lib/md022.js"), __webpack_require__(/*! ./md023 */ "../lib/md023.js"), __webpack_require__(/*! ./md024 */ "../lib/md024.js"), __webpack_require__(/*! ./md025 */ "../lib/md025.js"), __webpack_require__(/*! ./md026 */ "../lib/md026.js"), __webpack_require__(/*! ./md027 */ "../lib/md027.js"), __webpack_require__(/*! ./md028 */ "../lib/md028.js"), __webpack_require__(/*! ./md029 */ "../lib/md029.js"), __webpack_require__(/*! ./md030 */ "../lib/md030.js"), __webpack_require__(/*! ./md031 */ "../lib/md031.js"), __webpack_require__(/*! ./md032 */ "../lib/md032.js"), __webpack_require__(/*! ./md033 */ "../lib/md033.js"), __webpack_require__(/*! ./md034 */ "../lib/md034.js"), __webpack_require__(/*! ./md035 */ "../lib/md035.js"), __webpack_require__(/*! ./md036 */ "../lib/md036.js"), __webpack_require__(/*! ./md037 */ "../lib/md037.js"), __webpack_require__(/*! ./md038 */ "../lib/md038.js"), __webpack_require__(/*! ./md039 */ "../lib/md039.js"), __webpack_require__(/*! ./md040 */ "../lib/md040.js"), __webpack_require__(/*! ./md041 */ "../lib/md041.js"), __webpack_require__(/*! ./md042 */ "../lib/md042.js"), __webpack_require__(/*! ./md043 */ "../lib/md043.js"), __webpack_require__(/*! ./md044 */ "../lib/md044.js"), __webpack_require__(/*! ./md045 */ "../lib/md045.js"), __webpack_require__(/*! ./md046 */ "../lib/md046.js"), __webpack_require__(/*! ./md047 */ "../lib/md047.js"), __webpack_require__(/*! ./md048 */ "../lib/md048.js")].concat(_toConsumableArray(__webpack_require__(/*! ./md049-md050 */ "../lib/md049-md050.js")), [__webpack_require__(/*! ./md051 */ "../lib/md051.js"), __webpack_require__(/*! ./md052 */ "../lib/md052.js"), __webpack_require__(/*! ./md053 */ "../lib/md053.js"), __webpack_require__(/*! ./md054 */ "../lib/md054.js")
|
|
6751
|
+
// md055: See https://github.com/markdownlint/markdownlint
|
|
6752
|
+
// md056: See https://github.com/markdownlint/markdownlint
|
|
6753
|
+
// md057: See https://github.com/markdownlint/markdownlint
|
|
6754
|
+
]);
|
|
6586
6755
|
var _iterator = _createForOfIteratorHelper(rules),
|
|
6587
6756
|
_step;
|
|
6588
6757
|
try {
|