CLAUDE.md
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
This is a Jekyll-based academic personal website for Soumya Datta (Associate Professor of Economics at South Asian University), hosted on GitHub Pages at smydtt.github.io. It uses the academicpages template built on the Minimal Mistakes theme.
Commands
# Install Ruby gem dependencies
bundle install
# Local development server (http://localhost:4000)
bundle exec jekyll serve
# Local dev with dev config overrides (disables analytics, sets localhost URL)
bundle exec jekyll serve --config _config.yml,_config.dev.yml
# Build static site to _site/
bundle exec jekyll build
# Minify JavaScript
npm run uglify
Content Generation Scripts
# Convert TSV data files to Markdown (run from markdown_generator/)
python publications.py
python talks.py
# Generate interactive map of talk locations (requires geopy)
python talkmap.py
Architecture
Content flow: TSV data → Python scripts → Markdown files → Jekyll + Liquid templates → _site/ → GitHub Pages
Key Directories
_pages/— Main content pages (about, publications, research, teaching, CV, etc.)_publications/,_talks/,_teaching/,_portfolio/— Jekyll collections; each.mdfile is one item with YAML frontmatter_layouts/— Liquid HTML templates (single.htmlfor pages/posts,archive.htmlfor lists,talk.htmlfor talks)_includes/— Reusable template partials (author profile sidebar, masthead, footer, SEO tags)_data/—navigation.yml(menu structure),authors.yml,ui-text.yml(localized labels)_sass/— SCSS source for the Minimal Mistakes thememarkdown_generator/— Python scripts + TSV source files for bulk-generating collection entries from structured datafiles/— PDFs and downloadable resources linked from content pagesimages/— Images referenced in pages
Configuration
_config.yml— Primary site config: author info, social links, analytics, plugin list, collection definitions_config.dev.yml— Dev overrides (setsurl: http://localhost:4000, disables analytics)
Collections
Jekyll collections are defined in _config.yml: publications, talks, teaching, portfolio. Each collection maps to a _<name>/ directory. Add a new .md file with appropriate YAML frontmatter to add an item to a collection.
Adding Content
- New publication/talk: Either edit a TSV file in
markdown_generator/and re-run the Python script, or directly create a Markdown file in_publications/or_talks/following the existing frontmatter schema. - New page: Add a
.mdfile to_pages/withpermalink:set, then add to_data/navigation.ymlif it should appear in the nav. - Styling changes: Edit SCSS in
_sass/; Jekyll compiles automatically duringserve.
Deployment
Push to master branch → GitHub Pages automatically builds and deploys _site/ to smydtt.github.io.
