Personal academic website built with AcademicPages Jekyll template.
Live site: cciliber.github.io
Option 1: Manual BibTeX editing
# 1. Edit BibTeX file
vim .github/data/publications.bib
# 2. Add arXiv URLs automatically (optional)
uv run python .github/scripts/publications/match_arxiv_by_author.py
# 3. Regenerate data file
uv run python .github/scripts/publications/bibtex_to_data.py
# 4. Preview locally
docker compose -f .github/dev/docker-compose.yaml up
# 5. Visit http://localhost:4000/publications/Option 2: Export from Google Scholar
- Visit your Google Scholar profile
- Select publications → Export → BibTeX
- Save to
.github/data/publications.bib - Run step 2-5 above
See .github/docs/PUBLICATION_MANAGEMENT.md for complete guide.
cciliber.github.io/
├── _config.yml # Main Jekyll configuration
├── _pages/ # Site pages (about, publications, CV, etc.)
├── _data/ # YAML data files (publications, navigation, etc.)
├── files/ # Public files (PDFs, papers, etc.)
├── images/ # Images and profile photos
├── .github/ # Repository meta files
│ ├── data/
│ │ └── publications.bib # BibTeX source of truth
│ ├── scripts/publications/ # Publication management scripts
│ ├── docs/ # Documentation
│ └── dev/ # Docker development setup
└── old_site_backup/ # Backup of original HTML site
The easiest way to preview your site locally:
docker compose -f .github/dev/docker-compose.yaml upVisit: http://localhost:4000
Changes to markdown and HTML files will auto-reload. Configuration changes require restart.
If you prefer not to use Docker:
macOS:
brew install ruby node
gem install bundler
bundle install
bundle exec jekyll serve -l -H localhostLinux/WSL:
sudo apt install ruby-dev ruby-bundler nodejs build-essential gcc make
bundle install
bundle exec jekyll serve -l -H localhostNote: You may encounter Ruby gem compatibility issues on macOS. Docker is recommended for reliable local development.
Edit this file: .github/data/publications.bib
- Edit BibTeX file: Add/edit/delete publications
- Regenerate data:
uv run python .github/scripts/publications/bibtex_to_data.py - Preview:
docker compose -f .github/dev/docker-compose.yaml up - Commit:
git add .github/data/publications.bib _data/publications.yml && git commit -m "Update publications"
@inproceedings{paper2024,
title = {My Paper Title},
author = {Carlo Ciliberto and Others},
year = {2024},
url_paper = {https://arxiv.org/abs/...}, % External paper link
local_paper = {papers/my-paper-2024.pdf}, % Local PDF (relative to files/)
url_code = {https://github.com/user/repo}, % Code repository
local_slides = {slides/presentation-2024.pdf}, % Local slides
}Note: Old field names (url, pdf, code, etc.) still work for backward compatibility.
Full documentation: .github/docs/PUBLICATION_MANAGEMENT.md
Edit _config.yml:
# Site settings
title: "Carlo Ciliberto"
name: "Carlo Ciliberto"
description: "Personal academic website"
author:
name: "Carlo Ciliberto"
bio: "Associate Professor @ UCL"
location: "London, UK"
employer: "University College London"
# ... social linksCurrent theme: "default" (supports light/dark mode)
Edit colors:
- Dark mode:
_sass/theme/_default_dark.scss - Light mode:
_sass/theme/_default_light.scss
Edit _data/navigation.yml
- Add image to
images/directory - Update
_config.yml:avatar: "images/your-photo.jpg"
Replace files/carlo_ciliberto_cv.pdf with your latest CV.
Edit _pages/about.md
- Create markdown file in
_pages/ - Add to
_data/navigation.yml
| Script | Purpose |
|---|---|
.github/scripts/publications/match_arxiv_by_author.py |
Add arXiv URLs by fetching author's papers (recommended) |
.github/scripts/publications/bibtex_to_data.py |
Convert BibTeX → YAML data file (required) |
.github/scripts/publications/add_arxiv_urls.py |
Add arXiv URLs by searching one-by-one (slower alternative) |
.github/scripts/publications/bibtex_to_publications.py |
Convert BibTeX → Markdown files (alternative workflow) |
.github/scripts/publications/extract_to_bibtex.py |
Extract from legacy markdown → Temporary BibTeX file |
Usage:
uv run python .github/scripts/publications/bibtex_to_data.py- .github/docs/PUBLICATION_MANAGEMENT.md - Complete publication workflow guide
- .github/docs/MIGRATION_HISTORY.md - Technical migration notes from HTML to Jekyll
- .github/docs/CONTRIBUTING.md - Contribution guidelines
The site automatically deploys via GitHub Pages when you push to the master branch.
Check deployment status:
- Go to repository settings
- Navigate to "Pages" section
- Verify source is set to
masterbranch
Site URL: https://cciliber.github.io
GitHub Pages will automatically:
- Run Jekyll build on push
- Deploy to GitHub CDN
- Update site within ~1 minute
Note: Local Ruby compatibility issues do NOT affect GitHub Pages builds. GitHub's servers have the correct Ruby/Jekyll environment.
- Did you run
bibtex_to_data.py? - Did you restart Jekyll?
- Check
_data/publications.ymlexists
- Check you pushed to
masterbranch - Check GitHub Pages is enabled in repository settings
- Wait 1-2 minutes for deployment
# Full rebuild
docker compose -f .github/dev/docker-compose.yaml down
docker compose -f .github/dev/docker-compose.yaml up --buildUse Docker instead of local Ruby to avoid compatibility issues.
The original HTML site is preserved in:
- Directory:
old_site_backup/ - Git branch:
backup-original-site(if created)
This site is based on the AcademicPages template, which is a fork of the Minimal Mistakes Jekyll Theme.
Template Credits:
- Originally forked by Stuart Geiger
- Currently maintained by Robert Zupko
- Based on Minimal Mistakes by Michael Rose
License: MIT (see LICENSE file)
- Check documentation in
.github/docs/directory - Review AcademicPages documentation
- Check Jekyll documentation
- Open an issue on AcademicPages GitHub
Last updated: October 2025