Skip to content
JupyterLab extension for rich text editing in the notebook
TypeScript CSS Jupyter Notebook
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
static changed menu item svg's to png's Sep 5, 2019
style change style Sep 5, 2019
.travis.yml Update .travis.yml Aug 5, 2019 Merge branch 'master' into readme-updates Oct 16, 2019
package-lock.json finished added keybindings Sep 4, 2019
postBuild Move away from yarn/jlpm Aug 12, 2019
tsconfig.json refactor directory structur Aug 6, 2019



An extension that transforms Markdown cells into rich text-editing cells, powered by ProseMirror.

text in a markdown cell is formatted as a code block and inline math and an image is added all while live rendering


  • JupyterLab >= 1.0.2


If you would like to contribute to the project, please read our contributor documentation.

JupyterLab follows the official Jupyter Code of Conduct.

Ways you can contribute

Rich Text Editing

  • Add table support. More info at #43.
  • Resolve other issues.

UX Improvements

  • Explore per-cell UI. More info at #44.


The jlpm command is JupyterLab's pinned version of yarn that is installed with JupyterLab. You may use yarn or npm in lieu of jlpm below.

# Clone the repo to your local environment
# Install dependencies
npm install
# Build Typescript source
npm run build
# Link your development version of the extension with JupyterLab
jupyter labextension link .
# Rebuild Typescript source after making changes
jlpm build
# Rebuild JupyterLab after making any changes
jupyter lab build

You can watch the source directory and run JupyterLab in watch mode to watch for changes in the extension's source and automatically rebuild the extension and application.

# Watch the source directory in another terminal tab
jlpm watch
# Run jupyterlab in watch mode in one terminal tab
jupyter lab --watch

Keyboard Shortcuts

Bold: Ctrl/⌘ + B Italic: Ctrl/⌘ + I Underline: Ctrl/⌘ + U Strikethrough: Ctrl/⌘ + Shift + X

Normal Text Style (p): Ctrl/⌘ + Alt + 0 Title Text Style (H1): Ctrl/⌘ + Alt + 1 Subtitle Text Style (H2): Ctrl/⌘ + Alt + 2 Section 1 Text Style (H3): Ctrl/⌘ + Alt + 3 Section 2 Text Style (H4): Ctrl/⌘ + Alt + 4 Section 3 Text Style (H5): Ctrl/⌘ + Alt + 5 Caption Text Style (H6): Ctrl/⌘ + Alt + 6

Bulleted list: Ctrl/⌘ + Shift + 8 Ordered list: Ctrl/⌘ + Shift + 9 Nested list: Tab to nest a list item; Shift + Tab to unnest Block quote: Ctrl/⌘ + ' Inline code: Ctrl/⌘ + < Code block: Use Markdown syntax and press enter. Example: ```python

You can’t perform that action at this time.