Uses
This page documents the stack responsible for this digital garden.
I’ve been using hand-edited Hugo markdown for an SSG previously but I wondered if I could use something like Obsidian instead, less for my own use but more for potential reuse by others. While I was at it, I wanted to try and get away from the various things that irked me about Hugo’s maintenance, including submodules never really working properly for me.
I wanted to see if pandoc could be the core of an SSG; I knew file conversion was an obvious strength, there, so part of this project lets me include a frontmatter property “output” which can include an array of formats. Currently, PDF and Markdown are supported; I’ll add more as I see use cases.
Authoring
- Markdown in Obsidian for writing and linking notes with wiki links.
- An Obsidian note template in
obsidian_templates/default_note.mdwith common frontmatter properties.
Build
- Python (
build.py) as the static-site build pipeline. - Pandoc for Markdown to
HTML rendering with custom templates.
- Pandoc also allows for other input and output formats, which might be leveraged down the line.
- Git metadata for note update history
(
/updates/and archive pages).
Deploy
- Codeberg for source hosting.
- Coolify for build/deploy automation via webhook.
- Docker multi-stage image build.
- nginx for static serving and cache headers.
Content Workflow
- Write in Obsidian under
notes/.- There’s also drafts/ which isn’t synced; notes can be copied locally from drafts/ to notes/ to publish.
- Commit and push to Codeberg.
- Codeberg’s push webhook triggers Coolify to rebuild and redeploy the live container.
- Updated pages, RSS, sitemap, and updates/ views are published.