fix(alias): resolve relative if alias is relative
This commit is contained in:
parent
fe2e16d937
commit
c18e6cd5bb
1 changed files with 9 additions and 4 deletions
|
@ -1,14 +1,19 @@
|
||||||
import { resolveRelative, simplifySlug } from "../../util/path"
|
import { isRelativeURL, resolveRelative, simplifySlug } from "../../util/path"
|
||||||
import { QuartzEmitterPlugin } from "../types"
|
import { QuartzEmitterPlugin } from "../types"
|
||||||
import { write } from "./helpers"
|
import { write } from "./helpers"
|
||||||
import { BuildCtx } from "../../util/ctx"
|
import { BuildCtx } from "../../util/ctx"
|
||||||
import { VFile } from "vfile"
|
import { VFile } from "vfile"
|
||||||
|
import path from "path"
|
||||||
|
|
||||||
async function* processFile(ctx: BuildCtx, file: VFile) {
|
async function* processFile(ctx: BuildCtx, file: VFile) {
|
||||||
const ogSlug = simplifySlug(file.data.slug!)
|
const ogSlug = simplifySlug(file.data.slug!)
|
||||||
|
|
||||||
for (const slug of file.data.aliases ?? []) {
|
for (const aliasTarget of file.data.aliases ?? []) {
|
||||||
const redirUrl = resolveRelative(slug, file.data.slug!)
|
const aliasTargetSlug = isRelativeURL(aliasTarget)
|
||||||
|
? path.normalize(path.join(ogSlug, "..", aliasTarget))
|
||||||
|
: aliasTarget
|
||||||
|
|
||||||
|
const redirUrl = resolveRelative(aliasTargetSlug, ogSlug)
|
||||||
yield write({
|
yield write({
|
||||||
ctx,
|
ctx,
|
||||||
content: `
|
content: `
|
||||||
|
@ -23,7 +28,7 @@ async function* processFile(ctx: BuildCtx, file: VFile) {
|
||||||
</head>
|
</head>
|
||||||
</html>
|
</html>
|
||||||
`,
|
`,
|
||||||
slug,
|
slug: aliasTargetSlug,
|
||||||
ext: ".html",
|
ext: ".html",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue