@shayanthenerd/eslint-config
Version:
A modern, flexible ESLint configuration for enforcing best practices and maintaining a consistent coding style
55 lines (54 loc) • 1.99 kB
JavaScript
import { isEnabled } from "../utils/isEnabled.mjs";
import { defaultOptions } from "../helpers/options/defaultOptions.mjs";
//#region src/rules/markdown.ts
function getMarkdownRules(options) {
const { unicorn, markdown } = options.configs;
const { language, allowedHtmlTags: userAllowedHtmlTags } = isEnabled(markdown) ? markdown : defaultOptions.configs.markdown;
const isCommonMark = language === "commonmark";
const markdownRules = {
"markdown/fenced-code-language": "error",
"markdown/heading-increment": "warn",
"markdown/no-bare-urls": isCommonMark ? "off" : "warn",
"markdown/no-duplicate-definitions": isCommonMark ? "off" : "error",
"markdown/no-duplicate-headings": "error",
"markdown/no-empty-definitions": isCommonMark ? "off" : "error",
"markdown/no-empty-images": "error",
"markdown/no-empty-links": "error",
"markdown/no-html": ["warn", { allowed: [
"u",
"br",
"rp",
"rt",
"kbd",
"sub",
"sup",
"mark",
"ruby",
"small",
"details",
"summary",
...userAllowedHtmlTags
] }],
"markdown/no-invalid-label-refs": "error",
"markdown/no-missing-atx-heading-space": ["error", { checkClosedHeadings: true }],
"markdown/no-missing-label-refs": ["error", { allowLabels: isCommonMark ? void 0 : [
"!TIP",
"!NOTE",
"!CAUTION",
"!WARNING",
"!IMPORTANT"
] }],
"markdown/no-missing-link-fragments": ["error", { ignoreCase: false }],
"markdown/no-multiple-h1": "error",
"markdown/no-reference-like-urls": "warn",
"markdown/no-reversed-media-syntax": "error",
"markdown/no-space-in-emphasis": ["warn", { checkStrikethrough: !isCommonMark }],
"markdown/no-unused-definitions": isCommonMark ? "off" : "warn",
"markdown/require-alt-text": "warn",
"markdown/table-column-count": isCommonMark ? "off" : ["error", { checkMissingCells: true }]
};
if (isEnabled(unicorn)) markdownRules["unicorn/no-missing-local-resource"] = "error";
return markdownRules;
}
//#endregion
export { getMarkdownRules };