fix: use 11tydata.js for conditional about page permalink

Using a JavaScript data file to return boolean false for permalink
when about.md exists, instead of trying to compute it in Nunjucks
which returns string "false" and causes errors.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Ricardo
2026-02-02 12:34:01 +01:00
parent 829395a2cd
commit f03e48e4db
2 changed files with 21 additions and 2 deletions

21
about.11tydata.js Normal file
View File

@@ -0,0 +1,21 @@
// Template data file for about.njk
// Dynamically sets permalink based on whether about.md exists in content/pages/
import { existsSync } from "fs";
import { resolve, dirname } from "path";
import { fileURLToPath } from "url";
const __dirname = dirname(fileURLToPath(import.meta.url));
export default function() {
// Check for about.md in content/pages/ directory
const aboutPath = resolve(__dirname, "content/pages/about.md");
const aboutExists = existsSync(aboutPath);
return {
// If about.md exists, disable this template's permalink
// If not, use /about/ as the permalink
permalink: aboutExists ? false : "/about/",
// Also exclude from collections if about.md exists
eleventyExcludeFromCollections: aboutExists
};
}

View File

@@ -1,8 +1,6 @@
---
layout: layouts/base.njk
title: About
eleventyComputed:
permalink: "{% set aboutPageExists = false %}{% for page in collections.pages %}{% if page.fileSlug == 'about' %}{% set aboutPageExists = true %}{% endif %}{% endfor %}{% if aboutPageExists %}false{% else %}/about/{% endif %}"
---
<article class="h-card">
<header class="mb-6 sm:mb-8 flex flex-col sm:flex-row gap-6 sm:gap-8 items-start">