Publishing Obsidian Notes with Quartz

tags

In this post, I will write about the steps I took to setup a pipeline to publish and deploy my Obsidian notes. The pipeline uses Obsidian, Quartz and GitHub.

I was greatly inspired by the article My Quartz + Obsidian Note Publishing Setup. I have setup my github repo in the same way

Instead of moving my public notes gradually over to a Quartz repo whenever I want to publish something, I did it the other way around, integrating Quartz into my repo that stores my Obsidian vault. From the high level, my repo structure looks like this:

├── quartz
│   └── content (symlink to ../vault)
└── vault
    ├── .obsidian
    ├── 1 - Rough Notes
    ├── 2 - Source Material
    ├── 3 - Tags
    ├── 4 - Indexes
    ├── 5 - Templates
    ├── 6 - Main Notes
    └── index.md

Mixing private and public notes

Having a single Obsidian vault for both private and public notes is really simple with Quartz 4. By default, all content files are part of the deployment, but you can easily add a filter to your quartz.config.ts:

filters: [Plugin.ExplicitPublish()],

ExplicitPublish is a built-in filter that only forwards Markdown pages where the frontmatter has publish: true set. There is also RemoveDrafts for filtering out work-in-progress content.

I’m using the Supercharged links plugin to visually distinguish public notes throughout Obsidian’s UI. This helps me remember what is public and what is not.

I set up a simple rule that adds the 🪴 prefix to notes where publish: true making the links look like 🪴 My Quartz + Obsidian Note Publishing Setup

References

My Quartz + Obsidian Note Publishing Setup