Changes in nbconvert¶
- MANIFEST.in updated to include
scripts/when creating sdist. PR #666
Tag Based Element Filtering¶
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.
- 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
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 cells
remove_input_tags: removes inputs
remove_all_outputs_tag: removes all outputs
remove_single_output_tag: removes individual outputs
- new: configurable
browserin ServePostProcessor PR #618
--clear-outputcommand line flag to clear output in-place PR #619
- new: remove elements based on tags with
TagRemovePreprocessor. PR #640, PR #643
- new: CellExecutionError can now be imported from
- new: slides now can enable scrolling and custom transitions PR #600
- docs: Release instructions for nbviewer-deploy
- docs: improved instructions for handling errors using the
- tests: better height/width metadata testing for images in rst & html PR #601 PR #602
- tests: normalise base64 output data to avoid false positives PR #650
- tests: normalise ipython traceback messages to handle old and new style PR #631
- bug: mathjax obeys
\\[\\](both nbconvert & pandoc) PR #609 PR #617
- bug: specify default templates using extensions PR #639
- bug: fix pandoc version number PR #638
- bug: require recent mistune version PR #630
- bug: catch errors from IPython
errormessages PR #642
- nose completely removed & dependency dropped PR #595 PR #660
- mathjax processing in mistune now only uses inline grammar PR #611
- removeRegex now enabled by default on all TemplateExporters, does not remove cells with outputs PR #616
- validate notebook after applying each preprocessor (allowing additional attributes) PR #645
- changed COPYING.md to LICENSE for more standard licensing that GitHub knows how to read PR #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:
Global Content Filtering¶
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.
Execute notebooks from a function¶
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.
Remove cells based on regex pattern¶
This removes cells based on their matching a regex pattern (by default, empty cells). This is the RegexRemovePreprocessor.
Script exporter entrypoints for nonpython scripts¶
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 PR #583
- new: RemoveCell preprocessor based on cell content (defaults to empty cell) PR #575
- new: function for executing notebooks: executenb PR #573
- new: global filtering to remove inputs, outputs, markdown cells (&c.), this works on all templates PR #554
- new: script exporter entrypoint PR #531
- new: configurable anchor link text (previously ¶) HTMLExporter.anchor_link_text PR #522
- new: configurable values for slides exporter PR #542 PR #558
- improved releases (how-to documentation, version-number generation and checking) PR #593
- doc improvements PR #593 PR #580 PR #565 PR #554
- language information from cell magics (for highlighting) is now included in more formats PR #586
- mathjax upgrades and cdn fixes PR #584 PR #567
- better CI PR #571 PR #540
- better traceback behaviour when execution errs PR #521
- deprecated nose test features removed PR #519
- bug fixed: we now respect width and height metadata on jpeg and png mimetype outputs PR #588
- bug fixed: now we respect the resolve_references filter in report.tplx PR #577
- bug fixed: output metadata now is removed by ClearOutputPreprocessor PR #569
- bug fixed: display id respected in execute preproessor PR #563
- bug fixed: dynamic defaults for optional jupyter_client import PR #559
- bug fixed: don’t self-close non-void HTML tags PR #548
- buf fixed: upgrade jupyter_client dependency to 4.2 PR #539
- bug fixed: LaTeX output through md→LaTeX conversion shouldn’t be touched PR #535
- bug fixed: now we escape < inside math formulas when converting to html PR #514
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
- 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
- improved CSS (specifically tables, in line with notebook) PR #498
- improve in-memory templates handling PR #491
- test improvements PR #516 PR #509 PR #505
- new configuration option: IOPub timeout PR #513
- doc improvements PR #489 PR #500 PR #493 PR #506
- newly customizable: output prompt PR #500
- more python2/3 compatibile unicode handling PR #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_pandocfilter 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.
- Custom Exporters can be provided by external packages, and registered with nbconvert via setuptools entrypoints.
- allow nbconvert reading from stdin with
--stdinoption (write into
- Various ANSI-escape fixes and improvements
- Various LaTeX/PDF export fixes
- Various fixes and improvements for executing notebooks with
- 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