wip
Some checks are pending
Checkers / linkcheck (push) Waiting to run
Checkers / spellcheck (push) Waiting to run
CI / build (20, macos-latest) (push) Waiting to run
CI / build (20, ubuntu-latest) (push) Waiting to run
CI / build (20, windows-latest) (push) Waiting to run
CI / build (22, macos-latest) (push) Waiting to run
CI / build (22, ubuntu-latest) (push) Waiting to run
CI / build (22, windows-latest) (push) Waiting to run
CI / build (24, macos-latest) (push) Waiting to run
CI / build (24, ubuntu-latest) (push) Waiting to run
CI / build (24, windows-latest) (push) Waiting to run
CI / pnpm (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
TestRepos / build (latest, ubuntu-latest) (push) Waiting to run
UpdateTestRepos / update (push) Waiting to run

This commit is contained in:
David Anson 2025-09-16 21:11:58 -07:00
parent a4ae56ab94
commit 6e243fa35b

View file

@ -70,25 +70,34 @@ for (const rule of rules) {
], ],
"default": true "default": true
}; };
/** @type {{type: "object", additionalProperties: boolean, properties?: object}} */
const subscheme = { const subscheme = {
"type": "object", "type": "object",
"additionalProperties": false "additionalProperties": false,
"properties": {
// "severity": {
// "description": "Rule severity",
// "type": "string",
// "enum": [
// "error"
// ],
// "default": "error"
// }
}
}; };
let custom = true; let custom = true;
/* eslint-disable camelcase */
switch (ruleName) { switch (ruleName) {
case "MD001": case "MD001":
subscheme.properties = { // @ts-ignore
"front_matter_title": { subscheme.properties.front_matter_title = {
"description": "RegExp for matching title in front matter", "description": "RegExp for matching title in front matter",
"type": "string", "type": "string",
"default": "^\\s*title\\s*[:=]" "default": "^\\s*title\\s*[:=]"
}
}; };
break; break;
case "MD003": case "MD003":
subscheme.properties = { // @ts-ignore
"style": { subscheme.properties.style = {
"description": "Heading style", "description": "Heading style",
"type": "string", "type": "string",
"enum": [ "enum": [
@ -100,12 +109,11 @@ for (const rule of rules) {
"setext_with_atx_closed" "setext_with_atx_closed"
], ],
"default": "consistent" "default": "consistent"
}
}; };
break; break;
case "MD004": case "MD004":
subscheme.properties = { // @ts-ignore
"style": { subscheme.properties.style = {
"description": "List style", "description": "List style",
"type": "string", "type": "string",
"enum": [ "enum": [
@ -116,134 +124,141 @@ for (const rule of rules) {
"sublist" "sublist"
], ],
"default": "consistent" "default": "consistent"
}
}; };
break; break;
case "MD007": case "MD007":
subscheme.properties = { // @ts-ignore
"indent": { subscheme.properties.indent = {
"description": "Spaces for indent", "description": "Spaces for indent",
"type": "integer", "type": "integer",
"minimum": 1, "minimum": 1,
"default": 2 "default": 2
}, };
"start_indented": { // @ts-ignore
subscheme.properties.start_indented = {
"description": "Whether to indent the first level of the list", "description": "Whether to indent the first level of the list",
"type": "boolean", "type": "boolean",
"default": false "default": false
}, };
"start_indent": { // @ts-ignore
subscheme.properties.start_indent = {
"description": "description":
"Spaces for first level indent (when start_indented is set)", "Spaces for first level indent (when start_indented is set)",
"type": "integer", "type": "integer",
"minimum": 1, "minimum": 1,
"default": 2 "default": 2
}
}; };
break; break;
case "MD009": case "MD009":
subscheme.properties = { // @ts-ignore
"br_spaces": { subscheme.properties.br_spaces = {
"description": "Spaces for line break", "description": "Spaces for line break",
"type": "integer", "type": "integer",
"minimum": 0, "minimum": 0,
"default": 2 "default": 2
}, };
"list_item_empty_lines": { // @ts-ignore
subscheme.properties.list_item_empty_lines = {
"description": "Allow spaces for empty lines in list items", "description": "Allow spaces for empty lines in list items",
"type": "boolean", "type": "boolean",
"default": false "default": false
}, };
"strict": { // @ts-ignore
subscheme.properties.strict = {
"description": "Include unnecessary breaks", "description": "Include unnecessary breaks",
"type": "boolean", "type": "boolean",
"default": false "default": false
}
}; };
break; break;
case "MD010": case "MD010":
subscheme.properties = { // @ts-ignore
"code_blocks": { subscheme.properties.code_blocks = {
"description": "Include code blocks", "description": "Include code blocks",
"type": "boolean", "type": "boolean",
"default": true "default": true
}, };
"ignore_code_languages": { // @ts-ignore
subscheme.properties.ignore_code_languages = {
"description": "Fenced code languages to ignore", "description": "Fenced code languages to ignore",
"type": "array", "type": "array",
"items": { "items": {
"type": "string" "type": "string"
}, },
"default": [] "default": []
}, };
"spaces_per_tab": { // @ts-ignore
subscheme.properties.spaces_per_tab = {
"description": "Number of spaces for each hard tab", "description": "Number of spaces for each hard tab",
"type": "integer", "type": "integer",
"minimum": 0, "minimum": 0,
"default": 1 "default": 1
}
}; };
break; break;
case "MD012": case "MD012":
subscheme.properties = { // @ts-ignore
"maximum": { subscheme.properties.maximum = {
"description": "Consecutive blank lines", "description": "Consecutive blank lines",
"type": "integer", "type": "integer",
"minimum": 1, "minimum": 1,
"default": 1 "default": 1
}
}; };
break; break;
case "MD013": case "MD013":
subscheme.properties = { // @ts-ignore
"line_length": { subscheme.properties.line_length = {
"description": "Number of characters", "description": "Number of characters",
"type": "integer", "type": "integer",
"minimum": 1, "minimum": 1,
"default": 80 "default": 80
}, };
"heading_line_length": { // @ts-ignore
subscheme.properties.heading_line_length = {
"description": "Number of characters for headings", "description": "Number of characters for headings",
"type": "integer", "type": "integer",
"minimum": 1, "minimum": 1,
"default": 80 "default": 80
}, };
"code_block_line_length": { // @ts-ignore
subscheme.properties.code_block_line_length = {
"description": "Number of characters for code blocks", "description": "Number of characters for code blocks",
"type": "integer", "type": "integer",
"minimum": 1, "minimum": 1,
"default": 80 "default": 80
}, };
"code_blocks": { // @ts-ignore
subscheme.properties.code_blocks = {
"description": "Include code blocks", "description": "Include code blocks",
"type": "boolean", "type": "boolean",
"default": true "default": true
}, };
"tables": { // @ts-ignore
subscheme.properties.tables = {
"description": "Include tables", "description": "Include tables",
"type": "boolean", "type": "boolean",
"default": true "default": true
}, };
"headings": { // @ts-ignore
subscheme.properties.headings = {
"description": "Include headings", "description": "Include headings",
"type": "boolean", "type": "boolean",
"default": true "default": true
}, };
"strict": { // @ts-ignore
subscheme.properties.strict = {
"description": "Strict length checking", "description": "Strict length checking",
"type": "boolean", "type": "boolean",
"default": false "default": false
}, };
"stern": { // @ts-ignore
subscheme.properties.stern = {
"description": "Stern length checking", "description": "Stern length checking",
"type": "boolean", "type": "boolean",
"default": false "default": false
}
}; };
break; break;
case "MD022": case "MD022":
subscheme.properties = { // @ts-ignore
"lines_above": { subscheme.properties.lines_above = {
"description": "Blank lines above heading", "description": "Blank lines above heading",
"type": [ "type": [
"integer", "integer",
@ -254,8 +269,9 @@ for (const rule of rules) {
}, },
"minimum": -1, "minimum": -1,
"default": 1 "default": 1
}, };
"lines_below": { // @ts-ignore
subscheme.properties.lines_below = {
"description": "Blank lines below heading", "description": "Blank lines below heading",
"type": [ "type": [
"integer", "integer",
@ -266,40 +282,36 @@ for (const rule of rules) {
}, },
"minimum": -1, "minimum": -1,
"default": 1 "default": 1
}
}; };
break; break;
case "MD024": case "MD024":
subscheme.properties = { // @ts-ignore
"siblings_only": { subscheme.properties.siblings_only = {
"description": "Only check sibling headings", "description": "Only check sibling headings",
"type": "boolean", "type": "boolean",
"default": false "default": false
}
}; };
break; break;
case "MD026": case "MD026":
case "MD036": case "MD036":
subscheme.properties = { // @ts-ignore
"punctuation": { subscheme.properties.punctuation = {
"description": "Punctuation characters", "description": "Punctuation characters",
"type": "string", "type": "string",
"default": (ruleName === "MD026") ? ".,;:!。,;:!" : ".,;:!?。,;:!?" "default": (ruleName === "MD026") ? ".,;:!。,;:!" : ".,;:!?。,;:!?"
}
}; };
break; break;
case "MD027": case "MD027":
subscheme.properties = { // @ts-ignore
"list_items": { subscheme.properties.list_items = {
"description": "Include list items", "description": "Include list items",
"type": "boolean", "type": "boolean",
"default": true "default": true
}
}; };
break; break;
case "MD029": case "MD029":
subscheme.properties = { // @ts-ignore
"style": { subscheme.properties.style = {
"description": "List style", "description": "List style",
"type": "string", "type": "string",
"enum": [ "enum": [
@ -309,124 +321,119 @@ for (const rule of rules) {
"zero" "zero"
], ],
"default": "one_or_ordered" "default": "one_or_ordered"
}
}; };
break; break;
case "MD030": case "MD030":
subscheme.properties = { // @ts-ignore
"ul_single": { subscheme.properties.ul_single = {
"description": "Spaces for single-line unordered list items", "description": "Spaces for single-line unordered list items",
"type": "integer", "type": "integer",
"minimum": 1, "minimum": 1,
"default": 1 "default": 1
}, };
"ol_single": { // @ts-ignore
subscheme.properties.ol_single = {
"description": "Spaces for single-line ordered list items", "description": "Spaces for single-line ordered list items",
"type": "integer", "type": "integer",
"minimum": 1, "minimum": 1,
"default": 1 "default": 1
}, };
"ul_multi": { // @ts-ignore
subscheme.properties.ul_multi = {
"description": "Spaces for multi-line unordered list items", "description": "Spaces for multi-line unordered list items",
"type": "integer", "type": "integer",
"minimum": 1, "minimum": 1,
"default": 1 "default": 1
}, };
"ol_multi": { // @ts-ignore
subscheme.properties.ol_multi = {
"description": "Spaces for multi-line ordered list items", "description": "Spaces for multi-line ordered list items",
"type": "integer", "type": "integer",
"minimum": 1, "minimum": 1,
"default": 1 "default": 1
}
}; };
break; break;
case "MD031": case "MD031":
subscheme.properties = { // @ts-ignore
"list_items": { subscheme.properties.list_items = {
"description": "Include list items", "description": "Include list items",
"type": "boolean", "type": "boolean",
"default": true "default": true
}
}; };
break; break;
case "MD033": case "MD033":
subscheme.properties = { // @ts-ignore
"allowed_elements": { subscheme.properties.allowed_elements = {
"description": "Allowed elements", "description": "Allowed elements",
"type": "array", "type": "array",
"items": { "items": {
"type": "string" "type": "string"
}, },
"default": [] "default": []
}, };
"table_allowed_elements": { // @ts-ignore
subscheme.properties.table_allowed_elements = {
"description": "Allowed elements in tables", "description": "Allowed elements in tables",
"type": "array", "type": "array",
"items": { "items": {
"type": "string" "type": "string"
}, },
"default": [] "default": []
}
}; };
break; break;
case "MD035": case "MD035":
subscheme.properties = { // @ts-ignore
"style": { subscheme.properties.style = {
"description": "Horizontal rule style", "description": "Horizontal rule style",
"type": "string", "type": "string",
"default": "consistent" "default": "consistent"
}
}; };
break; break;
case "MD040": case "MD040":
subscheme.properties = { // @ts-ignore
"allowed_languages": { subscheme.properties.allowed_languages = {
"description": "List of languages", "description": "List of languages",
"type": "array", "type": "array",
"items": { "items": {
"type": "string" "type": "string"
}, },
"default": [] "default": []
}, };
"language_only": { // @ts-ignore
subscheme.properties.language_only = {
"description": "Require language only", "description": "Require language only",
"type": "boolean", "type": "boolean",
"default": false "default": false
}
}; };
break; break;
case "MD025": case "MD025":
case "MD041": case "MD041":
{ if (ruleName === "MD041") {
const md041Properties = (ruleName === "MD041") ? // @ts-ignore
{ subscheme.properties.allow_preamble = {
"allow_preamble": {
"description": "Allow content before first heading", "description": "Allow content before first heading",
"type": "boolean", "type": "boolean",
"default": false "default": false
};
} }
} : // @ts-ignore
{}; subscheme.properties.front_matter_title = {
subscheme.properties = {
...md041Properties,
"front_matter_title": {
"description": "RegExp for matching title in front matter", "description": "RegExp for matching title in front matter",
"type": "string", "type": "string",
"default": "^\\s*title\\s*[:=]" "default": "^\\s*title\\s*[:=]"
}, };
"level": { // @ts-ignore
subscheme.properties.level = {
"description": "Heading level", "description": "Heading level",
"type": "integer", "type": "integer",
"minimum": 1, "minimum": 1,
"maximum": 6, "maximum": 6,
"default": 1 "default": 1
}
}; };
}
break; break;
case "MD043": case "MD043":
subscheme.properties = { // @ts-ignore
"headings": { subscheme.properties.headings = {
"description": "List of headings", "description": "List of headings",
"type": "array", "type": "array",
"items": { "items": {
@ -434,39 +441,40 @@ for (const rule of rules) {
"pattern": "^(\\*|\\+|\\?|#{1,6}\\s+\\S.*)$" "pattern": "^(\\*|\\+|\\?|#{1,6}\\s+\\S.*)$"
}, },
"default": [] "default": []
}, };
"match_case": { // @ts-ignore
subscheme.properties.match_case = {
"description": "Match case of headings", "description": "Match case of headings",
"type": "boolean", "type": "boolean",
"default": false "default": false
}
}; };
break; break;
case "MD044": case "MD044":
subscheme.properties = { // @ts-ignore
"names": { subscheme.properties.names = {
"description": "List of proper names", "description": "List of proper names",
"type": "array", "type": "array",
"items": { "items": {
"type": "string" "type": "string"
}, },
"default": [] "default": []
}, };
"code_blocks": { // @ts-ignore
subscheme.properties.code_blocks = {
"description": "Include code blocks", "description": "Include code blocks",
"type": "boolean", "type": "boolean",
"default": true "default": true
}, };
"html_elements": { // @ts-ignore
subscheme.properties.html_elements = {
"description": "Include HTML elements", "description": "Include HTML elements",
"type": "boolean", "type": "boolean",
"default": true "default": true
}
}; };
break; break;
case "MD046": case "MD046":
subscheme.properties = { // @ts-ignore
"style": { subscheme.properties.style = {
"description": "Block style", "description": "Block style",
"type": "string", "type": "string",
"enum": [ "enum": [
@ -475,12 +483,11 @@ for (const rule of rules) {
"indented" "indented"
], ],
"default": "consistent" "default": "consistent"
}
}; };
break; break;
case "MD048": case "MD048":
subscheme.properties = { // @ts-ignore
"style": { subscheme.properties.style = {
"description": "Code fence style", "description": "Code fence style",
"type": "string", "type": "string",
"enum": [ "enum": [
@ -489,13 +496,12 @@ for (const rule of rules) {
"tilde" "tilde"
], ],
"default": "consistent" "default": "consistent"
}
}; };
break; break;
case "MD049": case "MD049":
case "MD050": case "MD050":
subscheme.properties = { // @ts-ignore
"style": { subscheme.properties.style = {
"description": (ruleName === "MD049") ? "Emphasis style" : "Strong style", "description": (ruleName === "MD049") ? "Emphasis style" : "Strong style",
"type": "string", "type": "string",
"enum": [ "enum": [
@ -504,89 +510,91 @@ for (const rule of rules) {
"underscore" "underscore"
], ],
"default": "consistent" "default": "consistent"
}
}; };
break; break;
case "MD051": case "MD051":
subscheme.properties = { // @ts-ignore
"ignore_case": { subscheme.properties.ignore_case = {
"description": "Ignore case of fragments", "description": "Ignore case of fragments",
"type": "boolean", "type": "boolean",
"default": false "default": false
}, };
"ignored_pattern": { // @ts-ignore
subscheme.properties.ignored_pattern = {
"description": "Pattern for ignoring additional fragments", "description": "Pattern for ignoring additional fragments",
"type": "string", "type": "string",
"default": "" "default": ""
}
}; };
break; break;
case "MD052": case "MD052":
subscheme.properties = { // @ts-ignore
"ignored_labels": { subscheme.properties.ignored_labels = {
"description": "Ignored link labels", "description": "Ignored link labels",
"type": "array", "type": "array",
"items": { "items": {
"type": "string" "type": "string"
}, },
"default": [ "x" ] "default": [ "x" ]
}, };
"shortcut_syntax": { // @ts-ignore
subscheme.properties.shortcut_syntax = {
"description": "Include shortcut syntax", "description": "Include shortcut syntax",
"type": "boolean", "type": "boolean",
"default": false "default": false
}
}; };
break; break;
case "MD053": case "MD053":
subscheme.properties = { // @ts-ignore
"ignored_definitions": { subscheme.properties.ignored_definitions = {
"description": "Ignored definitions", "description": "Ignored definitions",
"type": "array", "type": "array",
"items": { "items": {
"type": "string" "type": "string"
}, },
"default": [ "//" ] "default": [ "//" ]
}
}; };
break; break;
case "MD054": case "MD054":
subscheme.properties = { // @ts-ignore
"autolink": { subscheme.properties.autolink = {
"description": "Allow autolinks", "description": "Allow autolinks",
"type": "boolean", "type": "boolean",
"default": true "default": true
}, };
"inline": { // @ts-ignore
subscheme.properties.inline = {
"description": "Allow inline links and images", "description": "Allow inline links and images",
"type": "boolean", "type": "boolean",
"default": true "default": true
}, };
"full": { // @ts-ignore
subscheme.properties.full = {
"description": "Allow full reference links and images", "description": "Allow full reference links and images",
"type": "boolean", "type": "boolean",
"default": true "default": true
}, };
"collapsed": { // @ts-ignore
subscheme.properties.collapsed = {
"description": "Allow collapsed reference links and images", "description": "Allow collapsed reference links and images",
"type": "boolean", "type": "boolean",
"default": true "default": true
}, };
"shortcut": { // @ts-ignore
subscheme.properties.shortcut = {
"description": "Allow shortcut reference links and images", "description": "Allow shortcut reference links and images",
"type": "boolean", "type": "boolean",
"default": true "default": true
}, };
"url_inline": { // @ts-ignore
subscheme.properties.url_inline = {
"description": "Allow URLs as inline links", "description": "Allow URLs as inline links",
"type": "boolean", "type": "boolean",
"default": true "default": true
}
}; };
break; break;
case "MD055": case "MD055":
subscheme.properties = { // @ts-ignore
"style": { subscheme.properties.style = {
"description": "Table pipe style", "description": "Table pipe style",
"type": "string", "type": "string",
"enum": [ "enum": [
@ -597,12 +605,11 @@ for (const rule of rules) {
"no_leading_or_trailing" "no_leading_or_trailing"
], ],
"default": "consistent" "default": "consistent"
}
}; };
break; break;
case "MD059": case "MD059":
subscheme.properties = { // @ts-ignore
"prohibited_texts": { subscheme.properties.prohibited_texts = {
"description": "Prohibited link texts", "description": "Prohibited link texts",
"type": "array", "type": "array",
"items": { "items": {
@ -614,12 +621,11 @@ for (const rule of rules) {
"link", "link",
"more" "more"
] ]
}
}; };
break; break;
case "MD060": case "MD060":
subscheme.properties = { // @ts-ignore
"style": { subscheme.properties.style = {
"description": "Table column style", "description": "Table column style",
"type": "string", "type": "string",
"enum": [ "enum": [
@ -629,13 +635,13 @@ for (const rule of rules) {
"tight" "tight"
], ],
"default": "any" "default": "any"
}
}; };
break; break;
default: default:
custom = false; custom = false;
break; break;
} }
/* eslint-enable camelcase */
if (custom) { if (custom) {
scheme.oneOf.push(subscheme); scheme.oneOf.push(subscheme);
} }