Published multiple files
All checks were successful
Build and Deploy Quartz / build (push) Successful in 27s

This commit is contained in:
Quartz Syncer
2026-02-05 12:24:25 -07:00
parent 125a9b1752
commit fe0581e423
62 changed files with 1209 additions and 115 deletions

View File

@@ -0,0 +1,179 @@
---
publish: true
permalink: /sh/garden/quartz
title: Quartz
created: 2026-02-05T09:58:59.615-07:00
modified: 2026-02-05T12:21:13.918-07:00
tags:
- self_hosting
- digital_gardening
- static_site
cssclasses: ""
---
Quartz is a fast, batteries-included static-site generator that transforms Markdown content into fully functional websites. Perfect for publishing [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Obsidian]] vaults as digital gardens.
## Features
- **Obsidian compatibility** — Wikilinks, callouts, backlinks
- **Full-text search** — Client-side search
- **Graph view** — Interactive note connections
- **Popover previews** — Hover to preview linked notes
- **Fast** — SPA routing, tiny bundles
- **Customizable** — JSX components, plugin system
## Installation
Requires Node.js v22+.
```bash
git clone https://github.com/jackyzha0/quartz.git
cd quartz
npm i
npx quartz create
```
Follow the prompts to initialize with your content.
## Configuration
Main config: `quartz.config.ts`
```typescript
const config: QuartzConfig = {
configuration: {
pageTitle: "My Digital Garden",
enableSPA: true,
enablePopovers: true,
analytics: null, // or plausible, umami, etc.
locale: "en-US",
baseUrl: "garden.example.com",
ignorePatterns: ["private", ".obsidian"],
defaultDateType: "modified",
theme: {
cdnCaching: true,
typography: {
header: "Schibsted Grotesk",
body: "Source Sans Pro",
code: "IBM Plex Mono",
},
colors: {
lightMode: { /* ... */ },
darkMode: { /* ... */ },
},
},
},
plugins: { /* ... */ },
}
```
## Content
All content lives in `/content` folder. Home page is `content/index.md`.
### Frontmatter
```yaml
---
title: My Note
description: A description for previews
tags:
- example
draft: false # true = don't publish
publish: true # used by Quartz Syncer
date: 2026-02-05
---
```
### Supported Syntax
- Standard Markdown + GFM (tables, footnotes, task lists)
- Obsidian wikilinks: `[[Note Name]]`
- Obsidian callouts: `> [!info]`
- LaTeX math: `$inline$` and `$$block$$`
- Syntax highlighting
## Building
```bash
# Development (hot reload)
npx quartz build --serve
# Production build
npx quartz build
# Output goes to /public
```
## Syncing Content
### Manual
```bash
npx quartz sync
```
### Quartz Syncer Plugin (Recommended)
Install the **Quartz Syncer** plugin in [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Obsidian]]:
1. Install from Community Plugins
2. Configure Git provider (GitHub, GitLab, etc.)
3. Set Quartz repo path
4. Use plugin to selectively publish notes
Features:
- Compiles Dataview queries to static content
- Diff viewer before publishing
- Selective publish/update/remove
- Smart caching
## Hosting Options
### Self-hosted with [[20-29 HOBBYS/22 SELF HOSTING/22.11 DIGITAL GARDEN/Caddy]]
Build locally or via CI, serve `/public` with Caddy.
### GitHub Pages
Add `.github/workflows/deploy.yml`:
```yaml
name: Deploy Quartz
on:
push:
branches: [v4]
jobs:
build:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 22
- run: npm ci
- run: npx quartz build
- uses: actions/upload-pages-artifact@v3
with:
path: public
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
steps:
- uses: actions/deploy-pages@v4
```
### Cloudflare Pages
- Build command: `npx quartz build`
- Output directory: `public`
- Production branch: `v4`
## Resources
- Docs: https://quartz.jzhao.xyz/
- GitHub: https://github.com/jackyzha0/quartz
- Quartz Syncer: https://github.com/saberzero1/quartz-syncer