This commit is contained in:
Eritque arcus 2025-12-09 02:23:58 +07:00 committed by GitHub
commit 1d71ea71d9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -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,17 @@ 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
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({