Skip to content

Commit c18e6cd

Browse files
committed
fix(alias): resolve relative if alias is relative
1 parent fe2e16d commit c18e6cd

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

quartz/plugins/emitters/aliases.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
1-
import { resolveRelative, simplifySlug } from "../../util/path"
1+
import { isRelativeURL, resolveRelative, simplifySlug } from "../../util/path"
22
import { QuartzEmitterPlugin } from "../types"
33
import { write } from "./helpers"
44
import { BuildCtx } from "../../util/ctx"
55
import { VFile } from "vfile"
6+
import path from "path"
67

78
async function* processFile(ctx: BuildCtx, file: VFile) {
89
const ogSlug = simplifySlug(file.data.slug!)
910

10-
for (const slug of file.data.aliases ?? []) {
11-
const redirUrl = resolveRelative(slug, file.data.slug!)
11+
for (const aliasTarget of file.data.aliases ?? []) {
12+
const aliasTargetSlug = isRelativeURL(aliasTarget)
13+
? path.normalize(path.join(ogSlug, "..", aliasTarget))
14+
: aliasTarget
15+
16+
const redirUrl = resolveRelative(aliasTargetSlug, ogSlug)
1217
yield write({
1318
ctx,
1419
content: `
@@ -23,7 +28,7 @@ async function* processFile(ctx: BuildCtx, file: VFile) {
2328
</head>
2429
</html>
2530
`,
26-
slug,
31+
slug: aliasTargetSlug,
2732
ext: ".html",
2833
})
2934
}

0 commit comments

Comments
 (0)