* retrieve paths from rails helper * move assets to vendor folder, precompile in assets config * drop coverage on lines * remove unneeded line
2827 lines
99 KiB
JavaScript
2827 lines
99 KiB
JavaScript
/* eslint-disable */
|
||
/*! For license information please see markdownlint-browser.min.js.LICENSE.txt */
|
||
var markdownlint;
|
||
markdownlint = (() => {
|
||
var e = {
|
||
7490: (e) => {
|
||
function n(e) {
|
||
var n = new Error("Cannot find module '" + e + "'");
|
||
throw ((n.code = 'MODULE_NOT_FOUND'), n);
|
||
}
|
||
(n.keys = () => []), (n.resolve = n), (n.id = 7490), (e.exports = n);
|
||
},
|
||
3079: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(4219),
|
||
i = /\r\n?|\n/g;
|
||
(e.exports.newLineRe = i),
|
||
(e.exports.frontMatterRe =
|
||
/((^---\s*$[^]*?^---\s*$)|(^\+\+\+\s*$[^]*?^(\+\+\+|\.\.\.)\s*$)|(^\{\s*$[^]*?^\}\s*$))(\r\n|\r|\n|$)/m);
|
||
var o =
|
||
/<!--\s*markdownlint-(?:(?:(disable|enable|capture|restore|disable-file|enable-file|disable-next-line)((?:\s+[a-z0-9_-]+)*))|(?:(configure-file)\s+([\s\S]*?)))\s*-->/gi;
|
||
(e.exports.inlineCommentRe = o),
|
||
(e.exports.bareUrlRe =
|
||
/(?:http|ftp)s?:\/\/[^\s\]"']*(?:\/|[^\s\]"'\W])/gi),
|
||
(e.exports.listItemMarkerRe = /^([\s>]*)(?:[*+-]|\d+[.)])\s+/),
|
||
(e.exports.orderedListItemMarkerRe = /^[\s>]*0*(\d+)[.)]/);
|
||
var a = /[_*]/g,
|
||
s = /\[(?:[^[\]]|\[[^\]]*\])*\](?:\(\S*\))?/g;
|
||
e.exports.utf8Encoding = 'utf8';
|
||
var l = '.,;:!?。,;:!?';
|
||
(e.exports.allPunctuation = l),
|
||
(e.exports.allPunctuationNoQuestion = l.replace(/[??]/gu, '')),
|
||
(e.exports.isNumber = function (e) {
|
||
return 'number' == typeof e;
|
||
}),
|
||
(e.exports.isString = function (e) {
|
||
return 'string' == typeof e;
|
||
}),
|
||
(e.exports.isEmptyString = function (e) {
|
||
return 0 === e.length;
|
||
}),
|
||
(e.exports.isObject = function (e) {
|
||
return null !== e && 'object' == typeof e && !Array.isArray(e);
|
||
});
|
||
var u = />|(?:<!--.*?-->)/g;
|
||
(e.exports.isBlankLine = function (e) {
|
||
return !e || !e.trim() || !e.replace(u, '').trim();
|
||
}),
|
||
(e.exports.numericSortAscending = function (e, n) {
|
||
return e - n;
|
||
}),
|
||
(e.exports.includesSorted = function (e, n) {
|
||
for (var t = 0, r = e.length - 1; t <= r; ) {
|
||
var i = (t + r) >> 1;
|
||
if (e[i] < n) t = i + 1;
|
||
else {
|
||
if (!(e[i] > n)) return !0;
|
||
r = i - 1;
|
||
}
|
||
}
|
||
return !1;
|
||
});
|
||
var c = '\x3c!--',
|
||
f = '--\x3e';
|
||
(e.exports.clearHtmlCommentText = function (e) {
|
||
for (var n = 0; -1 !== (n = e.indexOf(c, n)); ) {
|
||
var t = e.indexOf(f, n + 2);
|
||
if (-1 === t) break;
|
||
if (t > n + c.length) {
|
||
for (var r = n - 1; ' ' === e[r]; ) r--;
|
||
if (r >= n - 4) {
|
||
var i = e.slice(n + c.length, t);
|
||
(r < 0 ||
|
||
'\n' === e[r] ||
|
||
(!i.startsWith('>') &&
|
||
!i.startsWith('->') &&
|
||
!i.endsWith('-') &&
|
||
!i.includes('--'))) &&
|
||
-1 === e.slice(n, t + f.length).search(o) &&
|
||
(e =
|
||
e.slice(0, n + c.length) +
|
||
i.replace(/[^\r\n]/g, '.') +
|
||
e.slice(t));
|
||
}
|
||
}
|
||
n = t + f.length;
|
||
}
|
||
return e;
|
||
}),
|
||
(e.exports.escapeForRegExp = function (e) {
|
||
return e.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
|
||
});
|
||
var d = /\\./g;
|
||
function p(e) {
|
||
var n = e.line.replace(/^[\s>]*(> |>)/, '');
|
||
return n.length - n.trimStart().length;
|
||
}
|
||
function m(e, n, t) {
|
||
e.tokens.forEach(function (e) {
|
||
e.type === n && t(e);
|
||
});
|
||
}
|
||
function h(e) {
|
||
return (
|
||
'math' === e.tag &&
|
||
e.type.startsWith('math_block') &&
|
||
!e.type.endsWith('_end')
|
||
);
|
||
}
|
||
function g(e, n) {
|
||
for (var t = 0, r = 0, i = 0; i < e.length; ) {
|
||
for (
|
||
var o = -1, a = -1, s = -1, l = 0, u = 0, c = 'normal';
|
||
i <= e.length;
|
||
i++
|
||
) {
|
||
var f = e[i];
|
||
'[' === f && 'normal' === c
|
||
? (c = 'linkTextOpen')
|
||
: ']' === f && 'linkTextOpen' === c
|
||
? (c = 'linkTextClosed')
|
||
: '(' === f && 'linkTextClosed' === c
|
||
? (c = 'linkDestinationOpen')
|
||
: (('(' === f && 'linkDestinationOpen' === c) ||
|
||
(')' === f && 'linkDestinationOpen' === c) ||
|
||
'linkTextClosed' === c) &&
|
||
(c = 'normal'),
|
||
'`' === f && 'linkDestinationOpen' !== c
|
||
? (u++, (-1 !== o && -1 !== s) || (o = i + 1))
|
||
: (o >= 0 && s >= 0 && l === u
|
||
? (n(e.substring(o, i - u), a, s, l), (o = -1), (s = -1))
|
||
: o >= 0 && -1 === s && ((l = u), (a = t), (s = r)),
|
||
(u = 0)),
|
||
'\n' === f
|
||
? (t++, (r = 0))
|
||
: '\\' !== f || (-1 !== o && -1 !== s) || '\n' === e[i + 1]
|
||
? r++
|
||
: (i++, (r += 2));
|
||
}
|
||
o >= 0 && ((i = o), (t = a), (r = s));
|
||
}
|
||
}
|
||
function v(e, n, t, r, i, o) {
|
||
e({ lineNumber: n, detail: t, context: r, range: i, fixInfo: o });
|
||
}
|
||
function x(e) {
|
||
var n = 0,
|
||
t = 0,
|
||
o = 0;
|
||
return (
|
||
(e.match(i) || []).forEach(function (e) {
|
||
switch (e) {
|
||
case '\r':
|
||
n++;
|
||
break;
|
||
case '\n':
|
||
t++;
|
||
break;
|
||
case '\r\n':
|
||
o++;
|
||
}
|
||
}),
|
||
n || t || o
|
||
? t >= o && t >= n
|
||
? '\n'
|
||
: o >= n
|
||
? '\r\n'
|
||
: '\r'
|
||
: r.EOL
|
||
);
|
||
}
|
||
function b(e, n) {
|
||
return {
|
||
lineNumber: e.lineNumber || n,
|
||
editColumn: e.editColumn || 1,
|
||
deleteCount: e.deleteCount || 0,
|
||
insertText: e.insertText || '',
|
||
};
|
||
}
|
||
function E(e, n, t) {
|
||
var r = b(n),
|
||
i = r.editColumn,
|
||
o = r.deleteCount,
|
||
a = r.insertText,
|
||
s = i - 1;
|
||
return -1 === o
|
||
? null
|
||
: e.slice(0, s) + a.replace(/\n/g, t || '\n') + e.slice(s + o);
|
||
}
|
||
(e.exports.unescapeMarkdown = function (e, n) {
|
||
return e.replace(d, function (e) {
|
||
var t = e[1];
|
||
return '!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'.includes(t)
|
||
? n || t
|
||
: e;
|
||
});
|
||
}),
|
||
(e.exports.fencedCodeBlockStyleFor = function (e) {
|
||
switch (e[0]) {
|
||
case '~':
|
||
return 'tilde';
|
||
default:
|
||
return 'backtick';
|
||
}
|
||
}),
|
||
(e.exports.indentFor = p),
|
||
(e.exports.headingStyleFor = function (e) {
|
||
return e.map[1] - e.map[0] == 1
|
||
? /[^\\]#\s*$/.test(e.line)
|
||
? 'atx_closed'
|
||
: 'atx'
|
||
: 'setext';
|
||
}),
|
||
(e.exports.unorderedListStyleFor = function (e) {
|
||
switch (e.markup) {
|
||
case '-':
|
||
return 'dash';
|
||
case '+':
|
||
return 'plus';
|
||
default:
|
||
return 'asterisk';
|
||
}
|
||
}),
|
||
(e.exports.filterTokens = m),
|
||
(e.exports.getLineMetadata = function (e) {
|
||
var n = e.lines.map(function (e, n) {
|
||
return [e, n, !1, 0, !1, !1, !1, !1];
|
||
});
|
||
return (
|
||
m(e, 'fence', function (e) {
|
||
(n[e.map[0]][3] = 1), (n[e.map[1] - 1][3] = -1);
|
||
for (var t = e.map[0] + 1; t < e.map[1] - 1; t++) n[t][2] = !0;
|
||
}),
|
||
m(e, 'code_block', function (e) {
|
||
for (var t = e.map[0]; t < e.map[1]; t++) n[t][2] = !0;
|
||
}),
|
||
m(e, 'table_open', function (e) {
|
||
for (var t = e.map[0]; t < e.map[1]; t++) n[t][4] = !0;
|
||
}),
|
||
m(e, 'list_item_open', function (e) {
|
||
for (var t = 1, r = e.map[0]; r < e.map[1]; r++)
|
||
(n[r][5] = t), t++;
|
||
}),
|
||
m(e, 'hr', function (e) {
|
||
n[e.map[0]][6] = !0;
|
||
}),
|
||
e.tokens.filter(h).forEach(function (e) {
|
||
for (var t = e.map[0]; t < e.map[1]; t++) n[t][7] = !0;
|
||
}),
|
||
n
|
||
);
|
||
}),
|
||
(e.exports.forEachLine = function (e, n) {
|
||
e.forEach(function (e) {
|
||
n.apply(void 0, e);
|
||
});
|
||
}),
|
||
(e.exports.flattenLists = function (e) {
|
||
var n = [],
|
||
t = [],
|
||
r = null,
|
||
i = 0,
|
||
o = [],
|
||
a = { map: [0, 1] };
|
||
return (
|
||
e.tokens.forEach(function (e) {
|
||
h(e) && e.map[1] && e.map[1]++,
|
||
'bullet_list_open' === e.type ||
|
||
'ordered_list_open' === e.type
|
||
? (t.push(r),
|
||
(r = {
|
||
unordered: 'bullet_list_open' === e.type,
|
||
parentsUnordered:
|
||
!r || (r.unordered && r.parentsUnordered),
|
||
open: e,
|
||
indent: p(e),
|
||
parentIndent: (r && r.indent) || 0,
|
||
items: [],
|
||
nesting: i,
|
||
lastLineIndex: -1,
|
||
insert: n.length,
|
||
}),
|
||
i++)
|
||
: 'bullet_list_close' === e.type ||
|
||
'ordered_list_close' === e.type
|
||
? ((r.lastLineIndex = a.map[1]),
|
||
n.splice(r.insert, 0, r),
|
||
delete r.insert,
|
||
(r = t.pop()),
|
||
i--)
|
||
: 'list_item_open' === e.type
|
||
? r.items.push(e)
|
||
: 'blockquote_open' === e.type
|
||
? (o.push(i), (i = 0))
|
||
: 'blockquote_close' === e.type
|
||
? (i = o.pop())
|
||
: e.map && (a = e);
|
||
}),
|
||
n
|
||
);
|
||
}),
|
||
(e.exports.forEachInlineChild = function (e, n, t) {
|
||
m(e, 'inline', function (e) {
|
||
e.children.forEach(function (r) {
|
||
r.type === n && t(r, e);
|
||
});
|
||
});
|
||
}),
|
||
(e.exports.forEachHeading = function (e, n) {
|
||
var t = null;
|
||
e.tokens.forEach(function (e) {
|
||
'heading_open' === e.type
|
||
? (t = e)
|
||
: 'heading_close' === e.type
|
||
? (t = null)
|
||
: 'inline' === e.type && t && n(t, e.content);
|
||
});
|
||
}),
|
||
(e.exports.forEachInlineCodeSpan = g),
|
||
(e.exports.addError = v),
|
||
(e.exports.addErrorDetailIf = function (e, n, t, r, i, o, a, s) {
|
||
t !== r &&
|
||
v(
|
||
e,
|
||
n,
|
||
'Expected: ' + t + '; Actual: ' + r + (i ? '; ' + i : ''),
|
||
o,
|
||
a,
|
||
s,
|
||
);
|
||
}),
|
||
(e.exports.addErrorContext = function (e, n, t, r, i, o, a) {
|
||
t.length <= 30 ||
|
||
(t =
|
||
r && i
|
||
? t.substr(0, 15) + '...' + t.substr(-15)
|
||
: i
|
||
? '...' + t.substr(-30)
|
||
: t.substr(0, 30) + '...'),
|
||
v(e, n, null, t, o, a);
|
||
}),
|
||
(e.exports.rangeFromRegExp = function (e, n) {
|
||
var t = null,
|
||
r = e.match(n);
|
||
return r && (t = [r.index + 1, r[0].length]), t;
|
||
}),
|
||
(e.exports.frontMatterHasTitle = function (e, n) {
|
||
var t = void 0 !== n && !n,
|
||
r = new RegExp(String(n || '^\\s*"?title"?\\s*[:=]'), 'i');
|
||
return (
|
||
!t &&
|
||
e.some(function (e) {
|
||
return r.test(e);
|
||
})
|
||
);
|
||
}),
|
||
(e.exports.emphasisMarkersInContent = function (e) {
|
||
var n = e.lines,
|
||
t = new Array(n.length);
|
||
return (
|
||
m(e, 'inline', function (e) {
|
||
var r = e.children,
|
||
o = e.lineNumber,
|
||
s = e.map;
|
||
r.some(function (e) {
|
||
return 'code_inline' === e.type;
|
||
}) &&
|
||
g(n.slice(s[0], s[1]).join('\n'), function (e, n, r, s) {
|
||
e.split(i).forEach(function (e, i) {
|
||
for (var l = null; (l = a.exec(e)); ) {
|
||
var u = o - 1 + n + i,
|
||
c = t[u] || [],
|
||
f = i ? 0 : r - 1 + s;
|
||
c.push(f + l.index), (t[u] = c);
|
||
}
|
||
});
|
||
});
|
||
}),
|
||
n.forEach(function (e, n) {
|
||
for (var r = null; (r = s.exec(e)); )
|
||
for (var i = null; (i = a.exec(r[0])); ) {
|
||
var o = t[n] || [];
|
||
o.push(r.index + i.index), (t[n] = o);
|
||
}
|
||
}),
|
||
t
|
||
);
|
||
}),
|
||
(e.exports.getPreferredLineEnding = x),
|
||
(e.exports.applyFix = E),
|
||
(e.exports.applyFixes = function (e, n) {
|
||
var t = x(e),
|
||
r = e.split(i),
|
||
o = n
|
||
.filter(function (e) {
|
||
return e.fixInfo;
|
||
})
|
||
.map(function (e) {
|
||
return b(e.fixInfo, e.lineNumber);
|
||
});
|
||
o.sort(function (e, n) {
|
||
var t = -1 === e.deleteCount,
|
||
r = -1 === n.deleteCount;
|
||
return (
|
||
n.lineNumber - e.lineNumber ||
|
||
(t ? 1 : r ? -1 : 0) ||
|
||
n.editColumn - e.editColumn ||
|
||
n.insertText.length - e.insertText.length
|
||
);
|
||
});
|
||
var a = {};
|
||
(o = o.filter(function (e) {
|
||
var n =
|
||
e.lineNumber !== a.lineNumber ||
|
||
e.editColumn !== a.editColumn ||
|
||
e.deleteCount !== a.deleteCount ||
|
||
e.insertText !== a.insertText;
|
||
return (a = e), n;
|
||
})),
|
||
(a = {}),
|
||
o.forEach(function (e) {
|
||
e.lineNumber === a.lineNumber &&
|
||
e.editColumn === a.editColumn &&
|
||
!e.insertText &&
|
||
e.deleteCount > 0 &&
|
||
a.insertText &&
|
||
!a.deleteCount &&
|
||
((e.insertText = a.insertText), (a.lineNumber = 0)),
|
||
(a = e);
|
||
}),
|
||
(o = o.filter(function (e) {
|
||
return e.lineNumber;
|
||
}));
|
||
var s = -1,
|
||
l = -1;
|
||
return (
|
||
o.forEach(function (e) {
|
||
var n = e.lineNumber,
|
||
i = e.editColumn,
|
||
o = e.deleteCount,
|
||
a = n - 1,
|
||
u = i - 1;
|
||
(a !== s || -1 === o || u + o <= l - (o > 0 ? 0 : 1)) &&
|
||
(r[a] = E(r[a], e, t)),
|
||
(s = a),
|
||
(l = u);
|
||
}),
|
||
r
|
||
.filter(function (e) {
|
||
return null !== e;
|
||
})
|
||
.join(t)
|
||
);
|
||
});
|
||
},
|
||
7754: (e) => {
|
||
'use strict';
|
||
var n = null;
|
||
e.exports.lineMetadata = function (e) {
|
||
return e && (n = e), n;
|
||
};
|
||
var t = null;
|
||
(e.exports.flattenedLists = function (e) {
|
||
return e && (t = e), t;
|
||
}),
|
||
(e.exports.clear = function () {
|
||
(n = null), (t = null);
|
||
});
|
||
},
|
||
3411: function (e, n, t) {
|
||
'use strict';
|
||
var r =
|
||
(this && this.__assign) ||
|
||
function () {
|
||
return (r =
|
||
Object.assign ||
|
||
function (e) {
|
||
for (var n, t = 1, r = arguments.length; t < r; t++)
|
||
for (var i in (n = arguments[t]))
|
||
Object.prototype.hasOwnProperty.call(n, i) &&
|
||
(e[i] = n[i]);
|
||
return e;
|
||
}).apply(this, arguments);
|
||
},
|
||
i =
|
||
(this && this.__spreadArrays) ||
|
||
function () {
|
||
for (var e = 0, n = 0, t = arguments.length; n < t; n++)
|
||
e += arguments[n].length;
|
||
var r = Array(e),
|
||
i = 0;
|
||
for (n = 0; n < t; n++)
|
||
for (var o = arguments[n], a = 0, s = o.length; a < s; a++, i++)
|
||
r[i] = o[a];
|
||
return r;
|
||
},
|
||
o = t(2993),
|
||
a = t(1386),
|
||
s = t(1758).promisify,
|
||
l = t(4470),
|
||
u = t(3966),
|
||
c = t(3079),
|
||
f = t(7754),
|
||
d = 'undefined' == typeof require ? t(7490) : require,
|
||
p = ['MD002', 'MD006'];
|
||
function m(e, n) {
|
||
return e.lineNumber - n.lineNumber;
|
||
}
|
||
function h() {
|
||
return !0;
|
||
}
|
||
function g(e, n, t) {
|
||
return 0 === n || e.lineNumber > t[n - 1].lineNumber;
|
||
}
|
||
function v(e, n, t, o, a, s, l, u, d, v) {
|
||
var x = (function (e, n) {
|
||
var t = [];
|
||
if (n) {
|
||
var r = e.match(n);
|
||
if (r && !r.index) {
|
||
var i = r[0];
|
||
(e = e.slice(i.length)),
|
||
(t = i.split(c.newLineRe)).length > 0 &&
|
||
'' === t[t.length - 1] &&
|
||
t.length--;
|
||
}
|
||
}
|
||
return { content: e, frontMatterLines: t };
|
||
})((t = t.replace(/^\uFEFF/, '')), s),
|
||
b = x.frontMatterLines;
|
||
t = c.clearHtmlCommentText(x.content);
|
||
var E = o.parse(t, {}),
|
||
k = t.split(c.newLineRe);
|
||
!(function (e, n) {
|
||
var t = null;
|
||
e.forEach(function (e) {
|
||
if (
|
||
('thead_open' === e.type || 'tbody_open' === e.type
|
||
? (t = e.map.slice())
|
||
: 'tr_close' === e.type && t
|
||
? t[0]++
|
||
: ('thead_close' !== e.type && 'tbody_close' !== e.type) ||
|
||
(t = null),
|
||
t && !e.map && (e.map = t.slice()),
|
||
e.map)
|
||
) {
|
||
for (
|
||
e.line = n[e.map[0]], e.lineNumber = e.map[0] + 1;
|
||
e.map[1] && !(n[e.map[1] - 1] || '').trim();
|
||
|
||
)
|
||
e.map[1]--;
|
||
var r = e.lineNumber,
|
||
i = [];
|
||
c.forEachInlineCodeSpan(e.content, function (e) {
|
||
i.push(e.split(c.newLineRe).length - 1);
|
||
}),
|
||
(e.children || []).forEach(function (e) {
|
||
(e.lineNumber = r),
|
||
(e.line = n[r - 1]),
|
||
'softbreak' === e.type || 'hardbreak' === e.type
|
||
? r++
|
||
: 'code_inline' === e.type && (r += i.shift());
|
||
});
|
||
}
|
||
});
|
||
})(E, k);
|
||
var y = (function (e) {
|
||
var n = {};
|
||
return (
|
||
e.forEach(function (e) {
|
||
var t = e.names[0].toUpperCase();
|
||
e.names.forEach(function (e) {
|
||
var r = e.toUpperCase();
|
||
n[r] = [t];
|
||
}),
|
||
e.tags.forEach(function (e) {
|
||
var r = e.toUpperCase(),
|
||
i = n[r] || [];
|
||
i.push(t), (n[r] = i);
|
||
});
|
||
}),
|
||
n
|
||
);
|
||
})(e),
|
||
C = (function (e, n, t, i, o, a) {
|
||
var s = {},
|
||
l = {},
|
||
u = [],
|
||
f = new Array(1 + t.length);
|
||
function d(e, t, r) {
|
||
(e ? n : [n.join('\n')]).forEach(function (e, n) {
|
||
if (!i)
|
||
for (var o = null; (o = c.inlineCommentRe.exec(e)); ) {
|
||
var a = (o[1] || o[3]).toUpperCase(),
|
||
s = o[2] || o[4];
|
||
t(a, s, n + 1);
|
||
}
|
||
r && r();
|
||
});
|
||
}
|
||
function m(e, n, t) {
|
||
var r = e.startsWith('ENABLE');
|
||
(n ? n.trim().toUpperCase().split(/\s+/) : u).forEach(function (
|
||
e,
|
||
) {
|
||
(a[e] || []).forEach(function (e) {
|
||
t[e] = r;
|
||
});
|
||
});
|
||
}
|
||
d(!1, function (e, n) {
|
||
if ('CONFIGURE-FILE' === e)
|
||
try {
|
||
var t = JSON.parse(n);
|
||
o = r(r({}, o), t);
|
||
} catch (e) {}
|
||
});
|
||
var h = (function (e, n, t) {
|
||
var r = Object.keys(n).filter(function (e) {
|
||
return 'DEFAULT' === e.toUpperCase();
|
||
}),
|
||
i = 0 === r.length || !!n[r[0]],
|
||
o = {};
|
||
return (
|
||
e.forEach(function (e) {
|
||
var n = e.names[0].toUpperCase();
|
||
o[n] = i;
|
||
}),
|
||
p.forEach(function (e) {
|
||
o[e] = !1;
|
||
}),
|
||
Object.keys(n).forEach(function (e) {
|
||
var r = n[e];
|
||
r ? r instanceof Object || (r = {}) : (r = !1);
|
||
var i = e.toUpperCase();
|
||
(t[i] || []).forEach(function (e) {
|
||
o[e] = r;
|
||
});
|
||
}),
|
||
o
|
||
);
|
||
})(e, o, a);
|
||
return (
|
||
e.forEach(function (e) {
|
||
var n = e.names[0].toUpperCase();
|
||
u.push(n), (s[n] = !!h[n]);
|
||
}),
|
||
(l = s),
|
||
d(!0, function (e, n) {
|
||
('ENABLE-FILE' !== e && 'DISABLE-FILE' !== e) || m(e, n, s);
|
||
}),
|
||
d(
|
||
!0,
|
||
function (e, n) {
|
||
'CAPTURE' === e
|
||
? (l = r({}, s))
|
||
: 'RESTORE' === e
|
||
? (s = r({}, l))
|
||
: ('ENABLE' !== e && 'DISABLE' !== e) ||
|
||
m(e, n, (s = r({}, s)));
|
||
},
|
||
function () {
|
||
f.push(r({}, s));
|
||
},
|
||
),
|
||
d(!0, function (e, n, t) {
|
||
'DISABLE-NEXT-LINE' === e && m(e, n, f[t + 1] || {});
|
||
}),
|
||
{ effectiveConfig: h, enabledRulesPerLineNumber: f }
|
||
);
|
||
})(e, k, b, u, a, y),
|
||
_ = C.effectiveConfig,
|
||
N = C.enabledRulesPerLineNumber,
|
||
w = { name: n, tokens: E, lines: k, frontMatterLines: b };
|
||
f.lineMetadata(c.getLineMetadata(w)),
|
||
f.flattenedLists(c.flattenLists(w));
|
||
var M = 0 === d ? {} : [];
|
||
try {
|
||
e.forEach(function (e) {
|
||
var n = e.names[0],
|
||
t = n.toUpperCase();
|
||
function r(e) {
|
||
throw new Error(
|
||
"Property '" + e + "' of onError parameter is incorrect.",
|
||
);
|
||
}
|
||
w.config = _[t];
|
||
var o = [];
|
||
function a(e) {
|
||
(!e ||
|
||
!c.isNumber(e.lineNumber) ||
|
||
e.lineNumber < 1 ||
|
||
e.lineNumber > k.length) &&
|
||
r('lineNumber'),
|
||
e.detail && !c.isString(e.detail) && r('detail'),
|
||
e.context && !c.isString(e.context) && r('context'),
|
||
e.range &&
|
||
(!Array.isArray(e.range) ||
|
||
2 !== e.range.length ||
|
||
!c.isNumber(e.range[0]) ||
|
||
e.range[0] < 1 ||
|
||
!c.isNumber(e.range[1]) ||
|
||
e.range[1] < 1 ||
|
||
e.range[0] + e.range[1] - 1 >
|
||
k[e.lineNumber - 1].length) &&
|
||
r('range');
|
||
var n = e.fixInfo,
|
||
t = {};
|
||
if (n) {
|
||
c.isObject(n) || r('fixInfo'),
|
||
void 0 !== n.lineNumber &&
|
||
((!c.isNumber(n.lineNumber) ||
|
||
n.lineNumber < 1 ||
|
||
n.lineNumber > k.length) &&
|
||
r('fixInfo.lineNumber'),
|
||
(t.lineNumber = n.lineNumber + b.length));
|
||
var a = n.lineNumber || e.lineNumber;
|
||
void 0 !== n.editColumn &&
|
||
((!c.isNumber(n.editColumn) ||
|
||
n.editColumn < 1 ||
|
||
n.editColumn > k[a - 1].length + 1) &&
|
||
r('fixInfo.editColumn'),
|
||
(t.editColumn = n.editColumn)),
|
||
void 0 !== n.deleteCount &&
|
||
((!c.isNumber(n.deleteCount) ||
|
||
n.deleteCount < -1 ||
|
||
n.deleteCount > k[a - 1].length) &&
|
||
r('fixInfo.deleteCount'),
|
||
(t.deleteCount = n.deleteCount)),
|
||
void 0 !== n.insertText &&
|
||
(c.isString(n.insertText) || r('fixInfo.insertText'),
|
||
(t.insertText = n.insertText));
|
||
}
|
||
o.push({
|
||
lineNumber: e.lineNumber + b.length,
|
||
detail: e.detail || null,
|
||
context: e.context || null,
|
||
range: e.range ? i(e.range) : null,
|
||
fixInfo: n ? t : null,
|
||
});
|
||
}
|
||
if (l)
|
||
try {
|
||
e.function(w, a);
|
||
} catch (e) {
|
||
a({
|
||
lineNumber: 1,
|
||
detail: 'This rule threw an exception: ' + e.message,
|
||
});
|
||
}
|
||
else e.function(w, a);
|
||
if (o.length > 0) {
|
||
o.sort(m);
|
||
var s = o
|
||
.filter(3 === d ? h : g)
|
||
.filter(function (e) {
|
||
return N[e.lineNumber][t];
|
||
})
|
||
.map(function (t) {
|
||
if (0 === d) return t.lineNumber;
|
||
var r = {};
|
||
return (
|
||
(r.lineNumber = t.lineNumber),
|
||
1 === d
|
||
? ((r.ruleName = n),
|
||
(r.ruleAlias = e.names[1] || e.names[0]))
|
||
: (r.ruleNames = e.names),
|
||
(r.ruleDescription = e.description),
|
||
(r.ruleInformation = e.information
|
||
? e.information.href
|
||
: null),
|
||
(r.errorDetail = t.detail),
|
||
(r.errorContext = t.context),
|
||
(r.errorRange = t.range),
|
||
3 === d && (r.fixInfo = t.fixInfo),
|
||
r
|
||
);
|
||
});
|
||
s.length > 0 &&
|
||
(0 === d ? (M[n] = s) : Array.prototype.push.apply(M, s));
|
||
}
|
||
});
|
||
} catch (e) {
|
||
return f.clear(), v(e);
|
||
}
|
||
return f.clear(), v(null, M);
|
||
}
|
||
function x(e, n, t, r, i, a, s, l, u, f) {
|
||
function d(o, u) {
|
||
return o ? f(o) : v(e, n, u, t, r, i, a, s, l, f);
|
||
}
|
||
u
|
||
? d(null, o.readFileSync(n, c.utf8Encoding))
|
||
: o.readFile(n, c.utf8Encoding, d);
|
||
}
|
||
function b(e, n, t) {
|
||
(e = e || {}), (t = t || function () {});
|
||
var r = u.concat(e.customRules || []),
|
||
i = (function (e) {
|
||
var n = null;
|
||
if (e.length === u.length) return n;
|
||
var t = {};
|
||
return (
|
||
e.forEach(function (e, r) {
|
||
var i = r - u.length;
|
||
function o(e) {
|
||
return new Error(
|
||
"Property '" +
|
||
e +
|
||
"' of custom rule at index " +
|
||
i +
|
||
' is incorrect.',
|
||
);
|
||
}
|
||
['names', 'tags'].forEach(function (t) {
|
||
var r = e[t];
|
||
n ||
|
||
(r &&
|
||
Array.isArray(r) &&
|
||
0 !== r.length &&
|
||
r.every(c.isString) &&
|
||
!r.some(c.isEmptyString)) ||
|
||
(n = o(t));
|
||
}),
|
||
[
|
||
['description', 'string'],
|
||
['function', 'function'],
|
||
].forEach(function (t) {
|
||
var r = t[0],
|
||
i = e[r];
|
||
n || (i && typeof i === t[1]) || (n = o(r));
|
||
}),
|
||
!n &&
|
||
e.information &&
|
||
Object.getPrototypeOf(e.information) !== URL.prototype &&
|
||
(n = o('information')),
|
||
n ||
|
||
(e.names.forEach(function (e) {
|
||
var r = e.toUpperCase();
|
||
n ||
|
||
void 0 === t[r] ||
|
||
(n = new Error(
|
||
"Name '" +
|
||
e +
|
||
"' of custom rule at index " +
|
||
i +
|
||
' is already used as a name or tag.',
|
||
)),
|
||
(t[r] = !0);
|
||
}),
|
||
e.tags.forEach(function (e) {
|
||
var r = e.toUpperCase();
|
||
!n &&
|
||
t[r] &&
|
||
(n = new Error(
|
||
"Tag '" +
|
||
e +
|
||
"' of custom rule at index " +
|
||
i +
|
||
' is already used as a name.',
|
||
)),
|
||
(t[r] = !1);
|
||
}));
|
||
}),
|
||
n
|
||
);
|
||
})(r);
|
||
if (i) return t(i);
|
||
var o = [];
|
||
Array.isArray(e.files)
|
||
? (o = e.files.slice())
|
||
: e.files && (o = [String(e.files)]);
|
||
var a = e.strings || {},
|
||
s = Object.keys(a),
|
||
f = e.config || { default: !0 },
|
||
d = void 0 === e.frontMatter ? c.frontMatterRe : e.frontMatter,
|
||
p = !!e.handleRuleFailures,
|
||
m = !!e.noInlineConfig,
|
||
h = void 0 === e.resultVersion ? 2 : e.resultVersion,
|
||
g = l({ html: !0 });
|
||
(e.markdownItPlugins || []).forEach(function (e) {
|
||
g.use.apply(g, e);
|
||
});
|
||
var b = (function (e) {
|
||
var n = {};
|
||
return (
|
||
Object.defineProperty(n, 'toString', {
|
||
value: function (t) {
|
||
var r = null,
|
||
i = [],
|
||
o = Object.keys(n);
|
||
return (
|
||
o.sort(),
|
||
o.forEach(function (o) {
|
||
var a = n[o];
|
||
Array.isArray(a)
|
||
? a.forEach(function (e) {
|
||
var n = e.ruleNames
|
||
? e.ruleNames.join('/')
|
||
: e.ruleName + '/' + e.ruleAlias;
|
||
i.push(
|
||
o +
|
||
': ' +
|
||
e.lineNumber +
|
||
': ' +
|
||
n +
|
||
' ' +
|
||
e.ruleDescription +
|
||
(e.errorDetail
|
||
? ' [' + e.errorDetail + ']'
|
||
: '') +
|
||
(e.errorContext
|
||
? ' [Context: "' + e.errorContext + '"]'
|
||
: ''),
|
||
);
|
||
})
|
||
: (r ||
|
||
((r = {}),
|
||
e.forEach(function (e) {
|
||
var n = e.names[0].toUpperCase();
|
||
r[n] = e;
|
||
})),
|
||
Object.keys(a).forEach(function (e) {
|
||
var n = r[e.toUpperCase()];
|
||
a[e].forEach(function (e) {
|
||
var r = Math.min(t ? 1 : 0, n.names.length - 1),
|
||
a =
|
||
o +
|
||
': ' +
|
||
e +
|
||
': ' +
|
||
n.names[r] +
|
||
' ' +
|
||
n.description;
|
||
i.push(a);
|
||
});
|
||
}));
|
||
}),
|
||
i.join('\n')
|
||
);
|
||
},
|
||
}),
|
||
n
|
||
);
|
||
})(r),
|
||
E = !1,
|
||
k = null;
|
||
function y(e, n) {
|
||
return e ? ((E = !0), t(e)) : ((b[k] = n), null);
|
||
}
|
||
for (; !E && (k = s.shift()); )
|
||
v(r, k, a[k] || '', g, f, d, p, m, h, y);
|
||
if (n) {
|
||
for (; !E && (k = o.shift()); ) x(r, k, g, f, d, p, m, h, n, y);
|
||
return E || t(null, b);
|
||
}
|
||
var C = 0;
|
||
function _() {
|
||
var e = o.shift();
|
||
if (E);
|
||
else if (e)
|
||
C++,
|
||
x(r, e, g, f, d, p, m, h, n, function (n, r) {
|
||
return C--, n ? ((E = !0), t(n)) : ((b[e] = r), _(), null);
|
||
});
|
||
else if (0 === C) return (E = !0), t(null, b);
|
||
return null;
|
||
}
|
||
return _(), _(), _(), _(), _(), _(), _(), _(), null;
|
||
}
|
||
function E(e, n) {
|
||
return b(e, !1, n);
|
||
}
|
||
var k = s && s(E);
|
||
function y(e, n, t) {
|
||
var r = null,
|
||
i = '',
|
||
o = [];
|
||
return (
|
||
(t || [JSON.parse]).every(function (e) {
|
||
try {
|
||
r = e(n);
|
||
} catch (e) {
|
||
o.push(e.message);
|
||
}
|
||
return !r;
|
||
}),
|
||
r || (o.unshift("Unable to parse '" + e + "'"), (i = o.join('; '))),
|
||
{ config: r, message: i }
|
||
);
|
||
}
|
||
function C(e, n) {
|
||
var t = a.dirname(e),
|
||
r = a.resolve(t, n);
|
||
try {
|
||
if (o.statSync(r).isFile()) return r;
|
||
} catch (e) {}
|
||
try {
|
||
return d.resolve(n, { paths: [t] });
|
||
} catch (e) {}
|
||
return r;
|
||
}
|
||
function _(e, n, t) {
|
||
t || ((t = n), (n = null)),
|
||
o.readFile(e, c.utf8Encoding, function (i, o) {
|
||
if (i) return t(i);
|
||
var a = y(e, o, n),
|
||
s = a.config,
|
||
l = a.message;
|
||
if (!s) return t(new Error(l));
|
||
var u = s.extends;
|
||
return u
|
||
? (delete s.extends,
|
||
_(C(e, u), n, function (e, n) {
|
||
return e ? t(e) : t(null, r(r({}, n), s));
|
||
}))
|
||
: t(null, s);
|
||
});
|
||
}
|
||
var N = s && s(_);
|
||
(E.sync = function (e) {
|
||
var n = null;
|
||
return (
|
||
b(e, !0, function (e, t) {
|
||
if (e) throw e;
|
||
n = t;
|
||
}),
|
||
n
|
||
);
|
||
}),
|
||
(E.readConfig = _),
|
||
(E.readConfigSync = function e(n, t) {
|
||
var i = y(n, o.readFileSync(n, c.utf8Encoding), t),
|
||
a = i.config,
|
||
s = i.message;
|
||
if (!a) throw new Error(s);
|
||
var l = a.extends;
|
||
if (l) {
|
||
delete a.extends;
|
||
var u = C(n, l);
|
||
return r(r({}, e(u, t)), a);
|
||
}
|
||
return a;
|
||
}),
|
||
(E.getVersion = function () {
|
||
return t(1500).version;
|
||
}),
|
||
(E.promises = {
|
||
markdownlint: function (e) {
|
||
return k(e);
|
||
},
|
||
readConfig: function (e, n) {
|
||
return N(e, n);
|
||
},
|
||
}),
|
||
(e.exports = E);
|
||
},
|
||
1408: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorDetailIf,
|
||
o = r.filterTokens;
|
||
e.exports = {
|
||
names: ['MD001', 'heading-increment', 'header-increment'],
|
||
description:
|
||
'Heading levels should only increment by one level at a time',
|
||
tags: ['headings', 'headers'],
|
||
function: function (e, n) {
|
||
var t = 0;
|
||
o(e, 'heading_open', function (e) {
|
||
var r = Number.parseInt(e.tag.slice(1), 10);
|
||
t && r > t && i(n, e.lineNumber, 'h' + (t + 1), 'h' + r), (t = r);
|
||
});
|
||
},
|
||
};
|
||
},
|
||
7091: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079).addErrorDetailIf;
|
||
e.exports = {
|
||
names: ['MD002', 'first-heading-h1', 'first-header-h1'],
|
||
description: 'First heading should be a top-level heading',
|
||
tags: ['headings', 'headers'],
|
||
function: function (e, n) {
|
||
var t = 'h' + Number(e.config.level || 1);
|
||
e.tokens.every(function (e) {
|
||
return (
|
||
'heading_open' !== e.type || (r(n, e.lineNumber, t, e.tag), !1)
|
||
);
|
||
});
|
||
},
|
||
};
|
||
},
|
||
4625: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorDetailIf,
|
||
o = r.filterTokens,
|
||
a = r.headingStyleFor;
|
||
e.exports = {
|
||
names: ['MD003', 'heading-style', 'header-style'],
|
||
description: 'Heading style',
|
||
tags: ['headings', 'headers'],
|
||
function: function (e, n) {
|
||
var t = String(e.config.style || 'consistent');
|
||
o(e, 'heading_open', function (e) {
|
||
var r = a(e);
|
||
if (('consistent' === t && (t = r), r !== t)) {
|
||
var o = /h[12]/.test(e.tag);
|
||
if (
|
||
!(
|
||
('setext_with_atx' === t &&
|
||
((o && 'setext' === r) || (!o && 'atx' === r))) ||
|
||
('setext_with_atx_closed' === t &&
|
||
((o && 'setext' === r) || (!o && 'atx_closed' === r)))
|
||
)
|
||
) {
|
||
var s = t;
|
||
'setext_with_atx' === t
|
||
? (s = o ? 'setext' : 'atx')
|
||
: 'setext_with_atx_closed' === t &&
|
||
(s = o ? 'setext' : 'atx_closed'),
|
||
i(n, e.lineNumber, s, r);
|
||
}
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
1648: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorDetailIf,
|
||
o = r.listItemMarkerRe,
|
||
a = r.unorderedListStyleFor,
|
||
s = t(7754).flattenedLists,
|
||
l = { dash: '-', plus: '+', asterisk: '*' },
|
||
u = { dash: 'plus', plus: 'asterisk', asterisk: 'dash' },
|
||
c = Object.keys(l);
|
||
e.exports = {
|
||
names: ['MD004', 'ul-style'],
|
||
description: 'Unordered list style',
|
||
tags: ['bullet', 'ul'],
|
||
function: function (e, n) {
|
||
var t = String(e.config.style || 'consistent'),
|
||
r = t,
|
||
f = [];
|
||
s().forEach(function (e) {
|
||
e.unordered &&
|
||
('consistent' === r && (r = a(e.items[0])),
|
||
e.items.forEach(function (s) {
|
||
var d = a(s);
|
||
if ('sublist' === t) {
|
||
var p = e.nesting;
|
||
f[p] || (f[p] = d === f[p - 1] ? u[d] : d), (r = f[p]);
|
||
}
|
||
c.includes(r) || (r = c[0]);
|
||
var m = null,
|
||
h = null,
|
||
g = s.line.match(o);
|
||
g &&
|
||
((m = [g.index + 1, g[0].length]),
|
||
(h = {
|
||
editColumn: g[1].length + 1,
|
||
deleteCount: 1,
|
||
insertText: l[r],
|
||
})),
|
||
i(n, s.lineNumber, r, d, null, null, m, h);
|
||
}));
|
||
});
|
||
},
|
||
};
|
||
},
|
||
4306: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addError,
|
||
o = r.addErrorDetailIf,
|
||
a = r.indentFor,
|
||
s = r.listItemMarkerRe,
|
||
l = r.orderedListItemMarkerRe,
|
||
u = r.rangeFromRegExp,
|
||
c = t(7754).flattenedLists;
|
||
e.exports = {
|
||
names: ['MD005', 'list-indent'],
|
||
description:
|
||
'Inconsistent indentation for list items at the same level',
|
||
tags: ['bullet', 'ul', 'indentation'],
|
||
function: function (e, n) {
|
||
c().forEach(function (e) {
|
||
var t = e.indent,
|
||
r = 0,
|
||
c = -1,
|
||
f = !1;
|
||
e.items.forEach(function (d) {
|
||
var p = d.line,
|
||
m = d.lineNumber,
|
||
h = a(d),
|
||
g = null;
|
||
if (e.unordered) o(n, m, t, h, null, null, u(p, s));
|
||
else if ((g = l.exec(p))) {
|
||
(c = g[0].length), (r = r || c);
|
||
var v = g[1].length + 1;
|
||
if (t !== h || f)
|
||
if (r === c) f = !0;
|
||
else {
|
||
var x = f ? r - v : t,
|
||
b = f ? c - v : h;
|
||
i(
|
||
n,
|
||
m,
|
||
f
|
||
? 'Expected: (' + r + '); Actual: (' + c + ')'
|
||
: 'Expected: ' + t + '; Actual: ' + h,
|
||
null,
|
||
u(p, s),
|
||
{
|
||
editColumn: Math.min(b, x) + 1,
|
||
deleteCount: Math.max(b - x, 0),
|
||
insertText: ''.padEnd(Math.max(x - b, 0)),
|
||
},
|
||
);
|
||
}
|
||
}
|
||
});
|
||
});
|
||
},
|
||
};
|
||
},
|
||
8294: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorDetailIf,
|
||
o = r.listItemMarkerRe,
|
||
a = r.rangeFromRegExp,
|
||
s = t(7754).flattenedLists;
|
||
e.exports = {
|
||
names: ['MD006', 'ul-start-left'],
|
||
description:
|
||
'Consider starting bulleted lists at the beginning of the line',
|
||
tags: ['bullet', 'ul', 'indentation'],
|
||
function: function (e, n) {
|
||
s().forEach(function (e) {
|
||
e.unordered &&
|
||
!e.nesting &&
|
||
0 !== e.indent &&
|
||
e.items.forEach(function (t) {
|
||
var r = t.lineNumber,
|
||
s = t.line;
|
||
i(n, r, 0, e.indent, null, null, a(s, o), {
|
||
deleteCount: s.length - s.trimStart().length,
|
||
});
|
||
});
|
||
});
|
||
},
|
||
};
|
||
},
|
||
7378: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorDetailIf,
|
||
o = r.indentFor,
|
||
a = r.listItemMarkerRe,
|
||
s = t(7754).flattenedLists;
|
||
e.exports = {
|
||
names: ['MD007', 'ul-indent'],
|
||
description: 'Unordered list indentation',
|
||
tags: ['bullet', 'ul', 'indentation'],
|
||
function: function (e, n) {
|
||
var t = Number(e.config.indent || 2),
|
||
r = !!e.config.start_indented;
|
||
s().forEach(function (e) {
|
||
e.unordered &&
|
||
e.parentsUnordered &&
|
||
e.items.forEach(function (s) {
|
||
var l = s.lineNumber,
|
||
u = s.line,
|
||
c = (e.nesting + (r ? 1 : 0)) * t,
|
||
f = o(s),
|
||
d = null,
|
||
p = 1,
|
||
m = u.match(a);
|
||
m && ((d = [1, m[0].length]), (p += m[1].length - f)),
|
||
i(n, l, c, f, null, null, d, {
|
||
editColumn: p,
|
||
deleteCount: f,
|
||
insertText: ''.padEnd(c),
|
||
});
|
||
});
|
||
});
|
||
},
|
||
};
|
||
},
|
||
8984: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addError,
|
||
o = r.filterTokens,
|
||
a = r.forEachInlineCodeSpan,
|
||
s = r.forEachLine,
|
||
l = r.includesSorted,
|
||
u = r.newLineRe,
|
||
c = r.numericSortAscending,
|
||
f = t(7754).lineMetadata;
|
||
e.exports = {
|
||
names: ['MD009', 'no-trailing-spaces'],
|
||
description: 'Trailing spaces',
|
||
tags: ['whitespace'],
|
||
function: function (e, n) {
|
||
var t = e.config.br_spaces;
|
||
t = Number(void 0 === t ? 2 : t);
|
||
var r = !!e.config.list_item_empty_lines,
|
||
d = !!e.config.strict,
|
||
p = [];
|
||
r &&
|
||
(o(e, 'list_item_open', function (e) {
|
||
for (var n = e.map[0]; n < e.map[1]; n++) p.push(n + 1);
|
||
}),
|
||
p.sort(c));
|
||
var m = [],
|
||
h = [];
|
||
d &&
|
||
(o(e, 'paragraph_open', function (e) {
|
||
for (var n = e.map[0]; n < e.map[1] - 1; n++) m.push(n + 1);
|
||
}),
|
||
m.sort(c),
|
||
o(e, 'inline', function (n) {
|
||
if (
|
||
n.children.some(function (e) {
|
||
return 'code_inline' === e.type;
|
||
})
|
||
) {
|
||
var t = e.lines.slice(n.map[0], n.map[1]);
|
||
a(t.join('\n'), function (e, t) {
|
||
for (var r = e.split(u).length, i = 0; i < r; i++)
|
||
h.push(n.lineNumber + t + i);
|
||
});
|
||
}
|
||
}),
|
||
h.sort(c));
|
||
var g = t < 2 ? 0 : t;
|
||
s(f(), function (e, t, r) {
|
||
var o = t + 1,
|
||
a = e.length - e.trimEnd().length;
|
||
if (
|
||
a &&
|
||
!r &&
|
||
!l(p, o) &&
|
||
(g !== a || (d && (!l(m, o) || l(h, o))))
|
||
) {
|
||
var s = e.length - a + 1;
|
||
i(
|
||
n,
|
||
o,
|
||
'Expected: ' +
|
||
(0 === g ? '' : '0 or ') +
|
||
g +
|
||
'; Actual: ' +
|
||
a,
|
||
null,
|
||
[s, a],
|
||
{ editColumn: s, deleteCount: a },
|
||
);
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
9124: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addError,
|
||
o = r.forEachLine,
|
||
a = t(7754).lineMetadata,
|
||
s = /\t+/g;
|
||
e.exports = {
|
||
names: ['MD010', 'no-hard-tabs'],
|
||
description: 'Hard tabs',
|
||
tags: ['whitespace', 'hard_tab'],
|
||
function: function (e, n) {
|
||
var t = e.config.code_blocks,
|
||
r = void 0 === t || !!t;
|
||
o(a(), function (e, t, o) {
|
||
if (!o || r)
|
||
for (var a = null; null !== (a = s.exec(e)); ) {
|
||
var l = a.index + 1,
|
||
u = a[0].length;
|
||
i(n, t + 1, 'Column: ' + l, null, [l, u], {
|
||
editColumn: l,
|
||
deleteCount: u,
|
||
insertText: ''.padEnd(u),
|
||
});
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
373: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addError,
|
||
o = r.forEachInlineChild,
|
||
a = r.unescapeMarkdown,
|
||
s = /\(([^)]+)\)\[([^\]^][^\]]*)]/g;
|
||
e.exports = {
|
||
names: ['MD011', 'no-reversed-links'],
|
||
description: 'Reversed link syntax',
|
||
tags: ['links'],
|
||
function: function (e, n) {
|
||
o(e, 'text', function (t) {
|
||
for (
|
||
var r = t.lineNumber, o = t.content, l = null;
|
||
null !== (l = s.exec(o));
|
||
|
||
) {
|
||
var u = l[0],
|
||
c = l[1],
|
||
f = l[2],
|
||
d = e.lines[r - 1],
|
||
p = a(d).indexOf(u) + 1,
|
||
m = u.length;
|
||
i(
|
||
n,
|
||
r,
|
||
u,
|
||
null,
|
||
p ? [p, m] : null,
|
||
p
|
||
? {
|
||
editColumn: p,
|
||
deleteCount: m,
|
||
insertText: '[' + c + '](' + f + ')',
|
||
}
|
||
: null,
|
||
);
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
8298: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorDetailIf,
|
||
o = r.forEachLine,
|
||
a = t(7754).lineMetadata;
|
||
e.exports = {
|
||
names: ['MD012', 'no-multiple-blanks'],
|
||
description: 'Multiple consecutive blank lines',
|
||
tags: ['whitespace', 'blank_lines'],
|
||
function: function (e, n) {
|
||
var t = Number(e.config.maximum || 1),
|
||
r = 0;
|
||
o(a(), function (e, o, a) {
|
||
(r = a || e.trim().length > 0 ? 0 : r + 1),
|
||
t < r &&
|
||
i(n, o + 1, t, r, null, null, null, { deleteCount: -1 });
|
||
});
|
||
},
|
||
};
|
||
},
|
||
5402: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorDetailIf,
|
||
o = r.filterTokens,
|
||
a = r.forEachHeading,
|
||
s = r.forEachLine,
|
||
l = r.includesSorted,
|
||
u = t(7754).lineMetadata,
|
||
c = '^.{',
|
||
f = /^\s*\[.*[^\\]]:/,
|
||
d = /^[es]*(lT?L|I)[ES]*$/,
|
||
p = /^([#>\s]*\s)?\S*$/,
|
||
m = {
|
||
em_open: 'e',
|
||
em_close: 'E',
|
||
image: 'I',
|
||
link_open: 'l',
|
||
link_close: 'L',
|
||
strong_open: 's',
|
||
strong_close: 'S',
|
||
text: 'T',
|
||
};
|
||
e.exports = {
|
||
names: ['MD013', 'line-length'],
|
||
description: 'Line length',
|
||
tags: ['line_length'],
|
||
function: function (e, n) {
|
||
var t = Number(e.config.line_length || 80),
|
||
r = Number(e.config.heading_line_length || t),
|
||
h = Number(e.config.code_block_line_length || t),
|
||
g = !!e.config.strict,
|
||
v = !!e.config.stern,
|
||
x = g || v ? '}.+$' : '}.*\\s.*$',
|
||
b = new RegExp(c + t + x),
|
||
E = new RegExp(c + r + x),
|
||
k = new RegExp(c + h + x),
|
||
y = e.config.code_blocks,
|
||
C = void 0 === y || !!y,
|
||
_ = e.config.tables,
|
||
N = void 0 === _ || !!_,
|
||
w = e.config.headings;
|
||
void 0 === w && (w = e.config.headers);
|
||
var M = void 0 === w || !!w,
|
||
D = [];
|
||
a(e, function (e) {
|
||
D.push(e.lineNumber);
|
||
});
|
||
var L = [];
|
||
o(e, 'inline', function (e) {
|
||
var n = '';
|
||
e.children.forEach(function (e) {
|
||
('text' === e.type && '' === e.content) ||
|
||
(n += m[e.type] || 'x');
|
||
}),
|
||
d.test(n) && L.push(e.lineNumber);
|
||
}),
|
||
s(u(), function (e, o, a, s, u) {
|
||
var c = o + 1,
|
||
d = l(D, c),
|
||
m = a ? h : d ? r : t,
|
||
x = a ? k : d ? E : b;
|
||
(!C && a) ||
|
||
(!N && u) ||
|
||
(!M && d) ||
|
||
(!g && ((v && p.test(e)) || l(L, c) || f.test(e))) ||
|
||
!x.test(e) ||
|
||
i(n, c, m, e.length, null, null, [m + 1, e.length - m]);
|
||
});
|
||
},
|
||
};
|
||
},
|
||
4509: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.filterTokens,
|
||
a = /^(\s*)(\$\s+)/;
|
||
e.exports = {
|
||
names: ['MD014', 'commands-show-output'],
|
||
description:
|
||
'Dollar signs used before commands without showing output',
|
||
tags: ['code'],
|
||
function: function (e, n) {
|
||
['code_block', 'fence'].forEach(function (t) {
|
||
o(e, t, function (t) {
|
||
for (
|
||
var r = 'fence' === t.type ? 1 : 0,
|
||
o = [],
|
||
s = !0,
|
||
l = t.map[0] + r;
|
||
l < t.map[1] - r;
|
||
l++
|
||
) {
|
||
var u = e.lines[l],
|
||
c = u.trim();
|
||
if (c) {
|
||
var f = a.exec(u);
|
||
if (f) {
|
||
var d = f[1].length + 1,
|
||
p = f[2].length;
|
||
o.push([l, c, d, p]);
|
||
} else s = !1;
|
||
}
|
||
}
|
||
s &&
|
||
o.forEach(function (e) {
|
||
var t = e[0],
|
||
r = e[1],
|
||
o = e[2],
|
||
a = e[3];
|
||
i(n, t + 1, r, null, null, [o, a], {
|
||
editColumn: o,
|
||
deleteCount: a,
|
||
});
|
||
});
|
||
});
|
||
});
|
||
},
|
||
};
|
||
},
|
||
4825: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.forEachLine,
|
||
a = t(7754).lineMetadata;
|
||
e.exports = {
|
||
names: ['MD018', 'no-missing-space-atx'],
|
||
description: 'No space after hash on atx style heading',
|
||
tags: ['headings', 'headers', 'atx', 'spaces'],
|
||
function: function (e, n) {
|
||
o(a(), function (e, t, r) {
|
||
if (
|
||
!r &&
|
||
/^#+[^# \t]/.test(e) &&
|
||
!/#\s*$/.test(e) &&
|
||
!e.startsWith('#️⃣')
|
||
) {
|
||
var o = /^#+/.exec(e)[0].length;
|
||
i(n, t + 1, e.trim(), null, null, [1, o + 1], {
|
||
editColumn: o + 1,
|
||
insertText: ' ',
|
||
});
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
2138: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.filterTokens,
|
||
a = r.headingStyleFor;
|
||
e.exports = {
|
||
names: ['MD019', 'no-multiple-space-atx'],
|
||
description: 'Multiple spaces after hash on atx style heading',
|
||
tags: ['headings', 'headers', 'atx', 'spaces'],
|
||
function: function (e, n) {
|
||
o(e, 'heading_open', function (e) {
|
||
if ('atx' === a(e)) {
|
||
var t = e.line,
|
||
r = e.lineNumber,
|
||
o = /^(#+)([ \t]{2,})(?:\S)/.exec(t);
|
||
if (o) {
|
||
var s = o[1].length,
|
||
l = o[2].length;
|
||
i(n, r, t.trim(), null, null, [1, s + l + 1], {
|
||
editColumn: s + 1,
|
||
deleteCount: l - 1,
|
||
});
|
||
}
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
7786: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.forEachLine,
|
||
a = t(7754).lineMetadata;
|
||
e.exports = {
|
||
names: ['MD020', 'no-missing-space-closed-atx'],
|
||
description: 'No space inside hashes on closed atx style heading',
|
||
tags: ['headings', 'headers', 'atx_closed', 'spaces'],
|
||
function: function (e, n) {
|
||
o(a(), function (e, t, r) {
|
||
if (!r) {
|
||
var o =
|
||
/^(#+)([ \t]*)([^#]*?[^#\\])([ \t]*)((?:\\#)?)(#+)(\s*)$/.exec(
|
||
e,
|
||
);
|
||
if (o) {
|
||
var a = o[1],
|
||
s = o[2].length,
|
||
l = o[3],
|
||
u = o[4].length,
|
||
c = o[5],
|
||
f = o[6],
|
||
d = o[7].length,
|
||
p = a.length,
|
||
m = f.length,
|
||
h = !s,
|
||
g = !u || c,
|
||
v = c ? c + ' ' : '';
|
||
if (h || g) {
|
||
var x = h ? [1, p + 1] : [e.length - d - m, m + 1];
|
||
i(n, t + 1, e.trim(), h, g, x, {
|
||
editColumn: 1,
|
||
deleteCount: e.length,
|
||
insertText: a + ' ' + l + ' ' + v + f,
|
||
});
|
||
}
|
||
}
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
9435: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.filterTokens,
|
||
a = r.headingStyleFor;
|
||
e.exports = {
|
||
names: ['MD021', 'no-multiple-space-closed-atx'],
|
||
description:
|
||
'Multiple spaces inside hashes on closed atx style heading',
|
||
tags: ['headings', 'headers', 'atx_closed', 'spaces'],
|
||
function: function (e, n) {
|
||
o(e, 'heading_open', function (e) {
|
||
if ('atx_closed' === a(e)) {
|
||
var t = e.line,
|
||
r = e.lineNumber,
|
||
o = /^(#+)([ \t]+)([^#]+?)([ \t]+)(#+)(\s*)$/.exec(t);
|
||
if (o) {
|
||
var s = o[1],
|
||
l = o[2].length,
|
||
u = o[3],
|
||
c = o[4].length,
|
||
f = o[5],
|
||
d = o[6].length,
|
||
p = l > 1,
|
||
m = c > 1;
|
||
if (p || m) {
|
||
var h = t.length,
|
||
g = s.length,
|
||
v = f.length,
|
||
x = p ? [1, g + l + 1] : [h - d - v - c, c + v + 1];
|
||
i(n, r, t.trim(), p, m, x, {
|
||
editColumn: 1,
|
||
deleteCount: h,
|
||
insertText: s + ' ' + u + ' ' + f,
|
||
});
|
||
}
|
||
}
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
6354: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorDetailIf,
|
||
o = r.filterTokens,
|
||
a = r.isBlankLine;
|
||
e.exports = {
|
||
names: ['MD022', 'blanks-around-headings', 'blanks-around-headers'],
|
||
description: 'Headings should be surrounded by blank lines',
|
||
tags: ['headings', 'headers', 'blank_lines'],
|
||
function: function (e, n) {
|
||
var t = e.config.lines_above;
|
||
t = Number(void 0 === t ? 1 : t);
|
||
var r = e.config.lines_below;
|
||
r = Number(void 0 === r ? 1 : r);
|
||
var s = e.lines;
|
||
o(e, 'heading_open', function (e) {
|
||
for (var o = e.map, l = o[0], u = o[1], c = 0, f = 0; f < t; f++)
|
||
a(s[l - f - 1]) && c++;
|
||
i(n, l + 1, t, c, 'Above', s[l].trim(), null, {
|
||
insertText: ''.padEnd(t - c, '\n'),
|
||
});
|
||
var d = 0;
|
||
for (f = 0; f < r; f++) a(s[u + f]) && d++;
|
||
i(n, l + 1, r, d, 'Below', s[l].trim(), null, {
|
||
lineNumber: u + 1,
|
||
insertText: ''.padEnd(r - d, '\n'),
|
||
});
|
||
});
|
||
},
|
||
};
|
||
},
|
||
3851: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.filterTokens,
|
||
a = /^((?:\s+)|(?:[>\s]+\s\s))[^>\s]/;
|
||
e.exports = {
|
||
names: ['MD023', 'heading-start-left', 'header-start-left'],
|
||
description: 'Headings must start at the beginning of the line',
|
||
tags: ['headings', 'headers', 'spaces'],
|
||
function: function (e, n) {
|
||
o(e, 'heading_open', function (e) {
|
||
var t = e.lineNumber,
|
||
r = e.line,
|
||
o = r.match(a);
|
||
if (o) {
|
||
var s = o[0],
|
||
l = o[1],
|
||
u = l.length,
|
||
c = l.trimEnd().length;
|
||
c && (u -= c - 1),
|
||
i(n, t, r, null, null, [1, s.length], {
|
||
editColumn: c + 1,
|
||
deleteCount: u,
|
||
});
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
7507: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.forEachHeading;
|
||
e.exports = {
|
||
names: ['MD024', 'no-duplicate-heading', 'no-duplicate-header'],
|
||
description: 'Multiple headings with the same content',
|
||
tags: ['headings', 'headers'],
|
||
function: function (e, n) {
|
||
var t =
|
||
!!e.config.siblings_only ||
|
||
!!e.config.allow_different_nesting ||
|
||
!1,
|
||
r = [null, []],
|
||
a = 1,
|
||
s = r[a];
|
||
o(e, function (e, o) {
|
||
if (t) {
|
||
for (var l = e.tag.slice(1); a < l; ) a++, (r[a] = []);
|
||
for (; a > l; ) (r[a] = []), a--;
|
||
s = r[l];
|
||
}
|
||
s.includes(o) ? i(n, e.lineNumber, e.line.trim()) : s.push(o);
|
||
});
|
||
},
|
||
};
|
||
},
|
||
8434: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.filterTokens,
|
||
a = r.frontMatterHasTitle;
|
||
e.exports = {
|
||
names: ['MD025', 'single-title', 'single-h1'],
|
||
description: 'Multiple top-level headings in the same document',
|
||
tags: ['headings', 'headers'],
|
||
function: function (e, n) {
|
||
var t = 'h' + Number(e.config.level || 1),
|
||
r = a(e.frontMatterLines, e.config.front_matter_title),
|
||
s = !1;
|
||
o(e, 'heading_open', function (e) {
|
||
e.tag === t &&
|
||
(s || r
|
||
? i(n, e.lineNumber, e.line.trim())
|
||
: 1 === e.lineNumber && (s = !0));
|
||
});
|
||
},
|
||
};
|
||
},
|
||
134: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addError,
|
||
o = r.allPunctuationNoQuestion,
|
||
a = r.escapeForRegExp,
|
||
s = r.forEachHeading,
|
||
l = /&#?[0-9a-zA-Z]+;$/;
|
||
e.exports = {
|
||
names: ['MD026', 'no-trailing-punctuation'],
|
||
description: 'Trailing punctuation in heading',
|
||
tags: ['headings', 'headers'],
|
||
function: function (e, n) {
|
||
var t = e.config.punctuation;
|
||
t = String(void 0 === t ? o : t);
|
||
var r = new RegExp('\\s*[' + a(t) + ']+$');
|
||
s(e, function (e) {
|
||
var t = e.line,
|
||
o = e.lineNumber,
|
||
a = t.replace(/[\s#]*$/, ''),
|
||
s = r.exec(a);
|
||
if (s && !l.test(a)) {
|
||
var u = s[0],
|
||
c = s.index + 1,
|
||
f = u.length;
|
||
i(n, o, "Punctuation: '" + u + "'", null, [c, f], {
|
||
editColumn: c,
|
||
deleteCount: f,
|
||
});
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
947: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.newLineRe,
|
||
a = /^((?:\s*>)+)(\s{2,})\S/;
|
||
e.exports = {
|
||
names: ['MD027', 'no-multiple-space-blockquote'],
|
||
description: 'Multiple spaces after blockquote symbol',
|
||
tags: ['blockquote', 'whitespace', 'indentation'],
|
||
function: function (e, n) {
|
||
var t = 0,
|
||
r = 0;
|
||
e.tokens.forEach(function (s) {
|
||
var l = s.content,
|
||
u = s.lineNumber,
|
||
c = s.type;
|
||
if ('blockquote_open' === c) t++;
|
||
else if ('blockquote_close' === c) t--;
|
||
else if ('list_item_open' === c) r++;
|
||
else if ('list_item_close' === c) r--;
|
||
else if ('inline' === c && t)
|
||
for (var f = l.split(o).length, d = 0; d < f; d++) {
|
||
var p = e.lines[u + d - 1],
|
||
m = p.match(a);
|
||
if (m) {
|
||
var h = m[0],
|
||
g = m[1].length,
|
||
v = m[2].length;
|
||
(r && '>' !== h[h.length - 1]) ||
|
||
i(n, u + d, p, null, null, [1, h.length], {
|
||
editColumn: g + 1,
|
||
deleteCount: v - 1,
|
||
});
|
||
}
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
3753: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079).addError;
|
||
e.exports = {
|
||
names: ['MD028', 'no-blanks-blockquote'],
|
||
description: 'Blank line inside blockquote',
|
||
tags: ['blockquote', 'whitespace'],
|
||
function: function (e, n) {
|
||
var t = {},
|
||
i = null;
|
||
e.tokens.forEach(function (e) {
|
||
if ('blockquote_open' === e.type && 'blockquote_close' === t.type)
|
||
for (var o = i; o < e.lineNumber; o++) r(n, o);
|
||
(t = e), 'blockquote_open' === e.type && (i = e.map[1] + 1);
|
||
});
|
||
},
|
||
};
|
||
},
|
||
358: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorDetailIf,
|
||
o = r.listItemMarkerRe,
|
||
a = r.orderedListItemMarkerRe,
|
||
s = r.rangeFromRegExp,
|
||
l = t(7754).flattenedLists,
|
||
u = { one: '1/1/1', ordered: '1/2/3', zero: '0/0/0' };
|
||
e.exports = {
|
||
names: ['MD029', 'ol-prefix'],
|
||
description: 'Ordered list item prefix',
|
||
tags: ['ol'],
|
||
function: function (e, n) {
|
||
var t = String(e.config.style || 'one_or_ordered');
|
||
l()
|
||
.filter(function (e) {
|
||
return !e.unordered;
|
||
})
|
||
.forEach(function (e) {
|
||
var r = e.items,
|
||
l = 1,
|
||
c = !1;
|
||
if (r.length >= 2) {
|
||
var f = a.exec(r[0].line),
|
||
d = a.exec(r[1].line);
|
||
if (f && d) {
|
||
var p = f[1];
|
||
('1' === d[1] && '0' !== p) ||
|
||
((c = !0), '0' === p && (l = 0));
|
||
}
|
||
}
|
||
var m = t;
|
||
'one_or_ordered' === m && (m = c ? 'ordered' : 'one'),
|
||
'zero' === m ? (l = 0) : 'one' === m && (l = 1),
|
||
r.forEach(function (e) {
|
||
var t = a.exec(e.line);
|
||
t &&
|
||
(i(
|
||
n,
|
||
e.lineNumber,
|
||
String(l),
|
||
t[1],
|
||
'Style: ' + u[m],
|
||
null,
|
||
s(e.line, o),
|
||
),
|
||
'ordered' === m && l++);
|
||
});
|
||
});
|
||
},
|
||
};
|
||
},
|
||
8016: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079).addErrorDetailIf,
|
||
i = t(7754).flattenedLists;
|
||
e.exports = {
|
||
names: ['MD030', 'list-marker-space'],
|
||
description: 'Spaces after list markers',
|
||
tags: ['ol', 'ul', 'whitespace'],
|
||
function: function (e, n) {
|
||
var t = Number(e.config.ul_single || 1),
|
||
o = Number(e.config.ol_single || 1),
|
||
a = Number(e.config.ul_multi || 1),
|
||
s = Number(e.config.ol_multi || 1);
|
||
i().forEach(function (e) {
|
||
var i = e.lastLineIndex - e.open.map[0] === e.items.length,
|
||
l = e.unordered ? (i ? t : a) : i ? o : s;
|
||
e.items.forEach(function (e) {
|
||
var t = e.line,
|
||
i = e.lineNumber,
|
||
o = /^[\s>]*\S+(\s*)/.exec(t),
|
||
a = o[0].length,
|
||
s = o[1].length;
|
||
if (a < t.length) {
|
||
var u = null;
|
||
l !== s &&
|
||
(u = {
|
||
editColumn: a - s + 1,
|
||
deleteCount: s,
|
||
insertText: ''.padEnd(l),
|
||
}),
|
||
r(n, i, l, s, null, null, [1, a], u);
|
||
}
|
||
});
|
||
});
|
||
},
|
||
};
|
||
},
|
||
9192: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.forEachLine,
|
||
a = r.isBlankLine,
|
||
s = t(7754).lineMetadata,
|
||
l = /^(.*?)\s*[`~]/;
|
||
e.exports = {
|
||
names: ['MD031', 'blanks-around-fences'],
|
||
description: 'Fenced code blocks should be surrounded by blank lines',
|
||
tags: ['code', 'blank_lines'],
|
||
function: function (e, n) {
|
||
var t = e.config.list_items,
|
||
r = void 0 === t || !!t,
|
||
u = e.lines;
|
||
o(s(), function (e, t, o, s, c, f) {
|
||
var d = s > 0,
|
||
p = s < 0;
|
||
if ((r || !f) && ((d && !a(u[t - 1])) || (p && !a(u[t + 1])))) {
|
||
var m = (e.match(l) || [])[1],
|
||
h =
|
||
void 0 === m
|
||
? null
|
||
: { lineNumber: t + (d ? 1 : 2), insertText: m + '\n' };
|
||
i(n, t + 1, u[t].trim(), null, null, null, h);
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
1067: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.isBlankLine,
|
||
a = t(7754).flattenedLists,
|
||
s = /^[>\s]*/;
|
||
e.exports = {
|
||
names: ['MD032', 'blanks-around-lists'],
|
||
description: 'Lists should be surrounded by blank lines',
|
||
tags: ['bullet', 'ul', 'ol', 'blank_lines'],
|
||
function: function (e, n) {
|
||
var t = e.lines;
|
||
a()
|
||
.filter(function (e) {
|
||
return !e.nesting;
|
||
})
|
||
.forEach(function (e) {
|
||
var r = e.open.map[0];
|
||
if (!o(t[r - 1])) {
|
||
var a = (l = t[r]).match(s)[0].trimEnd();
|
||
i(n, r + 1, l.trim(), null, null, null, {
|
||
insertText: a + '\n',
|
||
});
|
||
}
|
||
var l,
|
||
u = e.lastLineIndex - 1;
|
||
o(t[u + 1]) ||
|
||
((a = (l = t[u]).match(s)[0].trimEnd()),
|
||
i(n, u + 1, l.trim(), null, null, null, {
|
||
lineNumber: u + 2,
|
||
insertText: a + '\n',
|
||
}));
|
||
});
|
||
},
|
||
};
|
||
},
|
||
4745: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addError,
|
||
o = r.forEachLine,
|
||
a = r.unescapeMarkdown,
|
||
s = t(7754).lineMetadata,
|
||
l = /<(([A-Za-z][A-Za-z0-9-]*)(?:\s[^>]*)?)\/?>/g,
|
||
u = /]\(\s*$/,
|
||
c = /^[^`]*(`+[^`]+`+[^`]+)*`+[^`]*$/,
|
||
f =
|
||
/^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
|
||
e.exports = {
|
||
names: ['MD033', 'no-inline-html'],
|
||
description: 'Inline HTML',
|
||
tags: ['html'],
|
||
function: function (e, n) {
|
||
var t = e.config.allowed_elements;
|
||
(t = (t = Array.isArray(t) ? t : []).map(function (e) {
|
||
return e.toLowerCase();
|
||
})),
|
||
o(s(), function (e, r, o) {
|
||
for (var s = null; !o && null !== (s = l.exec(e)); ) {
|
||
var d = s[0],
|
||
p = s[1],
|
||
m = s[2];
|
||
if (
|
||
!t.includes(m.toLowerCase()) &&
|
||
!d.endsWith('\\>') &&
|
||
!f.test(p)
|
||
) {
|
||
var h = e.substring(0, s.index);
|
||
if (!u.test(h) && !c.test(h)) {
|
||
var g = a(h + '<', '_');
|
||
!g.endsWith('_') &&
|
||
(g + '`').match(/`/g).length % 2 &&
|
||
i(n, r + 1, 'Element: ' + m, null, [
|
||
s.index + 1,
|
||
d.length,
|
||
]);
|
||
}
|
||
}
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
6090: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.bareUrlRe,
|
||
a = r.filterTokens;
|
||
e.exports = {
|
||
names: ['MD034', 'no-bare-urls'],
|
||
description: 'Bare URL used',
|
||
tags: ['links', 'url'],
|
||
function: function (e, n) {
|
||
a(e, 'inline', function (e) {
|
||
var t = !1;
|
||
e.children.forEach(function (e) {
|
||
var r = e.content,
|
||
a = e.line,
|
||
s = e.lineNumber,
|
||
l = e.type,
|
||
u = null;
|
||
if ('link_open' === l) t = !0;
|
||
else if ('link_close' === l) t = !1;
|
||
else if ('text' === l && !t)
|
||
for (; null !== (u = o.exec(r)); ) {
|
||
var c = u[0],
|
||
f = u.index,
|
||
d = c.length,
|
||
p = r[f - 1],
|
||
m = r[f + d];
|
||
if (
|
||
!(
|
||
('[' === p && ']' === m) ||
|
||
('"' === p && '"' === m) ||
|
||
("'" === p && "'" === m)
|
||
)
|
||
) {
|
||
var h = a.indexOf(r),
|
||
g = -1 === h ? null : [h + f + 1, d],
|
||
v = g
|
||
? {
|
||
editColumn: g[0],
|
||
deleteCount: g[1],
|
||
insertText: '<' + c + '>',
|
||
}
|
||
: null;
|
||
i(n, s, c, null, null, g, v);
|
||
}
|
||
}
|
||
});
|
||
});
|
||
},
|
||
};
|
||
},
|
||
614: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorDetailIf,
|
||
o = r.filterTokens;
|
||
e.exports = {
|
||
names: ['MD035', 'hr-style'],
|
||
description: 'Horizontal rule style',
|
||
tags: ['hr'],
|
||
function: function (e, n) {
|
||
var t = String(e.config.style || 'consistent');
|
||
o(e, 'hr', function (e) {
|
||
var r = e.line.trim();
|
||
'consistent' === t && (t = r), i(n, e.lineNumber, t, r);
|
||
});
|
||
},
|
||
};
|
||
},
|
||
4335: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.allPunctuation;
|
||
e.exports = {
|
||
names: ['MD036', 'no-emphasis-as-heading', 'no-emphasis-as-header'],
|
||
description: 'Emphasis used instead of a heading',
|
||
tags: ['headings', 'headers', 'emphasis'],
|
||
function: function (e, n) {
|
||
var t = e.config.punctuation;
|
||
t = String(void 0 === t ? o : t);
|
||
var r = new RegExp('[' + t + ']$'),
|
||
a = function e(t) {
|
||
return 'paragraph_open' === t.type
|
||
? function (t) {
|
||
var o = t.children.filter(function (e) {
|
||
return 'text' !== e.type || '' !== e.content;
|
||
});
|
||
return (
|
||
3 !== o.length ||
|
||
('strong_open' !== o[0].type &&
|
||
'em_open' !== o[0].type) ||
|
||
'text' !== o[1].type ||
|
||
r.test(o[1].content) ||
|
||
i(n, t.lineNumber, o[1].content),
|
||
e
|
||
);
|
||
}
|
||
: 'blockquote_open' === t.type
|
||
? function n(t) {
|
||
return 'blockquote_close' !== t.type ? n : e;
|
||
}
|
||
: 'list_item_open' === t.type
|
||
? function n(t) {
|
||
return 'list_item_close' !== t.type ? n : e;
|
||
}
|
||
: e;
|
||
};
|
||
e.tokens.forEach(function (e) {
|
||
a = a(e);
|
||
});
|
||
},
|
||
};
|
||
},
|
||
3409: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.emphasisMarkersInContent,
|
||
a = r.forEachLine,
|
||
s = r.isBlankLine,
|
||
l = t(7754).lineMetadata,
|
||
u = /(^|[^\\]|\\\\)(?:(\*\*?\*?)|(__?_?))/g,
|
||
c = /^([\s>]*)\*(\s+)/,
|
||
f = /^\s+/,
|
||
d = /\s+$/,
|
||
p = /\|/;
|
||
e.exports = {
|
||
names: ['MD037', 'no-space-in-emphasis'],
|
||
description: 'Spaces inside emphasis markers',
|
||
tags: ['whitespace', 'emphasis'],
|
||
function: function (e, n) {
|
||
var t,
|
||
r,
|
||
m,
|
||
h,
|
||
g = null;
|
||
function v() {
|
||
(r = -1), (h = 0), (m = ''), (t = 0), (g = null);
|
||
}
|
||
function x(e, t, i, o, a, s) {
|
||
var l = e.substring(r, a);
|
||
h || (l = l.trimStart()), o || (l = l.trimEnd());
|
||
var u = f.test(l),
|
||
c = d.test(l);
|
||
if ((u || c) && (!s || !p.test(l))) {
|
||
var m = r - h,
|
||
g = a + i,
|
||
v = e.substring(m, g),
|
||
x = m + 1,
|
||
b = g - m,
|
||
E = e.substring(m, r),
|
||
k = o ? o[2] || o[3] : '',
|
||
y = '' + E + l.trim() + k;
|
||
return [
|
||
n,
|
||
t + 1,
|
||
v,
|
||
u,
|
||
c,
|
||
[x, b],
|
||
{ editColumn: x, deleteCount: b, insertText: y },
|
||
];
|
||
}
|
||
return null;
|
||
}
|
||
var b = o(e);
|
||
v(),
|
||
a(l(), function (e, n, o, a, l, f, d, p) {
|
||
var E = 1 === f;
|
||
if (((o || l || d || E || s(e)) && v(), !(o || d || p))) {
|
||
E && (e = e.replace(c, '$1 $2'));
|
||
for (var k = null; (k = u.exec(e)); ) {
|
||
var y = b[n] || [],
|
||
C = k.index + k[1].length;
|
||
if (!y.includes(C)) {
|
||
var _ = k[0].length - k[1].length,
|
||
N = (k[2] || k[3])[0];
|
||
if (-1 === r) (r = C + _), (h = _), (m = N), (t = _);
|
||
else if (N === m) {
|
||
if (_ === t) {
|
||
g && (i.apply(void 0, g), (g = null));
|
||
var w = x(e, n, t, k, C, l);
|
||
w && i.apply(void 0, w), v();
|
||
} else
|
||
3 === _ ? (t = _ - t) : 3 === t ? (t -= _) : (t += _);
|
||
u.lastIndex > 1 && u.lastIndex--;
|
||
} else u.lastIndex > 1 && u.lastIndex--;
|
||
}
|
||
}
|
||
-1 !== r &&
|
||
((g = g || x(e, n, 0, null, e.length, l)),
|
||
(r = 0),
|
||
(h = 0));
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
3549: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.filterTokens,
|
||
a = r.forEachInlineCodeSpan,
|
||
s = r.newLineRe,
|
||
l = /^\s([^`]|$)/,
|
||
u = /[^`]\s$/,
|
||
c = /^\s(?:\S.*\S|\S)\s$/;
|
||
e.exports = {
|
||
names: ['MD038', 'no-space-in-code'],
|
||
description: 'Spaces inside code span elements',
|
||
tags: ['whitespace', 'code'],
|
||
function: function (e, n) {
|
||
o(e, 'inline', function (t) {
|
||
if (
|
||
t.children.some(function (e) {
|
||
return 'code_inline' === e.type;
|
||
})
|
||
) {
|
||
var r = e.lines.slice(t.map[0], t.map[1]);
|
||
a(r.join('\n'), function (e, o, a, f) {
|
||
var d = a - f,
|
||
p = e.length + 2 * f,
|
||
m = 0,
|
||
h = a,
|
||
g = e.length,
|
||
v = e.split(s),
|
||
x = l.test(e),
|
||
b = !x && u.test(e);
|
||
b && v.length > 1 && ((d = 0), (m = v.length - 1), (h = 0));
|
||
var E = c.test(e);
|
||
if ((x || b) && !E) {
|
||
var k = v[m];
|
||
v.length > 1 && ((p = k.length + f), (g = k.length));
|
||
var y = r[o + m].substring(d, d + p),
|
||
C = k.trim(),
|
||
_ =
|
||
(C.startsWith('`') ? ' ' : '') +
|
||
C +
|
||
(C.endsWith('`') ? ' ' : '');
|
||
i(n, t.lineNumber + o + m, y, x, b, [d + 1, p], {
|
||
editColumn: h + 1,
|
||
deleteCount: g,
|
||
insertText: _,
|
||
});
|
||
}
|
||
});
|
||
}
|
||
});
|
||
},
|
||
};
|
||
},
|
||
5007: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.filterTokens,
|
||
a = /\[(?:\s+(?:[^\]]*?)\s*|(?:[^\]]*?)\s+)](?=\(\S*\))/;
|
||
e.exports = {
|
||
names: ['MD039', 'no-space-in-links'],
|
||
description: 'Spaces inside link text',
|
||
tags: ['whitespace', 'links'],
|
||
function: function (e, n) {
|
||
o(e, 'inline', function (t) {
|
||
var r = t.children,
|
||
o = t.lineNumber,
|
||
s = !1,
|
||
l = '',
|
||
u = 0;
|
||
r.forEach(function (t) {
|
||
var r = t.content,
|
||
c = t.type;
|
||
if ('link_open' === c) (s = !0), (l = '');
|
||
else if ('link_close' === c) {
|
||
s = !1;
|
||
var f = l.trimStart().length !== l.length,
|
||
d = l.trimEnd().length !== l.length;
|
||
if (f || d) {
|
||
var p = null,
|
||
m = null,
|
||
h = e.lines[o - 1].slice(u).match(a);
|
||
if (h) {
|
||
var g = h.index + u + 1,
|
||
v = h[0].length;
|
||
(p = [g, v]),
|
||
(m = {
|
||
editColumn: g + 1,
|
||
deleteCount: v - 2,
|
||
insertText: l.trim(),
|
||
}),
|
||
(u = g + v - 1);
|
||
}
|
||
i(n, o, '[' + l + ']', f, d, p, m);
|
||
}
|
||
} else
|
||
'softbreak' === c || 'hardbreak' === c
|
||
? (o++, (u = 0))
|
||
: s && (l += r);
|
||
});
|
||
});
|
||
},
|
||
};
|
||
},
|
||
9021: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.filterTokens;
|
||
e.exports = {
|
||
names: ['MD040', 'fenced-code-language'],
|
||
description: 'Fenced code blocks should have a language specified',
|
||
tags: ['code', 'language'],
|
||
function: function (e, n) {
|
||
o(e, 'fence', function (e) {
|
||
e.info.trim() || i(n, e.lineNumber, e.line);
|
||
});
|
||
},
|
||
};
|
||
},
|
||
3186: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.frontMatterHasTitle;
|
||
e.exports = {
|
||
names: ['MD041', 'first-line-heading', 'first-line-h1'],
|
||
description: 'First line in a file should be a top-level heading',
|
||
tags: ['headings', 'headers'],
|
||
function: function (e, n) {
|
||
var t = Number(e.config.level || 1),
|
||
r = 'h' + t;
|
||
if (!o(e.frontMatterLines, e.config.front_matter_title)) {
|
||
var a = new RegExp('^<h' + t + '[ />]', 'i');
|
||
e.tokens.every(function (e) {
|
||
var t = !1;
|
||
if ('html_block' === e.type) {
|
||
if (e.content.startsWith('\x3c!--')) return !0;
|
||
a.test(e.content) || (t = !0);
|
||
} else ('heading_open' === e.type && e.tag === r) || (t = !0);
|
||
return t && i(n, e.lineNumber, e.line), !1;
|
||
});
|
||
}
|
||
},
|
||
};
|
||
},
|
||
7551: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.filterTokens,
|
||
a = r.rangeFromRegExp,
|
||
s = /\[[^\]]*](?:\((?:#?|(?:<>))\))/;
|
||
e.exports = {
|
||
names: ['MD042', 'no-empty-links'],
|
||
description: 'No empty links',
|
||
tags: ['links'],
|
||
function: function (e, n) {
|
||
o(e, 'inline', function (e) {
|
||
var t = !1,
|
||
r = '',
|
||
o = !1;
|
||
e.children.forEach(function (e) {
|
||
'link_open' === e.type
|
||
? ((t = !0),
|
||
(r = ''),
|
||
e.attrs.forEach(function (e) {
|
||
'href' !== e[0] || (e[1] && '#' !== e[1]) || (o = !0);
|
||
}))
|
||
: 'link_close' === e.type
|
||
? ((t = !1),
|
||
o &&
|
||
(i(
|
||
n,
|
||
e.lineNumber,
|
||
'[' + r + ']()',
|
||
null,
|
||
null,
|
||
a(e.line, s),
|
||
),
|
||
(o = !1)))
|
||
: t && (r += e.content);
|
||
});
|
||
});
|
||
},
|
||
};
|
||
},
|
||
2916: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorContext,
|
||
o = r.addErrorDetailIf,
|
||
a = r.forEachHeading;
|
||
e.exports = {
|
||
names: ['MD043', 'required-headings', 'required-headers'],
|
||
description: 'Required heading structure',
|
||
tags: ['headings', 'headers'],
|
||
function: function (e, n) {
|
||
var t = e.config.headings || e.config.headers;
|
||
if (Array.isArray(t)) {
|
||
var r = {};
|
||
[1, 2, 3, 4, 5, 6].forEach(function (e) {
|
||
r['h' + e] = '######'.substr(-e);
|
||
});
|
||
var s = 0,
|
||
l = !1,
|
||
u = !1,
|
||
c = !1,
|
||
f = function () {
|
||
return t[s++] || '[None]';
|
||
};
|
||
a(e, function (e, t) {
|
||
if (!u) {
|
||
c = !0;
|
||
var i = r[e.tag] + ' ' + t,
|
||
a = f();
|
||
'*' === a
|
||
? ((l = !0), f())
|
||
: '+' === a
|
||
? (l = !0)
|
||
: a.toLowerCase() === i.toLowerCase()
|
||
? (l = !1)
|
||
: l
|
||
? s--
|
||
: (o(n, e.lineNumber, a, i), (u = !0));
|
||
}
|
||
}),
|
||
!u &&
|
||
s < t.length &&
|
||
(c ||
|
||
!t.every(function (e) {
|
||
return '*' === e;
|
||
})) &&
|
||
i(n, e.lines.length, t[s]);
|
||
}
|
||
},
|
||
};
|
||
},
|
||
2741: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorDetailIf,
|
||
o = r.bareUrlRe,
|
||
a = r.escapeForRegExp,
|
||
s = r.filterTokens,
|
||
l = r.forEachInlineChild,
|
||
u = r.newLineRe,
|
||
c = /^\W/,
|
||
f = /\W$/;
|
||
e.exports = {
|
||
names: ['MD044', 'proper-names'],
|
||
description: 'Proper names should have the correct capitalization',
|
||
tags: ['spelling'],
|
||
function: function (e, n) {
|
||
var t = e.config.names;
|
||
t = Array.isArray(t) ? t : [];
|
||
var r = e.config.code_blocks,
|
||
d = void 0 === r || !!r,
|
||
p = new Set();
|
||
s(e, 'inline', function (e) {
|
||
var n = !1;
|
||
e.children.forEach(function (e) {
|
||
var t = e.info,
|
||
r = e.type;
|
||
'link_open' === r && 'auto' === t
|
||
? (n = !0)
|
||
: 'link_close' === r
|
||
? (n = !1)
|
||
: 'text' === r && n && p.add(e);
|
||
});
|
||
}),
|
||
t.forEach(function (r) {
|
||
var m = a(r),
|
||
h = c.test(r) ? '' : '\\S*\\b',
|
||
g = f.test(r) ? '' : '\\b\\S*',
|
||
v = new RegExp('(' + h + ')(' + m + ')(' + g + ')', 'gi');
|
||
function x(a) {
|
||
if (!p.has(a)) {
|
||
var s = 'fence' === a.type ? 1 : 0;
|
||
a.content.split(u).forEach(function (l, u) {
|
||
for (var c = null; null !== (c = v.exec(l)); ) {
|
||
var f = c[0],
|
||
d = c[1],
|
||
p = c[2],
|
||
m = c[3];
|
||
if (-1 === f.search(o)) {
|
||
var h = f
|
||
.replace(new RegExp('^\\W{0,' + d.length + '}'), '')
|
||
.replace(
|
||
new RegExp('\\W{0,' + m.length + '}$'),
|
||
'',
|
||
);
|
||
if (!t.includes(h)) {
|
||
var g = a.lineNumber + u + s,
|
||
x = e.lines[g - 1],
|
||
b = h.length,
|
||
E = x.indexOf(h);
|
||
i(
|
||
n,
|
||
g,
|
||
r,
|
||
p,
|
||
null,
|
||
null,
|
||
-1 === E ? null : [E + 1, b],
|
||
-1 === E
|
||
? null
|
||
: {
|
||
editColumn: E + 1,
|
||
deleteCount: b,
|
||
insertText: r,
|
||
},
|
||
);
|
||
}
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
l(e, 'text', x),
|
||
d &&
|
||
(l(e, 'code_inline', x),
|
||
s(e, 'code_block', x),
|
||
s(e, 'fence', x));
|
||
});
|
||
},
|
||
};
|
||
},
|
||
5191: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addError,
|
||
o = r.forEachInlineChild;
|
||
e.exports = {
|
||
names: ['MD045', 'no-alt-text'],
|
||
description: 'Images should have alternate text (alt text)',
|
||
tags: ['accessibility', 'images'],
|
||
function: function (e, n) {
|
||
o(e, 'image', function (e) {
|
||
'' === e.content && i(n, e.lineNumber);
|
||
});
|
||
},
|
||
};
|
||
},
|
||
1309: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079).addErrorDetailIf,
|
||
i = { fence: 'fenced', code_block: 'indented' };
|
||
e.exports = {
|
||
names: ['MD046', 'code-block-style'],
|
||
description: 'Code block style',
|
||
tags: ['code'],
|
||
function: function (e, n) {
|
||
var t = String(e.config.style || 'consistent');
|
||
e.tokens
|
||
.filter(function (e) {
|
||
return 'code_block' === e.type || 'fence' === e.type;
|
||
})
|
||
.forEach(function (e) {
|
||
var o = e.lineNumber,
|
||
a = e.type;
|
||
'consistent' === t && (t = i[a]), r(n, o, t, i[a]);
|
||
});
|
||
},
|
||
};
|
||
},
|
||
5386: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addError,
|
||
o = r.isBlankLine;
|
||
e.exports = {
|
||
names: ['MD047', 'single-trailing-newline'],
|
||
description: 'Files should end with a single newline character',
|
||
tags: ['blank_lines'],
|
||
function: function (e, n) {
|
||
var t = e.lines.length,
|
||
r = e.lines[t - 1];
|
||
o(r) ||
|
||
i(n, t, null, null, [r.length, 1], {
|
||
insertText: '\n',
|
||
editColumn: r.length + 1,
|
||
});
|
||
},
|
||
};
|
||
},
|
||
8616: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(3079),
|
||
i = r.addErrorDetailIf,
|
||
o = r.fencedCodeBlockStyleFor;
|
||
e.exports = {
|
||
names: ['MD048', 'code-fence-style'],
|
||
description: 'Code fence style',
|
||
tags: ['code'],
|
||
function: function (e, n) {
|
||
var t = String(e.config.style || 'consistent');
|
||
e.tokens
|
||
.filter(function (e) {
|
||
return 'fence' === e.type;
|
||
})
|
||
.forEach(function (e) {
|
||
var r = e.lineNumber,
|
||
a = e.markup;
|
||
'consistent' === t && (t = o(a)), i(n, r, t, o(a));
|
||
});
|
||
},
|
||
};
|
||
},
|
||
3966: (e, n, t) => {
|
||
'use strict';
|
||
var r = t(1500),
|
||
i = r.homepage,
|
||
o = r.version,
|
||
a = [
|
||
t(1408),
|
||
t(7091),
|
||
t(4625),
|
||
t(1648),
|
||
t(4306),
|
||
t(8294),
|
||
t(7378),
|
||
t(8984),
|
||
t(9124),
|
||
t(373),
|
||
t(8298),
|
||
t(5402),
|
||
t(4509),
|
||
t(4825),
|
||
t(2138),
|
||
t(7786),
|
||
t(9435),
|
||
t(6354),
|
||
t(3851),
|
||
t(7507),
|
||
t(8434),
|
||
t(134),
|
||
t(947),
|
||
t(3753),
|
||
t(358),
|
||
t(8016),
|
||
t(9192),
|
||
t(1067),
|
||
t(4745),
|
||
t(6090),
|
||
t(614),
|
||
t(4335),
|
||
t(3409),
|
||
t(3549),
|
||
t(5007),
|
||
t(9021),
|
||
t(3186),
|
||
t(7551),
|
||
t(2916),
|
||
t(2741),
|
||
t(5191),
|
||
t(1309),
|
||
t(5386),
|
||
t(8616),
|
||
];
|
||
a.forEach(function (e) {
|
||
var n = e.names[0].toLowerCase();
|
||
e.information = new URL(i + '/blob/v' + o + '/doc/Rules.md#' + n);
|
||
}),
|
||
(e.exports = a);
|
||
},
|
||
1500: (e) => {
|
||
'use strict';
|
||
e.exports = JSON.parse(
|
||
'{"name":"markdownlint","version":"0.23.1","description":"A Node.js style checker and lint tool for Markdown/CommonMark files.","main":"lib/markdownlint.js","types":"lib/markdownlint.d.ts","author":"David Anson (https://dlaa.me/)","license":"MIT","homepage":"https://github.com/DavidAnson/markdownlint","repository":{"type":"git","url":"https://github.com/DavidAnson/markdownlint.git"},"bugs":"https://github.com/DavidAnson/markdownlint/issues","scripts":{"build-config":"npm run build-config-schema && npm run build-config-example","build-config-example":"node schema/build-config-example.js","build-config-schema":"node schema/build-config-schema.js","build-declaration":"tsc --allowJs --declaration --emitDeclarationOnly --resolveJsonModule lib/markdownlint.js && rimraf \'lib/{c,md,r}*.d.ts\' \'helpers/*.d.ts\'","build-demo":"cpy node_modules/markdown-it/dist/markdown-it.min.js demo && cd demo && rimraf markdownlint-browser.* && webpack --no-stats","build-example":"npm install --no-save --ignore-scripts grunt grunt-cli gulp through2","ci":"npm-run-all --continue-on-error --parallel test-cover lint declaration build-config build-demo && git diff --exit-code","clean-test-repos":"rimraf test-repos","clone-test-repos":"mkdir test-repos && cd test-repos && git clone https://github.com/eslint/eslint eslint-eslint --depth 1 --no-tags --quiet && git clone https://github.com/mkdocs/mkdocs mkdocs-mkdocs --depth 1 --no-tags --quiet && git clone https://github.com/pi-hole/docs pi-hole-docs --depth 1 --no-tags --quiet","clone-test-repos-large":"npm run clone-test-repos && cd test-repos && git clone https://github.com/dotnet/docs dotnet-docs --depth 1 --no-tags --quiet","declaration":"npm run build-declaration && npm run test-declaration","example":"cd example && node standalone.js && grunt markdownlint --force && gulp markdownlint","lint":"eslint --max-warnings 0 .","lint-test-repos":"ava --timeout=5m test/markdownlint-test-repos.js","test":"ava test/markdownlint-test.js test/markdownlint-test-custom-rules.js test/markdownlint-test-helpers.js test/markdownlint-test-result-object.js test/markdownlint-test-scenarios.js","test-cover":"c8 --check-coverage --branches 100 --functions 100 --lines 100 --statements 100 npm test","test-declaration":"cd example/typescript && tsc && node type-check.js","test-extra":"ava --timeout=5m test/markdownlint-test-extra.js"},"engines":{"node":">=10"},"dependencies":{"markdown-it":"12.0.4"},"devDependencies":{"ava":"~3.15.0","c8":"~7.5.0","cpy-cli":"~3.1.1","eslint":"~7.19.0","eslint-plugin-jsdoc":"~31.6.0","eslint-plugin-node":"~11.1.0","eslint-plugin-unicorn":"~27.0.0","globby":"~11.0.2","js-yaml":"~4.0.0","markdown-it-for-inline":"~0.1.1","markdown-it-sub":"~1.0.0","markdown-it-sup":"~1.0.0","markdown-it-texmath":"~0.8.0","markdownlint-rule-helpers":"~0.13.0","npm-run-all":"~4.1.5","rimraf":"~3.0.2","strip-json-comments":"~3.1.1","toml":"~3.0.0","ts-loader":"~8.0.15","tv4":"~1.3.0","typescript":"~4.1.3","webpack":"~5.21.1","webpack-cli":"~4.5.0"},"keywords":["markdown","lint","md","CommonMark","markdownlint"]}',
|
||
);
|
||
},
|
||
4470: (e) => {
|
||
'use strict';
|
||
e.exports = markdownit;
|
||
},
|
||
2993: () => {},
|
||
4219: () => {},
|
||
1386: () => {},
|
||
1758: () => {},
|
||
},
|
||
n = {};
|
||
function t(r) {
|
||
if (n[r]) return n[r].exports;
|
||
var i = (n[r] = { exports: {} });
|
||
return e[r].call(i.exports, i, i.exports, t), i.exports;
|
||
}
|
||
return (t.o = (e, n) => Object.prototype.hasOwnProperty.call(e, n)), t(3411);
|
||
})();
|