jupyterlab_markdown_insert_content_extension
v1.0.21
Published
Jupyterlab extension to automatically insert content into markdown - such as TOC, bibliography, list of figures etc.
Downloads
255
Maintainers
Readme
jupyterlab_markdown_insert_content_extension
JupyterLab extension for inserting reusable content blocks into markdown files and notebook cells, starting with automatic table of contents generation.
Features
- Context menu integration - right-click in markdown editors or notebook cells to insert content
- Table of contents generation - automatically extracts headings and creates hierarchical TOC with working anchor links
- Configurable settings - customize TOC caption and maximum heading depth through JupyterLab settings
- Code block filtering - excludes headings within fenced code blocks from TOC
- JupyterLab-compatible anchors - generates anchor IDs matching JupyterLab's format for reliable navigation
- Dual mode support - works in both markdown file editors and notebook markdown cells
- Cursor-aware insertion - inserts content at current cursor position
Right-click in markdown editor or notebook cell to access the context menu:

Generated table of contents with hierarchical structure and working anchor links:

Configure TOC caption and maximum heading level through JupyterLab settings:

Requirements
- JupyterLab >= 4.0.0
Install
pip install jupyterlab_markdown_insert_content_extensionUsage
Insert Table of Contents
- Open a markdown file or create a markdown cell in a notebook
- Position cursor where you want the TOC inserted
- Right-click and select "Insert Table of Contents"
- TOC is generated with links to all headings in the document
Configure Settings
Access settings through Settings -> Settings Editor -> Markdown Insert Content:
- TOC Caption - markdown content inserted before TOC list (default:
## Table of Contents) - Maximum Heading Level - deepest heading level to include (1-6, default: 3)
Settings apply immediately without restart.
Uninstall
pip uninstall jupyterlab_markdown_insert_content_extensionDevelopment
Development install
# Clone repository
git clone https://github.com/stellarshenson/jupyterlab_markdown_insert_content_extension.git
cd jupyterlab_markdown_insert_content_extension
# Set up virtual environment
python -m venv .venv
source .venv/bin/activate
pip install --editable "."
# Link extension with JupyterLab
jupyter labextension develop . --overwrite
# Build extension
jlpm install
jlpm buildDevelopment workflow
# Watch mode - automatically rebuilds on changes
jlpm watch
# In another terminal, run JupyterLab
jupyter labRefresh JupyterLab after changes to load updated extension.
Development uninstall
pip uninstall jupyterlab_markdown_insert_content_extension
jupyter labextension list # Find labextensions folder
# Remove symlink from labextensions folderTesting
Frontend tests:
jlpm testIntegration tests: See ui-tests/README.md for Playwright integration tests.
Packaging
See RELEASE.md for release process.
