Change Log¶
v0.8.0 2020-09-01¶
You spoke, we listened!
Version 0.8.0 of Jupyter Book, incorporates a bottom-up refresh of the entire Executable Books Project (EBP) stack, with tonnes of bugs fixes, improvements and new features 🎉
The documentation describes all this new functionality in full detail, but below we shall try to outline the major changes and additions.
Breaking ‼️¶
The jupyter-book
/jb
executable should work almost identically to in v0.7.5, and all existing books will generally build as before (open an issue if not!).
The key change is that jupyter-book page
is no longer available.
Instead you can now pass a single file path to jupyter-book build
, as opposed to a directory, and it will build your single page (thanks to @AakashGfude).
See Build a standalone page.
Another thing to note, is that if you are using “bare” LaTeX math in your documentation,
then this will only render if you activate in your _config.yml
:
parse:
myst_extended_syntax: true
See the math documentation for details.
New and Improved ✨👌¶
Jupyter Book v0.8 incorporates all the great new features available by moving from:
MyST-Parser v0.9 to v0.12 (see its CHANGELOG.md)
MyST-NB v0.8 to v0.10 (see its CHANGELOG.md)
This also enabled, Sphinx v2 to v3
Here’s the headlines:
- Windows support
Continuous Integration (CI) testing is now run against Windows OS throughout the EBP stack. The fixes this entailed, mean that Jupyter Book can now be run on Windows with minimal issue (see Working on Windows)
- Extended “Markdown friendly” syntaxes
MyST Markdown directives offer a high degree of extensibility, to add all the features we might need to create a scientific document. However, they are not (yet) very well integrated with external editors, like the Jupyter Notebook interface. Extended syntax parsing to the rescue!
By enabling in your
_config.yaml
:parse: myst_extended_syntax: true
You can access to a number of Markdown friendly syntaxes, which extend the CommonMark specification:
:::
fenced admonitions render Markdown as standard (see new style admonitions).HTML images are correctly handled, allowing for control of size and style attributes, and Markdown style figures extend this for captions and referencing (see images and figures).
Definition lists are what you see here and provide a simple format for writing term/definition blocks (see definition lists).
LaTeX math is now intrinsically supported, meaning that it will rendered correctly in both HTML and LaTeX/PDF outputs (see math and equations).
- Custom Notebook Formats
Want to write your notebooks as RMarkdown, Python files, ….? Jupyter Book now supports linking any file extension to a custom conversion function, run before notebook execution and parsing. See the custom notebook formats and Jupytext documentation, which itself is written in RMarkdown!
- Execution Configuration
Execution and caching of notebook outputs has been improved, to make it more consistent across
auto
andcache
methods (cache
execution is now also run in the notebook directory) and provide numerous configuration options, including:Running the execution in the local directory or in a temporary directory.
Setting the execution timeout limit, at a global or notebook level.
Allowing errors across all notebooks, or at a notebook or cell level.
Removing stderr/stdout outputs or logging warnings when they are encountered
A directive for displaying execution statistics for all notebooks in the book (status, run time, etc)
See the execution documentation for more details.
- Code Output Formatting
More cell outputs are handled, including Markdown and ANSI outputs, and you can use cell metadata to set image size, style, captions and references. See formatting code outputs.
- Build options and error reporting
The
jupyter-book build
command includes additional options/flags for controlling the build behaviour, such as verbose (-v
), quiet (-q
) and nitpick mode for checking references (-n
). See the command-line interface documentation for more details.- sphinx-panels integration
The sphinx-panels package is not provided directly in the Jupyter Book distribution. This adds additional functionality for creating web based elements, such as gridded panels and dropdown boxes. See the Panels and Dropdowns section for details.
Fixes 🐛¶
Among the numerous fixes:
Code cell syntax highlighting now works for all Jupyter kernels.
User configuration is now recursively merged with the default configuration, and no longer overwrites an entire nested section. You can also use
jb config sphinx mybookname/
to inspect the sphinxconf.py
which will be parsed to the builder.
More to come 👀¶
We have many more improvements planned, check back in this change log for future improvements.
Also please continue to provide us feedback on what you would like to see next. See our voting for new features page.
v0.7.5 2020-08-26¶
✨ NEW: This release introduces the new “Comments and Annotations” feature, powered by sphinx-comments. See this documentation section for further details.
Important: this version also pins the myst-nb
dependency to v0.8.
Previous versions erroneously allow for the new v0.9, which is not yet strictly compatible with jupyter-book (coming very soon!)
v0.7.0…v0.7.4¶
Enhancements made¶
✨ NEW: Adding - chapter entries to _toc.yml #817 (@choldgraf)
checking for toc modification time #772 (@choldgraf)
first pass toc directive #757 (@choldgraf)
Bugs fixed 🐛¶
Fix typo in content-blocks.md documentation #811 (@MaxGhenis)
Using relative instead of absolute links #747 (@AakashGfude)
Fixing jupytext install/UI links #737 (@chrisjsewell)
Documentation improvements 📚¶
Note about licenses #806 (@choldgraf)
Fix google analytics instructions #799 (@tobydriscoll)
Change book_path to path_to_book #773 (@MaxGhenis)
GitHub actions example: note about selective build #771 (@consideRatio)
getting sphinx thebelab to work #749 (@choldgraf)
Link documentation for adding cell tags in Jupyter from “Hide or remove content” documentation section #734 (@MaxGhenis)
Typo fix #731 (@MaxGhenis)
reworking interactive docs #725 (@choldgraf)
Add documentation for Google Colab launch buttons #721 (@lewtun)
Add note about int eq labels in math directive #720 (@najuzilu)
API Changes¶
✨ NEW: Adding - chapter entries to _toc.yml #817 (@choldgraf)
removing config file numbered sections to use toc file instead #768 (@choldgraf)
Other merged PRs¶
📚 DOCS: Remove Issue Templates #849 (@chrisjsewell)
🐛 FIX: fixing toctree spacing bug #836 (@choldgraf)
👌 IMPROVE: chapters -> parts in toc #834 (@choldgraf)
📚 DOCS: adding information about page structure #830 (@choldgraf)
🐛 FIX: fixing chapters numbering #829 (@choldgraf)
👌 IMPROVE: improving numbered sections #826 (@choldgraf)
📚 DOC: update gh-pages + ghp-import docs #814 (@TomasBeuzen)
page index #728 (@choldgraf)
Contributors to this release¶
(GitHub contributors page for this release)
@AakashGfude | @amueller | @bmcfee | @brian-rose | @cedeerwe | @choldgraf | @chrisjsewell | @codecov | @consideRatio | @cpjobling | @drscotthawley | @emdupre | @firasm | @jni | @jstac | @lewtun | @MaxGhenis | @mmcky | @najuzilu | @nathancarter | @phaustin | @ptcane | @samteplitzky | @tobydriscoll | @TomasBeuzen | @welcome
v0.6.4…v0.7.0¶
Merged PRs¶
Release prep #711 (@choldgraf)
fixing topbar repo buttons #710 (@choldgraf)
misc doc improvements #702 (@choldgraf)
fixing toc bug #696 (@choldgraf)
[DOC, ENH] Shorten descriptions of clean and toc functions #693 (@pgadige)
execution error doc #691 (@choldgraf)
[DOC] Fix rendering of subitems in ordered list #686 (@najuzilu)
adding configuration for source buttons #684 (@choldgraf)
adding versions #679 (@choldgraf)
ENH: Modify execute option for jb page command (#594 followup) #678 (@rossbar)
fixing suffix in download files #656 (@choldgraf)
config defaults #654 (@choldgraf)
TST: minor update to reference book.pdf rather than python.pdf #650 (@mmcky)
improving configuration under the hood #647 (@choldgraf)
TST: [pdflatex] Add build of quantecon-mini-example as a project style test case #636 (@mmcky)
Minor update for the extra-navbar section in advanced.md #631 (@malvikasharan)
TST: update testing requirements and adjust ignore #626 (@mmcky)
bump peaceiris/actions-gh-pages to v3.6.1 #625 (@peaceiris)
documenting directive keywords better #623 (@choldgraf)
clarifying config values #622 (@choldgraf)
fixing docs bug in template #617 (@choldgraf)
FIX: fix bug when latex config not specified in project for “latex_documents” #614 (@mmcky)
adding extra footer docs #611 (@choldgraf)
nesting notes #599 (@choldgraf)
docs update #597 (@choldgraf)
updating docs and fixing single page bug #592 (@choldgraf)
add html section to tip about navbar_number_sections #590 (@amueller)
adding custom css and js and updating docs #583 (@choldgraf)
Devdocs #581 (@choldgraf)
Document use of pure html #576 (@joergbrech)
instructions for toggle and toc docs #570 (@choldgraf)
add ticks to execute_notebooks: off in docs #568 (@amueller)
fixing flake #567 (@choldgraf)
add build to test_clean method prior to build –builder pdflatex #561 (@najuzilu)
[BUG] Added a returncode for make all-pdf #556 (@AakashGfude)
[ENH] A simple {tableofcontents} directive #553 (@AakashGfude)
clarifying qe mini example #550 (@choldgraf)
updating intro page and other docs #545 (@choldgraf)
Update default_config.yml #544 (@Cyb3rWard0g)
Fix broken references in docs #541 (@consideRatio)
Corrects info on bibliography in separate file #537 (@kyleniemeyer)
explicitly giving jupyter book install version #535 (@choldgraf)
Add modules needed to build the example book to the instructions. #533 (@jpivarski)
citations clean up #529 (@choldgraf)
updating documentation #527 (@choldgraf)
adding tests for TOC cases #525 (@choldgraf)
adding linkcheck docs and support #524 (@choldgraf)
update latexpdf to pdflatex in the documentation #523 (@najuzilu)
updating deploy docs #520 (@choldgraf)
BETA: v0.7.0b1 #516 (@choldgraf)
fixing tests and prep for new release #515 (@choldgraf)
Rebase #496 (@choldgraf)
migrating to new github org #493 (@choldgraf)
adding a gallery #472 (@choldgraf)
[ENH] Raise error if page URL does not start with os.sep #471 (@brian-rose)
[DOC] changed circleci docs to reflect consistent job name #463 (@alexnakagawa)
Intronetlify #454 (@choldgraf)
Contributors to this release¶
(GitHub contributors page for this release)
@AakashGfude | @akhmerov | @alejandroschuler | @alexnakagawa | @amueller | @andrewsanchez | @asteppke | @betatim | @boazbk | @brian-rose | @cedeerwe | @choldgraf | @chrisjsewell | @consideRatio | @cpjobling | @Cyb3rWard0g | @dafriedman97 | @DavidPowell | @dhruvbalwada | @emdupre | @epacuit | @firasm | @flying-sheep | @foster999 | @gharp | @goanpeca | @grst | @hamelsmu | @jasmainak | @jgm | @jmason86 | @jni | @joergbrech | @johngage | @jpivarski | @jstac | @kyleniemeyer | @malvikasharan | @martinagvilas | @MasterScrat | @mathieuboudreau | @matteoacrossi | @mgeier | @mikdale | @mmcky | @mwcraig | @mwouts | @najuzilu | @NatalieThurlby | @ofajardo | @oscarys | @parmentelat | @peaceiris | @pgadige | @phaustin | @prabhasyadav | @psychemedia | @Racooneer | @rahuldave | @rossbar | @roualdes | @saulomaia | @TomasBeuzen | @trallard | @xldrkp | @yuvipanda
v0.6.3…v0.6.4¶
Enhancements made¶
improving the upgrade functionality #449 (@choldgraf)
scrolling outputs #444 (@choldgraf)
adding a page for math instructions #432 (@choldgraf)
updating thebelab and improving code highlighting #422 (@choldgraf)
Hide outputs and markdown cells #420 (@choldgraf)
Adding a “test” section for pages that are hard to test w/ python #416 (@choldgraf)
refactoring sidebar highlighting and allowing collapsed subsections #412 (@choldgraf)
adding ability to add authors and titles #390 (@choldgraf)
improving search functionality #374 (@choldgraf)
Add kernel path for thebelab #189 (@joergbrech)
Bugs fixed¶
Add installation module and fix circle #450 (@choldgraf)
fixing thebelab highlighting #446 (@choldgraf)
fixing full width content and some formatting bugs #417 (@choldgraf)
[FIX] Fix for on-page anchor-based TOC issues #414 (@GasperPaul)
tocfix #406 (@choldgraf)
fixing toc #405 (@choldgraf)
[FIX] Fixed issue with Unicode characters in TOC #400 (@GasperPaul)
[FIX] Fix for path separator issue on Windows #398 (@GasperPaul)
fixing issue template #393 (@choldgraf)
Other merged PRs¶
moving thebelab config to within the page instead of head #448 (@choldgraf)
only show TOC if there are headers for it #441 (@choldgraf)
Update README.md #425 (@choldgraf)
using thebelab latest #423 (@choldgraf)
Update limits.md #415 (@choldgraf)
moving some modules to pathlib #403 (@choldgraf)
adding code structure and moving contributing guide #394 (@choldgraf)
updating getting started guide #392 (@choldgraf)
version bump #389 (@choldgraf)
new release and updating instructions #387 (@choldgraf)
Contributors to this release¶
(GitHub contributors page for this release)
@choldgraf | @emdupre | @GasperPaul | @javag97 | @joergbrech | @melaniewalsh | @psychemedia
v0.6.0…v0.6.3¶
Enhancements made¶
adding anchors above headers #366 (@choldgraf)
adding CSS rules for epigraphs #365 (@choldgraf)
netlify config #359 (@choldgraf)
Thebelab init #352 (@choldgraf)
[WIP] Add option to clear outputs in build command #349 (@akhilputhiry)
Bugs fixed¶
css for thebelab z-order #386 (@choldgraf)
fixing TOC auto gen bug #375 (@choldgraf)
fixing page path link #368 (@choldgraf)
fixing interact link bug #367 (@choldgraf)
fix: fuzzy matching of jupyter book versions #346 (@emdupre)
fixing scrolling #336 (@choldgraf)
Maintenance and upkeep improvements¶
fixing load ntbk function #385 (@choldgraf)
load ntbk function #384 (@choldgraf)
moving CSS and JS generation to their own function #381 (@choldgraf)
making sure gemfile.lock is removed #379 (@choldgraf)
removing unnecessary requirements #378 (@choldgraf)
making toc gen sorted #377 (@choldgraf)
fixing up download functionality #373 (@choldgraf)
small refactoring of names and layout #372 (@choldgraf)
Bump rubyzip from 1.2.4 to 2.0.0 in /jupyter_book/book_template #371 (@dependabot)
moving to jupyterbook.org #370 (@choldgraf)
inlining svgs and small tweaks #369 (@choldgraf)
moving js outside of _includes if not needed #347 (@choldgraf)
removing unnecessary clean_lines function #345 (@choldgraf)
modularizing the bage building and beefing up single page building #344 (@choldgraf)
Documentation improvements¶
DOC: intro.md: Jupyter Books -> Jupyter Book #383 (@westurner)
Other merged PRs¶
Update executing.ipynb #350 (@psychemedia)
adding better circle instructions #341 (@choldgraf)
cleaning up circle #340 (@choldgraf)
ghp-import in circle #339 (@choldgraf)
removing _build artifacts #338 (@choldgraf)
making some files optional in upgrade #337 (@choldgraf)
adding google analytics info #335 (@choldgraf)
updating changelog #334 (@choldgraf)
fixing releases info #333 (@choldgraf)
v0.6.0 (2019-09-17)¶
Implemented enhancements:
Improve the auto-TOC function #271
Export pages to PDF #267
Adding popouts to the right #266
Add option to execute notebooks when building the book #234
Add a footer for each page #233
adding error message context to the build CLI command #320 (choldgraf)
adding right toc showing when there’s no sidebar content #300 (choldgraf)
Updating page layout and hoverable table of contents #278 (choldgraf)
use celltagpreprocessor to remove parts of cells and updating running code module #264 (choldgraf)
Create footer #254 (martinagvilas)
[WIP] Refactoring page layout + adding popouts and a topbar #169 (choldgraf)
Fixed bugs:
Some small formatting issues following upgrade to master #296
Make the PDF print work for MathJax math #285
Code cells in plain Markdown files are rendered as raw text #283
‘jupyter-book upgrade’ deletes new references #261
default book doesn’t build properly on github - symlink error #237
Double check installation dependencies #211
Don’t use quotes for user-entered YAML entries #305 (SamLau95)
Fix missing </div> if page.interact_link is false #290 (SamLau95)
making a download PDF button appear on all pages #282 (choldgraf)
[FIX] Fix references being deleted with jupyter-upgrade #263 (martinagvilas)
Closed issues:
Jupyter Notebook can’t close a running notebook #317
Building book fails with a jinja2.exceptions.TemplateNotFound error #310
serving non- md/ipynb content #295
Broken links #259
Missing file error #253
Multicursor sometimes only deletes one line when there’s spaces #251
Release summary for v0.6 #331
Merged pull requests:
v0.5.2 (2019-07-26)¶
Implemented enhancements:
implement removecell for markdown cells #192
Fixed bugs:
yaml.load() is unsafe #230
Update documentation links that are broken #224
pip installation: jupyter-book or jupyter_book? #184
Figure out why Gemfile and Gemfile.lock are causing issues #154
Page turn link URLs missing .html #140
Errors when running on Windows #137
Docs aren’t being updated from master #136
toc help is incorrect #132
Closed issues:
Update docs about how to hide code cells #240
Is it possible to export Word, PDF and other formats? #228
Make it clear in the documentation that the full docker path needs to be specified, not the relative path #220
Why do we have “content” directory inside the “_site”? #219
mismatch in docs and functionality #214
Double check that
generate\_toc.py
is getting copied properly #210jupyter-book cli does not work as stated in the getting started guide #208
Unable to install jupyter-book in conda environment #206
Error if kernelspec missing #195
Clarify the CLI help statements #146
jupyter-book upgrade also modifies requirements.txt #130
Merged pull requests:
Markdown exporter in Python instead of the CLI #235 (choldgraf)
[DOC] Clarify full vs relative path in container build instructions #226 (emdupre)
fix doc mismatch for “make build” #216 (thammegowda)
make scripts dir as a module, to be included by
find\_packages\(\)
of setuptools #215 (thammegowda)updating hidecode tag word and allowing total HTML removal #207 (choldgraf)
Ask if kernelspec exists in metadata #197 (joergbrech)
v0.5 (2019-05-13)¶
Implemented enhancements:
Markdown guide refers to Highlightjs but Rouge is used #183
Get codecov working #153
Add thebelab button to every code cell #117
Add an option / config for analytics tracking? #115
Add support for nbinteract #82
Scrolling in subtitle column #173
Fixed bugs:
Page turn links to external sites are broken #186
Code cell pre-wrap causes split lines #182
problems building with images #124
Problems with local build instructions on Mac (and perhaps other ‘nix platforms) #123
Closed issues:
Plots not showing in ipynb files #179
jupyter-book is missing from the binder requirements #166
Binder and Thebelab not working for demo book #155
Errors building HTML #152
Non
--demo
option seems to fail #120Error on notebook.py with inconsistent and DEFAULT_STATIC_FILES_PATH. #108
add requirements to setup.py #105
Add a CONTRIBUTING.md #99
Explore using a cookiecutter for the site #87
Use a Python CLI instead of Make #42
Autogenerate toc #40
Force permalinks to be lowercase and replace space and ‘_’ with ‘-‘ #35
Extra buttons to support #32
Use a submodule for notebooks folder #14
Jupyter Book version v0.5 #175
Merged pull requests:
[FIX] Issue #137 Errors when running on Windows #187 (stafforddavidj)
wrap code even if it has no language #180 (alexmorley)
Make right hand toc scrollable. #176 (alexmorley)
make sure jupyter-book is included in the binder build #167 (joergbrech)
fixing thebelab css and splitting off the interactive notebooks #165 (choldgraf)
[ENH] Add thebelab button to every code cell #163 (joergbrech)
[ENH] Initial commit of dockerfile, updated docs #127 (emdupre)
[ENH] add google analytics option #116 (joergbrech)
improving the non-sidebar layout and toc script #112 (choldgraf)
Adding download links for the notebook files #104 (choldgraf)
fixing thebelab keyboard shortcuts behavior #103 (choldgraf)
v0.4.1 (2019-02-09)¶
Closed issues:
Disappearing None #98
Inquiry: Plotly interactive plots in a Jupyter Books? #93
iframe not rendering #91
thebelab uses the wrong kernel #90
An option to embed a link on sidebar logo #77
Scrollbar overlaps with TOC table (on Linux) #75
Unwanted leading white space at the beginning of code block #73
Standard badges rendering too big #65
Give a shout-out to bookdown #63
Make it clearer how to customize the look and feel of the site #61
Recommend a way to make citations #60
Highlight active section in right sidebar #55
Allow people to put YAML in their content files #51
Site Search #39
Conversion from old system to new #37
Support “versions” of a book #31
Book is not rebuilding #29
Feature request: right-side navbar auto-scroll #24
generate_summary_from_folders doesn’t output prefixed numerals #23
Merged pull requests:
Update FAQ with guidelines for Plotly #97 (mathieuboudreau)
set kernelOptions for thebelab based on notebook’s metadata #92 (joergbrech)
adding search functionality and external links in sidebar #85 (choldgraf)
Rebuild file if source file has a newer time stamp #74 (gaow)
Deploy to github.io using circle and update docs to reflect this #69 (choldgraf)
adding thebelab buttons and some other updates #66 (choldgraf)
Make the sidebar stay on the page during scroll #54 (ReventonC)
Delete duplicated link in readme #46 (consideRatio)
Typo - does it matter? #45 (consideRatio)
Fix broken links #44 (consideRatio)
adding tests and some more command-line options #41 (choldgraf)
Split requirements into build and run #36 (matthew-brett)
Refactor textbook generator to check redirects #27 (matthew-brett)
v0.1 (2018-10-20)¶
Closed issues:
Calling newer version of nbclean than is available on pypi #21
Changing MathJax Size of only Blocks #19
Change Color of Links #18
Enhancements to pull from the DS100 textbook #17
Hidden Code Blocks #13
MathJax Rendering Issues #12
Generate textbook not finding README.md #11
Fork and clone may not be the best workflow #10
Merged pull requests:
Fix dollar escapes at beginning of line #28 (matthew-brett)
Add pip requirements file #26 (matthew-brett)
* This Change Log was automatically generated by github_changelog_generator