diff --git a/hugo.toml b/hugo.toml
index 76c6e1a..e41b1a4 100644
--- a/hugo.toml
+++ b/hugo.toml
@@ -2,18 +2,25 @@ baseURL = "https://sbomify.com"
title = "Sbomify"
languageCode = "en-us"
-# Pagination (matches jekyll-paginate-v2: 12 per page)
-[pagination]
- pagerSize = 12
- path = "page"
-
# Enable .GitInfo (replaces _plugins/git_dates.rb)
+#
+# Keep this and ignoreFiles ABOVE the first table header. TOML assigns every
+# bare key to the table that precedes it, so while these sat under
+# [pagination] they were parsed as pagination.enableGitInfo /
+# pagination.ignoreFiles -- silently dropped by Hugo, with no root-level
+# enableGitInfo in `hugo config` at all. The visible symptom was .GitInfo nil
+# and .Lastmod zero on every page, which put "0001-01-01T00:00:00Z" into the
+# dateModified of 28 FAQ pages.
enableGitInfo = true
-
# Ignore leftover Jekyll files
ignoreFiles = ["_config\\.yml$", "_config_development\\.yml$", "Gemfile", "Gemfile\\.lock", "convert_to_webp\\.rb$"]
+# Pagination (matches jekyll-paginate-v2: 12 per page)
+[pagination]
+ pagerSize = 12
+ path = "page"
+
# Match Jekyll permalink exactly: /:year/:month/:day/:slug/
[permalinks]
[permalinks.page]
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
index 2782098..cfa3a6a 100644
--- a/layouts/partials/head.html
+++ b/layouts/partials/head.html
@@ -82,7 +82,11 @@
{{- range site.Params.social.profiles -}}
{{- if eq .platform "LinkedIn" -}}{{ $linkedinUrl = .url }}{{- end -}}
{{- end -}}
- {{ if eq .Type "posts" }}
+ {{/* .Kind "page" excludes the /blog/ listing and its paginated pages, which
+ share Type "posts" but have no date of their own — they were emitting
+ article:published_time "0001-01-01T00:00:00Z". They get their own
+ CollectionPage schema further down. */}}
+ {{ if and (eq .Type "posts") (eq .Kind "page") }}
@@ -210,7 +214,9 @@
{{ end }}
- {{ if eq .Type "posts" }}
+ {{/* .Kind "page" only — the /blog/ listing is not a BlogPosting, and was
+ emitting one with datePublished "0001-01-01T00:00:00Z". */}}
+ {{ if and (eq .Type "posts") (eq .Kind "page") }}
+
+ {{/* The listing's breadcrumb used to come from the blog-post block, which is
+ now restricted to .Kind "page". Emitted here so /blog/ and its paginated
+ pages keep their trail without also claiming to be a BlogPosting. */}}
+
+
{{ end }}
{{ if eq .RelPermalink "/case-studies/" }}
@@ -574,8 +607,10 @@
"name": {{ .Title | jsonify | safeJS }},
"description": {{ (.Params.description | default site.Params.description) | jsonify | safeJS }},
"url": "{{ .Permalink }}",
- "dateModified": "{{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" }}",
- "isPartOf": {
+ {{/* Guarded: this is the field that shipped "0001-01-01T00:00:00Z" on 28
+ FAQ pages while enableGitInfo was silently inert. */}}
+ {{ if not .Lastmod.IsZero }}"dateModified": "{{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" }}",
+ {{ end }}"isPartOf": {
"@type": "WebSite",
"name": "{{ site.Title }}",
"url": "{{ site.BaseURL }}"