Static GitHub Pages website for the BiGHT course.
The source content lives in Markdown files under content/. The generated HTML is built into docs/ by build_site.py and deployed by GitHub Actions.
- Site/header metadata:
content/site/header.md - Home page:
content/pages/home.md - Shared snippets:
content/shared/ - Weekly pages:
content/weeks/ - Project documentation:
content/project-documentation/
To add a PDF slide deck link to a released week page, set slides_pdf in that week's frontmatter. Use a local path such as slides/week_01.pdf for files stored in a top-level slides/ directory, or use a full external URL.
Weekly pages are split into browsable sections from ## headings. Project documentation pages are generated from # document titles and ## section headings. Student project documentation is generated as one paginated page from the Markdown files in content/project-documentation/student/.
The build script also resolves:
{{ include: relative/path.md }}{{ weeks_table }}
Create a virtual environment, then install build dependencies:
python3 -m venv .venv
. .venv/bin/activate
python -m pip install -r requirements-build.txtBuild the static site:
python build_site.pyWeekly pages are published after each Wednesday lecture at 15:00 Europe/Zurich. To preview the site at a specific release point, set BIGHT_BUILD_TIME to an ISO timestamp:
BIGHT_BUILD_TIME=2026-10-28T14:01:00+00:00 python build_site.pyPreview it locally:
python -m http.server 8000 -d docsOpen http://localhost:8000.
The .github/workflows/pages.yml workflow builds and deploys the site on pushes to main.
In GitHub, enable Pages for this repository with source set to GitHub Actions.
Run the linter before opening a pull request:
ruff check build_site.py
ruff format --check build_site.py
python build_site.py --check-release-schedule
python build_site.pyThe repository uses pre-commit to run isort and ruff automatically before each commit. The configuration lives in .pre-commit-config.yaml.
Install the hooks once in your virtual environment:
python -m pip install pre-commit
pre-commit installThe hooks then run on your staged changes every time you commit and auto-fix issues where possible.
To run all hooks on the whole repository without committing:
pre-commit run --all-filesTo skip the hooks for a single commit:
git commit --no-verifySoftware in this repository, including source code, website infrastructure, configuration, and deployment tooling, is licensed separately from course content under the repository's Apache License 2.0 software license.
Original BiGHT course and teaching content is licensed under CC BY 4.0 except where otherwise stated. See LICENSE-CONTENT.md for the content license, exclusions for third-party material and trademarks, and suggested attribution.
Lecturers preparing public slides should use SLIDE-LICENSING-NOTICES.md before publishing decks or other teaching materials.