Obsidian Authoring Workflow
By Amr
From an empty Obsidian note to a published page on GitHub Pages — the daily loop.
Estimated reading time: 2 minutes
Table of Contents
Obsidian Authoring Workflow
The round-trip
Obsidian (edit) → git commit → GitHub push → Pages build → live URL
↑ │
└──────────── git pull (Obsidian Git plugin) ────────────────────┘
Daily loop
- Open the vault in Obsidian (root of the repo).
- Create a note with
Cmd/Ctrl + N. The Templates core plugin will offernote-template.mdfrompages/_notes/_templates/. Picking it stamps the canonical frontmatter (title, layout, permalink, …). - Write freely with
[[wiki-links]],![[embeds]], callouts, and#tags. Every one of those renders 1:1 on the site (see syntax reference). - Drop images into the editor — Obsidian saves them under
assets/images/notes/(configured in.obsidian/app.json), which is exactly where![[image.png]]resolves on the site. - Commit & push.
- With Obsidian Git plugin:
Ctrl/Cmd + P→ Source control: Commit all changes → Push. - From the terminal: standard
git add / git commit / git push.
- With Obsidian Git plugin:
- GitHub Pages rebuilds automatically. Within ~1 minute the new note is live at the permalink declared in its frontmatter.
Editing existing content
- Renames are safe. Obsidian’s Always update internal links setting
(
alwaysUpdateLinks: truein shared config) rewrites every[[link]]pointing at the renamed file. For URL-level redirects, add the old slug to the note’saliases:array —jekyll-redirect-fromwill issue an HTTP redirect from the old URL. - Moves between collections (
pages/_notes/↔pages/_posts/) work, but you’ll typically want to updatelayout:to match the destination collection’s defaults.
Local preview
The site renders the same Obsidian features locally:
docker-compose up
# → http://localhost:4000
Notes you edit in Obsidian are picked up by Jekyll’s incremental build within ~1 second. Refresh the browser to see your changes.
Validation before pushing
Run the integration’s smoke test to catch broken wiki-links, malformed frontmatter, or a regressed wiki-index schema:
./test/test_obsidian.sh
The full theme test suite (lint, build, deployment, styling, Obsidian) runs via:
./test/test_runner.sh --verbose
Cross-machine vault sync
Use Obsidian Git for the canonical sync — it pulls on open and prompts to commit on close. This keeps every machine using the same git history that GitHub Pages publishes from, so what you see in Obsidian is exactly what readers will see on the site.
[!tip] Avoid Obsidian Sync for this vault Obsidian’s paid Sync service operates outside git, so it can drift from what’s deployed. Stick with
git push/git pull(manual or via the Obsidian Git plugin) so the vault and the live site never diverge.
See also
- [[Obsidian Vault Integration]]
- [[Getting Started with the Obsidian Vault]]
- [[Obsidian Syntax Reference]]
- [[Obsidian Graph View]]
- [[Obsidian Integration Troubleshooting]]
- [[Docker]]
Linked mentions 5
-
Getting Started with the Obsidian Vault
docsOpen the Zer0-Mistakes repo as an Obsidian vault, install recommended plugins, and learn the frontmatter conventions.
-
Obsidian Graph View
docsInteractive force-directed map of every wiki-link in the site, mirroring Obsidian's local graph.
-
Obsidian Vault Integration
docsEdit Zer0-Mistakes content as an Obsidian vault and have it render identically on GitHub Pages.
-
Obsidian Syntax Reference
docsEvery Obsidian-flavoured Markdown feature supported by the Zer0-Mistakes theme and how it renders on GitHub Pages.
-
Obsidian Integration Troubleshooting
docsCommon issues with the Obsidian + Jekyll integration and how to fix them.