A cookiecutter template for creating a JupyterLab extension. Three kinds of extension are supported:
- frontend: Pure frontend extension written in TypeScript.
- server: Extension with frontend (in TypeScript) and backend (in Python) parts.
- theme: Theme for JupyterLab (using CSS variables).
See also extension-cookiecutter-js for an extension in CommonJS.
Use the template to create package
pip install cookiecutter
Use cookiecutter to generate a package, following the prompts to fill in the name and authorship of your new JupyterLab extension.
cookiecutter https://github.com/jupyterlab/extension-cookiecutter-ts --checkout 4.0
The available options are:
- frontend --> Extension has only a frontend (TypeScript + CSS) part
- server --> Extension has frontend and backend (new Python endpoint handlers for the server) parts
- theme --> Extension provides a new theme (and nothing else)
author_name: The extension author name
author_email: The extension author email
labextension_name: Extension name
python_name: Pythonic extension name (if your extension has no server part, it will only be used to distribute the extension as a Python package)
project_short_description: Extension short description
has_settings: Whether the extension will have user settings or not.
has_binder: Whether to set up binder for the extension or not.
test: Whether to add test set ups and skeletons for the extension or not
repository: Version Control System repository URI
If you'd like to generate a package for a specific JupyterLab release, use the
--checkout option and give a tag or commit from this repository.
cookiecutter https://github.com/jupyterlab/extension-cookiecutter-ts --checkout v1.0 cookiecutter https://github.com/jupyterlab/extension-cookiecutter-ts --checkout v2.0 cookiecutter https://github.com/jupyterlab/extension-cookiecutter-ts --checkout 3.0
A simple example
Your new extension includes a very simple example of a working extension. Use this example as a guide to build your own extension. Have a look at the extension examples repository for more information on various JupyterLab features.