UNPKG

@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
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 };