From ad8af6f027f0bde2b8d5206d62e0942614551a7d Mon Sep 17 00:00:00 2001 From: Ricardo Date: Tue, 24 Feb 2026 18:54:39 +0100 Subject: [PATCH] fix: use page.url instead of permalink for ogSlug in templates permalink is set by eleventyComputed which cross-contaminates return values across pages during Eleventy 3.x parallel rendering. page.url is set by Eleventy's internal pipeline and is correct in templates (verified via og:url meta tag which always shows the right URL). --- _includes/layouts/base.njk | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/_includes/layouts/base.njk b/_includes/layouts/base.njk index 23d5f5e..3ded1d2 100644 --- a/_includes/layouts/base.njk +++ b/_includes/layouts/base.njk @@ -23,10 +23,12 @@ - {# Compute OG slug from permalink (frontmatter), NOT page.url or eleventyComputed. - permalink is per-file data immune to Eleventy 3.x parallel rendering race conditions. - page.url, page.inputPath, and eleventyComputed values can return data from OTHER pages. #} - {% set _ogSlug = permalink | ogSlug %} + {# Compute OG slug from page.url — NOT permalink or eleventyComputed values. + Eleventy 3.x parallel rendering (issue #3183) cross-contaminates eleventyComputed + return values across pages. permalink is set by eleventyComputed and is UNRELIABLE. + page.url is set by Eleventy's internal pipeline and IS correct in templates + (verified: og:url uses page.url and always shows the right URL). #} + {% set _ogSlug = page.url | ogSlug %} {% set _hasOg = _ogSlug | hasOgImage %} {% if ogPhoto and ogPhoto != "" and (ogPhoto | length) > 10 %}