This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Quartz v4 static site — a "digital garden" blog published from an Obsidian vault. Content is written in Obsidian (/Users/bobcgn/Markdown-Notes) and synced into this repo's content/ directory via rsync, then built and deployed to GitHub Pages.
/Users/bobcgn/Markdown-Notes/ ← Obsidian vault (source of truth)
├── image/ ← Global image attachments
├── Public/ ← Articles to publish (synced → content/)
└── (other dirs) ← Private drafts, NOT published
/Users/bobcgn/AAA_Codings/quartz-myblogs/ ← THIS REPO (build & deploy)
├── content/ ← Synced from Public/ + image/
├── quartz.config.ts ← Plugin/transformer config
├── quartz.layout.ts ← Page layout definitions
└── public/ ← Build output (deployed)
Content flows one way: Obsidian → rsync → content/ → quartz build → public/ → GitHub Pages.
npx quartz build # Production build → public/
npx quartz build --serve # Dev server with hot-reload
npx quartz build -v # Verbose build
npx quartz sync # Commit, push, and pull upstream updates
npx quartz update # Update Quartz to latest versionThere is no test suite or linter in this project.
Plugin.ObsidianFlavoredMarkdown()— enables[[wikilinks]],>[!callout]blocks, Mermaid, highlights, and #tags. All default options are enabled.Plugin.CrawlLinks()—markdownLinkResolution: "shortest"matches Obsidian's default link resolution. If image filenames are unique across the vault, only the filename is needed in links.Plugin.ExplicitPublish()— if enabled, only files withpublish: truein frontmatter are included.Plugin.Assets()— copies embedded images from content into the build output.
Images live in content/image/ (synced from Markdown-Notes/image/). In Obsidian-flavored Markdown, they're referenced as ![[image/filename.png]] or . Avoid spaces in image filenames — Quartz transforms spaces to hyphens, which can break %20-encoded Obsidian links.
Each Markdown file should include at minimum:
---
title: "Post Title"
date: 2025-01-01
tags: [tag1, tag2]
---- Write/edit notes in Obsidian under
Markdown-Notes/Public/ - Run
publish.shfrom the vault directory to rsync content into this repo - The script auto-commits and pushes to GitHub
- GitHub Actions builds and deploys to GitHub Pages
GitHub Actions workflow at .github/workflows/deploy.yml:
- Triggers on push to
mainbranch - Builds with Node 22 via
npx quartz build - Deploys
public/viaactions/deploy-pages@v4