According to the Jupyter blog here, it is now possible to embed interactive widgets in a static webpage:
Live interactive widgets can now be embedded into static web pages or blogs by inserting an html snippet containing the serialized widget state. This also works with custom widget libraries. See http://jupyter.org/embed-jupyter-widgets.html.
When I open the example above, in firefox or chrome, I get the interactive widgets alright!
However, if I create a new notebook with the same bit of python code, save the notebook as html, and then copy-paste the embeddable HTML snippet to render the interactive widgets, it is not working. At best I obtain an image of the widget state, but nothing interactive.
Has anyone managed to replicate the HTML page with interactive widgets? Is there something that I am missing?
Jupyter Notebook has support for many kinds of interactive outputs, including the ipywidgets ecosystem as well as many interactive visualization libraries.
The last option, Embed widgets , provides a dialog containing an HTML snippet which can be used to embed Jupyter interactive widgets into any web page. This HTML snippet is composed of multiple <script> tags: The first script tag loads a custom widget manager from the unpkg cdn.
We made Kyso for exactly this. You can embed a jupyter notebook into a website using kyso.io, and as long as the widgets are supported by BokehJS dashboard, the notebook will be interactive. Here is an example
PS. (disclaimer - I’m a founder of kyso)
It's been a long time since the question was asked but I will answer with today technology.
In order to embed interactive widgets you need a backend but there is a Project called MyBinder that can be used as a backend in the cloud for free. This was used as the foundation of a library called NBinteract, which can convert any notebook with interactive widgets in a single HTML webpage.
These HTMLs load a script from a cdn and manage all the interaction with MyBinder by their own.
There are some examples in their website and I also published a post in my blog where I used this technology along with Dockerfile, ffmpeg, matplotlib, animations and interactive widgets. So I believe this approach is quite robust and flexible.
The official docs says you need a repo but I could manage to use gists instead and submited an issue in the main repo explaining how to do it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With