Immutable
release. Only release title and notes can be modified.
Added
- Docs site SEO infrastructure. The VitePress site at
https://studnicky.github.io/yamete now ships a full SEO surface area:
per-page canonical /og:/twitter:meta viatransformPageData,
JSON-LD blocks forSoftwareApplication+WebSite+Organization- per-page
BreadcrumbList, search-console verification slots
(suppressed at build time until populated inpackage.json→
yamete.seo),hreflangdeclarations, modernrobotshints
(max-snippet:-1,max-image-preview:large), and a complete favicon
stack withmanifest.webmanifestfor PWA-style install.
- per-page
- Sitemap + RSS feed.
sitemap.xmlis generated from every rendered
page;feed.xmlis composed fromdocs/CHANGELOG.mdat build end
and linked from the head via<link rel="alternate" type="application/rss+xml">so release watchers, Sparkle-style
updaters, and GitHub-action notifiers can subscribe to version drops
without polling. llms.txtindex. A semantic table of contents at/llms.txt
surfaces the docs structure to retrieval-augmented language models in
the format proposed at https://llmstxt.org.- Release banner image. New
docs/public/og-image.{svg,png}
(1200×630 social card, pink theme, wincing face with impact rays)
drives the unfurl preview on Discord, Slack, iMessage, Twitter/X, and
LinkedIn. Newdocs/public/yamete-banner.svg.templateis stamped per
release byscripts/stamp-version.mjs(readsMARKETING_VERSIONfrom
project.yml) intoyamete-banner.svgwith the version pill visible;
the release workflow now prepends this banner at the top of every
GitHub release body via araw.githubusercontent.comURL. - GitHub repository social preview. New
docs/public/github-social.{svg,png}(1280×640, GitHub's recommended
Repository → Settings → General → Social preview dimensions). Upload
the PNG via the repo settings UI to control the unfurl card that
shows whengithub.com/Studnicky/yameteitself is shared on Discord
/ Twitter / Slack / iMessage. GitHub provides no API for this
surface; the asset lives indocs/public/for convenient access. - Docs-build CI gate.
ci.ymlgains adocs-buildjob that runs
npm ci,stamp-version:check,docs:build, and asserts the SEO
outputs (sitemap, feed, robots, manifest, OG image, stamped banner)
exist indocs/.vitepress/dist. Docs regressions are now caught at
PR time instead of after merge to master.
Fixed
- GitHub Pages deploy was failing since release 2.3.0 due to bare
*<display>*placeholders indocs/using.mdanddocs/CHANGELOG.md
which Vue's SFC parser read as unclosed HTML start tags during
VitePress'svite-plugin-vuepass. Replaced with<display>
entity escapes so the markdown italicises the placeholder without
triggering the HTML tokeniser. The newdocs-buildCI gate (above)
prevents this class of regression from reaching master again. - VitePress build no longer chokes on local-only design notes. The
gitignoreddocs/art/design-exploration markdown is now declared in
srcExcludeso VitePress's srcDir glob skips it. Previously the
files were silently picked up by local builds and could throw
interpolation parser errors on{{ }}brace pairs unrelated to the
shipped site.
Build & release pipeline
stamp-version.mjsscript readsMARKETING_VERSIONfrom
project.yml(the canonical macOS bundle version source of truth)
and stamps everydocs/public/*.svg.templateinto a sibling.svg
with__VERSION__replaced byv<version>. Hooked into
predocs:build.--checkmode exits non-zero if any output is
stale so CI flags pre-tag drift.render-og.mjsscript rasterisesog-image.svgand
yamete-banner.svgto PNG viasharp(devDep). Hooked into
predocs:buildafter stamp.release.ymlbanner verification step greps the stamped
yamete-banner.svgfor the version string and fails the workflow
if it doesn't match the tag — surfaces missednpm run stamp-version
invocations before the release notes go out.
SHA256: 5d6c46c290249aff27231a01cff155482376b3626e1a315bd33f0faa27efface