fix(alias): resolve relative if alias is relative

This commit is contained in:
Jacky Zhao 2025-03-23 20:38:06 -07:00
parent fe2e16d937
commit c18e6cd5bb

View file

@ -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 @@ async function* processFile(ctx: BuildCtx, file: VFile) {
</head>
</html>
`,
slug,
slug: aliasTargetSlug,
ext: ".html",
})
}