Context: Obsidian Publish doesn’t allow enough customization. I want to be able to develop an automated change log and emailing system.

Others with a similar Obsidian + Quartz sites can be found here: https://vaults.obsidian-community.com/


Decided on Quartz because it is the most Obsidian-like out-the-box. Probably not going to use all the features something like Astro or Hugo provides in the near term. Other options like the Obsidian Digital Garden Plugin or https://forestry.md/ too simple

Forked the template in Host your Obsidian notebook on GitHub Pages for free (by Defender) to understand the mechanics a bit

Managing two separate repositories for the vault vs quartz. Unlike My Quartz + Obsidian Note Publishing Setup (by Oliver Falvai) that uses a git subtree somehow

Moved existing vault to C:\Projects\garage\vault

Leveraging https://quartz.jzhao.xyz/ for initial setup

  • Upgraded Node and npm to the latest versions
  • Cloned quartz here: C:\Projects\garage\quartz

Leveraging My Quartz + Obsidian Note Publishing Setup (by Oliver Falvai):

  • Using npx quartz build --directory=../vault to treat the vault directory as the content directory (instead of the default “content” folder
  • Added Plugin.ExplicitPublish() to the filters. Plugin.RemoveDrafts() already there
  • Added her glob pattern to ignorePatterns

Followed https://quartz.jzhao.xyz/setting-up-your-GitHub-repository to get the quartz directory set up on it’s own GitHub repository

Followed https://quartz.jzhao.xyz/hosting to host

  • “public” folder is ignored via the default Quartz setup. GitHub Actions creates an artifact with the public files and serves that to GitHub Pages (instead of deploying from branch like I am used to). Had to go back and remove public from the past commits
  • Created deploy.yml and configured
    • Created Personal Access Token and added to quartz repo as a secret to read the separate private vault repo. Added “Checkout Vault Repository” action
    • Updated Build Quartz action to reference the vault directory via --directory=vault

In production at https://jrenn3.github.io/quartz/

  • Completely separate repos, committing changes to vault files that are published doesn’t automatically rebuild the site

Workflow for BAU writing

  1. Push Obsidian changes in Windows app Git plug-in to the vault repo
  2. The vault repo triggers GitHub Actions that triggers deploy Actions in the quartz repo

Other actions

  1. npx quartz build --serve -d ../vault builds and serves locally
  2. npx quartz sync pushes the quartz repo to GitHub (if there are changes to push)

Key tenants

  • Keeping separate repos because I need the vault to stay private, quartz can be public

↑ done and decided


↓ todo and considering