Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .codespellignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
slippy
1 change: 1 addition & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,4 @@ repos:
rev: v2.4.1
hooks:
- id: codespell
args: ["--ignore-words", ".codespellignore"]
8 changes: 8 additions & 0 deletions 03-vocabulary.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,14 @@ Unlike frontend extensions, server extensions have access to the computer Jupyte
running on, for example to read files from disk.
[See the official docs for more!](https://jupyter-server.readthedocs.io/en/stable/developers/extensions.html)

MIME renderer extension
: An extension which teaches JupyterLab how to view a new type of file.
For example,
[jupyterlab-geojson](https://github.com/jupyterlab/jupyter-renderers/tree/main/packages/geojson-extension)
enables JupyterLab to open a "slippy map" to display geospatial vector data in the
GeoJSON format.
Also known as a "mimetype" extension.

Frontend extension
: An extension which modifies the user interface and/or adds functionality that executes
solely in the browser, and interacts with existing JupyterLab frontend components.
Expand Down
69 changes: 62 additions & 7 deletions 04-materials/01-exploring-extensions.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,69 @@

## Extension types

🏗️ TODO!
### {term}`Server extension`

Extensions that run on the JupyterLab server, which means it has access to the same
hardware as JupyterLab and can, for example, load data from disk and perform
computations.

## Example extensions
Examples:

🏗️ TODO!
* [jupyter-server-proxy](https://github.com/jupyterhub/jupyter-server-proxy) enables
running, supervising, and proxying additional web services within a JupyterLab
deployment.
* [nbgitpuller](https://github.com/jupyterhub/nbgitpuller) enables automated fetching of
content in a Git repository into JupyterLab from a special URL.
Especially useful for teachers to provide their students with access to educational
materials in a JupyterHub by clicking a single link.

* List extensions
* Link to their docs / home page
* Brief summary, what makes it unique architecturally, e.g. is it frontend only, does it
have server component, does it expose new commands.

### {term}`Frontend extension`

Extensions that run in the JupyterLab frontend (i.e. the user's browser), which means it
can change anything about the appearance of JupyterLab and provide new {term}`widgets
<widget>` for display and/or interactions.

Examples:

* [jupyterthemes](https://github.com/dunovank/jupyter-themes) provides custom
appearances for Notebooks.
* ...


### Frontend **and** server

A very common pattern is extensions which combine frontend and server extensions to
provide new interface features which trigger behavior on the server.

Examples:

* [jupyterlab-git](https://github.com/jupyterlab/jupyterlab-git)
provides visual git management.
* [jupyter-resource-usage](https://github.com/jupyter-server/jupyter-resource-usage)
displays information about kernel resource (CPU, RAM) usage in the frontend.
* [gator](https://github.com/mamba-org/gator) enables graphical management of
conda/mamba environments.
* [JupyterGIS](https://jupytergis.readthedocs.io/en/latest/) (beta) provides a
Geospatial Information System (GIS) interface for working with geospatial data.
* ..


### {term}`MIME renderer extension` (a.k.a. "mimetype" extension)

Extensions that tell Jupyter how to view information in a specific file type
([MIME type](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/MIME_types)).

These are a subset of {term}`frontend extensions <frontend extension>` which map a
{term}`widget` viewer with the supported file MIME type strings.

Examples:

* [jupyterlab-geojson](https://pypi.org/project/jupyterlab-geojson/) enables
double-clicking on GeoJSON files and viewing them on a JupyterLab-native map viewer.
* ...


## More...

🏗️ TODO! What go here?