Agent notes for calebrob6.github.io
Agent notes for calebrob6.github.io
Personal academic website (Jekyll, academicpages theme, GitHub Pages). The site builds automatically on push to master and serves at https://calebrob.com.
Periodic maintenance
Refresh GitHub star/contributor counts in the Demo and Software card footers on
_pages/about.md(.demo-card__statslines). These are baked in statically by design — do NOT add client-side API calls. To refresh:for r in microsoft/torchgeo torchgeo/torchgeo-bench \ microsoft/satellite-imagery-labeling-tool calebrob6/vsrecent \ calebrob6/dynamic_world_pytorch calebrob6/s2-superres \ calebrob6/maplibre-gl_components \ calebrob6/throughput-bench calebrob6/deltabit calebrob6/sentinel2-paint; do s=$(gh api "repos/$r" --jq .stargazers_count) c=$(gh api -i "repos/$r/contributors?per_page=1" | grep -i "^link:" \ | grep -oE 'page=[0-9]+>; rel="last"' | grep -oE '[0-9]+') echo "$r: $s stars, ${c:-1} contributors" doneFormat counts >= 1000 as e.g.
4.1k.The “Last updated” date in the left sidebar is automatic — it renders
site.time(_includes/author-profile.html), which restamps on every GitHub Pages build. No action needed.
Local preview
docker run -d --name jekyll-preview --network host -v "$PWD":/site -w /site ruby:3.2 \
bash -c "bundle config set --local path vendor/bundle && bundle install --quiet && \
bundle exec jekyll serve --host 127.0.0.1 --port 4000"
Serves at http://localhost:4000. Bind to 127.0.0.1, NOT 0.0.0.0 — Jekyll rewrites absolute asset URLs to the serve host and browsers refuse 0.0.0.0. Auto-regenerates on file changes, but _config.yml changes need a container restart. Gems cache in vendor/bundle so restarts are fast.
Conventions and gotchas
- Co-author names: use one consistent form site-wide (e.g. “Rahul Dodhia”, “Gilles Quentin Hacheme”, “Girmaw Abebe Tadesse”, “Juan M Lavista Ferres”), even when a paper prints an initialed variant.
- Publication metadata: verify titles/authors/venues against Crossref, arXiv, or the publisher before adding entries — never trust hand-written or LLM-suggested citations.
publications.bibmust parse with no duplicate keys. - Card images (
assets/images/demos/): 900x562 JPEG/PNG (16:10), ~100-200KB. Cards useobject-fit: cover, so pre-crop to 16:10. - Anchor scrolling is handled twice: CSS
scroll-margin-topin_sass/_custom.scss(native jumps) and the jQuery smoothScroll offset inassets/js/_main.js(nav clicks). Both must exceed$masthead-height(81px); currently masthead + 1em ≈ 100px. If you change one, change the other — and note_main.jsedits must also be applied to the minifiedassets/js/main.min.js(patch it directly or rebuild vianpm run build:js). - Site-wide style overrides live in
_sass/_custom.scss(imported last). Card CSS is nested under.demo-cardon purpose — the theme’s.page__content prule outranks flat class selectors. - The News section is currently hidden: content lives in
_pages/news.mdwithpublished: false. Restore by flipping totrueor pasting back into_pages/about.md. master.bib,needs-review.bib,bbl-recovered.bib, andbibliography/are a reference-management working set (aggregated from arXiv LaTeX sources of Caleb’s papers), separate from the site’spublications.bib.
