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:
21
about.11tydata.js
Normal file
21
about.11tydata.js
Normal 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
|
||||
};
|
||||
}
|
||||
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user