base path refactor to better support subpath hosting

This commit is contained in:
Jacky Zhao
2023-08-19 15:52:25 -07:00
parent 3201f83b70
commit c874e7e937
29 changed files with 257 additions and 389 deletions

View File

@ -1,10 +1,4 @@
import {
CanonicalSlug,
FilePath,
ServerSlug,
canonicalizeServer,
resolveRelative,
} from "../../util/path"
import { FilePath, FullSlug, resolveRelative, simplifySlug } from "../../util/path"
import { QuartzEmitterPlugin } from "../types"
import path from "path"
@ -17,10 +11,10 @@ export const AliasRedirects: QuartzEmitterPlugin = () => ({
const fps: FilePath[] = []
for (const [_tree, file] of content) {
const ogSlug = canonicalizeServer(file.data.slug!)
const ogSlug = simplifySlug(file.data.slug!)
const dir = path.posix.relative(argv.directory, file.dirname ?? argv.directory)
let aliases: CanonicalSlug[] = []
let aliases: FullSlug[] = []
if (file.data.frontmatter?.aliases) {
aliases = file.data.frontmatter?.aliases
} else if (file.data.frontmatter?.alias) {
@ -28,9 +22,8 @@ export const AliasRedirects: QuartzEmitterPlugin = () => ({
}
for (const alias of aliases) {
const slug = path.posix.join(dir, alias) as ServerSlug
const redirUrl = resolveRelative(canonicalizeServer(slug), ogSlug)
const slug = path.posix.join(dir, alias) as FullSlug
const redirUrl = resolveRelative(slug, file.data.slug!)
const fp = await emit({
content: `
<!DOCTYPE html>