fix emit filepaths, tag emit being overriden by content

This commit is contained in:
Jacky Zhao 2023-08-11 23:25:44 -07:00
parent d4d6ffac64
commit 6093c863a6
7 changed files with 11 additions and 9 deletions

View File

@ -1,5 +1,7 @@
--- ---
title: Private Pages title: Private Pages
tags:
- plugin/filter
--- ---
There may be some notes you want to avoid publishing as a website. Quartz supports this through two mechanisms which can be used in conjunction: There may be some notes you want to avoid publishing as a website. Quartz supports this through two mechanisms which can be used in conjunction:

View File

@ -2,7 +2,7 @@
title: "Table of Contents" title: "Table of Contents"
tags: tags:
- component - component
- plugins/transformer - plugin/transformer
--- ---
Quartz can automatically generate a table of contents from a list of headings on each page. It will also show you your current scroll position on the site by marking headings you've scrolled through with a different colour. Quartz can automatically generate a table of contents from a list of headings on each page. It will also show you your current scroll position on the site by marking headings you've scrolled through with a different colour.

View File

@ -9,7 +9,7 @@ const config: QuartzConfig = {
analytics: { analytics: {
provider: "plausible", provider: "plausible",
}, },
baseUrl: "quartz.jzhao.xyz", baseUrl: "four.quartz.jzhao.xyz",
ignorePatterns: ["private", "templates"], ignorePatterns: ["private", "templates"],
theme: { theme: {
typography: { typography: {

View File

@ -3,7 +3,7 @@ import { Fragment, jsx, jsxs } from "preact/jsx-runtime"
import { toJsxRuntime } from "hast-util-to-jsx-runtime" import { toJsxRuntime } from "hast-util-to-jsx-runtime"
import style from "../styles/listPage.scss" import style from "../styles/listPage.scss"
import { PageList } from "../PageList" import { PageList } from "../PageList"
import { ServerSlug, canonicalizeServer, getAllSegmentPrefixes } from "../../path" import { ServerSlug, canonicalizeServer, getAllSegmentPrefixes, joinSegments } from "../../path"
import { QuartzPluginData } from "../../plugins/vfile" import { QuartzPluginData } from "../../plugins/vfile"
const numPages = 10 const numPages = 10
@ -11,7 +11,7 @@ function TagContent(props: QuartzComponentProps) {
const { tree, fileData, allFiles } = props const { tree, fileData, allFiles } = props
const slug = fileData.slug const slug = fileData.slug
if (!slug?.startsWith("tags/")) { if (!(slug?.startsWith("tags/") || slug === "tags")) {
throw new Error(`Component "TagContent" tried to render a non-tag page: ${slug}`) throw new Error(`Component "TagContent" tried to render a non-tag page: ${slug}`)
} }
@ -44,7 +44,7 @@ function TagContent(props: QuartzComponentProps) {
return ( return (
<div> <div>
<h2> <h2>
<a class="internal tag-link" href={`./tags/${tag}`}> <a class="internal tag-link" href={`./${joinSegments("tags", tag)}`}>
#{tag} #{tag}
</a> </a>
</h2> </h2>

View File

@ -24,7 +24,7 @@ export const Assets: QuartzEmitterPlugin = () => {
const dir = path.dirname(dest) as FilePath const dir = path.dirname(dest) as FilePath
await fs.promises.mkdir(dir, { recursive: true }) // ensure dir exists await fs.promises.mkdir(dir, { recursive: true }) // ensure dir exists
await fs.promises.copyFile(src, dest) await fs.promises.copyFile(src, dest)
res.push(fp) res.push(dest)
} }
return res return res

View File

@ -12,6 +12,6 @@ export const Static: QuartzEmitterPlugin = () => ({
const staticPath = joinSegments(QUARTZ, "static") const staticPath = joinSegments(QUARTZ, "static")
const fps = await glob("**", staticPath, cfg.configuration.ignorePatterns) const fps = await glob("**", staticPath, cfg.configuration.ignorePatterns)
await fs.promises.cp(staticPath, joinSegments(argv.output, "static"), { recursive: true }) await fs.promises.cp(staticPath, joinSegments(argv.output, "static"), { recursive: true })
return fps.map((fp) => joinSegments("static", fp)) as FilePath[] return fps.map((fp) => joinSegments(argv.output, "static", fp)) as FilePath[]
}, },
}) })

View File

@ -49,7 +49,7 @@ export const TagPage: QuartzEmitterPlugin<FullPageLayout> = (userOpts) => {
return [ return [
tag, tag,
defaultProcessedContent({ defaultProcessedContent({
slug: joinSegments("tags", tag, "index") as ServerSlug, slug: joinSegments("tags", tag) as ServerSlug,
frontmatter: { title, tags: [] }, frontmatter: { title, tags: [] },
}), }),
] ]
@ -59,7 +59,7 @@ export const TagPage: QuartzEmitterPlugin<FullPageLayout> = (userOpts) => {
for (const [tree, file] of content) { for (const [tree, file] of content) {
const slug = file.data.slug! const slug = file.data.slug!
if (slug.startsWith("tags/")) { if (slug.startsWith("tags/")) {
const tag = joinSegments(slug.slice("tags/".length), "index") const tag = slug.slice("tags/".length)
if (tags.has(tag)) { if (tags.has(tag)) {
tagDescriptions[tag] = [tree, file] tagDescriptions[tag] = [tree, file]
} }