Update MD051/link-fragments to add ignore_case parameter and improve documentation (fixes #1274).

This commit is contained in:
David Anson 2024-10-08 22:40:11 -07:00
parent 74aa96d19d
commit 04c693b00b
16 changed files with 315 additions and 44 deletions

View file

@ -2,7 +2,7 @@
"use strict";
const { addError, addErrorDetailIf, getHtmlAttributeRe } = require("../helpers");
const { addError, getHtmlAttributeRe } = require("../helpers");
const { filterByPredicate, filterByTypes, getHtmlTagInfo } = require("../helpers/micromark-helpers.cjs");
const { filterByTypesCached } = require("./cache");
@ -68,6 +68,7 @@ module.exports = {
"tags": [ "links" ],
"parser": "micromark",
"function": function MD051(params, onError) {
const ignoreCase = params.config.ignore_case || false;
const fragments = new Map();
// Process headings
@ -143,16 +144,16 @@ module.exports = {
if (mixedCaseKey) {
// @ts-ignore
(fixInfo || {}).insertText = mixedCaseKey;
addErrorDetailIf(
onError,
link.startLine,
mixedCaseKey,
text,
undefined,
context,
range,
fixInfo
);
if (!ignoreCase && (mixedCaseKey !== text)) {
addError(
onError,
link.startLine,
`Expected: ${mixedCaseKey}; Actual: ${text}`,
context,
range,
fixInfo
);
}
} else {
addError(
onError,