docs: remove duplicate H1 from Blog 09 body#2435
Merged
Conversation
The published post at blog.wheels.dev/posts/wheels-deploy-kamal-port/
rendered with two <h1> elements: one auto-generated by PostLayout.astro
from the frontmatter title, and a second from the body's `# Porting
Kamal to CFML...` heading. The body's H1 was a duplicate; removing it
also drops the redundant `_Peter Amiri, Wheels Core Team_` byline and
the trailing `---` divider, since PostLayout already renders author and
date below its auto-generated title.
Net: body now starts with the lead paragraph ("You just finished a
Wheels app..."), and the page renders one H1, one author/date line, and
the body content — matching the cleaner layout of other recent posts
like 1-0-we-are-production-ready.
Same edit applied to the source skeleton at
docs/releases/blog-skeletons/09-wheels-deploy.md so future re-imports
or re-exports stay clean.
Note: this fixes Blog 09 only. Several existing posts (e.g.
why-we-rebuilt-our-ci-pipeline, wheels-vs-code-extension) also
duplicate the title in their bodies; cleaning those up is out of scope
for this PR.
This was referenced May 6, 2026
bpamiri
added a commit
that referenced
this pull request
May 6, 2026
…2437) * docs: switch Social 4 links to canonical blog.wheels.dev / guides.wheels.dev All 11 GitHub-blob source links across the four channels (Slack, LinkedIn, X reply 3, GitHub Discussions) replaced with their guides.wheels.dev equivalents — readers now land on the styled docs instead of raw MDX. Each canonical URL verified to return HTTP 200. Also adds a canonical blog-post URL prominent in each channel: - Slack: prepended `<...|Read the full post>` to the deployment-guide line - LinkedIn: new "Read the full post:" line above the docs links - X reply 3: swapped the deployment-guide link for the canonical blog URL - Discussions: blockquote callout below the lead paragraph linking to the post Third-party links left alone: kamal-deploy.org and basecamp/kamal-proxy on GitHub remain (correct destinations for the upstream Kamal references). Net: 11 GH-blob URLs removed, 11 canonical-guides URLs added, 4 blog-canonical URLs added across the four channels. * docs: strip duplicate H1 + byline + divider from why-we-rebuilt post The post's body opened with `# Why We Rebuilt Our CI Pipeline From 40 Minutes to 82 Seconds` followed by `_April 9, 2026 — Peter Amiri, Wheels Core Team_` and a `---` divider — all of which PostLayout.astro already renders from frontmatter (title, author, date). Result was two <h1> elements on the live page, same pattern that bit Blog 09 in #2435. Body now starts directly with the lead paragraph ("For years, the Wheels CI pipeline ran every commit through a gauntlet..."). The "82 seconds" substance is preserved in the next paragraph. Spotted via a corpus-wide sweep: 150 tracked posts scanned, 140 already clean, 9 use H1 as section markers (correctly skipped), and only this one + Blog 09 had the duplicate-title pattern. Tracked broader cleanup + enforcement as #2436. Note: the body's longer subtitle ("From 40 Minutes to 82 Seconds") is lost as a heading — but it remains in the lead paragraph as the "82 seconds" claim, so the rhetorical hook is preserved.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fix follow-up to #2434. The published post at https://blog.wheels.dev/posts/wheels-deploy-kamal-port/ rendered with two
<h1>elements:PostLayout.astro:22from the frontmattertitlefield# Porting Kamal to CFML...headingThe body H1 was a duplicate. Removing it also drops the redundant
_Peter Amiri, Wheels Core Team_byline and the trailing---divider, sincePostLayoutalready renders author and date below the auto-generated title (PostLayout.astro:24-29).Same edit applied to the source skeleton at
docs/releases/blog-skeletons/09-wheels-deploy.mdso future re-imports or re-exports of this post stay clean.Verification
After merge:
Diff
12 lines removed, 0 added. Each file loses the same 6-line block: the body H1, blank,
_byline_, blank,---divider, blank.Out of scope
A spot-check of a handful of existing posts shows the duplicate-H1 pattern is inconsistent across the corpus:
<h1>countwhy-we-rebuilt-our-ci-pipeline1-0-we-are-production-readywheels-vs-code-extension-supercharge-your-wheels-developmentSo there's no enforced convention. This PR only fixes Blog 09 — sweeping the other posts (and ideally adding a content-collection schema or remark plugin to prevent future duplication) is a separate cleanup. Worth filing as a follow-up.
Test plan
docs:type, no scope)web-deploy.ymlbuildssite-blogcleanly (no Astro errors — same diff, just removing 6 lines of body)blog.pngbaseline captures the index, NOT the per-post page, so removing the body H1 should not require a baseline update. If it fails, the index card layout would have to be using post body content (worth investigating).curl https://blog.wheels.dev/posts/wheels-deploy-kamal-port/ | grep -c '<h1'returns1