1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
# mdlint.default.toml — all options with their default values
#
# Copy to mdlint.toml (or .mdlint.toml) in your project root.
# mdlint searches upward from the working directory; configs closer to the
# root override those further away (scalar values) or extend them (arrays).
#
# Most projects need no config at all. `mdlint format` is opinionated and
# requires no configuration. This file is for teams that want to disable
# specific check rules or adjust a few rule parameters.
# When true (default), every rule is enabled unless explicitly disabled below.
# When false, only rules that have an [rules.MDxxx] section are active.
= true
# Respect .gitignore files when discovering Markdown files. Disable only if
# you are running mdlint outside a git repository or want to lint ignored files.
= true
# Paths and glob patterns to exclude from file discovery. These are merged with
# any --exclude flags passed on the command line. Useful for excluding generated
# files, test fixtures, or files that intentionally use non-canonical syntax.
# exclude = ["docs/generated", "tests/fixtures"]
# When true, ignore all <!-- mdlint-disable --> comments inside files.
# Useful for enforcing rules with no per-file escape hatches.
= false
# When true (default), `mdlint check` automatically applies all auto-fixable
# violations, equivalent to passing --fix on the command line.
= true
# front_matter = "---" # Uncomment to fix the front-matter delimiter to YAML
# # only. By default mdlint auto-detects both "---"
# # (YAML) and "+++" (TOML).
# custom_rules = [] # Paths to external rule modules (future feature).
# ---------------------------------------------------------------------------
# Rule configuration
#
# Each section enables the rule and, optionally, overrides its parameters.
# Omitting a section leaves the rule at its default state (disabled unless
# default_enabled = true).
#
# To disable a rule when default_enabled = true:
# [rules.MD013]
# enabled = false
# ---------------------------------------------------------------------------
# MD003 — Heading style
# style: the required style for all headings.
# "atx" — # Heading (enforced by `mdlint format`)
# "setext" — underline style
# "atx_closed" — # Heading #
# "consistent" — whatever style appears first in the file
[]
= "atx"
# MD004 — Unordered list marker style
# style: the required bullet character.
# "dash" — - item (enforced by `mdlint format`)
# "asterisk" — * item
# "plus" — + item
# "consistent" — whatever marker appears first in the file
[]
= "dash"
# MD007 — Unordered list indentation
# indent: number of spaces each nested list level is indented.
[]
= 2
# MD009 — Trailing spaces
# br_spaces: number of trailing spaces that are allowed as a hard line break.
# Set to 0 with strict = true to disallow all trailing spaces.
# strict: when true, no trailing spaces are allowed even as line breaks.
# `mdlint format` replaces trailing-space breaks with backslash breaks.
[]
= 2
= false
# MD010 — Hard tabs
# code_blocks: when true, tabs inside fenced and indented code blocks are also
# flagged. `mdlint format` preserves tabs inside code blocks, so
# set this to false to avoid spurious check violations.
[]
= true
# MD012 — Multiple consecutive blank lines
# maximum: the highest number of consecutive blank lines permitted.
[]
= 1
# MD013 — Line length
# line_length: maximum line length (characters).
# heading_line_length: maximum length for heading lines; kept shorter than prose
# so headings scan well in raw files. Defaults to line_length.
# code_blocks: when true, lines inside code blocks are also checked.
# tables: when true, table rows are also checked.
# headings: when true, heading lines are also checked.
[]
= 120
= 80
= true
= true
= true
# MD024 — Multiple headings with the same content
# siblings_only: when true, only flag duplicate headings that share the same
# parent heading (i.e. are siblings in the document tree).
# When false, all duplicate headings anywhere in the document
# are flagged.
[]
= false
# MD026 — Trailing punctuation in headings
# punctuation: the set of characters that are not allowed at the end of a heading.
[]
= ".,;:!"
# MD029 — Ordered list item prefix
# style: the required numbering style.
# "ordered" — items numbered sequentially (1. 2. 3.) — enforced by `mdlint format`
# "one" — every item labeled 1.
# "one_or_ordered" — either style is accepted, but must be consistent
[]
= "ordered"
# MD030 — Spaces after list markers
# ul_single: spaces after a bullet marker when the list item is a single line.
# ul_multi: spaces after a bullet marker when the list item spans multiple lines.
# ol_single: spaces after an ordered marker when the list item is a single line.
# ol_multi: spaces after an ordered marker when the list item spans multiple lines.
[]
= 1
= 1
= 1
= 1
# MD033 — Inline HTML
# allowed_elements: HTML tag names (without angle brackets) that are permitted.
# An empty list (default) disallows all raw HTML elements.
[]
= []
# MD035 — Horizontal rule style
# style: the required thematic break syntax.
# "---" — three dashes (enforced by `mdlint format`)
# "***" — three asterisks
# "___" — three underscores
# "consistent" — whatever style appears first in the file
[]
= "---"
# MD036 — Emphasis used instead of a heading
# punctuation: if an emphasis-only line ends with one of these characters it is
# treated as punctuation (not a heading substitute) and not flagged.
[]
= ".,;:!?。,;:!?"
# MD041 — First line in a file should be a top-level heading
# level: the required heading level (1–6) for the first heading in the file.
[]
= 1
# MD044 — Proper names should have correct capitalisation
# names: list of proper names that must always appear with this exact casing.
# code_blocks: when true, occurrences inside code blocks are also checked.
[]
= []
= true
# MD046 — Code block style
# style: the required style for code blocks.
# "fenced" — backtick or tilde fences (enforced by `mdlint format`)
# "indented" — four-space indentation
# "consistent" — whatever style appears first in the file
[]
= "fenced"
# MD048 — Code fence style
# style: the required fence character.
# "backtick" — ``` fences (enforced by `mdlint format`)
# "tilde" — ~~~ fences
# "consistent" — whatever character appears first in the file
[]
= "backtick"
# MD049 — Emphasis style (italic)
# style: the required delimiter for italic text.
# "asterisk" — *text* (enforced by `mdlint format`)
# "underscore" — _text_
# "consistent" — whatever delimiter appears first in the file
[]
= "asterisk"
# MD050 — Strong style (bold)
# style: the required delimiter for bold text.
# "asterisk" — **text** (enforced by `mdlint format`)
# "underscore" — __text__
# "consistent" — whatever delimiter appears first in the file
[]
= "asterisk"
# MD055 — Table pipe style
# style: where pipe characters are required on table rows.
# "leading_and_trailing" — | col | col |
# "leading_only" — | col | col
# "trailing_only" — col | col |
# "no_leading_or_trailing" — col | col
# "consistent" — whatever style appears first in the file
[]
= "leading_and_trailing"
# MD060 — Table column alignment
# style: required alignment for all table columns.
# "default" — no alignment marker (---)
# "left" — :---
# "right" — ---:
# "center" — :---:
# "consistent" — whatever alignment appears first in the file
[]
= "consistent"