A static website rendered from an Obsidian vault using MkDocs Material and deployed to GitHub Pages.
.
├── docs/ # Obsidian vault (markdown lives here)
│ ├── index.md # site homepage
│ └── javascripts/ # MathJax config
├── mkdocs.yml # site configuration
├── requirements.txt # Python build dependencies
└── .github/workflows/deploy.yml # CI build → GitHub Pages
The docs/ folder is the Obsidian vault — open it in Obsidian and edit
notes directly. The build picks them up as-is.
If you have Docker + the VS Code Dev Containers extension (or open the repo
in a GitHub Codespace), the environment is fully described by
.devcontainer/devcontainer.json:
- Open the folder in VS Code → Reopen in Container.
- Wait for
pip install -r requirements.txtto finish (one-time). - Run
mkdocs serve— port8000is auto-forwarded to your host.
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
mkdocs serve # live preview at http://127.0.0.1:8000
mkdocs build # produce static site in ./siteTranslated automatically by the
mkdocs-obsidian-support-plugin:
[[wikilinks]]and[[wikilinks|aliases]]![[image.png]]and![[note]]embeds> [!note]/> [!tip]/> [!warning]callouts → Material admonitions- Tags via the built-in MkDocs
tagsplugin - Math (
$inline$,$$block$$) via MathJax
-
Push to
main. -
Enable Pages with GitHub Actions as the build source (one-time). Easiest from inside the devcontainer:
bash .devcontainer/enable-pages.sh
That script calls
gh api repos/<owner>/<repo>/pages -X POST -f build_type=workflowand then triggers the workflow — equivalent to flipping the Source dropdown under Settings → Pages in the UI. -
The workflow at
.github/workflows/deploy.ymlbuilds and publishes the site on every subsequent push tomain.
The site URL will be https://britz.github.io/ratatoskr/.