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 .md file is one item with YAML frontmatter
  • _layouts/ — Liquid HTML templates (single.html for pages/posts, archive.html for lists, talk.html for 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 theme
  • markdown_generator/ — Python scripts + TSV source files for bulk-generating collection entries from structured data
  • files/ — PDFs and downloadable resources linked from content pages
  • images/ — Images referenced in pages

Configuration

  • _config.yml — Primary site config: author info, social links, analytics, plugin list, collection definitions
  • _config.dev.yml — Dev overrides (sets url: 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 .md file to _pages/ with permalink: set, then add to _data/navigation.yml if it should appear in the nav.
  • Styling changes: Edit SCSS in _sass/; Jekyll compiles automatically during serve.

Deployment

Push to master branch → GitHub Pages automatically builds and deploys _site/ to smydtt.github.io.