MD018 - No missing space after hash in heading¶
Aliases: no-missing-space-atx
What this rule does¶
Ensures there's a space between the # symbols and the heading text.
Why this matters¶
- Readability: Headings without spaces look cramped and are harder to read
- Compatibility: Some Markdown processors won't recognize headings without spaces
- Standards: Proper spacing follows Markdown best practices
Examples¶
✅ Correct¶
❌ Incorrect¶
🔧 Fixed¶
Configuration¶
| Option | Type | Default | Description |
|---|---|---|---|
magiclink |
boolean | false |
Enable MagicLink support for issue/PR references |
MagicLink support¶
When magiclink = true, this rule skips PyMdown MagicLink issue/PR references at the start of a line. This prevents false positives when using MagicLink's auto-linking syntax for patterns like #123.
Example¶
# PRs that are helpful for context
#10 discusses the philosophy behind the project, and #37 shows a good example.
#Summary
With magiclink = true:
#10and#37are not flagged (MagicLink issue references)#Summaryis flagged (non-numeric, likely a malformed heading)
Special cases¶
This rule correctly handles:
- Emoji hashtags like #️⃣ and #⃣ (not treated as headings)
- Content inside HTML blocks and comments (e.g., CSS selectors like
#id) - YAML frontmatter comments
- Indented patterns (not at column 1)
Obsidian flavor: Tag syntax support¶
When using flavor = "obsidian", this rule automatically skips Obsidian tag syntax at the start of a line. In Obsidian, #tagname is used for organizing notes with tags, not as headings.
Example¶
With flavor = "obsidian":
#todoand#project/activeare not flagged (Obsidian tags)##Introductionis flagged (multi-hash, clearly a malformed heading)#123is flagged (tags cannot start with digits)
Configuration¶
This allows Obsidian users to use tag syntax without triggering false positives from MD018.
Automatic fixes¶
This rule automatically adds a space after the # symbols to properly format the heading.
Learn more¶
- CommonMark specification for headings - Technical details about heading syntax