You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SEO improvement so crawlers understand the site's information tree
(features / docs / blog) and how each section's content branches into
the three shipped locales (en / es / zh-CN).
Changes:
- **New /features index page** (website/src/pages/features/{index.tsx,
index.module.css}). Renders FeatureGrid wrapped in a thin header
(eyebrow + H1 + intro) so the nine /features/<slug> pages now have
a parent aggregator, matching the pattern /blog and /docs already
have. i18n-ready via translate() with localized OG metadata.
- **FeaturesLayout sidebar gains an "Overview" link** back to the new
/features index, with active-state detection that doesn't false-match
on /features/<slug> subpaths.
- **Sitemap plugin enriched** via createSitemapItems: every URL in each
per-locale sitemap now carries `xhtml:link rel="alternate"
hreflang="..."` entries for all three locales + an x-default — Google
uses these to cluster the per-locale URLs as translations rather than
duplicates. 80 URLs × 4 alternates × 3 sitemaps = 960 hreflang
annotations emitted.
- **lastmod populated** for docs and blog posts via showLastUpdateTime
on both content plugins + experimental_vcs: 'git-eager' on the
future config so git history reads are eager-cached at build start.
Aggregator pages (blog tag indexes, archive, author pages) correctly
have no lastmod — they don't map to a single source file.
- **sitemap-index.xml** (static, website/static/) aggregates the three
per-locale sitemaps so crawlers discover all locales from one entry
point.
- **robots.txt** (static, website/static/) declares `Sitemap:` pointing
at sitemap-index.xml. Without this, the multi-sitemap setup is not
auto-discoverable.
- **i18n keys added** for the /features page (eyebrow, H1, intro, OG
title, OG description, sidebar Overview label) in es + zh-CN code.json.
Build verified locally: 80 URLs × 3 locales, hreflang on every URL,
lastmod on 23 EN / 16 ES / 16 zh-CN URLs (all content; aggregators
correctly skipped).
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: website/i18n/es/code.json
+24Lines changed: 24 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -83,6 +83,30 @@
83
83
"message": "Qué trae StrayMark",
84
84
"description": "Title for the left sidebar shared across feature pages"
85
85
},
86
+
"features.sidebar.overview": {
87
+
"message": "Resumen",
88
+
"description": "Sidebar link back to the /features index page from any feature subpage"
89
+
},
90
+
"features.index.eyebrow": {
91
+
"message": "Características",
92
+
"description": "Small eyebrow label above the /features H1"
93
+
},
94
+
"features.index.title": {
95
+
"message": "Qué trae StrayMark",
96
+
"description": "H1 of the /features index page"
97
+
},
98
+
"features.index.intro": {
99
+
"message": "Nueve capacidades que componen StrayMark — desde la disciplina cognitiva y la gobernanza repo-native hasta la auditoría multi-modelo y la observación emergente. Elegí la que mapea al problema que estás resolviendo; cada una enlaza a una página dedicada.",
100
+
"description": "Intro paragraph above the FeatureGrid on the /features index page"
101
+
},
102
+
"meta.features.title": {
103
+
"message": "Qué trae StrayMark — todas las características",
104
+
"description": "OG/Twitter title and browser tab for the /features index (the \" | StrayMark\" suffix is appended by Docusaurus automatically)"
105
+
},
106
+
"meta.features.description": {
107
+
"message": "Todas las capacidades de StrayMark en una página: charters, gobernanza, auditoría multi-modelo, detección de drift TDE, el CLI, skills para agentes y observación emergente.",
108
+
"description": "OG/Twitter description and meta description for the /features index"
message: "What's in the box — all StrayMark features",
11
+
description:
12
+
'OG/Twitter title and browser tab for the /features index (the " | StrayMark" suffix is appended by Docusaurus automatically)',
13
+
});
14
+
constmetaDescription=translate({
15
+
id: 'meta.features.description',
16
+
message:
17
+
'Every StrayMark capability on one page: charters, governance, multi-model audit, TDE drift detection, the CLI, agent skills, and emergent observation.',
18
+
description: 'OG/Twitter description and meta description for the /features index',
0 commit comments