Welcome! This repository is a template for launching your own Research Coding Community Coding Club website using Jupyter Book. It includes:
- 📚 A ready-to-edit site structure (home, community pages, resources)
- ✅ Working GitHub Actions for CI/CD to deploy to GitHub Pages
- 🧩 Interactive quizzes via
jupyterquiz
with sample content - 🧪 Optional accessibility checks workflow (Pa11y)
- 🧰 Examples & placeholders only — no real content
-
Create your repo from this template
- On GitHub, click Use this template → Create a new repository.
- Or fork this repo.
-
Enable GitHub Pages
- Go to Settings → Pages.
- Set Source to GitHub Actions.
- You may also wish to select the tick box under the About section of the GitHub repository so that your site’s URL is shown at the top of the repo page.
-
Edit site config
- Open
_config.yml
and replace the placeholders fortitle
,author
,repository.url
, and thelogo
path if you change it.
- Open
-
Add or edit content
- Update
home_page.md
. - Edit community pages in
community/
. - Add/modify resources in
resources/
, update_toc.yml
accordingly. - Try the quiz in
resources/example_resource/example_lesson.ipynb
.
- Update
-
Push to
main
- GitHub Actions will build and deploy your site automatically.
- Your site will be available at:
https://<your-username>.github.io/<your-repo>/
.
├─ _config.yml # Jupyter Book site config (title, logo, repo, etc.)
├─ _toc.yml # Table of contents (navigation)
├─ home_page.md # Landing page
├─ community/ # Community pages (About, Code of Conduct, Join)
├─ resources/
│ └─ example_resources/
│ ├─ README.md # Resource overview
│ └─ example_lesson.ipynb # Example notebook with quiz
├─ quizzes/
│ └─ sample_quiz.json # Example quiz
├─ _static/
│ └─ logo.png # Placeholder logo (replace with your own)
├─ .github/workflows/
│ ├─ build-book.yml # Build on PRs to check that site compiles
│ ├─ deploy-book.yml # Build & deploy to GitHub Pages on push to main
│ └─ accessibility.yml # Optional: Pa11y accessibility checks
├─ requirements.in # Python dependencies (pip)
├─ pyproject.toml # Optional Poetry project
└─ .gitignore
- Branding: Replace
_static/logo.png
and set thelogo:
path in_config.yml
. - Theme: Jupyter Book uses Sphinx Book Theme. You can add custom CSS in
_static/
and reference it in_config.yml
. - Content: Add new resources in
resources/your_resource/
and include them in_toc.yml
.
-
Put quiz JSON files in
quizzes/
. Seequizzes/sample_quiz.json
. -
In a notebook, add:
from jupyterquiz import display_quiz display_quiz("file/path/filename.json")
-
When the site builds, quizzes render as interactive widgets in the page.
# Using pip
pip install -r requirements.in
jupyter-book build .
# Open _build/html/index.html in your browser
# Or with Poetry
poetry install
poetry run jupyter-book build .
- Pushing to
main
triggers the Deploy workflow. - The workflow builds the Jupyter Book and publishes it to GitHub Pages.
- Check Actions for logs if something fails.
Tip: You can also run the Build workflow on pull requests as a smoke test.
The accessibility.yml
workflow runs Pa11y to flag potential accessibility issues. It builds the Jupyter Book, identifies changed pages, and posts an accessibility report as a PR comment.
- Enable Actions and permissions
- Go to Settings → Actions → General.
- Under Actions permissions, ensure actions are allowed.
- Under Workflow permissions, set:
- Read and write permissions ✅ (needed for posting PR comments and caching).
- Keep Require approval for first-time contributors enabled (recommended).
✅ With this setup, Pa11y will automatically run on changed pages and provide feedback directly in your pull requests.
- Update
community/about.md
andcommunity/join.md
for your group. - Consider adding a
CONTRIBUTING.md
and updating the Code of Conduct incommunity/code_of_conduct.md
.
This template is provided under the MIT License. Replace the license if you need a different one for your community.