From 374b6806d4bb21299a1bc81d420fffb5b0d1db68 Mon Sep 17 00:00:00 2001 From: eritque0arcus Date: Wed, 20 Aug 2025 21:03:34 -0500 Subject: [PATCH 1/2] fix: fix alias handle relative path incorrectly --- quartz/plugins/emitters/aliases.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/quartz/plugins/emitters/aliases.ts b/quartz/plugins/emitters/aliases.ts index 9cb9bd576..ebc3c5b44 100644 --- a/quartz/plugins/emitters/aliases.ts +++ b/quartz/plugins/emitters/aliases.ts @@ -1,4 +1,4 @@ -import { FullSlug, isRelativeURL, resolveRelative, simplifySlug } from "../../util/path" +import { FullSlug, resolveRelative, simplifySlug } from "../../util/path" import { QuartzEmitterPlugin } from "../types" import { write } from "./helpers" import { BuildCtx } from "../../util/ctx" @@ -9,11 +9,15 @@ async function* processFile(ctx: BuildCtx, file: VFile) { const ogSlug = simplifySlug(file.data.slug!) for (const aliasTarget of file.data.aliases ?? []) { - const aliasTargetSlug = ( - isRelativeURL(aliasTarget) - ? path.normalize(path.join(ogSlug, "..", aliasTarget)) - : aliasTarget - ) as FullSlug + let aliasTargetSlug: FullSlug + + if (aliasTarget.startsWith('/')) { + // Root-absolute paths: /index -> index + aliasTargetSlug = aliasTarget.slice(1) as FullSlug + } else { + // Everything else is relative to current directory: ./file, ../folder/file, index, xxx/yyy + aliasTargetSlug = path.posix.normalize(path.posix.join(path.posix.dirname(ogSlug), aliasTarget)) as FullSlug + } const redirUrl = resolveRelative(aliasTargetSlug, ogSlug) yield write({ From 149fd162606f710478125fbeac87d5f7b9c1ca3e Mon Sep 17 00:00:00 2001 From: eritque0arcus Date: Sun, 19 Oct 2025 23:19:54 -0500 Subject: [PATCH 2/2] fix: fix style --- quartz/plugins/emitters/aliases.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/quartz/plugins/emitters/aliases.ts b/quartz/plugins/emitters/aliases.ts index ebc3c5b44..ca1fcc284 100644 --- a/quartz/plugins/emitters/aliases.ts +++ b/quartz/plugins/emitters/aliases.ts @@ -11,12 +11,14 @@ async function* processFile(ctx: BuildCtx, file: VFile) { for (const aliasTarget of file.data.aliases ?? []) { let aliasTargetSlug: FullSlug - if (aliasTarget.startsWith('/')) { + if (aliasTarget.startsWith("/")) { // Root-absolute paths: /index -> index aliasTargetSlug = aliasTarget.slice(1) as FullSlug } else { // Everything else is relative to current directory: ./file, ../folder/file, index, xxx/yyy - aliasTargetSlug = path.posix.normalize(path.posix.join(path.posix.dirname(ogSlug), aliasTarget)) as FullSlug + aliasTargetSlug = path.posix.normalize( + path.posix.join(path.posix.dirname(ogSlug), aliasTarget), + ) as FullSlug } const redirUrl = resolveRelative(aliasTargetSlug, ogSlug)