CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
Personal academic website for Bas Machielsen (Assistant Professor, Applied Economics, Utrecht University), built with Quarto and deployed to Netlify at https://basmachielsen.nl.
Commands
# Preview site locally (live reload)
quarto preview
# Render the full site
quarto render
# Render a single file
quarto render posts/some-post.qmd
# Publish to Netlify
quarto publish netlify
# Render presentations (uses _quarto_custom.yml, outputs to _presentation/)
quarto render --profile customPython dependencies are managed with uv:
uv sync # install dependencies from uv.lock
uv add <package> # add a new dependencyArchitecture
The site is a Quarto website. Key files:
_quarto.yml— main config: navbar structure, theme (cosmo + brand.scss), renders all*.qmdexcept/presentations/*_quarto_custom.yml— alternate profile for rendering presentations; outputs to_presentation/_publish.yml— Netlify deployment targetstyles.css— custom CSS overrides.Rprofile— configures reticulate to use the.venvPython environment so R and Python interop works in.qmdfiles
Content directories: - posts/ — blog posts (.qmd with embedded R/Python computations; heavy use of _freeze/ for caching) - wip/ — work-in-progress papers - publications/ — published/under-review papers - presentations/ — excluded from main render; use _quarto_custom.yml to render them - cv/ — CV page
Build outputs (gitignored): _site/, _freeze/, .quarto/, *_cache/, *_files/
Content Notes
- Blog posts may use R or Python code chunks; computations are cached in
_freeze/. If changing a post’s code, delete its_freeze/entry to force re-execution. - Python environment: 3.10, managed via uv. The
.venv/is used by both direct Python execution and reticulate (R). - Presentations live under
presentations/and are excluded from the defaultquarto render; render them separately with the custom profile.