Source of moiseevigor.github.io, the personal site of Igor
Moiseev: research series on sub-Riemannian geometry, optimal control, astrophysics and formal
proofs, with the code, data and interactive tools behind them. It is a plain
Jekyll site served by GitHub Pages from the master branch; every push
to master is live within a couple of minutes.
| Path | Contents |
|---|---|
_posts/ |
Blog posts, including each research program's opening article. Later parts of a series carry hidden: true so the home feed lists only Part 1. |
_articles/, _appendices/ |
Long-form articles and appendices that belong to a research program. |
_data/series.yml |
The register of research programs: question, status, outcome, ordered parts. /lab/ is rendered from it. |
_data/research.yml |
Curated results and their evidence for the home and research pages. |
_layouts/, _includes/, public/css/ |
Templates and styles. public/css/theme.css is loaded last. |
public/js/, public/code/ |
Interactive pieces (prime-spiral explorer, galaxy simulator, Proof Atlas) and the Python scripts that generate figures. |
public/img/posts/<post>/ |
Figures and card thumbnails, one folder per post. |
public/data/proof-atlas/ |
Compiled packets served to the Proof Atlas library pages. |
research/<program>/ |
The research code behind each series: README.md, scripts/, data/, artifacts/, docs/ with figures. Numbers quoted in posts are read from these artifacts. |
scripts/ |
Node checks (test-*.cjs, check-*.cjs) for the Proof Atlas pages and data; the CI workflows run them. |
docs/ |
Editorial contracts: how research is presented and navigated (research-publication.md) and the Proof Atlas program (proof-atlas-research-program.md). |
llms.txt |
Curated index of citable content; only published series are listed. |
The local Ruby toolchain is not required; everything runs in Docker.
docker compose upOpen http://localhost:4000/. This serves with live reload, and the development overlay
_config.dev.yml makes drafts, future-dated posts and published: false posts visible.
Production build, written to _site_production so it never collides with the dev server:
docker compose --profile build run --rm buildLink check of that build with HTMLProofer:
docker compose --profile test run --rm htmlproofer- Front matter:
layout: post(ordistillfor articles with margin notes),title,date,categories,permalink,image(card thumbnail, at least 1200 px wide),math: truewhen the post has formulas, and an optional one-lineresultshown on the card. - Math is KaTeX:
$…$inline,$$…$$on its own line. Markdown is rendered by kramdown first, and kramdown turns any line containing two|characters into a table row, so write absolute values as\lvert x \rvert, never|x|. - Figures go in
public/img/posts/<post>/, generated by a script inpublic/code/orresearch/, and are embedded with descriptive alt text. Transparent PNGs read on both the light and dark theme. - A new research series registers a program in
_data/series.ymland gets aresearch/<program>/folder. The conventions are in docs/research-publication.md.
| Check | Runs | Trigger |
|---|---|---|
CircleCI build |
bundle exec jekyll build with the locked gems, then an HTMLProofer link check of _site (.circleci/config.yml) |
every push |
pages-build-deployment |
Jekyll build and deploy | every push to master |
| Proof Atlas browser regression | Builds the site, serves it on 127.0.0.1:8833, runs the scripts/test-*-browser.cjs suite in headless Chromium |
pushes and pull requests touching Proof Atlas files or _config.yml |
| Proof Atlas compiled proof audit | Installs the pinned Lean compiler and re-checks the published packets | same paths |
| Proof Atlas named theorem inspection | Named-theorem spot checks | manual and Proof Atlas paths |
To run a check locally: node scripts/<name>.cjs with Node 22. Browser tests need Playwright's
Chromium and a server for _site_production; they read the site from ATLAS_ORIGIN
(default http://127.0.0.1:8833) and write screenshots to ATLAS_SCREENSHOTS.
python3 -m http.server 8833 --bind 127.0.0.1 --directory _site_production &
node scripts/test-proof-atlas-grammar.cjsResearch scripts state their own command in the program's README.md, for example
python3 research/galactic-spirals/scripts/pitch_tests.py.
Open sourced under the MIT license. Research code and data can be cited with CITATION.cff.