From c18e6cd5bb7e0de7e1a9a77927b48069f0bad4b9 Mon Sep 17 00:00:00 2001
From: Jacky Zhao <j.zhao2k19@gmail.com>
Date: Mon, 24 Mar 2025 03:38:06 +0000
Subject: [PATCH] fix(alias): resolve relative if alias is relative
---
quartz/plugins/emitters/aliases.ts | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/quartz/plugins/emitters/aliases.ts b/quartz/plugins/emitters/aliases.ts
index 327cde8..0eb4f3a 100644
--- a/quartz/plugins/emitters/aliases.ts
+++ b/quartz/plugins/emitters/aliases.ts
@@ -1,14 +1,19 @@
-import { resolveRelative, simplifySlug } from "../../util/path"
+import { isRelativeURL, resolveRelative, simplifySlug } from "../../util/path"
import { QuartzEmitterPlugin } from "../types"
import { write } from "./helpers"
import { BuildCtx } from "../../util/ctx"
import { VFile } from "vfile"
+import path from "path"
async function* processFile(ctx: BuildCtx, file: VFile) {
const ogSlug = simplifySlug(file.data.slug!)
- for (const slug of file.data.aliases ?? []) {
- const redirUrl = resolveRelative(slug, file.data.slug!)
+ for (const aliasTarget of file.data.aliases ?? []) {
+ const aliasTargetSlug = isRelativeURL(aliasTarget)
+ ? path.normalize(path.join(ogSlug, "..", aliasTarget))
+ : aliasTarget
+
+ const redirUrl = resolveRelative(aliasTargetSlug, ogSlug)
yield write({
ctx,
content: `
@@ -23,7 +28,7 @@
</head>
</html>
`,
- slug,
+ slug: aliasTargetSlug,
ext: ".html",
})
}
--
Gitblit v1.10.0