mirror of
https://github.com/jackyzha0/quartz.git
synced 2025-12-19 19:04:06 -06:00
Merge 149fd16260 into e6cc9ba368
This commit is contained in:
commit
1d71ea71d9
@ -1,4 +1,4 @@
|
|||||||
import { FullSlug, isRelativeURL, resolveRelative, simplifySlug } from "../../util/path"
|
import { FullSlug, 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"
|
||||||
@ -9,11 +9,17 @@ async function* processFile(ctx: BuildCtx, file: VFile) {
|
|||||||
const ogSlug = simplifySlug(file.data.slug!)
|
const ogSlug = simplifySlug(file.data.slug!)
|
||||||
|
|
||||||
for (const aliasTarget of file.data.aliases ?? []) {
|
for (const aliasTarget of file.data.aliases ?? []) {
|
||||||
const aliasTargetSlug = (
|
let aliasTargetSlug: FullSlug
|
||||||
isRelativeURL(aliasTarget)
|
|
||||||
? path.normalize(path.join(ogSlug, "..", aliasTarget))
|
if (aliasTarget.startsWith("/")) {
|
||||||
: aliasTarget
|
// 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
|
) as FullSlug
|
||||||
|
}
|
||||||
|
|
||||||
const redirUrl = resolveRelative(aliasTargetSlug, ogSlug)
|
const redirUrl = resolveRelative(aliasTargetSlug, ogSlug)
|
||||||
yield write({
|
yield write({
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user