Two fixes following the tabs removal:
1) Nav was a FLAT list of 18 section labels with no expand/indent, because
navigation.sections rendered them as non-collapsible group labels and
navigation.prune stripped inactive children. Disabled both → the left
sidebar is now a proper COLLAPSIBLE, nested, indented tree (14 toggles,
chevrons, collapsed by default). No size penalty (88213 vs 88516 bytes).
2) Home had a single H2, so its right-hand 'On this page' TOC was empty. Added
'## Explore the Ecosystem' (badge cards) and '## Trending Now' (digest) to
join the existing '## The Cloud Native Universe We Track' — the home's right
TOC now lists three real sections.
Net effect: both side columns are now useful on every page, incl. the home —
left = full collapsible directory, right = per-page section map.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
18 top-level sections overflowed the horizontal tab bar on a laptop (~3300px of
labels vs ~1400px viewport), forcing horizontal scroll to reach the right-side
dimensions, and left the sidebar nearly empty on top-level pages like the home.
Disabling navigation.tabs (+ .sticky) moves the sections into the standard
vertical left sidebar: it handles 18 collapsed sections via normal vertical
scroll, stays populated on every page (incl. the home), and nothing clips.
Verified: the home nav goes from 23 rendered links (mostly the tab bar) to the
full 178-link tree, with 0 tab elements. Theme-only change (the optimizer's nav
sync only rewrites the nav: block, so this is preserved).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Adds a second JSON-LD block per page (a schema.org CollectionPage tied to the
existing WebSite/Organization @graph) carrying the page name, description, URL,
and datePublished / dateModified fed by the git-revision-date plugin's raw ISO
dates. Enables richer search results (article/collection rich snippets) with
real freshness dates. Template-only change (docs/overrides/main.html), applied
at build time; the homepage is skipped (it is already the WebSite entity).
Verified: every content page emits a valid CollectionPage with both dates
(e.g. Kubernetes datePublished=2026-05-18 dateModified=2026-06-20); the home
carries only the WebSite+Organization graph.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Enrich each page's meta description with its top-ranked resource names
(long-tail keywords) instead of a pure template — e.g. 'Top Kubernetes
resources for 2026, AI-ranked: Helm, kube-prometheus and more — curated Cloud
Native tools, guides and references.' URL/path-like and emoji-laden titles are
filtered out; pages whose top links are all URL-like fall back to the clean
template. Capped at ~160 chars on a word boundary.
- Enable git-revision creation dates (enable_creation_date: true) so every page
footer shows both 'Created' and 'Last update' — an age/freshness signal.
Verified locally: descriptions are clean, tool-named, 126-151 chars; the footer
renders both dates. Pages pick up the new front-matter on the next Publisher run.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Every V2 page previously fell back to the identical global site_description
(duplicate meta descriptions = SEO penalty across ~140 pages). The generator now
emits a unique description: front-matter per page — derived from the page title
and its strategic dimension — which Material renders as <meta name=description>
and og:description. Topic Map and Methodology get tailored descriptions too.
Also add v2-docs/robots.txt (deployed at the site root) allowing full crawl and
referencing both the V2 (root) and V1 (/v1/) sitemaps.
Verified locally: each built page now carries a distinct meta description, and
robots.txt lands in the build output. The ~140 generated pages pick up their
front-matter on the next V2 Publisher run.
Note: the 12 redirect-stub pages (chef->ansible, react->javascript, ...) were
left as-is — they already 0s meta-refresh redirect with canonical pointing at
the target, which is better SEO than noindex (and the redirects plugin would
overwrite any front-matter anyway).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The Technical Tags Index TOC was a flat 80-entry numbered list that buried the
8 meaningful maturity tags under a long tail of one-resource 'X Content'
language tags, with colliding anchors (C / C# / C++ all -> #c-content) and a
'1 resources' grammar bug.
- Group the TOC: 'Maturity and Quality' as a clean numbered list; 'Technical
Domains' and 'Language and Format' as compact, count-sorted inline pill rows.
- Precompute unique, explicit heading anchors ({#slug}) shared by the TOC and
the section headers (c-sharp-content, c-plus-plus-content, dedup counter),
fixing the collisions.
- Correct singular/plural ('1 resource').
- Filter non-language language values (En, Not Applicable, Multi-Language,
Polyglot, ...) so they no longer create meaningless tag buckets.
Validated: 0 markdownlint errors on the regenerated tags.md.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Add a Database Architecture diagram (YAML + SQLite coexistence: inventory.sql
source-of-truth, in-memory SQLite, inventory.yaml mirror, schema) in 6.1.3,
inside a collapsible <details>.
- Add a full Data Lifecycle diagram (discovery -> ingestion -> maintenance/
enrichment -> render -> deploy + GC) in 6.3, inside a collapsible <details>.
- Fix mermaid text overflow in the Division-of-Labor, Agentic Data Flow, Debate
Protocol and Deployment Lifecycle diagrams by wrapping long node labels with
<br/>; remove a duplicate Z-->B edge.
- Add a 'V2 Home Restructure and SEO (v2.9.16-v2.9.20)' section documenting the
Topic Map & Methodology pages, per-page last-updated dates, JSON-LD, branded
404, privacy-friendly embeds and deterministic generated artifacts.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Follow-up to v2.9.19: deriving lastBuildDate from _meta.last_updated only moved
the drift one level — that analysis timestamp is itself bumped on every publish
even when the ranked content is unchanged, so feed.xml kept differing between
develop and master. Use the freshest item's content date instead (the items only
change when the ranking actually changes). Verified: deterministic across reruns,
and the develop and master digests both yield 2026-06-18, so feed.xml is now
byte-identical across branches — the drift is fully eliminated.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>