Add fenced code block style rule (#224) (fixes #223).

This commit is contained in:
Marius Lichtblau 2019-10-08 21:10:02 -07:00 committed by David Anson
parent fd06a50ee5
commit e9b3cc4c18
17 changed files with 232 additions and 25 deletions

38
lib/md048.js Normal file
View file

@ -0,0 +1,38 @@
// @ts-check
"use strict";
const { addErrorDetailIf } = require("../helpers");
function fencedCodeBlockStyleFor(markup) {
switch (markup[0]) {
case "~":
return "tilde";
default:
return "backtick";
}
}
module.exports = {
"names": [ "MD048", "code-fence-style" ],
"description": "Code fence style",
"tags": [ "code" ],
"function": function MD048(params, onError) {
const style = params.config.style || "consistent";
let expectedStyle = style;
params.tokens
.filter((token) => token.type === "fence")
.forEach((fenceToken) => {
const { lineNumber, markup } = fenceToken;
if (expectedStyle === "consistent") {
expectedStyle = fencedCodeBlockStyleFor(markup);
}
addErrorDetailIf(
onError,
lineNumber,
expectedStyle,
fencedCodeBlockStyleFor(markup)
);
});
}
};