JupyterBook Course Template
This is a template repository that makes it drop-dead simple for anyone to create a JupyterBook course website and deploy it using GH Pages. No configuration is necessary, there are just three steps.
Course Website
To access the rendered version of this JupyterBook, visit https://firasm.github.io/jupyterbook_course_template.
Each time there is a commit to master, the website will re-deploy. Currently it takes about 70s for the website to update.
Usage
template repository with the GH account you want to use and click "Use this template".
1. Visit thisgh-pages
branch is deployed).
2. Fill in the info for the new repository, make sure it's a public repository and you include all branches (this will make sure the
3. Wait for the GH Action to complete, and then visit your deployed website here: https://<your_github_username>.github.io/<repo_name> . That's it!
Features
-
Support for executing code in a browser using thebe and mybinderorg!
-
Structured book with markdown file stubs aligning with a course structure for a 13 week course. Fully versioned using GitHub, automatically deployed using GH Actions to either GH or your own server. Can also be extended with a testing framework for extra peace of mind.
-
Examples of how to use IFrames to embed web content, @phet_sims, @sli.do polls, videos, and other content.
-
Powerful built-in annotation and commenting features with hypothes.is and utteranc.es. Annotate your syllabus, course readings, and any other content.
-
Add persistent checkboxes so students can track their progress through notebooks, exercises and readings.
-
Allow students to download pages of the site in PDF, link to the source code on your repo, or open in a mybinder notebook.
-
The JupyterBook can be embedded into Canvas using the Redirect tool so students never have to leave their LMS.
-
(NEW!) Use of the new
substitution
feature of myst-parser to configure the course algorithmically from the_config.yml
file!
Edit the template for your course
There are a few things you need to do to adapt this template for your course. I might miss a few things, so this list is a work in progress:
-
In the
_config.yml
file:- Set title of the book (Physics 111)
- Update author (Firas Moosvi)
- Update logo image (images/logo.png)
- Add Google Analytics ID (Optional)
- Enable/Disable Hypothes.is (remove the line to remove the hypothes.is integration)
- Configure Utteranc.es repository (Choose one of Hypothesis or Utteranc.es)
- Adjust
extra_footer
to control License of course materials - Set the substitution parameters under the
myst_substitutions
-
In the
_toc.yml
file:- Arrange the table of contents to add/remove files
-
In the
about
andclass
folders:- Edit the .md and .ipynb files with your course content
Attribution
- Thanks to Tomas Beuzen for his GH Actions workflow that deploys JupyterBooks using GH pages.
- Thanks the entire Jupyter Project
- Finally, a big thanks to the JupyterBook community for my incessant issues, questions, and PR requests on documentation changes.