This repository contains the source code for the UCLCHEM documentation website, built with Sphinx and the PyData Sphinx Theme.
The documentation is published at: https://uclchem.github.io
This site is automatically built and deployed using GitHub Actions:
- Trigger: Push to
mainbranch, weekly schedule (Sundays), or manual dispatch - Process:
- Syncs notebooks from uclchem/UCLCHEM repository
- Installs UCLCHEM package from GitHub
- Builds Sphinx documentation with AutoAPI
- Deploys to GitHub Pages
- Build time: ~10-15 minutes (first build), ~5-7 minutes (cached)
See .github/SETUP.md for detailed GitHub Actions configuration.
Quick check:
.github/check-setup.sh- Python 3.10+
- Conda (recommended for environment management)
- A working installation of UCLCHEM (the package being documented)
git clone https://github.com/uclchem/uclchem.github.io.git
cd uclchem.github.io# Create and activate a conda environment (recommended)
conda create -n uclchem-docs python=3.13
conda activate uclchem-docs
# Install Sphinx and theme dependencies
pip install -r requirements.txt
# Install UCLCHEM (the package being documented)
pip install uclchemmake htmlThe built documentation will be in _build/html/.
cd _build/html
python -m http.server 8000Then open http://localhost:8000 in your browser.
.
βββ .github/
β βββ workflows/
β β βββ deploy-docs.yml # Automated deployment workflow
β βββ SETUP.md # GitHub Actions setup guide
β βββ MIGRATION.md # Migration from old deployment method
β βββ check-setup.sh # Setup verification script
βββ _static/ # Custom CSS and assets
β βββ custom.css # Leiden Blue branding
βββ blog/ # Blog posts (ABlog format)
βββ getting-started/ # Installation and quickstart guides
βββ tutorials/ # Step-by-step tutorials
βββ notebooks/ # Jupyter notebook examples (synced from main repo)
βββ user-guide/ # Comprehensive user documentation
βββ user_docs/ # Detailed documentation files
βββ papers/ # Publication list and citations
βββ projects/ # Related projects and ecosystem
βββ contributing/ # Contribution guidelines
βββ examples/ # Code examples
βββ conf.py # Sphinx configuration
βββ index.md # Homepage
βββ requirements.txt # Python dependencies
# Install dependencies
pip install -r requirements.txt
pip install git+https://github.com/uclchem/UCLCHEM.git
# Sync notebooks (optional - workflow does this automatically)
cp ../uclchem/notebooks/[0-9]*.ipynb notebooks/
# Build
make html
# Preview
cd _build/html && python -m http.server 8000make clean htmlThe deployment workflow (.github/workflows/deploy-docs.yml) performs:
- Notebook Sync: Copies latest numbered notebooks from uclchem/UCLCHEM
- Package Install: Installs UCLCHEM from GitHub main branch
- Documentation Build: Runs Sphinx with AutoAPI and notebook execution
- Deployment: Uploads to GitHub Pages using native Actions
Monitoring:
- View builds: Actions tab
- Check setup: Run
.github/check-setup.sh - Manual trigger: Actions β Build and Deploy Documentation β Run workflow
We welcome contributions! See the Contributing section for guidelines.
- Edit documentation files (
.mdfiles in various directories) - Test locally:
make html - Commit and push to
mainbranch - GitHub Actions will automatically rebuild and deploy
- Setup Guide - Complete GitHub Actions configuration
- Migration Guide - Notes on deployment method updates
- DEPLOYMENT.md - General deployment information
Build fails?
- Check Actions tab for error logs
- Run
.github/check-setup.shto verify configuration - Test locally with
make html
Old content showing?
- Clear browser cache (Ctrl+Shift+R / Cmd+Shift+R)
- Wait 5-10 minutes for CDN propagation
- Check deployment succeeded in Actions tab
Notebooks not updating?
- Workflow syncs notebooks weekly (Sundays)
- Manually trigger: Actions β Run workflow
- Check notebook path in uclchem/UCLCHEM matches workflow
- Cache behavior: By default, notebook execution results are cached in
_build/.jupyter_cache/to speed up local builds. To force fresh execution (matching CI behavior), runrm -rf _build/.jupyter_cachebeforemake html. - UCLCHEM updates: If the UCLCHEM package is updated, reinstall it locally:
pip install --upgrade --force-reinstall git+https://github.com/uclchem/UCLCHEM.git - Notebooks: Tutorial notebooks are copied from the main repository. To test with latest notebooks, copy them manually from the UCLCHEM repo or let CI handle the sync.
Documentation improvements are welcome! To contribute:
- Fork this repository
- Make your changes to markdown files, notebooks, or configuration
- Test locally using the instructions above
- Submit a pull request with a clear description of your changes
For code changes to UCLCHEM itself, please contribute to the main UCLCHEM repository.
- Sphinx - Documentation generator
- PyData Sphinx Theme - Modern, responsive theme
- MyST-NB - Jupyter notebook integration with execution
- Sphinx-AutoAPI - Automatic Python API documentation
- GitHub Actions - Automated build and deployment
- GitHub Pages - Free hosting
uclchem.github.io/
βββ .github/workflows/ # GitHub Actions CI/CD
β βββ deploy-docs.yml # Build and deployment workflow
βββ _static/ # Static assets (CSS, images, logo)
β βββ custom.css
β βββ logo.png
βββ notebooks/ # Tutorial notebooks (synced from main repo)
β βββ *.ipynb
β βββ assets/
βββ getting-started/ # Getting started guide
βββ tutorials/ # Tutorial organization pages
βββ user-guide/ # User guide pages
βββ api/ # Auto-generated API reference
βββ papers.md # Publications
βββ projects.md # Related projects
βββ blog/ # Blog/news
βββ contributing.md # Contribution guide
βββ index.md # Homepage
βββ conf.py # Sphinx configuration
βββ requirements.txt # Python dependencies
βββ Makefile # Build commands
βββ README.md # This file
- Documentation issues: Open an issue in this repository
- UCLCHEM bugs/features: Open an issue in the main UCLCHEM repository
- Questions: Check the documentation first, then open a discussion
The documentation follows the same license as UCLCHEM. See the main repository for details.
Live site: https://uclchem.github.io/
Main repository: https://github.com/uclchem/UCLCHEM