37
votes

What is the best way to get an ipython notebook into html format for use in a blog post?

It is easy to turn an ipython notebook into a PDF, but I'd rather publish as an html notebook.

I've found that if I download the notebook as a .ipynb file, then load it onto gist, then look at it with the ipython notebook viewer (nbviewer.ipython.org), THEN grab the html source, I can paste it into a blog post (or just load it as html anywhere) and it looks about right. However, if I use the "print view" option directly from ipython, the source contains a bunch of javascript rather than the processed html, which is not useful since the images and text are not directly included.

The %pastebin magic is also not particularly helpful for this task, since it pastes the python code and not the ipython notebook formatted code.

EDIT: Note that this is under development; see the comments under the accepted answer.

EDIT May 2 2014: As per Nathaniel's comment, a new answer is needed for ipython 2.0

5
Change made. There is probably an answer hidden in Damian Avila's blog: damian.oquanta.info/posts/… - keflavich

5 Answers

17
votes

The right way is described in: http://blog.fperez.org/2012/09/blogging-with-ipython-notebook.html. Then you can do nbconvert -f blogger-html your_notebook.ipynb to get the html code for your post.

11
votes

One step further from the answer above. To create a PDF file,

  1. create a tex file

    nbconvert -f latex your_notebook.ipynb
    
  2. convert tex to pdf :

    pdflatex your_notebook.tex
    
7
votes

All the above answers seems outdated. Here is the most modern solution taken from the official nbconvertdocs.

$ jupyter nbconvert --to FORMAT notebook.ipynb

The default output format is html, for which the --to argument may be omitted:

$ jupyter nbconvert notebook.ipynb

2
votes

Click on file > Download > html

0
votes

You generate the html from cmd, with your Jupyter Notebook open:

As https://stackoverflow.com/a/47773252/15117772 answered a similar question:

Also pass the --execute flag to generate the output cells

jupyter nbconvert --execute --to html notebook.ipynb

jupyter nbconvert --execute --to pdf notebook.ipynb