From 266499ac2f2767690c5b1eeba8e2e92b341cfd15 Mon Sep 17 00:00:00 2001 From: Nubenetes Bot Date: Sat, 20 Jun 2026 12:21:58 +0200 Subject: [PATCH] feat(v2/seo): per-page last-updated dates + JSON-LD structured data MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit C — git-revision-date-localized plugin: adds a 'Last update' date to every V2 page (freshness signal for SEO and reader trust). Added the dependency to requirements.txt, enabled it in v2-mkdocs.yml (type: date, fallback_to_build_date so the build never fails), and set fetch-depth: 0 on the 06 deploy checkout so the plugin sees full git history (otherwise every page would show the build date). D — JSON-LD schema.org structured data: WebSite (with a sitelinks SearchAction) + publishing Organization, injected via an extrahead block in docs/overrides/ main.html (shared V1/V2). Enables richer search results / knowledge-panel eligibility. Validated: build exits 0, JSON-LD parses, 'Last update' renders. Co-Authored-By: Claude Opus 4.8 --- .github/workflows/06.deploy_final.yml | 3 ++ docs/overrides/main.html | 48 +++++++++++++++++++++++++++ requirements.txt | 1 + v2-mkdocs.yml | 7 ++++ 4 files changed, 59 insertions(+) diff --git a/.github/workflows/06.deploy_final.yml b/.github/workflows/06.deploy_final.yml index 2d50a8a1..0cb0867b 100644 --- a/.github/workflows/06.deploy_final.yml +++ b/.github/workflows/06.deploy_final.yml @@ -25,6 +25,9 @@ jobs: uses: actions/checkout@v6 with: submodules: true + # Full history so mkdocs-git-revision-date-localized can compute the + # real per-page "last updated" date (shallow clone => all build-date). + fetch-depth: 0 - name: Setup Python uses: actions/setup-python@v6 diff --git a/docs/overrides/main.html b/docs/overrides/main.html index 0de2f4a8..cb2f48ef 100644 --- a/docs/overrides/main.html +++ b/docs/overrides/main.html @@ -3,3 +3,51 @@ {% block announce %} New: Intelligence Digest — AI-curated trending resources across 26 categories {% endblock %} + +{#- + JSON-LD structured data (schema.org) for richer search results: declares the + WebSite (with a sitelinks SearchAction) and the publishing Organization. + Only the V2 portal uses this overrides dir (custom_dir: docs/overrides), so + this injects on the canonical nubenetes.com root; V1 uses the stock theme. +-#} +{% block extrahead %} + {{ super() }} + +{% endblock %} diff --git a/requirements.txt b/requirements.txt index 47253594..411a867e 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,3 +5,4 @@ youtube-transcript-api mkdocs-redirects>=1.2.3 mkdocs-minify-plugin>=0.8.0 mkdocs-rss-plugin>=1.15.0 +mkdocs-git-revision-date-localized-plugin>=1.3.0 diff --git a/v2-mkdocs.yml b/v2-mkdocs.yml index 950ebab3..2b43f42e 100644 --- a/v2-mkdocs.yml +++ b/v2-mkdocs.yml @@ -58,6 +58,13 @@ theme: plugins: - search + # "Last updated" per-page date (freshness signal for SEO + reader trust). + # Needs full git history (fetch-depth: 0 in 06.deploy_final.yml); falls back + # to the build date when history is unavailable so the build never fails. + - git-revision-date-localized: + enable_creation_date: false + type: date + fallback_to_build_date: true - privacy - social: cards: true