This is my customization of the public template jackyzha0/quartz.
I use it to publish my obsidian vault online, while keep the vault itself private. The source files lay in a private repo as a submodule of this, and only selected articles are published. I am willing to open source, but my vault contains some work stuff and personal scratches which are not suitable for public.
This is my final way to share my notes online, while keep something private. Thanks to Quartz!
I have tried obsidian plugin digital-garden, obsidian-webpage-export, but none fits my need. Now I want to provide some ideas.
Setup quartz in your obsidian vault (of course keep the repo private), publish the built htmls (static websites) to another public repo using github actions.
Setup quartz in public repo, just follow
then add your obsidian vault as a submodule.
Yes, I choose this one.
See more detail on here.
In one word, see the action file.
Currently, I mirror the site to readthedocs for better experience in China mainland. It's slightly tricky to serve this site in readthedocs (rtd), cause it doesn't recognize the clean url (without .html suffix) generated by quartz. Internal links will be broken at the default setting. Thanks to the clean code of quartz, i find a way to add .html suffix for the generated internal link, see rtd_mod.patch.
Also, I integrate the deployment of the two platforms (i.e. gh-pages, rtd) into one single workflow. It simply builds the site for serving gh-pages, then apply the patch, rebuild the site, and publish to another branch pub. Alongside, the .readthedocs.yaml will be copied to the root of pub branch. Then import this project in readthedocs, it will automatically serve the built site.
Eventually, each time i pushed to my private note repo, this repo will catch the event, trigger the workflow to deploy the built site on two platforms. If you don't know how, make sure you've read this note.