markdownlint/doc/md001.md

1.4 KiB

MD001 - Heading levels should only increment by one level at a time

Tags: headings

Aliases: heading-increment

Parameters:

  • front_matter_title: RegExp for matching title in front matter (string, default ^\s*title\s*[:=])

This rule is triggered when you skip heading levels in a Markdown document, for example:

# Heading 1

### Heading 3

We skipped out a 2nd level heading in this document

When using multiple heading levels, nested headings should increase by only one level at a time:

# Heading 1

## Heading 2

### Heading 3

#### Heading 4

## Another Heading 2

### Another Heading 3

If YAML front matter is present and contains a title property (commonly used with blog posts), this rule treats that as a top level heading and will report a violation if the actual first heading is not a level 2 heading. To use a different property name in the front matter, specify the text of a regular expression via the front_matter_title parameter. To disable the use of front matter by this rule, specify "" for front_matter_title. When front matter is not present, the first heading can be any level.

Rationale: Headings represent the structure of a document and can be confusing when skipped - especially for accessibility scenarios. More information: https://www.w3.org/WAI/tutorials/page-structure/headings/.