fix: improve redirect map file discovery

- Fix fallback logic (empty object is truthy)
- Try multiple paths for Docker and local dev
- Add debug logging for file discovery

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Ricardo
2026-01-24 15:13:11 +01:00
parent 46f4559fe3
commit 3c21393989

View File

@@ -74,20 +74,38 @@ function mergeAliases(...maps) {
return merged;
}
// Parse redirect maps from package root (one level up from _data)
// Parse redirect maps from /app/pkg (Docker) or parent directory (local dev)
// In Docker: eleventy-site is at /app/pkg/eleventy-site, maps are at /app/pkg/
// In local dev: maps might be at ../
const pkgRoot = resolve(__dirname, "../..");
// Try multiple possible locations
const mapLocations = [
resolve(pkgRoot, "redirects.map.rmendes"),
resolve(pkgRoot, "old-blog-redirects.map.rmendes"),
// Fallback to template files if .rmendes versions don't exist
resolve(pkgRoot, "redirects.map"),
resolve(pkgRoot, "old-blog-redirects.map"),
];
// Helper to find first existing file
function findFile(candidates) {
for (const path of candidates) {
if (existsSync(path)) {
console.log(`[urlAliases] Found: ${path}`);
return path;
}
}
console.log(`[urlAliases] No file found in: ${candidates.join(", ")}`);
return null;
}
const microblogAliases = parseRedirectMap(mapLocations[0]) || parseRedirectMap(mapLocations[2]);
const knownAliases = parseRedirectMap(mapLocations[1]) || parseRedirectMap(mapLocations[3]);
// Try multiple possible locations for each map type
const microblogMapPath = findFile([
resolve(pkgRoot, "redirects.map"),
resolve(pkgRoot, "redirects.map.rmendes"),
resolve(__dirname, "../../redirects.map"),
]);
const knownMapPath = findFile([
resolve(pkgRoot, "old-blog-redirects.map"),
resolve(pkgRoot, "old-blog-redirects.map.rmendes"),
resolve(__dirname, "../../old-blog-redirects.map"),
]);
const microblogAliases = microblogMapPath ? parseRedirectMap(microblogMapPath) : {};
const knownAliases = knownMapPath ? parseRedirectMap(knownMapPath) : {};
const allAliases = mergeAliases(microblogAliases, knownAliases);