This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
npm run watch # Build, serve (with live reload), watch for changes, and run tests concurrently
npm run build # Full build (clean + JS bundle + eleventy + tests)
npm run serve # Clean + eleventy --serve (no JS watch)
npm run test # Run Mocha tests once
npm run test-watch # Watch and re-run tests on file changes
npm run js-build # Bundle JS with Rollup only
npm run clean # Remove _site/publications/*
npm run buildis also triggered automatically ongit pushvia a pre-push hook.
To run a single test file: npx mocha test/test-homepage.js
This is a French-language personal blog built with Eleventy (11ty) v3 as a fork of Google's eleventy-high-performance-blog.
publications/ — Blog posts as Markdown files. Front matter defaults defined in publications/posts.11tydata.js. Use draft: true or scheduled: <date> to suppress publication.about/, feed/ — Additional pages and RSS/JSON feed templates._data/metadata.json — Site-wide metadata (title, URL, author, feed config).src/main.js → js/min.js (with Terser minification and source map)..eleventy.js._11ty/ generate srcset, AVIF/WebP variants, blur-up placeholders, and convert GIFs to MP4. Remote images are cached locally in img/remote/.css/main.css (Bahunya framework) is inlined per-page and dead-code-eliminated with PurgeCSS._site/| File | Purpose |
|---|---|
.eleventy.js | Main Eleventy config — collections, filters, plugins |
_11ty/ | Custom plugins: image srcset, blur placeholders, JSON-LD, CSP, HTML optimization, GIF-to-video |
_data/csp.js | CSP policy rules |
_data/isdevelopment.js | Switches dev vs. prod behavior (e.g., GA, minification) |
rollup.config.js | JS bundler config |
test/ | Mocha tests — homepage, generic post, draft handling |
.eleventy.js) #posts collection: all published posts from publications/**/*.md, sorted by date, drafts/scheduled excluded in production.tagList collection: auto-generated tag list.readableDate, htmlDateString, groupByYear, groupByMonth, seoTitle, slugify, sortByDate.