nbconvert.rst
168 lines
| 5.2 KiB
| text/x-rst
|
RstLexer
MinRK
|
r11835 | .. _nbconvert: | ||
David P. Sanders
|
r11792 | |||
Converting notebooks to other formats | ||||
===================================== | ||||
Newly added in the 1.0 release of IPython is the ``nbconvert`` tool, which | ||||
allows you to convert an ``.ipynb`` notebook document file into various static | ||||
formats. | ||||
Currently, ``nbconvert`` is provided as a command line tool, run as a script | ||||
MinRK
|
r11824 | using IPython. A direct export capability from within the | ||
David P. Sanders
|
r11792 | IPython Notebook web app is planned. | ||
The command-line syntax to run the ``nbconvert`` script is:: | ||||
MinRK
|
r11824 | $ ipython nbconvert --to FORMAT notebook.ipynb | ||
David P. Sanders
|
r11792 | |||
This will convert the IPython document file ``notebook.ipynb`` into the output | ||||
format given by the ``FORMAT`` string. | ||||
MinRK
|
r11824 | The default output format is html, for which the ``--to`` argument may be | ||
David P. Sanders
|
r11792 | omitted:: | ||
$ ipython nbconvert notebook.ipynb | ||||
MinRK
|
r11824 | IPython provides a few templates for some output formats, and these can be | ||
specified via an additional ``--template`` argument. | ||||
David P. Sanders
|
r11792 | |||
MinRK
|
r11824 | The currently supported export formats are: | ||
David P. Sanders
|
r11792 | |||
MinRK
|
r11824 | * ``--to html`` | ||
David P. Sanders
|
r11792 | |||
MinRK
|
r11824 | - ``--template full`` (default) | ||
MinRK
|
r11837 | |||
MinRK
|
r11824 | A full static HTML render of the notebook. | ||
This looks very similar to the interactive view. | ||||
David P. Sanders
|
r11792 | |||
MinRK
|
r11824 | - ``--template basic`` | ||
MinRK
|
r11837 | |||
MinRK
|
r11824 | Simplified HTML, useful for embedding in webpages, blogs, etc. | ||
This excludes HTML headers. | ||||
David P. Sanders
|
r11792 | |||
MinRK
|
r11824 | * ``--to latex`` | ||
MinRK
|
r11837 | |||
MinRK
|
r11824 | Latex export. This generates ``NOTEBOOK_NAME.tex`` file, | ||
onesandzeroes
|
r20650 | ready for export. | ||
MinRK
|
r11824 | |||
- ``--template article`` (default) | ||||
MinRK
|
r11837 | |||
MinRK
|
r11824 | Latex article, derived from Sphinx's howto template. | ||
David P. Sanders
|
r11792 | |||
onesandzeroes
|
r20650 | - ``--template report`` | ||
MinRK
|
r11837 | |||
onesandzeroes
|
r20650 | Latex report, providing a table of contents and chapters. | ||
David P. Sanders
|
r11792 | |||
MinRK
|
r11824 | - ``--template basic`` | ||
MinRK
|
r11837 | |||
MinRK
|
r11824 | Very basic latex output - mainly meant as a starting point for custom templates. | ||
David P. Sanders
|
r11792 | |||
onesandzeroes
|
r20650 | * ``--to pdf`` | ||
onesandzeroes
|
r20653 | Generates a PDF via latex. Supports the same templates as ``--to latex``. | ||
onesandzeroes
|
r20650 | |||
MinRK
|
r11824 | * ``--to slides`` | ||
David P. Sanders
|
r11792 | |||
MinRK
|
r11824 | This generates a Reveal.js HTML slideshow. | ||
damianavila
|
r14007 | It must be served by an HTTP server. The easiest way to do this is adding | ||
``--post serve`` on the command-line. The ``serve`` post-processor proxies | ||||
Reveal.js requests to a CDN if no local Reveal.js library is present. | ||||
To make slides that don't require an internet connection, just place the | ||||
Reveal.js library in the same directory where your_talk.slides.html is located, | ||||
or point to another directory using the ``--reveal-prefix`` alias. | ||||
MinRK
|
r12514 | |||
MinRK
|
r11837 | * ``--to markdown`` | ||
Simple markdown output. Markdown cells are unaffected, | ||||
Paul Ivanov
|
r15878 | and code cells indented 4 spaces. | ||
MinRK
|
r11837 | |||
* ``--to rst`` | ||||
David P. Sanders
|
r11792 | |||
MinRK
|
r11837 | Basic reStructuredText output. Useful as a starting point for embedding notebooks | ||
in Sphinx docs. | ||||
David P. Sanders
|
r11792 | |||
Min RK
|
r20543 | * ``--to script`` | ||
MinRK
|
r11837 | |||
Min RK
|
r20543 | Convert a notebook to an executable script. | ||
This is the simplest way to get a Python (or other language, depending on the kernel) script out of a notebook. | ||||
If there were any magics in an IPython notebook, this may only be executable from | ||||
MinRK
|
r11824 | an IPython session. | ||
Min RK
|
r20543 | |||
* ``--to notebook`` | ||||
.. versionadded:: 3.0 | ||||
This doesn't convert a notebook to a different format *per se*, | ||||
instead it allows the running of nbconvert preprocessors on a notebook, | ||||
and/or conversion to other notebook formats. For example:: | ||||
ipython nbconvert --to notebook --execute mynotebook.ipynb | ||||
will open the notebook, execute it, capture new output, and save the result in | ||||
:file:`mynotebook.nbconvert.ipynb`. | ||||
:: | ||||
ipython nbconvert --to notebook --nbformat 3 mynotebook | ||||
will create a copy of :file:`mynotebook.ipynb` in :file:`mynotebook.v3.ipynb` | ||||
in version 3 of the :ref:`notebook format <nbformat>`. | ||||
If you want to convert a notebook in-place, | ||||
you can specify the ouptut file to be the same as the input file:: | ||||
ipython nbconvert --to notebook mynb --output mynb | ||||
Be careful with that, since it will replace the input file. | ||||
MinRK
|
r11837 | |||
MinRK
|
r11838 | .. note:: | ||
nbconvert uses pandoc_ to convert between various markup languages, | ||||
Min RK
|
r20543 | so pandoc is a dependency when converting to latex or reStructuredText. | ||
MinRK
|
r11838 | |||
.. _pandoc: http://johnmacfarlane.net/pandoc/ | ||||
David P. Sanders
|
r11792 | |||
MinRK
|
r11824 | The output file created by ``nbconvert`` will have the same base name as | ||
David P. Sanders
|
r11792 | the notebook and will be placed in the current working directory. Any | ||
supporting files (graphics, etc) will be placed in a new directory with the | ||||
same base name as the notebook, suffixed with ``_files``:: | ||||
$ ipython nbconvert notebook.ipynb | ||||
$ ls | ||||
notebook.ipynb notebook.html notebook_files/ | ||||
MinRK
|
r11824 | For simple single-file output, such as html, markdown, etc., | ||
the output may be sent to standard output with:: | ||||
David P. Sanders
|
r11792 | |||
MinRK
|
r11824 | $ ipython nbconvert --to markdown notebook.ipynb --stdout | ||
David P. Sanders
|
r11792 | |||
Multiple notebooks can be specified from the command line:: | ||||
$ ipython nbconvert notebook*.ipynb | ||||
$ ipython nbconvert notebook1.ipynb notebook2.ipynb | ||||
or via a list in a configuration file, say ``mycfg.py``, containing the text:: | ||||
c = get_config() | ||||
c.NbConvertApp.notebooks = ["notebook1.ipynb", "notebook2.ipynb"] | ||||
and using the command:: | ||||
$ ipython nbconvert --config mycfg.py | ||||
Brian E. Granger
|
r12270 | LaTeX citations | ||
--------------- | ||||
``nbconvert`` now has support for LaTeX citations. With this capability you | ||||
can: | ||||
* Manage citations using BibTeX. | ||||
* Cite those citations in Markdown cells using HTML data attributes. | ||||
* Have ``nbconvert`` generate proper LaTeX citations and run BibTeX. | ||||
For an example of how this works, please see the citations example in | ||||
the nbconvert-examples_ repository. | ||||
.. _nbconvert-examples: https://github.com/ipython/nbconvert-examples | ||||