This Sphinx extension fixes:
- with a
layoutpatch:- an issue where drop down menus would still take up space after being minimized, and the patch fixes it through some css.
- an issue where in drop down code cells the shown summary remained lightgray instead of turning darkgrey. Fix through css.
- an issue where the size of code in a header is not the correct font size. Fix through css.
- an issue where the sidebar shows a scrollbar even if that's not needed
- an issue where the margin causes a scroll bar for a window between 992 and 1200px.
- an issue where the caption text of a figure is aligned on the left for multi-line caption text
- with a
buttonpatch:- an issue where two buttons for interactive matplotlib widget do not appear.
- with a
mathjaxpatch:- an issue where in the Firefox browser the CHTML renderer of MathJax does not render thin lines consistently. Fixed by selecting the SVG renderer only for the Firefox browser.
- that makes the default loading method of MathJax to be lazy loading, which improves page load times. Can be disabled if needed by either
- disabling the
mathjaxpatch (this also disables the Firefox fix); or - adding
ui/nonlazytoconfig.mathjax3_config['loader']['load']in your config file as shown below. This value is not defined by MathJax, but introduced by JupyterBook-Patches to allow disabling lazy loading.sphinx: config: mathjax3_config: loader: load: - "ui/nonlazy"
- disabling the
- with a
downloadpatch:- an issue where the standard download button for downloading
.ipynband.mdfiles opens a new tab in some browsers instead of downloading the file. Fixed by adding thedownloadattribute to the download links.
- an issue where the standard download button for downloading
- with a
hashpatch:- an issue where if the URL contains a specific element id, the page scrolls to the element on the initial/partial page load and does not scroll to that element after complete page load. Fixed by adding a small javascript that scrolls to the element after complete page load.
To install the Sphinx-JupyterBook-Patches, follow these steps:
Step 1: Install the Package
Install the jupyterbook_patches package using pip:
pip install jupyterbook_patches
Step 2: Add to requirements.txt
Make sure that the package is included in your project's requirements.txt to track the dependency:
jupyterbook_patches
Step 3: Enable in _config.yml
In your _config.yml file, add the extension to the list of Sphinx extra extensions:
sphinx:
extra_extensions:
- jupyterbook_patches
Step 4 (optional): Disable patches in _config.yml
In your _config.yml file, add disable patches you do not wish:
sphinx:
config:
patch_config:
disabled-patches: []
Replace [] by a list of strings to disable patches. Use the patch name as indicated at the top of this document.
For example, to disable the mathjax patch:
sphinx:
config:
patch_config:
disabled-patches: ["mathjax"]
For example, to disable the layout and button patches:
sphinx:
config:
patch_config:
disabled-patches: ["button","layout"]
This extension is part of TeachBooks Favourites, a Sphinx extension which collects all of TeachBooks' favourite features in one place.
This tool's repository is stored on GitHub. The README.md of the branch manual_docs is also part of the TeachBooks manual as a submodule. If you'd like to contribute, you can create a fork and open a pull request on the GitHub repository. To update the README.md shown in the TeachBooks manual, create a fork and open a merge request for the GitHub repository of the manual. If you intent to clone the manual including its submodules, clone using: git clone [email protected]:TeachBooks/manual.git.