Plugin erstellen¶
Neben den bestehenden Notebook Extensions können auch weitere Plugins
hinzugefügt werden. Das Verzeichnis, in dem
jupyter_contrib_nbextensions/nbextensions
liegt, bekommt ihr mit
pip show
heraus:
$ pipenv run pip show jupyter_contrib_nbextensions
Name: jupyter-contrib-nbextensions
Version: 0.5.1
Summary: A collection of Jupyter nbextensions.
Home-page: https://github.com/ipython-contrib/jupyter_contrib_nbextensions.git
Author: ipython-contrib and jupyter-contrib developers
Author-email: jupytercontrib@gmail.com
License: BSD
Location: /Users/veit/.local/share/virtualenvs/jupyter-tutorial--q5BvmfG/lib/python3.7/site-packages
Requires: lxml, jupyter-contrib-core, nbconvert, jupyter-latex-envs, jupyter-core, pyyaml, jupyter-nbextensions-configurator, notebook, traitlets, jupyter-highlight-selected-word, tornado, ipython-genutils
Required-by:
In diesem Verzeichnis liegen die einzelnen Notebook-Erweiterungen, z.B. mit folgender Struktur:
$ tree
.
├── main.js
├── main.yaml
└── readme.md
main.js
enthält die eigentliche Logik der Erweiterung, z.B.:
define([ 'require', 'base/js/namespace', ], function ( requirejs $, Jupyter, ) { "use strict"; // define default values for config parameters var params = { my_config_value : 100 }; var initialize = function () { $.extend(true, params, Jupyter.notebook.config.myextension); $('<link/>') .attr({ rel: 'stylesheet', type: 'text/css', href: requirejs.toUrl('./myextension.css') }) .appendTo('head'); }; var load_ipython_extension = function () { return Jupyter.notebook.config.loaded.then(initialize); }; return { load_ipython_extension : load_ipython_extension }; });
main.yaml
yaml-Datei, die die Erweiterung für den Jupyter Extensions Configurator beschreibt.
Type: Jupyter Notebook Extension Compatibility: 3.x, 4.x, 5.x, 6.x Name: My notebook extensions Main: main.js Link: README.md Description: | My notebook extension helps with the use of Jupyter notebooks. Parameters: - none
Weitere Informationen zu den vom Configurator unterstützten Optionen findet ihr auf GitHub: jupyter_nbextensions_configurator.
readme.md
Markdown-Datei, die die Erweiterung beschreibt und angibt, wie sie verwendet werden kann. Dies wird auch im Reiter
angezeigt.
Siehe auch
Setup Jupyter Notebook Extension¶
Dies ist eine Erweiterung, die einige Probleme beim Arbeiten mit Notebooks behebt, die Joel Grus auf der JupyterCon 2018 vorgetragen hat: I Don’t Like Notebooks:
sie fordert euch auf, das Notebook zu benennen
sie erstellt eine Vorlage, um die Dokumentation zu verbessern
sie importiert und konfiguriert häufig verwendete Bibliotheken
Installation¶
Findet heraus, wo die Notebook-Extensions installiert sind:
$ pipenv run pip show jupyter_contrib_nbextensions Name: jupyter-contrib-nbextensions Version: 0.5.1 Summary: A collection of Jupyter nbextensions. Home-page: https://github.com/ipython-contrib/jupyter_contrib_nbextensions.git Author: ipython-contrib and jupyter-contrib developers Author-email: jupytercontrib@gmail.com License: BSD Location: /Users/veit/.local/share/virtualenvs/jupyter-tutorial--q5BvmfG/lib/python3.7/site-packages Requires: lxml, jupyter-contrib-core, nbconvert, jupyter-latex-envs, jupyter-core, pyyaml, jupyter-nbextensions-configurator, notebook, traitlets, jupyter-highlight-selected-word, tornado, ipython-genutils Required-by:
Ladet das Setup-Verzeichnis in
jupyter_contrib_nbextensions/nbextensions/
herunter.Installiert die Erweiterung mit
$ pipenv run jupyter contrib nbextensions install --user … [I 10:54:46 InstallContribNbextensionsApp] Installing /Users/veit/.local/share/virtualenvs/jupyter-tutorial--q5BvmfG/lib/python3.7/site-packages/jupyter_contrib_nbextensions/nbextensions/setup -> setup [I 10:54:46 InstallContribNbextensionsApp] Making directory: /Users/veit/Library/Jupyter/nbextensions/setup/ [I 10:54:46 InstallContribNbextensionsApp] Copying: /Users/veit/.local/share/virtualenvs/jupyter-tutorial--q5BvmfG/lib/python3.7/site-packages/jupyter_contrib_nbextensions/nbextensions/setup/setup.yaml -> /Users/veit/Library/Jupyter/nbextensions/setup/setup.yaml [I 10:54:46 InstallContribNbextensionsApp] Copying: /Users/veit/.local/share/virtualenvs/jupyter-tutorial--q5BvmfG/lib/python3.7/site-packages/jupyter_contrib_nbextensions/nbextensions/setup/README.md -> /Users/veit/Library/Jupyter/nbextensions/setup/README.md [I 10:54:46 InstallContribNbextensionsApp] Copying: /Users/veit/.local/share/virtualenvs/jupyter-tutorial--q5BvmfG/lib/python3.7/site-packages/jupyter_contrib_nbextensions/nbextensions/setup/main.js -> /Users/veit/Library/Jupyter/nbextensions/setup/main.js [I 10:54:46 InstallContribNbextensionsApp] - Validating: OK …
Aktiviert die Setup-Extension in
.
Schließlich könnt ihr ein neues Notebook erstellen, das dann folgende Struktur aufweist: setup.ipynb.