Skip to content

Commit e4589f1

Browse files
committed
chore: add configuration files for mdformat and markdownlint
Add .mdformat.toml and .markdownlint.yaml to configure formatting and linting rules for Markdown files. These configurations ensure compatibility with MkDocs and enforce consistent styling across the documentation.
1 parent cc6eb0e commit e4589f1

File tree

2 files changed

+213
-0
lines changed

2 files changed

+213
-0
lines changed

.markdownlint.yaml

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
# MkDocs-compatible markdownlint configuration
2+
3+
# Default state for all rules
4+
default: true
5+
6+
# Path to configuration file to extend
7+
extends: null
8+
9+
# MD001/heading-increment : Heading levels should only increment by one level at a time
10+
MD001: true
11+
12+
# MD003/heading-style : Heading style
13+
MD003:
14+
# Use ATX style headings for MkDocs
15+
style: "atx"
16+
17+
# MD004/ul-style : Unordered list style
18+
MD004:
19+
# MkDocs works best with dash style
20+
style: "dash"
21+
22+
# MD005/list-indent : Inconsistent indentation for list items at the same level
23+
MD005: true
24+
25+
# MD007/ul-indent : Unordered list indentation
26+
MD007:
27+
# Standard 4 space indent works better with MkDocs
28+
indent: 4
29+
start_indented: false
30+
start_indent: 4
31+
32+
# MD009/no-trailing-spaces : Trailing spaces
33+
MD009:
34+
# Allow line breaks in MkDocs content
35+
br_spaces: 2
36+
list_item_empty_lines: true
37+
strict: false
38+
39+
# MD010/no-hard-tabs : Hard tabs
40+
MD010:
41+
code_blocks: true
42+
# Allow tabs in some code languages
43+
ignore_code_languages: [
44+
"makefile", "Makefile", "python",
45+
"yaml", "yml", "sh", "bash", "markdown",
46+
"md", "toml", "ini", "toml",
47+
"json", "dockerfile", "toml",
48+
"plaintext", "text", "txt", "shell",
49+
"console", "mermaid", "plantuml",
50+
"puml", "ps1", "powershell"
51+
]
52+
spaces_per_tab: 4
53+
54+
# MD011/no-reversed-links : Reversed link syntax
55+
MD011: true
56+
57+
# MD012/no-multiple-blanks : Multiple consecutive blank lines
58+
MD012: false, # 🚫 Allow multiple consecutive blank lines
59+
60+
# MD013/line-length : Line length
61+
MD013: false # 🚫 Disable line length restrictions (similar to mdformat --wrap=no)
62+
63+
# MD014/commands-show-output : Dollar signs used before commands without showing output
64+
MD014: true
65+
66+
# MD018-MD023: Heading formatting rules
67+
MD018: true
68+
MD019: true
69+
MD020: true
70+
MD021: true
71+
MD022: true
72+
MD023: false # Allow indented headings for MkDocs features
73+
74+
# MD024/no-duplicate-heading : Multiple headings with the same content
75+
MD024:
76+
# Allow same headings in different sections (common in MkDocs)
77+
siblings_only: true
78+
79+
# MD025/single-title/single-h1 : Multiple top-level headings
80+
MD025:
81+
# Configure for MkDocs frontmatter
82+
level: 1
83+
front_matter_title: "^\\s*(title|page.title)\\s*[:=]"
84+
85+
# MD026/no-trailing-punctuation : Trailing punctuation in heading
86+
MD026:
87+
# Allow question marks in headings
88+
punctuation: ".,;:!。,;:!"
89+
90+
# MD027-MD030: Spacing and style rules
91+
MD027: true
92+
MD028: false # Allow blank lines in blockquotes for MkDocs styling
93+
MD029:
94+
style: "one_or_ordered"
95+
MD030: true
96+
97+
# MD031/blanks-around-fences : Fenced code blocks should be surrounded by blank lines
98+
MD031:
99+
list_items: true
100+
101+
# MD032/blanks-around-lists : Lists should be surrounded by blank lines
102+
MD032: true
103+
104+
# MD033/no-inline-html : Inline HTML
105+
MD033: false # Disable inline HTML restriction completely for MkDocs templates
106+
107+
# MD034/no-bare-urls : Bare URL used
108+
MD034: true
109+
110+
# MD035/hr-style : Horizontal rule style
111+
MD035:
112+
style: "---" # MkDocs standard
113+
114+
# MD036/no-emphasis-as-heading : Emphasis used instead of a heading
115+
MD036:
116+
punctuation: ".,;:!?。,;:!?"
117+
118+
# MD037-MD039: Emphasis and links formatting
119+
MD037: true
120+
MD038: true
121+
MD039: true
122+
123+
# MD040/fenced-code-language : Fenced code blocks should have a language specified
124+
MD040: false # 🚫 Allow non-fenced code blocks (if needed)
125+
126+
# MD041/first-line-heading/first-line-h1 : First line in a file should be a top-level heading
127+
MD041: false # Disable requirement for first line to be heading for MkDocs templates
128+
129+
# MD042/no-empty-links : No empty links
130+
MD042: false # Allow placeholder links used in MkDocs templates
131+
132+
# MD043/required-headings : Required heading structure
133+
MD043: false
134+
135+
136+
# MD044/proper-names : Proper names should have the correct capitalization
137+
MD044: false # Disable proper names capitalization check for flexibility
138+
139+
# MD045/no-alt-text : Images should have alternate text (alt text)
140+
MD045: true
141+
142+
# MD046/code-block-style : Code block style
143+
MD046: false
144+
145+
# MD047/single-trailing-newline : Files should end with a single newline character
146+
MD047: true
147+
148+
# MD048/code-fence-style : Code fence style
149+
MD048:
150+
# Triple backticks are standard in MkDocs
151+
style: "backtick"
152+
153+
# MD049/emphasis-style : Emphasis style
154+
MD049:
155+
style: "asterisk" # Standard for MkDocs
156+
157+
# MD050/strong-style : Strong style
158+
MD050:
159+
style: "asterisk" # Standard for MkDocs
160+
161+
# MD051-MD058: Link and table formatting
162+
MD051: false # Disable link fragment checking for MkDocs compatibility
163+
MD052: true
164+
MD053:
165+
ignored_definitions: ["//", "#"] # Allow MkDocs-specific reference formats
166+
MD054:
167+
# Allow all link styles for maximum compatibility
168+
autolink: true
169+
inline: true
170+
full: true
171+
collapsed: true
172+
shortcut: true
173+
url_inline: true
174+
MD055:
175+
style: "consistent"
176+
MD056: true
177+
MD058: true

.mdformat.toml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
2+
# MDFormat configuration for MkDocs compatibility
3+
4+
# Top-level configuration (don't use 'mdformat' section)
5+
wrap = "no"
6+
number = true
7+
end_of_line = "lf"
8+
validate = true
9+
10+
# Plugin configuration
11+
plugin.gfm.enable = true
12+
plugin.frontmatter.enable = true
13+
plugin.mkdocs.enable = true
14+
plugin.mkdocs.align_semantic_breaks_in_lists = true
15+
plugin.mkdocs.ignore_missing_references = true
16+
plugin.footnote.enable = true
17+
plugin.tables.enable = true
18+
plugin.toc.enable = true
19+
plugin.toc.depth = 4
20+
plugin.myst.enable = true
21+
plugin.gfm_alerts.enable = true
22+
plugin.config.enable = true
23+
plugin.simple_breaks.enable = true
24+
plugin.web.enable = true
25+
26+
# Code formatter plugins
27+
plugin.beautysh.enable = true
28+
plugin.beautysh.indent_size = 4
29+
30+
plugin.black.enable = true
31+
plugin.black.line_length = 88
32+
33+
plugin.ruff.enable = true
34+
plugin.ruff.line_length = 88
35+
plugin.ruff.select = ["E", "F", "W"]
36+
plugin.ruff.ignore = ["ANN101"]

0 commit comments

Comments
 (0)