Files
awesome-kubernetes/docs/overrides/main.html
Nubenetes Bot bfdec79f41 feat(v2/seo): per-page CollectionPage JSON-LD with datePublished/dateModified
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>
2026-06-20 13:51:37 +02:00

83 lines
3.1 KiB
HTML

{% extends "base.html" %}
{% block announce %}
<strong>New:</strong> <a href="./tech-digest/">Intelligence Digest</a> — 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() }}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"@id": "https://nubenetes.com/#website",
"url": "https://nubenetes.com/",
"name": "Nubenetes",
"description": "AI-curated portal for the modern Cloud Native ecosystem: high-density, ranked selection of top-tier Kubernetes, DevOps and Cloud resources.",
"publisher": { "@id": "https://nubenetes.com/#organization" },
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "https://nubenetes.com/?q={search_term_string}"
},
"query-input": "required name=search_term_string"
}
},
{
"@type": "Organization",
"@id": "https://nubenetes.com/#organization",
"name": "Nubenetes",
"url": "https://nubenetes.com/",
"logo": {
"@type": "ImageObject",
"url": "https://nubenetes.com/images/favicon-ultra.png"
},
"sameAs": [
"https://github.com/nubenetes/awesome-kubernetes",
"https://twitter.com/nubenetes",
"https://www.linkedin.com/groups/1937212/"
]
}
]
}
</script>
{#-
Per-page structured data: a CollectionPage (each V2 page is a curated
collection of resources) tied to the WebSite/Organization above, with
datePublished / dateModified fed by the git-revision-date plugin. Enables
richer search results. Skipped on the homepage (already the WebSite entity).
-#}
{% if page and not page.is_homepage and page.canonical_url %}
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "CollectionPage",
"@id": {{ (page.canonical_url ~ "#webpage") | tojson }},
"url": {{ page.canonical_url | tojson }},
"name": {{ (page.title or config.site_name) | tojson }},
"isPartOf": { "@id": "https://nubenetes.com/#website" },
"publisher": { "@id": "https://nubenetes.com/#organization" },
"inLanguage": "en"
{%- if page.meta and page.meta.description %},
"description": {{ page.meta.description | tojson }}
{%- endif %}
{%- if page.meta and page.meta.git_creation_date_localized_raw_iso_date %},
"datePublished": {{ page.meta.git_creation_date_localized_raw_iso_date | tojson }}
{%- endif %}
{%- if page.meta and page.meta.git_revision_date_localized_raw_iso_date %},
"dateModified": {{ page.meta.git_revision_date_localized_raw_iso_date | tojson }}
{%- endif %}
}
</script>
{% endif %}
{% endblock %}