Personal blog and site (i.stolethis.website), built with Quarto and published via GitHub Pages.
- Python 3.12+ and uv (recommended) or pip.
- The project uses uv for the virtual environment and dependencies (including Quarto via the
quarto-clipip package).
Create the virtual environment and install dependencies:
make .venvOr with uv directly:
uv syncActivate the environment (optional; the Makefile targets activate it for you):
source .venv/bin/activate-
Preview the site locally (watch mode):
make preview
-
Build the static site (output in
_site/):make render
- Publishable content lives under
posts/. Posts inposts/drafts/are marked as drafts (draft: truein_metadata.yml) and are unlinked from the main listing until you move them out ofdrafts/or change the metadata. - Run
make renderto build the site. - Push to the
rhymeswithlion.github.iorepo. GitHub Pages serves from the default branch (e.g.main) — if your site is configured to use the root, ensure the output directory in_quarto.ymlmatches what GitHub Pages expects (e.g./or/docs). The current config uses the default output dir_site/; if your Pages source is “GitHub Actions” or a custom path, adjustproject.output-dirin_quarto.ymland your workflow or branch settings accordingly.
| Path | Purpose |
|---|---|
_quarto.yml |
Quarto website config (theme, navbar, output) |
index.qmd |
Homepage and post listing |
about.qmd |
About page |
posts/ |
Blog posts (.qmd, .ipynb) |
posts/drafts/ |
Draft posts (not listed until published) |
_site/ |
Rendered HTML (generated by make render) |
pyproject.toml |
Python dependencies (uv); includes quarto-cli |
Makefile |
.venv, preview, render |
Managed in pyproject.toml and uv.lock. Key dependency: quarto-cli (Quarto via pip). To add a Python package:
uv add <package-name>