This repository stores the published content used by the Quartz site.
It is mounted into the main Quartz repo as the content/ submodule.
- public Markdown notes
- public
assets/folders - manually maintained
index.md README.md
Do not put Quartz framework files here, such as:
package.jsonquartz.config.tsquartz.layout.ts- Quartz plugins / theme code
Those belong to the main Quartz repo.
A typical structure looks like this:
quartz-content/
├─ index.md
├─ 03-Reference/
├─ notes/
├─ assets/
└─ README.md
The exact folder layout mirrors the original relative paths from the private Obsidian vault for notes tagged with blog.
This repo is not edited manually most of the time.
The normal flow is:
- write notes in the private Obsidian vault
- tag publishable notes with
blog - run the sync script from the main Quartz repo
- the script mirrors matching notes into
content/ - commit and push this repo
- commit and push the updated submodule pointer in the main Quartz repo
A note is published only if its frontmatter tags contain blog.
Examples:
---
title: My Note
tags: [blog]
------
title: My Note
tags:
- blog
------
title: My Note
tags: blog
---Inline body tags like #blog are not used as the publish trigger.
These files are intentionally preserved during sync:
README.mdindex.md
index.md is maintained manually and acts as the site homepage.
In normal daily use, you should work through the submodule path inside the main Quartz repo:
quartz/content
That means the practical commands are usually run from inside the submodule directory under the main repo, not from a second separate local clone.
cd .\content
git status
git add .
git commit -m "Sync blog notes from vault"
git pushThen go back to the main repo and update the submodule pointer:
cd ..
git add content
git commit -m "Update content submodule pointer"
git pushIf you clone the main Quartz repo with:
git clone --recurse-submodules <repo-url>then this repo will appear as:
quartz/content
That submodule working copy is the recommended place to commit content updates.
After content is pushed, the main Quartz repo still needs:
cd ..
git add content
git commit -m "Update content submodule pointer"
git pushAvoid maintaining a second active local working copy of this repo for day-to-day publishing. It makes sync and branch state harder to manage.
Only notes selected by the sync rules are mirrored here.
This repo is the public content layer.
- private Obsidian vault = source of truth
quartz-content= published content repoquartz= site framework and deployment repo
In practice, update this repo through the quartz/content submodule working copy, then update the main repo pointer.