π Publishing with Quartz
The vault is currently private. This note captures the steps for when you decide to publish.
Prerequisites
- Node.js β₯ 18
- Git
- Quartz v4
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 PagesQuartz 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: truefrontmatter key used for notes you donβt want published β filtered byPlugin.RemoveDrafts()
Before publishing
- Set
draft: trueon any note you donβt want public (study plans, personal thoughts, WIP). - Review the
HTML import/content β the networklessons.com navigation menus should be cleaned up before going public. - Double-check no credentials, internal hostnames, or client-specific info are in any note.