v0.4.0
See CHANGELOG.md for full release notes.
Highlights
hreflang alternates for multilingual EmDash sites. When Astro i18n is configured and content entries are linked via translation_group, the plugin now emits one <link rel="alternate" hreflang="…" href="…"> per published sibling plus an automatically-resolved x-default. URLs are built from each collection's urlPattern + locale prefix rules, matching canonical URLs. BCP 47 tags are normalized on output (fr-ca → fr-CA).
Zero cost on single-locale sites. Gated on isI18nEnabled() before any database call.
New dependency
@jdevalk/astro-seo-graph@^0.2.1— runtime dep for the purebuildAlternateLinkshelper. Pure TypeScript, no Astro runtime impact (Astro is a peer dep satisfied transitively through EmDash).
Dependency range updates
@jdevalk/seo-graph-core:^0.1.0-alpha.0→^0.1.0
Tests
30 new tests: 12 URL-construction tests covering locale-prefix rules and BCP 47 region tags, 18 hreflang adapter tests including a reciprocity invariant that verifies the same URL set is emitted regardless of which sibling is the "current" page.
🤖 Generated with Claude Code