🌐 Publishing with Quartz

The vault is currently private. This note captures the steps for when you decide to publish.

Prerequisites

Steps

1. Initialise Quartz

npx quartz create
# Choose: "Empty Quartz" β†’ then copy vault files into content/

2. quartz.config.ts β€” key parameters

const config: QuartzConfig = {
  configuration: {
    pageTitle: "IT Knowledge DB",
    enableSPA: true,
    locale: "en-US",
    theme: { /* ... */ },
  },
  plugins: {
    transformers: [
      Plugin.FrontMatter(),
      Plugin.ObsidianFlavoredMarkdown({ enableInHtmlEmbed: true }),
      Plugin.TableOfContents(),
      Plugin.SyntaxHighlighting(),
      Plugin.GitHubFlavoredMarkdown(),
    ],
    filters: [Plugin.RemoveDrafts()],
    emitters: [
      Plugin.AliasRedirects(),
      Plugin.ContentPage(),
      Plugin.FolderPage(),
      Plugin.TagPage(),
      Plugin.ContentIndex({ enableSiteMap: true, enableRSS: true }),
      Plugin.ComponentResources(),
      Plugin.NotFoundPage(),
    ],
  },
}

3. Publish

npx quartz build --serve   # local preview
npx quartz sync             # deploy to GitHub Pages

Quartz compatibility checklist

This vault is already prepared for Quartz:

  • YAML frontmatter on every note (enforced by templates)
  • Wikilinks [[...]] everywhere
  • Dataview queries (Quartz v4 supports them)
  • ASCII-safe folder names (emoji in MOC file names only)
  • Relative image paths via Assets/
  • draft: true frontmatter key used for notes you don’t want published β€” filtered by Plugin.RemoveDrafts()

Before publishing

  1. Set draft: true on any note you don’t want public (study plans, personal thoughts, WIP).
  2. Review the HTML import/ content β€” the networklessons.com navigation menus should be cleaned up before going public.
  3. Double-check no credentials, internal hostnames, or client-specific info are in any note.