This repository manages the source code and deployment workflow for the Halo2world blog.
The blog is split into 3 repositories with clear responsibilities:
-
Content repository
- Repository:
haloworld-C/obsidianBase - Mounted here as the
content/git submodule - Stores the Markdown notes, assets, and blog source content
- This layer is the content authority and should not be edited directly in this repository
- Repository:
-
Build/source repository
- Repository:
haloworld-C/blog-quartz - Contains the Quartz configuration, components, styles, scripts, and GitHub Actions workflow
- Pulls content from the
content/submodule - Builds the static site from content plus Quartz code
- Repository:
-
Publish repository
- Repository:
haloworld-C/haloworld-C.github.io - Receives the built static output from GitHub Actions
- Serves the final site at
https://haloworld-c.github.io/
- Repository:
The deployment path is:
haloworld-C/obsidianBase -> haloworld-C/blog-quartz -> haloworld-C/haloworld-C.github.io
In practice:
- Blog content is maintained in
obsidianBase blog-quartzupdates thecontent/submodule- Quartz builds the static files into
public/ - GitHub Actions pushes the generated site to
haloworld-C.github.io - GitHub Pages publishes the final website
Typical local workflow for this repository:
- Pull the latest
content/submodule changes - Update Quartz source code or deployment configuration in this repository
- Run build and validation
- Push changes to
main - Let GitHub Actions publish the generated output to
haloworld-C.github.io
content/is a submodule and is treated as the upstream content source- Static output in
public/is build output, not the final deployment target - The final online site is published from
haloworld-C/haloworld-C.github.io, not from this repository directly