From 0d439966f7c8018dfe8afccbab1331b920656790 Mon Sep 17 00:00:00 2001 From: Ricardo Date: Tue, 24 Feb 2026 19:57:10 +0100 Subject: [PATCH] fix: guard page.url for falsy values in ogSlug computation Pages with permalink:false (like about.njk) have page.url as false, which crashes inline string operations. Use the ogSlug filter with (page.url or "") guard to handle falsy values safely. Also removes debug comment from previous debugging session. --- _includes/layouts/base.njk | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/_includes/layouts/base.njk b/_includes/layouts/base.njk index 5bc99b3..bc5278e 100644 --- a/_includes/layouts/base.njk +++ b/_includes/layouts/base.njk @@ -23,17 +23,11 @@ - {# Compute OG slug inline from page.url using string ops — avoid filter calls - which may be affected by Eleventy 3.x parallel rendering race conditions. - page.url is correct (verified via og:url), compute slug inline. #} - {% set _urlParts = page.url.split('/') | reject("equalto", "") | list %} - {% if _urlParts | length >= 5 %} - {% set _ogSlug = _urlParts[1] + '-' + _urlParts[2] + '-' + _urlParts[3] + '-' + _urlParts[4] %} - {% else %} - {% set _ogSlug = _urlParts | last | default("") %} - {% endif %} + {# Compute OG slug from page.url — NOT permalink or eleventyComputed values. + page.url may be false for pages with permalink:false (e.g., about.njk), + so guard with (page.url or ""). The ogSlug filter handles empty strings. #} + {% set _ogSlug = (page.url or "") | ogSlug %} {% set _hasOg = _ogSlug | hasOgImage %} - {% if ogPhoto and ogPhoto != "" and (ogPhoto | length) > 10 %} {% elif image and image != "" and (image | length) > 10 %}