Skip to content

๐Ÿž๐Ÿ”ง๏ผšstart each health file at heading level one - #885

Merged
OpenINFbot merged 1 commit into
mainfrom
fix/conventional-heading-levels
Aug 10, 2026
Merged

๐Ÿž๐Ÿ”ง๏ผšstart each health file at heading level one#885
OpenINFbot merged 1 commit into
mainfrom
fix/conventional-heading-levels

Conversation

@DerekNonGeneric

Copy link
Copy Markdown
Member

Pull Request Purpose

This PR contains the following:

  • ๐Ÿž๐Ÿ”ง bugfixing (๐Ÿœ/๐ŸฆŸ/๐Ÿ›/๐Ÿฆ—/๐Ÿ et al.)
  • ๐Ÿ†•๐ŸŽ implementation of new feature(s)
  • โ™ป๏ธ refactoring(s)
  • ๐Ÿ“„ documentation modification(s)
  • ๐Ÿ”ฎ other

Testing

  • yes (bugfixes and features will not be merged without tests)
  • no

Heading levels in Markdown; no code path to cover. Verified each file now has exactly one h1 (so MD025 stays satisfied) and that only heading lines are touched.

Breaking Changes

  • yes (breaking changes will not be merged unless necessary)
  • no

Anchors are generated from heading text, not level, so existing deep links keep working.

Description

Every health file opened at ## and hung its sections off that at ###:

## Support[^1]
### Resources

So the document title was a second-level heading and nothing in the file was ever first-level. MD002 and MD041 are both disabled in .markdownlint.jsonc, which is why this went unremarked.

This bites any consumer that lifts the title out of the document to render as the page heading, because the sections are then two levels below it. openinf.github.io does exactly that โ€” it imports these five files as pages and renders the title as the page's h1, leaving:

<h1>Support โ€ข Frequently Asked Questions</h1>
<h3>Resources</h3>

which the W3C validator rejects: The heading โ€œh3โ€ โ€ฆ follows the heading โ€œh1โ€ โ€ฆ, skipping 1 heading level.

Promoting everything one level fixes it at the source. Each file now opens at #, sections sit at ##, and the two subsections in CONTRIBUTING.md at ### โ€” which is also just how a standalone document is normally written, so these read no worse on GitHub.

file headings before after
CODE_OF_CONDUCT.md 1ร—## 1ร—#
CONTRIBUTING.md 1ร—##, 9ร—###, 2ร—#### 1ร—#, 9ร—##, 2ร—###
SECURITY.md 1ร—##, 2ร—### 1ร—#, 2ร—##
SUPPORT.md 1ร—##, 1ร—### 1ร—#, 1ร—##
VISION.md 1ร—## 1ร—#

Important

Please hold this until openinf.github.io#1785 is ready to land with it. That site's importer currently strips titles with a global regex (/^## (.*)\n\n/gm), which is harmless only while ## appears once per file. Once sections are ##, running that importer unchanged would strip every section heading out of the imported copy. The site PR fixes the importer to strip only the title; merging these together avoids the window.

Follows #883 and #884.

List of any relevant issue numbers: none

Every one of these documents opened at `##` and hung its sections off
that at `###`, so the document title was a second-level heading and
nothing was ever first-level. MD002 and MD041 are both disabled here,
which is why it went unremarked.

Consumers that lift the title out of the document and render it as the
page heading are left with sections at `###` beneath an `h1`, skipping
a level โ€” openinf.github.io does exactly that, and the W3C validator
fails it. Promoting everything one level fixes that at the source and
leaves these reading as ordinary documents on GitHub.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@OpenINFbot OpenINFbot changed the title ๐Ÿž๐Ÿ”ง Start each health file at heading level one ๐Ÿž๐Ÿ”ง๏ผšstart each health file at heading level one Aug 10, 2026
@OpenINFbot
OpenINFbot merged commit 22b52ae into main Aug 10, 2026
4 of 5 checks passed
@OpenINFbot
OpenINFbot deleted the fix/conventional-heading-levels branch August 10, 2026 01:11
DerekNonGeneric added a commit to OpenINF/openinf.github.io that referenced this pull request Aug 10, 2026
Running compile.siteifyHealthFiles has been broken for a while. It is
only invoked when the health files are missing, so nothing ran it and
nobody noticed its output no longer built.

Permalinks came out without a trailing slash, so Eleventy wrote an
extensionless file instead of `<permalink>/index.html` and failed the
build outright. Every committed copy carries the slash, so these had
been repaired by hand at some point and the task never learned.

The title heading was also stripped with a global regex, harmless only
while `##` appeared once per file. OpenINF/.github#885 moves those
documents to an `h1` title with `##` sections, at which point the old
pattern would have taken all nine of CONTRIBUTING.md's section
headings along with the title. It now strips the first heading only,
and reads either level so the import works before and after that lands.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants