fix index files in english permalinks

This commit is contained in:
yuki 2025-10-16 08:31:39 -03:00
parent 296b036db1
commit c7e72eb273
Signed by: yuki
GPG key ID: 0C98E6FF04EC3915

View file

@ -1,19 +1,21 @@
module.exports = { module.exports = {
lang: "en", lang: "en",
permalink: data => { permalink: (data) => {
// `data.page.filePathStem` is the input path without extension, starting with a leading slash // data.page.filePathStem: e.g., "/en/index", "/en/blog/index", "/en/blog/test-post"
// e.g. "/en/index" or "/en/blog/test-post" let stem = data.page.filePathStem;
const stem = data.page.filePathStem;
if (stem === "/en/index") { // strip the leading /en/ prefix
// For /en/index.md → /index.html
return "/index.html";
}
if (stem.startsWith("/en/")) { if (stem.startsWith("/en/")) {
// For /en/anything-else.md (including subfolders), remove only the first /en stem = stem.replace(/^\/en/, "");
// e.g. /en/blog/test-post → /en/blog/test-post/index.html
return `${stem.replace(/^\/en/, "")}/index.html`;
} }
// fallback: default 11ty behavior
return data.page.outputPath; // handle index files: If ends with /index, just use stem + /index.html → e.g., /blog/index.html
// this avoids appending extra /index.html if already ending in /index
if (stem.endsWith("/index")) {
return `${stem}.html`; // /blog/index.html
}
// for non-index files: append /index.html for pretty URLs (e.g., /blog/test-post → /blog/test-post/index.html, URL /blog/test-post/)
return `${stem}/index.html`;
} }
}; };