- Add flake.nix dev shell with Node.js 22, Elixir, and Emacs+ox-hugo - Add scripts/export.exs: exports org-roam notes to content/ via ox-hugo, mirroring subdirectory structure and generating a fallback index.md - Add npm scripts: export, build:notes, serve:notes - Configure FrontMatter plugin for TOML (ox-hugo default output) - Replace ObsidianFlavoredMarkdown with OxHugoFlavouredMarkdown - Add example notes: Madrid public transport (metro, bus, roads) - Update README and AGENTS.md with org-roam workflow instructions
Quartz v4 — org-roam edition
"[One] who works with the door open gets all kinds of interruptions, but [they] also occasionally gets clues as to what the world is and what might be important." — Richard Hamming
Quartz is a set of tools that helps you publish your digital garden and notes as a website for free.
This fork adds first-class support for org-roam notes via ox-hugo.
🔗 Upstream documentation: https://quartz.jzhao.xyz/
Quick Start
Prerequisites
This project uses Nix. Enter the development shell, which provides Node.js 22, Elixir, and Emacs with ox-hugo:
nix develop
All commands below must be run inside this shell.
npm install
Building from org-roam notes
Your org-roam notes live in a separate directory. Point NOTES_DIR at it:
# Export notes to content/ and build the site
NOTES_DIR=/path/to/notes npm run build:notes
# Export, build, and serve with hot reload
NOTES_DIR=/path/to/notes npm run serve:notes
# Export only (wipes content/ and re-exports all .org files)
NOTES_DIR=/path/to/notes npm run export
The export script mirrors the subdirectory structure of your notes into content/
and generates a fallback index.md if your notes don't include one.
Building without org-roam notes
If you manage content/ directly with Markdown files:
# Build the site
npx quartz build
# Build and serve with hot reload
npx quartz build --serve
The site is generated in public/. When serving, visit http://localhost:8080.
Development
npm run check # type check + format check
npm run format # auto-format with Prettier
npm run test # run tests