fix(alias): resolve relative if alias is relative
This commit is contained in:
		@@ -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",
 | 
			
		||||
    })
 | 
			
		||||
  }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user