Documentation pages that carry both a front matter title: and a body heading fail the Markdown linter shipped with the template.
Request
What is confusing or missing
.github/linters/.markdown-lint.yml has no MD025 entry, so markdownlint applies its default front_matter_title pattern and treats a front matter title: as the document's top-level heading. A page that also opens with # Heading is then reported as having multiple top-level headings.
Both keys are wanted. MkDocs reads the front matter title: for navigation and the page title, and the body heading is what renders on github.com, where front matter is shown as a table rather than a title. Every repository generated from this template inherits the conflict, and the author is pushed toward dropping one of the two — losing either correct site navigation or a readable page on GitHub.
This surfaced in PSModule/Markdown#33, where capability documentation had to have title: stripped from three files to get a green lint run.
What is expected
A page carries a front matter title: and a body # Heading without the linter objecting, the same way the ecosystem's own documentation repository already works. MSXOrg/docs resolved this in its own copy of the same file:
MD025:
front_matter_title: "" # Allow a body H1 alongside the front matter title
The template's copy has never picked that up, so the two configurations have drifted.
Acceptance criteria
- A Markdown file with a front matter
title: and a body # Heading passes the linter.
- MD025 still reports a genuine second
# Heading in the body.
- Repositories generated from the template inherit the fix without further configuration.
Technical decisions
Set front_matter_title to empty rather than disabling MD025: An empty pattern stops front matter from being counted as a heading while leaving the rule enforcing what it is for — one top-level heading per document. Disabling MD025 outright would also stop catching a genuinely duplicated # Heading, which is a real defect and not a formatting preference.
Match MSXOrg/docs exactly: The same key, value, and comment, so the two files converge rather than diverging in a second direction. The wider drift between the two configurations — MD013 line length, MD041, MD060 — is visible but out of scope here; this issue fixes the one that blocks authoring.
Implementation plan
Configuration
Verification
Documentation pages that carry both a front matter
title:and a body heading fail the Markdown linter shipped with the template.Request
What is confusing or missing
.github/linters/.markdown-lint.ymlhas noMD025entry, so markdownlint applies its defaultfront_matter_titlepattern and treats a front mattertitle:as the document's top-level heading. A page that also opens with# Headingis then reported as having multiple top-level headings.Both keys are wanted. MkDocs reads the front matter
title:for navigation and the page title, and the body heading is what renders on github.com, where front matter is shown as a table rather than a title. Every repository generated from this template inherits the conflict, and the author is pushed toward dropping one of the two — losing either correct site navigation or a readable page on GitHub.This surfaced in PSModule/Markdown#33, where capability documentation had to have
title:stripped from three files to get a green lint run.What is expected
A page carries a front matter
title:and a body# Headingwithout the linter objecting, the same way the ecosystem's own documentation repository already works. MSXOrg/docs resolved this in its own copy of the same file:The template's copy has never picked that up, so the two configurations have drifted.
Acceptance criteria
title:and a body# Headingpasses the linter.# Headingin the body.Technical decisions
Set
front_matter_titleto empty rather than disabling MD025: An empty pattern stops front matter from being counted as a heading while leaving the rule enforcing what it is for — one top-level heading per document. Disabling MD025 outright would also stop catching a genuinely duplicated# Heading, which is a real defect and not a formatting preference.Match MSXOrg/docs exactly: The same key, value, and comment, so the two files converge rather than diverging in a second direction. The wider drift between the two configurations —
MD013line length,MD041,MD060— is visible but out of scope here; this issue fixes the one that blocks authoring.Implementation plan
Configuration
MD025block withfront_matter_title: ""to.github/linters/.markdown-lint.ymlVerification
title:and a body# Headinglints clean# Headinglines is still reported