Add SEO metadata and simplify hero slideshow controls - #42
Merged
Conversation
Fixes #35: component pages shared one fallback meta description. Add a required `description` field to the components schema, write a one-line description for each of the 23 component docs, and print those descriptions in /llms.txt (matching the docs section). Fixes #36: blog posts shipped generic page metadata. BaseLayout now takes an optional `article` prop (og:type article plus article:published_time and article:author) and a named `head` slot. BlogPostLayout uses both to emit BlogPosting JSON-LD and titles posts "X | mCSS Blog". Remove the slideshow play/pause button: clicking any pagination dot already stops autoplay, which satisfies WCAG 2.2.2. Drops the button markup, its JS, and its CSS; dist bundles regenerated. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
✅ Deploy Preview for mcssdev ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
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.

Closes #35 and #36, plus a small hero cleanup.
Component meta descriptions (#35)
Every
/componentspage fell back to the same default meta description, so search engines saw duplicates across the whole section.descriptionfield to the components schema incontent.config.ts.BaseLayoutmeta/OG description automatically./llms.txtnow prints component descriptions, matching how it already handled the docs section.Blog post SEO (#36)
Posts shipped generic
websitepage metadata with no structured data and a bare title.BaseLayout.astrogained an optionalarticleprop ({ publishedTime, author }) that switchesog:typetoarticleand emitsarticle:published_time/article:author, plus a namedheadslot for extra head markup.BlogPostLayout.astrouses both to inject aBlogPostingJSON-LD script (headline, description, datePublished, author, url, image when present) and titles postsX | mCSS Blog.Hero slideshow play/pause removal
Clicking any pagination dot already stops autoplay, which is enough to satisfy WCAG 2.2.2, so the separate play/pause button was redundant.
renderPlayPause, listeners, aria state) fromHero.astro, and the.hero_pagination_playPauserules fromcomponent.hero.css. Regenerateddist/.Verification
astro check(0 errors), fullastro build, and a live browser check of the slideshow demo: button gone, dots advance slides, and clicking a dot keeps the slideshow paused past the autoplay interval.🤖 Generated with Claude Code