This repo is a Quarto website deployed as a static site to GitHub Pages.
.qmd under index.qmd, pages/, and posts/<slug>/index.qmd.docs/ (GitHub Pages publishes from here)._quarto.yml → format.html.include-before-body: _includes/nav.html.quarto renderquarto render posts/<slug>/index.qmdquarto render pages/<name>.qmdGoal: work privately in a notebook (not published), periodically preview as a Quarto post, and only publish when ready.
Draft notebooks are excluded from rendering/publishing via .quartoignore:
drafts/posts/**/draft.ipynbposts/**/_draft.ipynbposts/**/.ipynb_checkpoints/So you can safely keep drafts in the repo without them appearing under docs/.
Use the helper script:
python scripts/new_post_from_notebook.py --slug <slug> --title "<Title>" --categories "Cat1, Cat2" --description "One sentence"Default output:
drafts/<slug>.ipynbThe notebook starts with a Markdown cell containing YAML front matter.
(Alternative) If you prefer the draft to live inside the post folder (still ignored by Quarto):
python scripts/new_post_from_notebook.py --in-posts --slug <slug> --title "<Title>" ...This writes:
posts/<slug>/draft.ipynbConvert + render into the standard published layout:
scripts/preview_notebook_post.sh drafts/<slug>.ipynb <slug>This will:
posts/<slug>/index.qmddocs/posts/<slug>/index.htmlWhen the post is ready:
posts/<slug>/index.qmd as the published source.drafts/ (or posts/<slug>/draft.ipynb) as a private working artifact.Listings/pages in this site generally target posts/*/index.qmd.
index.ipynb, update the listing globs accordingly.index.qmd and keep notebooks as drafts.references.bib.posts/_metadata.yml using bibliography: ../../references.bib.@taylor2004 in post body to generate a References section automatically.pages/search.qmd is a custom listing + JS filter.../posts/*/index.qmd.list.search(q, SEARCH_COLUMNS)..github/workflows/pages-deploy.yml (renders + runs smoke tests before deploy)..github/workflows/ci.yml (renders + runs smoke tests).tests/e2e/.