Update MD022/blanks-around-headings to allow specifying a different number of blank lines for each heading level (fixes #504).

This commit is contained in:
David Anson 2023-08-08 22:56:47 -07:00
parent bdc9d357f3
commit d9de1dd22f
13 changed files with 690 additions and 64 deletions

View file

@ -6,8 +6,8 @@ Aliases: `blanks-around-headers`, `blanks-around-headings`
Parameters:
- `lines_above`: Blank lines above heading (`integer`, default `1`)
- `lines_below`: Blank lines below heading (`integer`, default `1`)
- `lines_above`: Blank lines above heading (`integer|integer[]`, default `1`)
- `lines_below`: Blank lines below heading (`integer|integer[]`, default `1`)
Fixable: Some violations can be fixed by tooling
@ -36,12 +36,16 @@ Some more text
```
The `lines_above` and `lines_below` parameters can be used to specify a
different number of blank lines (including `0`) above or below each heading. If
the value `-1` is used for either parameter, any number of blank lines is
allowed.
different number of blank lines (including `0`) above or below each heading.
If the value `-1` is used for either parameter, any number of blank lines is
allowed. To customize the number of lines above or below each heading level
individually, specify a `number[]` where values correspond to heading levels
1-6 (in order).
Note: If `lines_above` or `lines_below` are configured to require more than one
blank line, [MD012/no-multiple-blanks](md012.md) should also be customized.
Notes: If `lines_above` or `lines_below` are configured to require more than one
blank line, [MD012/no-multiple-blanks](md012.md) should also be customized. This
rule checks for *at least* as many blank lines as specified; any extra blank
lines are ignored.
Rationale: Aside from aesthetic reasons, some parsers, including `kramdown`,
will not parse headings that don't have a blank line before, and will parse them