Jupyter/Extensions
From charlesreid1
Notebook extensions
To enable/install a notebook extension:
jupyter nbextension enable <nbextension require path>
Example: Jupyter/Base16mpl
Also see: https://github.com/ipython-contrib/jupyter_contrib_nbextensions
Server extensions
To enable/install a server extension:
jupyter serverextension enable <sererextension require path and flags>
Example: Jupyter/MPI
User-Contributed Notebook Extensions
Full instructions here:
Start by installing the different nb extensions available:
pip3 install jupyter_contrib_nbextensions
Install the notebook extension files:
jupyter contrib nbextension install --user
Command line options:
--user to install into the user's home jupyter directories
--system to perform installation into system-wide jupyter directories
--sys-prefix to install into python's sys.prefix, useful for instance in virtual environments, such as with conda
--symlink to symlink the nbextensions rather than copying each file (recommended, on non-Windows platforms).
--debug, for more-verbose output
To enable an extension:
jupyter nbextension enable <nbextension require path>
for example,
jupyter nbextension enable codefolding/main jupyter nbextension enable toc2/main
To disable the extension again, use
jupyter nbextension disable <nbextension require path>
Making An Extension
Rolling Your Own
See ipyvolume: https://github.com/maartenbreddels/ipyvolume
Basically just defines a function _jupyter_nbextension_paths: https://github.com/maartenbreddels/ipyvolume/blob/master/ipyvolume/__init__.py#L12
And that's it.
def _jupyter_nbextension_paths():
return [{
'section': 'notebook',
'src': 'static',
'dest': 'ipyvolume',
'require': 'ipyvolume/extension'
}]
To install it, the recommended method is:
pip install ipyvolume jupyter nbextension enable --py --sys-prefix ipyvolume
Or with a dev version (git):
$ git clone https://github.com/maartenbreddels/ipyvolume.git $ cd ipyvolume $ pip install -e . $ jupyter nbextension install --py --symlink --sys-prefix ipyvolume $ jupyter nbextension enable --py --sys-prefix ipyvolume
Build Extensions from Gists
This is an intriguing blog post: https://mindtrove.info/4-ways-to-extend-jupyter-notebook/#nb-extensions
{{Quote| Today, the recommended way of installing, loading, and unloading extensions requires running a few snippets of code either within a notebook associated with an IPython kernel or in an external Python script. To install, for example, minrk's gist nbextension, you can execute the following code in a notebook.
import notebook.nbextensions
notebook.nbextensions.install_nbextension('https://rawgithub.com/minrk/ipython_extensions/master/nbextensions/gist.js', user=True)
The code above downloads the JavaScript file and copies it into your Jupyter data directory (e.g., ~/.local/share/jupyter/nbextensions). Once installed, you can load the gist extension by executing the following JavaScript in a code cell:
%%javascript
Jupyter.utils.load_extensions('gist')
</per>
The cell above emits a <script> element into the output area of the notebook cell. That script loads the gist.js JavaScript module from the Notebook server backend. On load, the gist extension adds a button appears to the toolbar which you can click to post the current notebook document as a gist.
}}
==Using User Contributed Notebook Extensions==
Use this repo as a template: https://github.com/ipython-contrib/jupyter_contrib_nbextensions
This repo contains a large selection of extensions for notebook. An extension consists of a Javascript file and, optionally, a CSS file.
By loading an extension, you can provide functionality from the Javascript portion of a Jupyter notebook (ajax, updating text, rendering equations, etc.)
Start by checking out a copy (optional):
<pre>
git clone https://github.com/ipython-contrib/jupyter_contrib_nbextensions
Now build nb extensions:
cd jupyter_contrib_nbextensions pip install -e .
or directly from pip to just use the extensions:
pip install jupyter_contrib_nbextensions
or directly from github to also just use the extensions:
pip install https://github.com/ipython-contrib/jupyter_contrib_nbextensions/tarball/master