103 lines
3.6 KiB
JSON
103 lines
3.6 KiB
JSON
// Markdownlint-cli2 Configuration
|
|
// Documentation quality enforcement aligned with CLAUDE.md guidelines
|
|
// See: https://github.com/igorshubovych/markdownlint-cli2
|
|
|
|
{
|
|
"config": {
|
|
"default": true,
|
|
|
|
// Headings - enforce proper hierarchy
|
|
"MD001": false, // heading-increment (relaxed - allow flexibility)
|
|
"MD026": { "punctuation": ".,;:!?" }, // heading-punctuation
|
|
|
|
// Lists - enforce consistency
|
|
"MD004": { "style": "consistent" }, // ul-style (consistent list markers)
|
|
"MD005": false, // inconsistent-indentation (relaxed)
|
|
"MD007": { "indent": 2 }, // ul-indent
|
|
"MD029": false, // ol-prefix (allow flexible list numbering)
|
|
"MD030": { "ul_single": 1, "ol_single": 1, "ul_multi": 1, "ol_multi": 1 },
|
|
|
|
// Code blocks - fenced only
|
|
"MD046": { "style": "fenced" }, // code-block-style
|
|
// NOTE: MD040 only checks for missing language on opening fence.
|
|
// It does NOT catch malformed closing fences with language specifiers (e.g., ```plaintext).
|
|
// Custom pre-commit hook required to enforce proper closing fence syntax.
|
|
|
|
// Formatting - strict whitespace
|
|
"MD009": true, // no-hard-tabs
|
|
"MD010": true, // hard-tabs
|
|
"MD011": true, // reversed-link-syntax
|
|
"MD018": true, // no-missing-space-atx
|
|
"MD019": true, // no-multiple-space-atx
|
|
"MD020": true, // no-missing-space-closed-atx
|
|
"MD021": true, // no-multiple-space-closed-atx
|
|
"MD023": true, // heading-starts-line
|
|
"MD027": true, // no-multiple-spaces-blockquote
|
|
"MD037": true, // no-space-in-emphasis
|
|
"MD039": true, // no-space-in-links
|
|
|
|
// Trailing content
|
|
"MD012": false, // no-multiple-blanks (relaxed - allow formatting space)
|
|
"MD024": false, // no-duplicate-heading (too strict for docs)
|
|
"MD028": false, // no-blanks-blockquote (relaxed)
|
|
"MD031": false, // blanks-around-fences (too strict for technical docs)
|
|
"MD047": true, // single-trailing-newline
|
|
|
|
// Links and references
|
|
"MD034": true, // no-bare-urls (links must be formatted)
|
|
"MD040": true, // fenced-code-language (code blocks need language)
|
|
"MD042": true, // no-empty-links
|
|
|
|
// HTML - allow for documentation formatting and images
|
|
"MD033": { "allowed_elements": ["br", "hr", "details", "summary", "p", "img"] },
|
|
|
|
// Line length - relaxed for technical documentation
|
|
"MD013": {
|
|
"line_length": 150,
|
|
"heading_line_length": 150,
|
|
"code_block_line_length": 150,
|
|
"code_blocks": true,
|
|
"tables": true,
|
|
"headers": true,
|
|
"headers_line_length": 150,
|
|
"strict": false,
|
|
"stern": false
|
|
},
|
|
|
|
// Images
|
|
"MD045": true, // image-alt-text
|
|
|
|
// Disable rules that conflict with relaxed style
|
|
"MD003": false, // consistent-indentation
|
|
"MD041": false, // first-line-heading
|
|
"MD025": false, // single-h1 / multiple-top-level-headings
|
|
"MD022": false, // blanks-around-headings (flexible spacing)
|
|
"MD032": false, // blanks-around-lists (flexible spacing)
|
|
"MD035": false, // hr-style (consistent)
|
|
"MD036": false, // no-emphasis-as-heading
|
|
"MD044": false, // proper-names
|
|
"MD060": true // table-column-style (enforce proper table formatting)
|
|
},
|
|
|
|
// Documentation patterns
|
|
"globs": [
|
|
"docs/**/*.md",
|
|
"!docs/node_modules/**",
|
|
"!docs/build/**"
|
|
],
|
|
|
|
// Ignore build artifacts, external content, and operational directories
|
|
"ignores": [
|
|
"node_modules/**",
|
|
"target/**",
|
|
".git/**",
|
|
"build/**",
|
|
"dist/**",
|
|
".coder/**",
|
|
".claude/**",
|
|
".wrks/**",
|
|
".vale/**",
|
|
"extensions/providers/*/kcl/docs/**"
|
|
]
|
|
}
|