Improve the documentation for Notebook 7 (#6813)

* [pre-commit.ci] pre-commit autoupdate (#6814)

updates:
- [github.com/python-jsonschema/check-jsonschema: 0.21.0 → 0.22.0](https://github.com/python-jsonschema/check-jsonschema/compare/0.21.0...0.22.0)
- [github.com/psf/black: 23.1.0 → 23.3.0](https://github.com/psf/black/compare/23.1.0...23.3.0)
- [github.com/charliermarsh/ruff-pre-commit: v0.0.254 → v0.0.260](https://github.com/charliermarsh/ruff-pre-commit/compare/v0.0.254...v0.0.260)

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>

* Add note and warning on the extension landing page

* fix nbclassic url

* fix seealso blocks

* Fix note

* add changelog to the navbar

* update faq

* Update screencasts and screenshots

* Remove old screenshots and screencasts

* rename migrating file

* Split the migration guide

* dedicate a page to new features

* document themes

* Iterate on the new features

* expand docs on extensions

* add Binder link

* mention the interface dropdown

* iterate on features

* Mention nbgrader and RISE

* Lint

* Add server extension docs

* fixes

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
This commit is contained in:
Jeremy Tuloup 2023-04-04 12:16:39 +02:00 committed by GitHub
parent 65da1cd756
commit 0c888aedee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 353 additions and 455 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

View File

@ -1,397 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
id="svg3390"
version="1.1"
inkscape:version="0.91 r13725"
width="705"
height="243"
viewBox="0 0 705 243"
sodipodi:docname="blank_notebook_ui.svg">
<metadata
id="metadata3396">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<defs
id="defs3394" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1855"
inkscape:window-height="1176"
id="namedview3392"
showgrid="false"
inkscape:zoom="0.86307147"
inkscape:cx="437.41347"
inkscape:cy="67.074282"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
inkscape:current-layer="svg3390" />
<image
width="705"
height="243"
preserveAspectRatio="none"
xlink:href="data:image/png;base64,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
"
id="image3398"
x="0"
y="0" />
<g
id="g3420">
<rect
y="4.3175645"
x="209.71611"
height="33.600925"
width="265.33145"
id="rect3404"
style="opacity:0.70800045;fill:#ffffff" />
<text
sodipodi:linespacing="125%"
id="text3400"
y="29.80792"
x="217.82669"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:25px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;word-spacing:0px;fill:#aa0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="29.80792"
x="217.82669"
id="tspan3402"
sodipodi:role="line">⇦ Notebook name</tspan></text>
</g>
<text
sodipodi:linespacing="125%"
id="text3411"
y="70.360764"
x="415.00436"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:25px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;word-spacing:0px;fill:#aa0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="70.360764"
x="415.00436"
id="tspan3413"
sodipodi:role="line">Menu bar</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3411-3"
y="102.85388"
x="540.51917"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:25px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;word-spacing:0px;fill:#aa0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="102.85388"
x="540.51917"
id="tspan3413-6"
sodipodi:role="line">Toolbar</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3411-7"
y="175.849"
x="194.08205"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:25px;line-height:125%;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';letter-spacing:0px;word-spacing:0px;fill:#aa0000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
xml:space="preserve"><tspan
y="175.849"
x="194.08205"
id="tspan3413-5"
sodipodi:role="line">Code cell</tspan></text>
</svg>

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 161 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 518 KiB

View File

@ -4,6 +4,14 @@
1. How do I install a prerelease version such as a beta or release candidate?
You can install a prerelease version of the notebook using the `--pre` flag with `pip`:
```bash
python -m pip install notebook --pre --upgrade
```
If you are using `conda` or `mamba`, you can install a prerelease version of the notebook using the alpha or beta label. For example, to install the latest alpha release, you can run:
```bash
conda install -c conda-forge -c conda-forge/label/notebook_alpha notebook=7.0.0a18
```

View File

@ -6,12 +6,12 @@ This describes the basic steps to write a TypeScript extension for the Jupyter
notebook front-end. This allows you to customize the behaviour of the various
pages like the dashboard, the notebook, or the text editor.
Starting with Notebook v7, front-end extensions for the notebook can be developed
Starting with Notebook 7, front-end extensions for the notebook can be developed
as prebuilt JupyterLab extensions.
This means Notebook v7 is able to reuse many of the existing extensions from the JupyterLab ecosystem as is.
This means Notebook 7 is able to reuse many of the existing extensions from the JupyterLab ecosystem as is.
If you would like to develop a prebuilt extension for Notebook v7, check out:
If you would like to develop a prebuilt extension for Notebook 7, check out:
- [JupyterLab Extension Tutorial](https://jupyterlab.readthedocs.io/en/latest/extension/extension_tutorial.html): A tutorial to learn how to make a simple JupyterLab extension.
- The [JupyterLab Extension Examples Repository](https://github.com/jupyterlab/extension-examples): A short tutorial series to learn how to develop extensions for JupyterLab by example.
- The [JupyterLab Extension Examples Repository](https://github.com/jupyterlab/extension-examples): A repository containing many examples of JupyterLab extensions for performing various tasks: adding commands, adding a new widget, handling user settings, etc.

View File

@ -1,5 +1,20 @@
# Extending the Notebook
```{warning}
Please note that the extension system for Notebook 7 is radically different
from the one used in Notebook 6.5.x and earlier. If you are looking for
information on how to extend the classic Notebook, please refer to the
[documentation for NbClassic](https://nbclassic.readthedocs.io/en/latest/extending/index.html).
```
```{note}
With Notebook 7 being developed on top of JupyterLab and Jupyter Server, the
frontend extension system is now based on the same extension system used by JupyterLab.
Server extensions are also now based on the same system used by Jupyter Server.
You will find below a link to the relevant documentations.
```
Certain subsystems of the notebook server are designed to be extended or
overridden by users. These documents explain these systems, and show how to
override the notebook's defaults with your own custom behavior.

View File

@ -12,6 +12,7 @@
user-documentation
configuration
migrating
contributor
migrate_to_notebook7
changelog
```

46
docs/source/migrating.md Normal file
View File

@ -0,0 +1,46 @@
# Migrating to Notebook 7
```{warning}
The Jupyter Notebook application is undergoing a major refactoring to
improve the user experience and to make it easier to maintain and extend.
This set of migration guides are intended to help you migrate your Classic Notebook
setup and extensions to the new Jupyter Notebook 7, which is built on top of JupyterLab 4.
```
## Sunrising the Jupyter Notebook 7
For the past few years, the Classic Jupyter Notebook has been in maintenance mode.
Development has mostly moved to alternative user interfaces like JupyterLab, which is a more
modern and extensible web application. This has resulted in a lot of new
features and improvements in JupyterLab, but also in a lot of new features and
improvements that were not possible to integrate to the Classic Notebook.
For a while the plan was to progressively _sunset_ the Classic Notebook and not maintain it anymore. However, the Classic Notebook is still widely used and it is still the default user interface for Jupyter in many scenarios. Many users and organizations have not been able to switch to JupyterLab yet. For some users, JupyterLab can also be a more complex environment to use, especially for beginners.
Following the feedback from the community, it was decided late 2021 to continue developing the Jupyter Notebook application and _sunrise_ it as Notebook 7. Notebook 7 is built on top of JupyterLab components and delivers new features like realtime collaboration, debugger, and theming.
You can find more details about the changes currently taking place in the Jupyter Ecosystem in the [JEP 79] and [team-compass note].
## New features in Notebook 7
```{toctree}
:maxdepth: 2
notebook_7_features.md
```
## Migration Guides
```{toctree}
:maxdepth: 2
migrating/frontend-extensions.md
migrating/server-extensions.md
migrating/custom-themes.md
migrating/multiple-interfaces.md
```
[jep 79]: https://jupyter.org/enhancement-proposals/79-notebook-v7/notebook-v7.html
[team-compass note]: https://github.com/jupyter/notebook-team-compass/issues/5#issuecomment-1085254000

View File

@ -0,0 +1,35 @@
# Custom themes in Notebook 7
In Notebook 7, the way to create custom themes has changed. This means that custom themes developed for Notebook 6 or earlier will not work with Notebook 7 and upwards.
This is for example the case for community contributed themes such as [jupyter-themes](https://github.com/dunovank/jupyter-themes).
## Using a custom theme
Fortunately installing a custom theme for Notebook 7 is very easy. It is the same process as installing a regular extension.
For exampe let's say you want to install the [JupyterLab Night](https://github.com/martinRenou/jupyterlab-night) theme. You can do so by running the following command:
```bash
pip install jupyterlab-night
```
Then refresh the page and you should see the new theme available in the settings menu:
![a screencast showing how to install a custom theme](https://user-images.githubusercontent.com/591645/229583076-de3c0541-246f-4781-8941-fcbec2204038.gif)
There are already many themes available on [PyPI](https://pypi.org/search/?q=jupyterlab-theme).
You can also find other themes using the `jupyterlab-theme` topic on GitHub: https://github.com/topics/jupyterlab-theme
For example:
- [https://github.com/johnnybarrels/jupyterlab_onedarkpro](https://github.com/johnnybarrels/jupyterlab_onedarkpro)
- [https://github.com/dunovank/jupyterlab_legos_ui](https://github.com/dunovank/jupyterlab_legos_ui)
- [https://github.com/timkpaine/jupyterlab_miami_nights](https://github.com/timkpaine/jupyterlab_miami_nights)
## Creating a custom theme
Creating a custom theme for Notebook 7 follows the same process as creating a custom theme for JupyterLab 4.
See the {ref}`Frontend Extension Guide <frontend-extensions>` to get you started. When creating the extension, select the `Theme` option in the cookiecutter prompt.

View File

@ -0,0 +1,33 @@
# Frontend Extensions in Notebook 7
```{warning}
Any extension developed for Notebook \< 7 or NbClassic will not be
compatible with Notebook 7 and upwards.
Some extensions like nbgrader have already been ported. We invite you to
check if the extensions you are using have already been ported.
```
You can check the following resources to see if your extension is available for Notebook 7:
## List of available Notebook 7 extensions
To get an idea of the extensions available for Notebook 7, you can check the following resources:
- [List of JupyterLab extensions][list of jupyterlab extensions]
- [Awesome Jupyter][awesome jupyter]
These resources are for JupyterLab, but many of them are compatible with Notebook 7 since Notebook 7 is based on JupyterLab.
[list of jupyterlab extensions]: https://jupyterlab-contrib.github.io/extensions.html
[awesome jupyter]: https://github.com/markusschanta/awesome-jupyter#jupyterlab-extensions
## JupyterLab equivalent extensions to the Classic Notebook
The `jupyterlab-contrib` organization maintains a list of extensions to ease the transition from the Classic Notebook to Notebook 7 and / or JupyterLab.
The list is available at the following URL: [Migrating from the Classic Notebook][migrate from classic]
![a screenshot showing extensions in classic and lab](https://user-images.githubusercontent.com/591645/229616855-94d34762-6666-4edd-a969-e85b285d7094.png)
[migrate from classic]: https://jupyterlab-contrib.github.io/migrate_from_classical.html

View File

@ -1,24 +1,34 @@
# Migrating to Notebook 7
# Simultaneous usage of different versions of Notebook 7 and the Classic Notebook UI
## Build Jupyter Notebook v7 off of JupyterLab components
With the release of Notebook 7, the classic Notebook UI is now
available as a Jupyter Server extension, NbClassic. This means that
NbClassic can be installed independently of Notebook 7, and can be also
installed alongside Notebook 7.
Read more details about the changes currently taking place in the
Jupyter Ecosystem in the [JEP 79] and [team-compass note].
Below are different scenarios that you might consider when updating to Notebook 7.
Notebook 7 is built on top of JupyterLab components and delivers new features
like realtime collaboration, debugger, theming.
## Try it on Binder
## Compatibility with older versions
You can try JupyterLab, Notebook 7 and NBClassic installed together using [this gist][lab-nb-nbclassic] on Binder:
Any extension developed for Notebook \< 7 or NbClassic will not be
compatible with Notebook 7 and upwards.
[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gist/jtpio/35a72862c8be13dee31b61ebac2d9786/master?urlpath=/tree)
Some extensions like nbgrader have already been ported. We invite you to
check if the extensions you are using have already been ported.
[lab-nb-nbclassic]: https://gist.github.com/jtpio/35a72862c8be13dee31b61ebac2d9786
## Simultaneous usage of different versions
## Using the `Interface` dropdown
**NbClassic and Notebook 7**
Notebook 7 provides a dropdown menu to switch between the different user interfaces available on the same server.
It is available in the Notebook toolbar:
![image](https://user-images.githubusercontent.com/591645/229729077-a91bc9dd-9bb9-4510-a266-599bf2f97745.png)
```{note}
This dropdown is only available when using Notebook 7 or JupyterLab.
It is not displayed when using NbClassic.
```
## NbClassic and Notebook 7
You can install NbClassic, Notebook 7 and JupyterLab, all three of
which will provide different user interfaces
@ -30,7 +40,7 @@ dependency of Notebook 7, and these front ends will be available
through the following base paths: JupyterLab at `/lab`, Notebook 7 at
`/tree`, and NbClassic at `/nbclassic/tree`.
**NbClassic and Notebook 6.5.x**
## NbClassic and Notebook 6.5.x
As NbClassic provides the static assets for Notebook 6.5.x, while
having both installed should cause no issues, the user interface provided
@ -42,7 +52,7 @@ static assets. When starting an instance of JupyterLab you will be able
to access the classic view of Notebook with NbClassic served on the same
server at `/tree`.
**NbClassic and Notebook \<= 6.4.x**
## NbClassic and Notebook \<= 6.4.x
When using NbClassic and Notebook \<= 6.4.x you can expect that these UIs
will not be only presented at different servers, meaning they will both
@ -52,20 +62,20 @@ reflected in Notebook versions \<= 6.4.x. In this case as well, you would
be able to access the classic view of Notebook with NbClassic served on
the same server, at `/tree`.
**NbClassic and JupyterLab 3.x**
## NbClassic and JupyterLab 3.x
When only JupyterLab 3.x is installed, then NbClassic does not have to be
explicitly installed as JupyterLab 3.x depends on it. They will run on
the same server, and are reachable via `/tree` for NbClassic and
`/lab` for JupyterLab.
**NbClassic and JupyterLab 4.x**
## NbClassic and JupyterLab 4.x
When only JupyterLab 4.x is installed, then NbClassic has to be installed
explictly. They will run on the same server, and are reachable via
`/tree` for NbClassic, and `/lab` for JupyterLab.
**NbClassic Independently**
## NbClassic Independently
When you choose to install only NbClassic via `pip install nbclassic`,
the classic Notebook UI will be presented at the `/tree` path. As the
@ -76,6 +86,3 @@ way to view the NbClassic frontend. You would be able to manually
enable the extension when running an instance of Jupyter Server,
`> jupyter server --ServerApp.jpserver_extensions="nbclassic=True"`,
which will provide the NbClassic frontend at `/tree` path when visited.
[jep 79]: https://jupyter.org/enhancement-proposals/79-notebook-v7/notebook-v7.html
[team-compass note]: https://github.com/jupyter/notebook-team-compass/issues/5#issuecomment-1085254000

View File

@ -0,0 +1,13 @@
# Server Extensions in Notebook 7
Notebook 7 is now based on Jupyter Server, which is a new server application that allows to run multiple Jupyter applications (e.g. Notebook, JupyterLab, NBClassic, etc.) on the same server.
This means that Notebook 7 is able to reuse many of the existing server extensions from the Jupyter ecosystem as is.
## Migration from the Notebook Server
The Jupyter Server documentation provides a [guide for migrating from the classic notebook server to Jupyter Server](https://jupyter-server.readthedocs.io/en/latest/operators/migrate-from-nbserver.html)
## Authoring Server Extensions
The Jupyter Server documentation provides a [guide for authoring server extensions](https://jupyter-server.readthedocs.io/en/latest/developers/extensions.html)

View File

@ -18,10 +18,10 @@ rich media output.
application, including inputs and outputs of the computations, explanatory
text, mathematics, images, and rich media representations of objects.
:::{seealso}
```{seealso}
See the {ref}`installation guide <jupyter:install>` on how to install the
notebook and its dependencies.
:::
```
### Main features of the web application
@ -61,9 +61,9 @@ themselves. In effect, nbviewer is simply [nbconvert] as
a web service, so you can do your own static conversions with nbconvert,
without relying on nbviewer.
:::{seealso}
```{seealso}
{ref}`Details on the notebook JSON file format <nbformat:notebook_file_format>`
:::
```
### Notebooks and privacy
@ -116,13 +116,13 @@ When you are inside an open notebook, the `File | Open...` menu option will
open the dashboard in a new browser tab, to allow you to open another notebook
from the notebook directory or to create a new notebook.
:::{note}
```{note}
You can start more than one notebook server at the same time, if you want
to work on notebooks in different directories. By default the first
notebook server starts on port 8888, and later notebook servers search for
ports near that one. You can also manually specify the port with the
`--port` option.
:::
```
### Creating a new notebook document
@ -132,9 +132,7 @@ The new notebook is created within the same directory and will open in a new
browser tab. It will also be reflected as a new entry in the notebook list on
the dashboard.
```{image} _static/images/new-notebook.gif
```
![a screencast showing how to create new notebooks from the user interface](https://user-images.githubusercontent.com/591645/229563554-2776b489-a831-44a0-a7a2-2f211e38b78b.gif)
### Opening notebooks
@ -174,18 +172,16 @@ With the IPython kernel, you can also run the `%qtconsole`
{ref}`magic <magics_explained>` in the notebook to open a Qt console connected
to the same kernel.
:::{seealso}
```{seealso}
{ref}`ipythonzmq`
:::
```
## Notebook user interface
When you create a new notebook document, you will be presented with the
**notebook name**, a **menu bar**, a **toolbar** and an empty **code cell**.
```{image} ./_static/images/blank-notebook-ui.png
```
![a screenshot showing a blank notebook](https://user-images.githubusercontent.com/591645/229563988-8e3a4d04-6f31-4411-9a6b-9b9b045bc55e.png)
**Notebook name**: The name displayed at the top of the page,
next to the Jupyter logo, reflects the name of the `.ipynb` file.
@ -230,9 +226,9 @@ also possible, including `matplotlib` figures and HTML tables (as used, for
example, in the `pandas` data analysis package). This is known as IPython's
_rich display_ capability.
:::{seealso}
```{seealso}
[Rich Output] example notebook
:::
```
### Markdown cells
@ -268,9 +264,9 @@ such as `\newcommand`, by placing them anywhere _between math delimiters_ in
a Markdown cell. These definitions are then available throughout the rest of
the IPython session.
:::{seealso}
```{seealso}
[Working with Markdown Cells] example notebook
:::
```
### Raw cells
@ -303,11 +299,11 @@ shortcut.
A notebook may be downloaded as a `.ipynb` file or converted to a number of
other formats using the menu option {guilabel}`File`, {guilabel}`Download as`.
:::{seealso}
```{seealso}
[Running Code in the Jupyter Notebook] example notebook
[Notebook Basics] example notebook
:::
```
(keyboard-shortcuts)=

View File

@ -0,0 +1,148 @@
# New features in Notebook 7
This document describes the new features in Notebook 7 as originally mentioned in the related Jupyter Enhancement Proposal [JEP 79][jep 79].
```{contents} Table of Contents
:depth: 3
:local:
```
## Debugger
Notebook 7 includes a new debugger that allows you to step through your code cell by cell. You can also set breakpoints and inspect variables.
![a screenshot of the debugger](https://user-images.githubusercontent.com/591645/195543524-e16647a1-a4e0-4832-929d-73d5a77ef001.png)
## Real Time collaboration
Notebook 7 allows for using the real time collaboration extension so you can share your notebook with other users and edit it in real time.
The Real Time Collaboration feature is the same as in JupyterLab and is available as a JupyterLab extension. It is not enabled by default, but you can install with `pip`:
```bash
pip install jupyter-collaboration
```
or with `conda`:
```bash
conda install -c conda-forge jupyter-collaboration
```
After installing the extension, restart the Jupyter Server so the extension can be loaded.
```{note}
It is possible for two users to work on the same notebook using Notebook 7 or JupyterLab.
```
## Table of Contents
Notebook 7 includes a new table of contents extension that allows you to navigate through your notebook using a sidebar. The Table of Contents is built-in and enabled by default, just like in JupyterLab.
![a screenshot of the table of contents](https://user-images.githubusercontent.com/591645/195544813-22e7dec9-846f-4aaa-913a-36a9ed908036.png)
## Theming and Dark Mode
A Dark Theme is now available in the Jupyter Notebook by default. You can also install other themes as JupyterLab extensions.
![a screenshot of the dark theme](https://user-images.githubusercontent.com/591645/229732821-3ab15024-e6d7-414d-94ca-246619da4b67.png)
You can also install many other JupyterLab themes. For example to install the [JupyterLab Night](https://github.com/martinRenou/jupyterlab-night) theme:
```shell
pip install jupyterlab-night
```
Then refresh the page and select the new theme in the settings:
![a screenshot of a custom theme](https://user-images.githubusercontent.com/591645/229733418-db0898b3-7e8c-4db5-98d6-2e9f813ab9e9.png)
## Internationalization
Notebook 7 now provides the ability to set the display language of the user interface.
Users will need to install the language pack as a separate Python package. Language packs are grouped in the [language packs repository on GitHub](https://github.com/jupyterlab/language-packs/), and can be installed with `pip`. For example, it is possible to install the language pack for French (France) using the following command:
```shell
pip install jupyterlab-language-pack-fr-FR
```
After installing the language pack, reload the page and the new language should be available in the settings.
![a screencast showing how to switch the display language in Notebook 7](https://user-images.githubusercontent.com/591645/229734057-e08a2020-58c1-4aa5-b30e-ebb83fcde12c.gif)
```{note}
Notebook 7 and JupyterLab share the same language packs, so it is possible to use the same language pack in both applications.
```
## Improved Web Content Accessibility Guidelines (WCAG) compliance
Improving the accessibility of Jupyter had long been impeded by significant obstacles. The primary obstacle was that the text editor underlying the Jupyter Notebook (CodeMirror 5) had major accessibility issues.
Fortunately, this accessibility bottleneck has been unblocked as JupyterLab has been upgraded to use CodeMirror 6, a complete rewrite of the text editor with a strong focus on accessibility. Although this upgrade required extensive codebase modifications, the changes is available with JupyterLab 4. By being built on top of JupyterLab, Jupyter Notebook 7 directly benefits from the CodeMirror 6 upgrade.
![Axe Auditor output with the Notebook 7 UI](https://user-images.githubusercontent.com/591645/229613525-764004bd-ac7a-4000-b694-a347709aa826.png)
Check out the related blog post for more details: [Improving the accessibility of Jupyter](https://blog.jupyter.org/improving-the-accessibility-of-jupyter-6c695db518d3).
## Support for many JupyterLab extensions
Notebook 7 is based on JupyterLab and therefore supports many of the existing JupyterLab extensions.
You can install JupyterLab extensions with `pip` or `conda`. For example to install the LSP (Language Server Protocol) extension for enhanced code completion, you can use the following commands:
```bash
pip install jupyter-lsp
```
```bash
conda install -c conda-forge jupyter-lsp
```
Popular extensions like `nbgrader` and `RISE` have already been ported to work with Notebook 7.
### nbgrader
```{note}
The nbgrader extension is still under active development and a version compatible with Notebook 7 is not yet available on PyPI.
However a version compatible with Notebook 7 will be available before the final release of Notebook 7.
```
![a screenshot showing the nbgrader extension in Notebook 7](https://user-images.githubusercontent.com/32258950/196110653-6556c8d7-b169-4586-b1a1-66b3be05c790.png)
![a second screenshot showing the nbgrader extension in Notebook 7](https://user-images.githubusercontent.com/32258950/196110825-7e3b9237-1064-42be-a629-15a5510a3aee.png)
### RISE
```{warning}
The RISE extension is still under active development and a version compatible with Notebook 7 is not yet available on PyPI.
```
The RISE extension is another popular JupyterLab extension that is being ported to work with Notebook 7. It allows you to turn your Jupyter Notebooks into a slideshow.
The extension is still under [active development](https://github.com/jupyterlab-contrib/rise). When ready, it will be possible to install it with `pip`:
```bash
pip install jupyterlab-rise
```
## A document-centric user experience
Despite all the new features and as stated in [JEP 79][jep 79], Notebook 7 keeps the document-centric user experience of the Classic Notebook:
> The Jupyter Notebook application offers a document-centric user experience. That is, in the Notebook application, the landing page that contains a file manager, running tools tab, and a few optional extras, is a launching point into opening standalone, individual documents. This document-centric experience is important for many users, and that is the first key point this proposal aims to preserve. Notebook v7 will be based on a different JavaScript implementation than v6, but it will preserve the document-centric experience, where each individual notebook opens in a separate browser tab and the visible tools and menus are focused on the open document.
[jep 79]: https://jupyter.org/enhancement-proposals/79-notebook-v7/notebook-v7.html
## Compact View on Mobile Devices
Notebook 7 automatically switches to a more compact layout on mobile devices, making it convenient to run code on the go.
![a screenshot of the compact view on mobile devices](https://user-images.githubusercontent.com/591645/101995448-2793f380-3cca-11eb-8971-067dd068ccbe.gif)
## References
This was just a quick overview of the new features in Notebook 7. For more details, you can check out the following resources:
- The [JupyterLab Documentation](https://jupyterlab.readthedocs.io/en/latest/) is a great resource to learn more about JupyterLab and the extensions available. Since Notebook 7 is based on JupyterLab, many of the features and extensions available for JupyterLab are also available for Notebook 7.
- [Migration Guide](./migrating.md) for Notebook 7, which explains how to migrate from the Classic Notebook to Notebook 7.

View File

@ -11,18 +11,14 @@ different Notebook modes.
When you launch `jupyter notebook` the first page that you encounter is the
Notebook Dashboard.
```{image} ./_static/images/jupyter-notebook-dashboard.png
```
![a screenshot showing the jupyter notebook dashboard page](https://user-images.githubusercontent.com/591645/229564680-3e9a9031-e925-4008-833c-a478b3e96c97.png)
## Notebook Editor
Once you've selected a Notebook to edit, the Notebook will open in the Notebook
Editor.
```{image} ./_static/images/jupyter-notebook-default.png
```
![a screenshot showing the default notebook interface](https://user-images.githubusercontent.com/591645/229564924-7a76bed6-924a-45ff-9ac7-6ec6d99930b7.png)
## Interactive User Interface Tour of the Notebook
@ -37,9 +33,7 @@ the cell's state. This state is indicated by a small pencil icon on the
top right of the interface. When the cell is in command mode, there is no
icon in that location.
```{image} ./_static/images/jupyter-notebook-edit.png
```
![a screenshot showing a notebook with some cells in edit mode](https://user-images.githubusercontent.com/591645/229565074-34e61454-3329-4612-b483-7a52663c794b.png)
## File Editor
@ -47,6 +41,4 @@ Now let's say that you've chosen to open a Markdown file instead of a Notebook
file whilst in the Notebook Dashboard. If so, the file will be opened in the
File Editor.
```{image} ./_static/images/jupyter-file-editor.png
```
![a screenshot showing the file editor](https://user-images.githubusercontent.com/591645/229565182-254eef80-edfb-4e2c-b454-1c978fd89f13.png)

View File

@ -5,6 +5,7 @@
notebook
ui_components
notebook_7_features
examples/Notebook/examples_index.rst
troubleshooting
changelog