##// END OF EJS Templates
It is the serve post processor and not the way to specify it.
damianavila -
Show More
@@ -1,230 +1,230 b''
1 1 .. _nbconvert:
2 2
3 3 Converting notebooks to other formats
4 4 =====================================
5 5
6 6 Newly added in the 1.0 release of IPython is the ``nbconvert`` tool, which
7 7 allows you to convert an ``.ipynb`` notebook document file into various static
8 8 formats.
9 9
10 10 Currently, ``nbconvert`` is provided as a command line tool, run as a script
11 11 using IPython. A direct export capability from within the
12 12 IPython Notebook web app is planned.
13 13
14 14 The command-line syntax to run the ``nbconvert`` script is::
15 15
16 16 $ ipython nbconvert --to FORMAT notebook.ipynb
17 17
18 18 This will convert the IPython document file ``notebook.ipynb`` into the output
19 19 format given by the ``FORMAT`` string.
20 20
21 21 The default output format is html, for which the ``--to`` argument may be
22 22 omitted::
23 23
24 24 $ ipython nbconvert notebook.ipynb
25 25
26 26 IPython provides a few templates for some output formats, and these can be
27 27 specified via an additional ``--template`` argument.
28 28
29 29 The currently supported export formats are:
30 30
31 31 * ``--to html``
32 32
33 33 - ``--template full`` (default)
34 34
35 35 A full static HTML render of the notebook.
36 36 This looks very similar to the interactive view.
37 37
38 38 - ``--template basic``
39 39
40 40 Simplified HTML, useful for embedding in webpages, blogs, etc.
41 41 This excludes HTML headers.
42 42
43 43 * ``--to latex``
44 44
45 45 Latex export. This generates ``NOTEBOOK_NAME.tex`` file,
46 46 ready for export. You can automatically run latex on it to generate a PDF
47 47 by adding ``--post PDF``.
48 48
49 49 - ``--template article`` (default)
50 50
51 51 Latex article, derived from Sphinx's howto template.
52 52
53 53 - ``--template book``
54 54
55 55 Latex book, derived from Sphinx's manual template.
56 56
57 57 - ``--template basic``
58 58
59 59 Very basic latex output - mainly meant as a starting point for custom templates.
60 60
61 61 * ``--to slides``
62 62
63 63 This generates a Reveal.js HTML slideshow.
64 64 It must be served by an HTTP server. The easiest way to do this is adding
65 ``--post serve`` on the command-line. The ``--post serve`` post-processor
65 ``--post serve`` on the command-line. The ``serve`` post-processor
66 66 proxies Reveal.js requests to a CDN if no local Reveal.js library is present.
67 67 For low connectivity environments, just place the Reveal.js library in the
68 68 same directory where your_talk.slides.html is located or point to another
69 69 directory using the ``--reveal-prefix`` alias.
70 70
71 71 * ``--to markdown``
72 72
73 73 Simple markdown output. Markdown cells are unaffected,
74 74 and code cells are placed in triple-backtick (```````) blocks.
75 75
76 76 * ``--to rst``
77 77
78 78 Basic reStructuredText output. Useful as a starting point for embedding notebooks
79 79 in Sphinx docs.
80 80
81 81 * ``--to python``
82 82
83 83 Convert a notebook to an executable Python script.
84 84 This is the simplest way to get a Python script out of a notebook.
85 85 If there were any magics in the notebook, this may only be executable from
86 86 an IPython session.
87 87
88 88 .. note::
89 89
90 90 nbconvert uses pandoc_ to convert between various markup languages,
91 91 so pandoc is a dependency of most nbconvert transforms,
92 92 excluding Markdown and Python.
93 93
94 94 .. _pandoc: http://johnmacfarlane.net/pandoc/
95 95
96 96 The output file created by ``nbconvert`` will have the same base name as
97 97 the notebook and will be placed in the current working directory. Any
98 98 supporting files (graphics, etc) will be placed in a new directory with the
99 99 same base name as the notebook, suffixed with ``_files``::
100 100
101 101 $ ipython nbconvert notebook.ipynb
102 102 $ ls
103 103 notebook.ipynb notebook.html notebook_files/
104 104
105 105 For simple single-file output, such as html, markdown, etc.,
106 106 the output may be sent to standard output with::
107 107
108 108 $ ipython nbconvert --to markdown notebook.ipynb --stdout
109 109
110 110 Multiple notebooks can be specified from the command line::
111 111
112 112 $ ipython nbconvert notebook*.ipynb
113 113 $ ipython nbconvert notebook1.ipynb notebook2.ipynb
114 114
115 115 or via a list in a configuration file, say ``mycfg.py``, containing the text::
116 116
117 117 c = get_config()
118 118 c.NbConvertApp.notebooks = ["notebook1.ipynb", "notebook2.ipynb"]
119 119
120 120 and using the command::
121 121
122 122 $ ipython nbconvert --config mycfg.py
123 123
124 124
125 125 .. _notebook_format:
126 126
127 127 LaTeX citations
128 128 ---------------
129 129
130 130 ``nbconvert`` now has support for LaTeX citations. With this capability you
131 131 can:
132 132
133 133 * Manage citations using BibTeX.
134 134 * Cite those citations in Markdown cells using HTML data attributes.
135 135 * Have ``nbconvert`` generate proper LaTeX citations and run BibTeX.
136 136
137 137 For an example of how this works, please see the citations example in
138 138 the nbconvert-examples_ repository.
139 139
140 140 .. _nbconvert-examples: https://github.com/ipython/nbconvert-examples
141 141
142 142 Notebook JSON file format
143 143 -------------------------
144 144
145 145 Notebook documents are JSON files with an ``.ipynb`` extension, formatted
146 146 as legibly as possible with minimal extra indentation and cell content broken
147 147 across lines to make them reasonably friendly to use in version-control
148 148 workflows. You should be very careful if you ever manually edit this JSON
149 149 data, as it is extremely easy to corrupt its internal structure and make the
150 150 file impossible to load. In general, you should consider the notebook as a
151 151 file meant only to be edited by the IPython Notebook app itself, not for
152 152 hand-editing.
153 153
154 154 .. note::
155 155
156 156 Binary data such as figures are also saved directly in the JSON file.
157 157 This provides convenient single-file portability, but means that the
158 158 files can be large; a ``diff`` of binary data is also not very
159 159 meaningful. Since the binary blobs are encoded in a single line, they
160 160 affect only one line of the ``diff`` output, but they are typically very
161 161 long lines. You can use the ``Cell | All Output | Clear`` menu option to
162 162 remove all output from a notebook prior to committing it to version
163 163 control, if this is a concern.
164 164
165 165 The notebook server can also generate a pure Python version of your notebook,
166 166 using the ``File | Download as`` menu option. The resulting ``.py`` file will
167 167 contain all the code cells from your notebook verbatim, and all Markdown cells
168 168 prepended with a comment marker. The separation between code and Markdown
169 169 cells is indicated with special comments and there is a header indicating the
170 170 format version. All output is removed when exporting to Python.
171 171
172 172 As an example, consider a simple notebook called ``simple.ipynb`` which
173 173 contains one Markdown cell, with the content ``The simplest notebook.``, one
174 174 code input cell with the content ``print "Hello, IPython!"``, and the
175 175 corresponding output.
176 176
177 177 The contents of the notebook document ``simple.ipynb`` is the following JSON
178 178 container::
179 179
180 180 {
181 181 "metadata": {
182 182 "name": "simple"
183 183 },
184 184 "nbformat": 3,
185 185 "nbformat_minor": 0,
186 186 "worksheets": [
187 187 {
188 188 "cells": [
189 189 {
190 190 "cell_type": "markdown",
191 191 "metadata": {},
192 192 "source": "The simplest notebook."
193 193 },
194 194 {
195 195 "cell_type": "code",
196 196 "collapsed": false,
197 197 "input": "print \"Hello, IPython\"",
198 198 "language": "python",
199 199 "metadata": {},
200 200 "outputs": [
201 201 {
202 202 "output_type": "stream",
203 203 "stream": "stdout",
204 204 "text": "Hello, IPython\n"
205 205 }
206 206 ],
207 207 "prompt_number": 1
208 208 }
209 209 ],
210 210 "metadata": {}
211 211 }
212 212 ]
213 213 }
214 214
215 215
216 216 The corresponding Python script is::
217 217
218 218 # -*- coding: utf-8 -*-
219 219 # <nbformat>3.0</nbformat>
220 220
221 221 # <markdowncell>
222 222
223 223 # The simplest notebook.
224 224
225 225 # <codecell>
226 226
227 227 print "Hello, IPython"
228 228
229 229 Note that indeed the output of the code cell, which is present in the JSON
230 230 container, has been removed in the ``.py`` script.
General Comments 0
You need to be logged in to leave comments. Login now