- Remove ipython genutils
1727
- Add section to customizing showing how to use template inheritance
1719
- Adding theme support for WebPDF exporter
1718
- Add option to embed_images in Markdown cells
1717
- HTMLExporter: Add theme alias and docs
1716
- Add basic support for federated labextensions themes
1703
- Always hide the collapser element :ghpull:`1712)
- Raise pyppeteer requirement to >=1,<1.1
1711
- Handle needs_background cell metadata
1704
- Fix styling regression
1708
- Fix DOM structure of markdown cells in lab template
1709
- CodeMirror style bleed fix
1710
The full list of changes can be seen on the 6.4.0 milestone
- Allow passing extra args to code highlighter
1683
- Prevent page breaks in outputs when printing
1679
- Add collapsers to template
1689
- Optionally speed up validation
1672
The full list of changes can be seen on the 6.3.0 milestone
- Update state filter
1664
- Add slide numbering
1654
- Fix HTML templates mentioned in help docs
1653
The full list of changes can be seen on the 6.2.0 milestone
- Add the ability to fully customize
widget_renderer_url
1614
- Enable users to customize MathJax URLs
1609
- Add CLI configuration for disable-chromium-sandbox
1625
- Enables webpdf to be rendered with templates
1601
- Adds dejavu
1599
This release is mostly a long list of bug fixes and capability additions. Thanks to the many contributors for helping Improve nbconvert!
The following 31 authors contributed 81 commits.
- Adolph
- Alessandro Finamore
- Angus Hollands
- Atsuo Ishimoto
- Bo
- David Brochart
- Frédéric Collonval
- Jeremy Howard
- Jim Zwartveld
- José Ignacio Romero
- Joyce Er
- joyceerhl
- Kyle Cutler
- Leah E. Cole
- Leah Wasser
- Nihiue
- Matthew Seal
- Michael Adolph
- Mohammad Mostafa Farzan
- Okky Mabruri
- Pill-GZ
- ptcane
- Raniere Silva
- Ryan Moe
- Stefan Lang
- Sylvain Corlay
- Tobin Jones
- txoof
- Yuvi Panda
- Dropped Python 3.6 and added Python 3.9
1542
: and1556
: - Convert execute preprocessor wrapper to resemble papermill
1448
:
- Feature: support static widgets in Reveal.js slides
1553
: - Feature: add speaker notes to Reveal.js template
1543
: - Add correct output mimetype to WebPDF exporter
1534
: - Set mimetype for webpdf correctly
1514
: - Fix docstring issue and a broken link
1576
: - Add CLI example for removing cell tag syntax
1504
: - Include output of stdin stream in lab template
1454
: - Don't use a shell to call inkscape
1512
: - JupyterLab export as HTML with widgets fails to load widgets
1474
: - Move note inside Reveal.js HTML slideshow
1510
: - fix issue 1507: broken command line option --CSSHTMLHeaderPreprocessor.style=
1548
: - Fix order of template paths
1496
: - Changed documentation of external_exporters
1582
: - Fix template precedence when using a custom template (#1558)
1577
: - add pip to docs envt
1571
: - Fix CI By Adding PIP to conda envt for docs build
1570
: - Explicitly install pip in docs environment.yml
1569
: - small update to docs hide cell
1567
: - Allow child templates to override mathjax
1551
: - Allow get_export_names to skip configuration check
1471
: - Update docs: Tex Live package on Ubuntu
1555
: - Test jupyter_client
1545
: - Update jupyterlab css
1539
: - Webpdf: Use a temporary file instead of an URL
1489
: - Applied patch for marking network changes
1527
: - Change webpdf display name
1515
: - Allow disabling pyppeteer sandbox
1516
: - Make pagination configurable in webpdf
1513
: - Fix Reveal.js version in documentation
1509
: - Fix dangling reference to get_template_paths()
1463
: - Solved svg2pdf conversion error if Inkscape is installed into the default path on a windows machine
1469
: - fix typo
1499
: - Update version dependency of traitlets
1498
: - Update execute.py
1457
: - Fix code output indentation when running nbconvert --no-input
1444
: - fix issue (i'd call it a BUG) #1167
1450
: - #1428 add docstring
1433
: - Update nbconvert_library.ipynb
1438
: - Supports isolated iframe when converting to HTML
1593
Primarly a release addressing template extensions issues reported since 6.0 launched.
- Comment typo fix
1425
: - Documented updated to default conversion changes from 6.0
1426
: - Allow custom template files outside of the template system to set their base template name
1429
: - Restored basic template from 5.x
1431
: - Added proper support for backwards compatibility templates
1431
:
A range of bug fixes for webpdf exports
- Removed CSS preprocessor from default proprocessor list (fixes classic rendering)
1411
: - Fixed error when pickling TemplateExporter
1399
: - Support for fractional height html / webpdf exports
1413
: - Added short wait time for fonts and rendering in webpdf
1414
: - Updated template documentation
- Minor fixes to the webpdf exporter
1419
: - Fixup use with a running event loop within webpdf
1420
: - Prevent overflow in input areas in lab template
1422
:
- Revert networkidle2 change which caused custom cdn-fetched widgets in webpdf
- The webpdf exporters does not add pagebreaks anymore before reaching the maximum height allowed by Adobe
1402
: - Fixes some timeout issues with the webpdf exporter
1400
:
Execute preprocessor no longer add illegal execution counts to markdown cells 1396
:
A patch for a few minor issues raised out of the 6.0 release.
- Added windows work-around fix in CLI for async applications
1383
: - Fixed pathed template files to behave correctly for local relative paths without a dot
1381
: - ExecuteProcessor now properly has a
preprocess_cell
function to overwrite1380
:
- Updated README and docs with guidance on how to get help with nbconvert
1377
: - Fixed documentation that was referencing
template_path
instead oftemplate_paths
1374
:
A quick patch to fix an issue with get_exporter 1367
:
The following authors and reviewers contributed the changes for this release -- Thanks you all!
- Ayaz Salikhov
- bnables
- Bo
- David Brochart
- David Cortés
- Eric Wieser
- Florian Rathgeber
- Ian Allison
- James Wilshaw
- Jeremy Tuloup
- Joel Ostblom
- Jon Bannister
- Jonas Drotleff
- Josh Devlin
- Karthikeyan Singaravelan
- Kerwin.Sun
- letmerecall
- Luciano Resende
- Lumír 'Frenzy' Balhar
- Maarten A. Breddels
- Maarten Breddels
- Marcel Stimberg
- Matthew Brett
- Matthew Seal
- Matthias Bussonnier
- Matthias Geier
- Miro Hrončok
- Phil Austin
- Praveen Batra
- Ruben Di Battista
- Ruby Werman
- Sang-Yun Oh
- Sergey Kizunov
- Sundar
- Sylvain Corlay
- telamonian
- Thomas Kluyver
- Thomas Ytterdal
- Tyler Makaro
- Yu-Cheng (Henry) Huang
Nbconvert 6.0 is a major release of nbconvert which includes many significant changes.
- Python 2 support was dropped. Currently Python 3.6-3.8 is supported and tested by nbconvert. However, nbconvert 6.0 provides limited support for Python 3.6. nbconvert 6.1 will drop support for Python 3.6. Limited support means we will test and run CI on Python 3.6.12 or higher. Issues that are found only affecting Python 3.6 are not guaranteed to be fixed. We recommend all users of nbconvert use Python 3.7 and higher.
- Unlike previous versions, nbconvert 6.0 relies on the nbclient package for the execute preprocessor, which allows for asynchronous kernel requests.
template_path
has becometemplate_paths
. If referring to a 5.x style.tpl
template use the full path with thetemplate_file
argument to the file. On the command line the pattern is--template-file=<path/to/file.tpl>
.- Nbconvert 6.0 includes a new "webpdf" exporter, which renders notebooks in pdf format through a headless web browser, so that complex outputs such as HTML tables, or even widgets are rendered in the same way as with the HTML exporter and a web browser.
- The default template applied when exporting to HTML now produces the same DOM structure as JupyterLab, and is styled using JupyterLab's CSS. The pygments theme in use mimics JupyterLab's codemirror mode with the same CSS variables, so that custom JupyterLab themes could be applied. The classic notebook styling can still be enabled with
jupyter nbconvert --to html --template classic
- Nbconvert 6.0 includes a new system for creating custom templates, which can now be installed as packages. A custom "foobar" template is installed in Jupyter's data directory under
nbconvert/templates
and has the form of a directory containing all resources. Templates specify their base template as well as other configuration parameters in aconf.json
at the root of the template directory. - The "slideshow" template now makes use of RevealJS version 4. It can now be used with the HTML exporter with
jupyter nbconvert --to html --template reveal
The --to slides
exporter is still supported for convenience.
- Inkscape 1.0 is now supported, which had some breaking changes that prevented 5.x versions of nbconvert from converting documents on some systems that updated.
We merged 105 pull requests! Rather than enumerate all of them we'll link to the github page which contains the many smaller impact improvements.
The full list can be seen on GitHub
The following authors and reviewers contributed the changes for this release -- Thanks you all!
- Charles Frye
- Chris Holdgraf
- Felipe Rodrigues
- Gregor Sturm
- Jim
- Kerwin Sun
- Ryan Beesley
- Matthew Seal
- Matthias Geier
- thuy-van
- Tyler Makaro
RegExRemove preprocessor now removes cells regardless of cell outputs. Before this only cells that had outputs were filtered.
- Add support for alt tags for jpeg and png images
1112
: - Allow HTML header anchor text to be HTML
1101
: - Change RegExRemove to remove code cells with output
1095
: - Added cell tag data attributes to HTML exporter
1090
: and1089
:
- Update svg2pdf.py to search the PATH for inkscape
1115
: - Fix latex dependencies installation command for Ubuntu systems
1109
:
- Added Circle CI builds for documentation
1114
:1120
:, and1116
: - Fix typo in argument name in docstring (TagRemovePreprocessor)
1103
: - Changelog typo fix
1100
: - Updated API page for TagRemovePreprocessor and TemplateExporter
1088
: - Added remove_input_tag traitlet to the docstring
1088
:
The following 24 authors and reviewers contributed 224 commits -- Thank you all!
- 00Kai0
- Aidan Feldman
- Alex Rudy
- Alexander Kapshuna
- Alexander Rudy
- amniskin
- Carol Willing
- Dustin H
- Hsiaoming Yang
- imtsuki
- Jessica B. Hamrick
- KrokodileDandy
- Kunal Marwaha
- Matthew Seal
- Matthias Geier
- Miro Hrončok
- M Pacer
- Nils Japke
- njapke
- Sebastian Führ
- Sylvain Corlay
- Tyler Makaro
- Valery M
- Wayne Witzel
The full list of changes they made can be seen on GitHub
The jupyter_client
dependency is now pinned to >5.3.1
. This is done to support the Parallel NBConvert below, and future versions may require interface changes from that version.
NBConvert --execute
can now be run in parallel via threads, multiprocessing, or async patterns! This means you can now parallelize nbconvert via a bash loop, or a python concurrency pattern and it should be able to execute those notebooks in parallel.
Kernels have varying support for safe concurrent execution. The ipython kernel (ipykernel version 1.5.2 and higher) should be safe to run concurrently using Python 3. However, the Python 2 ipykernel does not always provide safe concurrent execution and sometimes fails with a socket bind exception. Unlike ipykernel which is maintained by the project, other community-maintained kernels may have varying support for concurrent execution, and these kernels were not tested heavily.
Issues for nbconvert can be viewed here: 1018
:, and 1017
:
This release completely rewrote the execution loop responsible for monitoring kernel messages until cell execution is completed. This removes an error where kernel messages could be dropped if too many were posted too quickly. Furthermore, the change means that messages are not buffered. Now, messages can be logged immediately rather than waiting for the cell to terminate.
See 994
: for exact code changes if you're curious.
- Make a default global location for custom user templates
1028
: - Parallel execution improvements
1018
:, and1017
: - Added
store_history
option topreprocess_cell
andrun_cell
1055
: - Simplify the function signature for preprocess()
1042
: - Set flag to not always stop kernel execution on errors
1040
: setup_preprocessor
passes kwargs tostart_new_kernel
1021
:
- Very fast stream outputs no longer drop some messages
994
: - LaTeX errors now properly raise exceptions
1053
: - Improve template whitespacing
1076
: - Fixes for character in LaTeX exports and filters
1068
:,1039
:,1024
:, and1077
: - Mistune pinned in preparation for 2.0 release
1074
: - Require mock only on Python 2
1060
: and1011
: - Fix selection of mimetype when converting to HTML
1036
: - Correct a few typos
1029
: - Update
export_from_notebook
names1027
: - Dedenting html in ExtractOutputPreprocessor
1023
: - Fix backwards incompatibility with markdown2html
1022
: - Fixed html image tagging
1013
: - Remove unnecessary css
1010
:
- Pip-install nbconvert on readthedocs.org
1069
: - Fix various doc build issues
1051
:,1050
:,1019
:, and1048
: - Add issue templates
1046
: - Added instructions for bumping the version forward when releasing
1034
: - Fix Testing on Windows
1030
: - Refactored
test_run_notebooks
1015
: - Fixed documentation typos
1009
:
The following 18 authors contributed 144 commits -- Thank you all!
- Benjamin Ragan-Kelley
- Clayton A Davis
- DInne Bosman
- Doug Blank
- Henrique Silva
- Jeff Hale
- Lukasz Mitusinski
- M Pacer
- Maarten Breddels
- Madhumitha N
- Matthew Seal
- Paul Gowder
- Philipp A
- Rick Lupton
- Rüdiger Busche
- Thomas Kluyver
- Tyler Makaro
- WrRan
The full list of changes they made can be seen on GitHub
Python 3.4 support was dropped. Many of our upstream libraries stopped supporting 3.4 and it was found that serious bugs were being caught during testing against those libraries updating past 3.4.
See 979
for details.
Now when a notebook executing contains Jupyter Widgets, the state of all the widgets can be stored in the notebook's metadata. This allows rendering of the live widgets on, for instance nbviewer, or when converting to html.
You can tell nbconvert to not store the state using the store_widget_state
argument:
jupyter nbconvert --ExecutePreprocessor.store_widget_state=False --to notebook --execute mynotebook.ipynb
This widget rendering is not performed against a browser during execution, so only widget default states or states manipulated via user code will be calculated during execution. %%javascript
cells will execute upon notebook rendering, enabling complex interactions to function as expected when viewed by a UI.
If you can't view widget results after execution, you may need to select File --> Trust Notebook
in the menu.
See 779
, 900
, and 983
for details.
Based on monkey patching required in papermill the run_cell
code path in the ExecutePreprocessor was reworked to allow for accessing individual message parses without reimplementing the entire function. Now there is a process_message
function which take a ZeroMQ message and applies all of its side-effect updates on the cell/notebook objects before returning the output it generated, if it generated any such output.
The change required a much more extensive test suite covering cell execution as test coverage on the various, sometimes wonky, code paths made improvements and reworks impossible to prove undamaging. Now changes to kernel message processing has much better coverage, so future additions or changes with specs over time will be easier to add.
See 905
and 982
for details
When running out of memory on a machine, if the kernel process was killed by the operating system it would result in a timeout error at best and hang indefinitely at worst. Now regardless of timeout configuration, if the underlying kernel process dies before emitting any messages to the effect an exception will be raised notifying the consumer of the lost kernel within a few seconds.
See 959
, 971
, and 998
for details
The latex template was long overdue for improvements. The default template had a rewrite which makes exports for latex and pdf look a lot better. Code cells in particular render much better with line breaks and styling the more closely matches notebook browser rendering. Thanks t-makaro for the efforts here!
See 992
for details
- IPyWidget Support
779
,900
, and983
- A new ClearMetadata Preprocessor is available
805
: - Support for pandoc 2
964
: - New, and better, latex template
992
:
- Refactored execute preprocessor to have a process_message function
905
: - Fixed OOM kernel failures hanging
959
and971
: - Fixed latex export for svg data in python 3
985
: - Enabled configuration to be shared to exporters from script exporter
993
: - Make latex errors less verbose
988
: - Typo in template syntax
984
: - Improved attachments +fix supporting non-unique names
980
: - PDFExporter "output_mimetype" traitlet is not longer 'text/latex'
972
: - FIX: respect wait for clear_output
969
: - address deprecation warning in cgi.escape
963
: - Correct inaccurate description of available LaTeX template
958
: - Fixed kernel death detection for executions with timeouts
998
: - Fixed export names for various templates
1000
,1001
, and1001
:
- Dropped support for python 3.4
979
: - Removed deprecated
export_by_name
945
:
- Added tests for each branch in execute's run_cell method
982
: - Mention formats in --to options more clearly
991
: - Adds ascii output type to command line docs page, mention image folder output
956
: - Simplify setup.py
949
: - Use utf-8 encoding in execute_api example
921
: - Upgrade pytest on Travis
941
: - Fix LaTeX base template name in docs
940
: - Updated release instructions based on 5.4 release walk-through
887
: - Fixed broken link to jinja docs
997
:
Thanks to the following 11 authors who contributed 57 commits.
- Benjamin Ragan-Kelley
- Carol Willing
- Clayton A Davis
- Daniel Rodriguez
- M Pacer
- Matthew Seal
- Matthias Geier
- Matthieu Parizy
- Rüdiger Busche
- Thomas Kluyver
- Tyler Makaro
- Expose pygments styles
889
: - Tornado 6.0 support -- Convert proxy handler from callback to coroutine
937
: - Add option to overwrite the highlight_code filter
877
:
- Mathjax.tpl fix for rendering Latex in html
932
: - Backwards compatbility for empty kernel names
927
924
- DOC: Add missing language specification to code-block
882
:
Python 3.3 support was dropped. The version of python is no longer common and new versions have many fixes and interface improvements that warrant the change in support.
See 843
for implementation details.
There were a few new metadata fields which are now respected in nbconvert.
nb.metadata.authors
metadata attribute will be respected in latex exports. Multiple authors will be added with ,
separation against their names.
nb.metadata.title
will be respected ahead of nb.metadata.name
for title assignment. This better matches with the notebook format.
nb.metadata.filename
will override the default output_filename_template
when extracting notebook resources in the ExtractOutputPreprocessor
. The attribute is helpful for when you want to consistently fix to a particular output filename, especially when you need to set image filenames for your exports.
The raises-exception
cell tag (nb.cells[].metadata.tags[raises-exception]
) allows for cell exceptions to not halt execution. The tag is respected in the same way by nbval and other notebook interfaces. nb.metadata.allow_errors
will apply this rule for all cells. This feature is toggleable with the force_raise_errors
configuration option. Errors from executing the notebook can be allowed with a raises-exception
tag on a single cell, or the allow_errors
configurable option for all cells. An allowed error will be recorded in notebook output, and execution will continue. If an error occurs when it is not explicitly allowed, a 'CellExecutionError' will be raised. If force_raise_errors
is True, CellExecutionError
will be raised for any error that occurs while executing the notebook. This overrides both the allow_errors
option and the raises-exception
cell tags.
See 867
, 703
, 685
, 672
, and 684
for implementation changes.
The kernel manager can now be optionally passed into the ExecutePreprocessor.preprocess
and the executenb
functions as the keyword argument km
. This means that the kernel can be configured as desired before beginning preprocessing.
This is useful for executing in a context where the kernel has external dependencies that need to be set to non-default values. An example of this might be a Spark kernel where you wish to configure the Spark cluster location ahead of time without building a new kernel.
Overall the ExecutePreprocessor has been reworked to make it easier to use. Future releases will continue this trend to make this section of the code more inheritable and reusable by others. We encourage you read the source code for this version if you're interested in the detailed improvements.
See 852
for implementation changes.
Exporters are now exposed for front-ends to consume, including classic notebook. As an example, this means that latex exporter will be made available for latex 'text/latex' media type from the Download As interface.
See 759
and 864
for implementation changes.
Template exporters can now be assigned raw templates as string attributes by setting the raw_template
variable.
class AttrExporter(TemplateExporter):
# If the class has a special template and you want it defined within the class
raw_template = """{%- extends 'rst.tpl' -%}
{%- block in_prompt -%}
raw template
{%- endblock in_prompt -%}
"""
exporter_attr = AttrExporter()
output_attr, _ = exporter_attr.from_notebook_node(nb)
assert "raw template" in output_attr
See 675
for implementation changes.
The --no-input
will hide input cells on export. This is great for notebooks which generate "reports" where you want the code that was executed to not appear by default in the extracts.
An alias for notebook
was added to exporter commands. Now --to ipynb
will behave as --to notebook
does.
See 825
and 873
for implementation changes.
- No input flag (
--no-input
)825
- Add alias
--to ipynb
for notebook exporter873
- Add
export_from_notebook
864
- If set, use
nb.metadata.authors
for LaTeX author line867
- Populate language_info metadata when executing
860
- Support for
\mathscr
830
- Allow the execute preprocessor to make use of an existing kernel
852
- Refactor ExecutePreprocessor
816
- Update widgets CDN for ipywidgets 7 w/fallback
792
- Add support for adding custom exporters to the "Download as" menu.
759
- Enable ANSI underline and inverse
696
- Update notebook css to 5.4.0
748
- Change default for slides to direct to the reveal cdn rather than locally
732
- Use "title" instead of "name" for metadata to match the notebook format
703
- Img filename metadata
685
- Added MathJax compatibility definitions
687
- Per cell exception
684
- Simple API for in-memory templates
674
675
- Set BIBINPUTS and BSTINPUTS environment variables when making PDF
676
- If
nb.metadata.title
is set, default to that for notebook672
- Drop support for python 3.3
843
- Default conversion method on the CLI was removed (
--to html
now required)
- Fix api break
872
- Don't remove empty cells by default
784
- Handle attached images in html converter
780
- No need to check for the channels already running
862
- Update
font-awesome
version for slides793
- Properly treat JSON data
847
- Skip executing empty code cells
739
- Ppdate log.warn (deprecated) to log.warning
804
- Cleanup notebook.tex during PDF generation
768
- Windows unicode error fixed, nosetest added to setup.py
757
- Better content hiding; template & testing improvements
734
- Fix Jinja syntax in custom template example.
738
- Fix for an issue with empty math block
729
- Add parser for Multiline math for LaTeX blocks
716
717
- Use defusedxml to parse potentially untrusted XML
708
- Fixes for traitlets 4.1 deprecation warnings
695
- A couple of typos
870
- Add python_requires metadata.
871
- Document
--inplace
command line flag.839
- Fix minor typo in
usage.rst
863
- Add note about local
reveal_url_prefix
844
- Move
onlyif_cmds_exist
decorator to test-specific utils854
- Include LICENSE file in wheels
827
- Added Ubuntu Linux Instructions
724
- Check for too recent of pandoc version
814
872
- Removing more nose remnants via dependencies.
758
- Remove offline statement and add some clarifications in slides docs
743
- Linkify PR number
710
- Added shebang for python
694
- Upgrade mistune dependency
705
- add feature to improve docs by having links to prs
662
- Update notebook CSS from version 4.3.0 to 5.1.0
682
- Explicitly exclude or include all files in Manifest.
670
- MANIFEST.in updated to include
LICENSE
andscripts/
when creating sdist.666
For removing individual elements from notebooks, we need a way to signal to nbconvert that the elements should be removed. With this release, we introduce the use of tags for that purpose.
Tags are user-defined strings attached to cells or outputs. They are stored in cell or output metadata. For more on tags see the nbformat docs on cell metadata.
Usage:
- Apply tags to the elements that you want to remove.
For removing an entire cell, the cell input, or all cell outputs apply the tag to the cell.
For removing individual outputs, put the tag in the output metadata using a call like display(your_output_element, metadata={tags=[<your_tags_here>]})
.
NB: Use different tags depending on whether you want to remove the entire cell, the input, all outputs, or individual outputs.
- Add the tags for removing the different kinds of elements to the following traitlets. Which kind of element you want to remove determines which traitlet you add the tags to.
The following traitlets remove elements of different kinds:
remove_cell_tags
: removes cellsremove_input_tags
: removes inputsremove_all_outputs_tag
: removes all outputsremove_single_output_tag
: removes individual outputs
- new: configurable
browser
in ServePostProcessor618
- new:
--clear-output
command line flag to clear output in-place619
- new: remove elements based on tags with
TagRemovePreprocessor
.640
,643
- new: CellExecutionError can now be imported from
nbconvert.preprocessors
656
- new: slides now can enable scrolling and custom transitions
600
- docs: Release instructions for nbviewer-deploy
- docs: improved instructions for handling errors using the
ExecutePreprocessor
656
- tests: better height/width metadata testing for images in rst & html
601
602
- tests: normalise base64 output data to avoid false positives
650
- tests: normalise ipython traceback messages to handle old and new style
631
- bug: mathjax obeys
\\(\\)
&\\[\\]
(both nbconvert & pandoc)609
617
- bug: specify default templates using extensions
639
- bug: fix pandoc version number
638
- bug: require recent mistune version
630
- bug: catch errors from IPython
execute_reply
anderror
messages642
- nose completely removed & dependency dropped
595
660
- mathjax processing in mistune now only uses inline grammar
611
- removeRegex now enabled by default on all TemplateExporters, does not remove cells with outputs
616
- validate notebook after applying each preprocessor (allowing additional attributes)
645
- changed COPYING.md to LICENSE for more standard licensing that GitHub knows how to read
654
In this release (along with the usual bugfixes and documentation improvements, which are legion) we have a few new major features that have been requested for a long time:
You now have the ability to remove input or output from code cells, markdown cells and the input and output prompts. The easiest way to access all of these is by using traitlets like TemplateExporter.exclude_input = True (or, for example HTMLExporter.exclude_markdown = True if you wanted to make it specific to HTML output). On the command line if you just want to not have input or output prompts just use --no-prompt.
You can now use the executenb function to execute notebooks as though you ran the execute preprocessor on the notebooks. It returns the standard notebook and resources options.
This removes cells based on their matching a regex pattern (by default, empty cells). This is the RegexRemovePreprocessor.
Now there is an entrypoint for having an exporter specific to the type of script that is being exported. While designed for use with the IRkernel in particular (with a script exporter focused on exporting R scripts) other non-python kernels that wish to have a language specific exporter can now surface that directly.
- new: configurable ExecutePreprocessor.startup_timeout configurable
583
- new: RemoveCell preprocessor based on cell content (defaults to empty cell)
575
- new: function for executing notebooks:
executenb
573
- new: global filtering to remove inputs, outputs, markdown cells (&c.), this works on all templates
554
- new: script exporter entrypoint
531
- new: configurable anchor link text (previously ¶)
HTMLExporter.anchor_link_text
522
- new: configurable values for slides exporter
542
558
- improved releases (how-to documentation, version-number generation and checking)
593
- doc improvements
593
580
565
554
- language information from cell magics (for highlighting) is now included in more formats
586
- mathjax upgrades and cdn fixes
584
567
- better CI
571
540
- better traceback behaviour when execution errs
521
- deprecated nose test features removed
519
- bug fixed: we now respect width and height metadata on jpeg and png mimetype outputs
588
- bug fixed: now we respect the
resolve_references
filter inreport.tplx
577
- bug fixed: output metadata now is removed by ClearOutputPreprocessor
569
- bug fixed: display id respected in execute preproessor
563
- bug fixed: dynamic defaults for optional jupyter_client import
559
- bug fixed: don't self-close non-void HTML tags
548
- buf fixed: upgrade jupyter_client dependency to 4.2
539
- bug fixed: LaTeX output through md→LaTeX conversion shouldn't be touched
535
- bug fixed: now we escape
<
inside math formulas when converting to html514
This release has been larger than previous releases. In it 33 authors contributed a total of 546 commits.
Many thanks to the following individuals who contributed to this release (in alphabetical order):
- Adam Chainz
- Andreas Mueller
- Bartosz T
- Benjamin Ragan-Kelley
- Carol Willing
- Damián Avila
- Elliot Marsden
- Gao, Xiang
- Jaeho Shin
- Jan Schulz
- Jeremy Kun
- Jessica B. Hamrick
- John B Nelson
- juhasch
- Livia Barazzetti
- M Pacer
- Matej Urbas
- Matthias Bussonnier
- Matthias Geier
- Maximilian Albert
- Michael Scott Cuthbert
- Nicholas Bollweg
- Paul Gowder
- Paulo Villegas
- Peter Parente
- Philipp A
- Scott Sanderson
- Srinivas Reddy Thatiparthy
- Sylvain Corlay
- Thomas Kluyver
- Till Hoffmann
- Xiang Gao
- YuviPanda
- fix version numbering because of incomplete previous version number
- improved CSS (specifically tables, in line with notebook)
498
- improve in-memory templates handling
491
- test improvements
516
509
505
- new configuration option: IOPub timeout
513
- doc improvements
489
500
493
506
- newly customizable: output prompt
500
- more python2/3 compatibile unicode handling
502
- Use
xelatex
by default for latex export, improving unicode and font support. - Use entrypoints internally to access Exporters, allowing for packages to declare custom exporters more easily.
- New ASCIIDoc Exporter.
- New preprocessor for sanitised html output.
- New general
convert_pandoc
filter to reduce the need to hard-code lists of filters in templates. - Use pytest, nose dependency to be removed.
- Refactored Exporter code to avoid ambiguity and cyclic dependencies.
- Update to traitlets 4.2 API.
- Fixes for Unicode errors when showing execution errors on Python 2.
- Default math font matches default Palatino body text font.
- General documentation improvements. For example, testing, installation, custom exporters.
- Improved link handling for LaTeX output
- Refactored the automatic id generation.
- New kernel_manager_class configuration option for allowing systems to be set up to resolve kernels in different ways.
- Kernel errors now will be logged for debugging purposes when executing notebooks.
- added live widget rendering for html output, nbviewer by extension
Custom Exporters <external_exporters>
can be provided by external packages, and registered with nbconvert via setuptools entrypoints.- allow nbconvert reading from stdin with
--stdin
option (write intonotebook
basename) - Various ANSI-escape fixes and improvements
- Various LaTeX/PDF export fixes
- Various fixes and improvements for executing notebooks with
--execute
.
- setuptools fixes for entrypoints on Windows
- various fixes for exporters, including slides, latex, and PDF
- fixes for exceptions met during execution
- include markdown outputs in markdown/html exports