CLAUDE.md
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 Yanis Bekhti (PhD candidate in Economics). Built with Jekyll and the Academic Pages theme, deployed to GitHub Pages at https://yanisbkt-econ.github.io.
Development Commands
Local development (Docker — preferred):
docker build -t jekyll-site . && docker run -p 4000:4000 -v $(pwd):/site jekyll-site
Local development (Ruby/Jekyll directly):
bundle install
bundle exec jekyll serve --watch
JavaScript build:
npm install
npm run build:js # Minifies JS into assets/js/main.min.js
npm run watch:js # Watch and rebuild on changes
There are no lint or test commands for this project.
Architecture
Content Structure
Site content lives in three places:
_pages/— Hand-authored Markdown pages (About, Research, Teaching, Talks, Miscellaneous). These uselayout: archiveorlayout: singlewithauthor_profile: true.- Jekyll collections (
_publications/,_talks/,_teaching/,_portfolio/) — Individual markdown files, one per item. markdown_generator/— Python scripts that convert TSV/BibTeX data files into the collection markdown files. Run these when adding publications or talks from structured data.
Templating
_layouts/— Page-level HTML templates (default → single/archive/splash → compress)._includes/— Reusable partials:masthead.html(top nav),author-profile.html(sidebar),footer.html,head.html._data/navigation.yml— Controls the top navigation bar items._data/authors.yml— Author profile data.
Styling
All styles live in _sass/. Entry point is assets/css/main.scss which imports the partials. Key files:
_variables.scss— Colors, fonts, breakpoints._page.scss,_sidebar.scss,_navigation.scss— Main layout styling.
JavaScript
assets/js/_main.js initializes jQuery plugins (sticky nav, smooth scroll, FitVids, Magnific Popup image lightbox). The build script bundles this with vendor libraries into assets/js/main.min.js. Edit _main.js, never edit main.min.js directly.
Key Configuration
_config.yml controls everything site-wide: author info, social links, SEO metadata, analytics, collection defaults, and plugin settings. Changes here affect every page.
Collapsible Abstracts Pattern
Research page (_pages/Research.md) uses raw HTML <details>/<summary> tags inside Markdown for collapsible abstracts. Follow the same pattern when adding new research items.
