fix emit filepaths, tag emit being overriden by content
This commit is contained in:
		
							parent
							
								
									79e828696a
								
							
						
					
					
						commit
						736c3981c4
					
				
					 7 changed files with 11 additions and 9 deletions
				
			
		| 
						 | 
				
			
			@ -1,5 +1,7 @@
 | 
			
		|||
---
 | 
			
		||||
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:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
title: "Table of Contents"
 | 
			
		||||
tags:
 | 
			
		||||
  - 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.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,7 @@ const config: QuartzConfig = {
 | 
			
		|||
    analytics: {
 | 
			
		||||
      provider: "plausible",
 | 
			
		||||
    },
 | 
			
		||||
    baseUrl: "quartz.jzhao.xyz",
 | 
			
		||||
    baseUrl: "four.quartz.jzhao.xyz",
 | 
			
		||||
    ignorePatterns: ["private", "templates"],
 | 
			
		||||
    theme: {
 | 
			
		||||
      typography: {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,7 +3,7 @@ import { Fragment, jsx, jsxs } from "preact/jsx-runtime"
 | 
			
		|||
import { toJsxRuntime } from "hast-util-to-jsx-runtime"
 | 
			
		||||
import style from "../styles/listPage.scss"
 | 
			
		||||
import { PageList } from "../PageList"
 | 
			
		||||
import { ServerSlug, canonicalizeServer, getAllSegmentPrefixes } from "../../path"
 | 
			
		||||
import { ServerSlug, canonicalizeServer, getAllSegmentPrefixes, joinSegments } from "../../path"
 | 
			
		||||
import { QuartzPluginData } from "../../plugins/vfile"
 | 
			
		||||
 | 
			
		||||
const numPages = 10
 | 
			
		||||
| 
						 | 
				
			
			@ -11,7 +11,7 @@ function TagContent(props: QuartzComponentProps) {
 | 
			
		|||
  const { tree, fileData, allFiles } = props
 | 
			
		||||
  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}`)
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -44,7 +44,7 @@ function TagContent(props: QuartzComponentProps) {
 | 
			
		|||
            return (
 | 
			
		||||
              <div>
 | 
			
		||||
                <h2>
 | 
			
		||||
                  <a class="internal tag-link" href={`./tags/${tag}`}>
 | 
			
		||||
                  <a class="internal tag-link" href={`./${joinSegments("tags", tag)}`}>
 | 
			
		||||
                    #{tag}
 | 
			
		||||
                  </a>
 | 
			
		||||
                </h2>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,7 +24,7 @@ export const Assets: QuartzEmitterPlugin = () => {
 | 
			
		|||
        const dir = path.dirname(dest) as FilePath
 | 
			
		||||
        await fs.promises.mkdir(dir, { recursive: true }) // ensure dir exists
 | 
			
		||||
        await fs.promises.copyFile(src, dest)
 | 
			
		||||
        res.push(fp)
 | 
			
		||||
        res.push(dest)
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      return res
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,6 +12,6 @@ export const Static: QuartzEmitterPlugin = () => ({
 | 
			
		|||
    const staticPath = joinSegments(QUARTZ, "static")
 | 
			
		||||
    const fps = await glob("**", staticPath, cfg.configuration.ignorePatterns)
 | 
			
		||||
    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[]
 | 
			
		||||
  },
 | 
			
		||||
})
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -49,7 +49,7 @@ export const TagPage: QuartzEmitterPlugin<FullPageLayout> = (userOpts) => {
 | 
			
		|||
          return [
 | 
			
		||||
            tag,
 | 
			
		||||
            defaultProcessedContent({
 | 
			
		||||
              slug: joinSegments("tags", tag, "index") as ServerSlug,
 | 
			
		||||
              slug: joinSegments("tags", tag) as ServerSlug,
 | 
			
		||||
              frontmatter: { title, tags: [] },
 | 
			
		||||
            }),
 | 
			
		||||
          ]
 | 
			
		||||
| 
						 | 
				
			
			@ -59,7 +59,7 @@ export const TagPage: QuartzEmitterPlugin<FullPageLayout> = (userOpts) => {
 | 
			
		|||
      for (const [tree, file] of content) {
 | 
			
		||||
        const slug = file.data.slug!
 | 
			
		||||
        if (slug.startsWith("tags/")) {
 | 
			
		||||
          const tag = joinSegments(slug.slice("tags/".length), "index")
 | 
			
		||||
          const tag = slug.slice("tags/".length)
 | 
			
		||||
          if (tags.has(tag)) {
 | 
			
		||||
            tagDescriptions[tag] = [tree, file]
 | 
			
		||||
          }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue