This Jekyll site uses automated GitHub Actions to build and deploy, with secure API key handling.
# Ruby dependencies
bundle install
# Python dependencies (includes prl_bib2html from git)
# Option 1: Using uv (recommended - faster)
uv pip install -r requirements.txt
# Option 2: Using pip
pip install -r requirements.txt
For YouTube Videos:
cp _data/videos_config.yaml.template _data/videos_config.yaml
Get a YouTube Data API v3 key from Google Cloud Console
export YOUTUBE_API_KEY="your_api_key_here"
Or add it to your shell profile (.bashrc
, .zshrc
, etc.):
echo 'export YOUTUBE_API_KEY="your_api_key_here"' >> ~/.zshrc
# Generate publications and projects
uv run python scripts/generate_publications.py
# Generate videos (requires API key)
uv run python scripts/generate_videos.py
bundle exec jekyll serve
Go to your GitHub repository → Settings → Secrets and variables → Actions, and add:
YOUTUBE_API_KEY
: Your YouTube Data API v3 keymain
or minimal-mistakes
branches_data/videos_config.yaml
file is gitignored to prevent accidental commitsYOUTUBE_API_KEY
is set in your environmentpython scripts/generate_videos.py
YOUTUBE_API_KEY
secret is set in repository settingsThis Jekyll site integrates with the sidd-cv repository as a git submodule to maintain a single source of truth for CV data.
The sidd-cv repository is included as a submodule in _data/cv_data/
. To initialize it:
# Initialize and update submodule (run once)
git submodule update --init --recursive
# Update submodule to latest version
git submodule update --remote _data/cv_data
CSV files from the sidd-cv repository are automatically processed by Jekyll:
_data/awards.csv
→ _data/awards.yml
(with publication links)git submodule update --remote _cv_data
mv _cv_data/data/*.csv _data/
bundle exec jekyll serve
The Jekyll plugins will automatically:
_data/awards.yml
from _data/awards.csv