CLAUDE.md — ecoclassical.github.io

CLAUDE.md — ecoclassical.github.io

Context for Claude Code when working on this repository.

What this site is

Personal academic website for Oriol Vallès Codina — ecological macroeconomist and computational social scientist at Johns Hopkins University / Net Zero Industrial Policy Lab.

Live at: https://ecoclassical.github.io

Technology

  • Jekyll with the academicpages theme
  • Hosted on GitHub Pages (branch: master)
  • Deploy: git push origin master → GitHub Actions builds and serves automatically
  • No local build required to preview minor edits, but jekyll serve works via Docker (docker-compose.yaml)

Repository layout

_config.yml           Site-wide settings (title, author, social links, plugins)
_data/
  navigation.yml      Header nav links (CV, Publications, Talks, Teaching)
  authors.yml         Author metadata
_pages/               Markdown/HTML pages
  about.md            Homepage (permalink: /)
  cv.md / cv.html     CV page
  publications.md     Publications listing
  talks.md            Talks listing
  teaching.md         Teaching listing
  non-menu-page.md    Template for pages NOT in the nav (permalink-only)
_publications/        One .md per publication (used by publications.html)
_talks/               One .md per talk
_teaching/            One .md per teaching item
files/                Static files served as-is (no Jekyll processing)
  timbuktu.html       Research library portal (~6 MB, self-contained)
  projects.html       Personal projects dashboard (bookmark-only, not in nav)
  publications_timeline.html
  publications_donut.html
  workplan/workplan.html
images/               Images referenced by pages
assets/               JS/CSS theme assets (don't edit unless theming)

Author profile (sidebar)

Defined in _config.yml under author:. Key fields:

  • name: Oriol Vallès Codina
  • bio: Ecological macroeconomist and computational social scientist
  • location: Poughkeepsie, NY, US
  • employer: Johns Hopkins University / Net Zero Industrial Policy Lab
  • uri: https://www.netzeropolicylab.com/
  • email: oriolvallescodina@gmail.com
  • googlescholar, orcid, researchgate, linkedin, github: all set

Controlled by _data/navigation.yml. Current nav: CV · Publications · Talks · Teaching. To add a page to the nav, add an entry there. To keep a page out of nav (bookmark-only), give it only a permalink: in front matter and do NOT add it to navigation.yml.

Hidden / bookmark-only pages

Pages in files/ are plain HTML — they are served at https://ecoclassical.github.io/files/<filename> without going through Jekyll. This is the pattern used for:

  • files/projects.html — projects dashboard
  • files/timbuktu.html — research library

Jekyll _pages/ files can also be hidden from the nav but will still appear in the sitemap. Prefer files/ for truly private pages.

Adding a publication

Create a file in _publications/ following the pattern of existing entries (e.g., 2024-02-17-paper-title-number-4.md). Front matter fields: title, collection, permalink, excerpt, date, venue, paperurl, citation.

Standalone HTML files in files/

These are self-contained (no Jekyll, no external CDN dependencies). When creating new ones:

  • Embed all JS/CSS inline or use system fonts / no external resources
  • They work when opened via file:// locally as well as over HTTPS
  • Do NOT add Jekyll front matter (no --- block) — they are served as static files

Timbuktu relationship

timbuktu.html in files/ is generated by the separate R pipeline in ~/Documents/R/timbuktu/. To update it:

cd ~/Documents/R/timbuktu
Rscript 11_timbuktu.R
cp timbuktu.html ~/Documents/R/ecoclassical.github.io/files/timbuktu.html
cd ~/Documents/R/ecoclassical.github.io
git add files/timbuktu.html && git commit -m "Update timbuktu portal"
git push origin master

See ~/Documents/R/timbuktu/CLAUDE.md for the full Timbuktu pipeline context.

Deploying changes

cd ~/Documents/R/ecoclassical.github.io
git add <files>
git commit -m "Description"
git push origin master

GitHub Pages rebuilds automatically. Changes are live within ~1–2 minutes.