npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

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

Readme

jupyterlab_markdown_insert_content_extension

GitHub Actions npm version PyPI version Total PyPI downloads JupyterLab 4

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_extension

Usage

Insert Table of Contents

  1. Open a markdown file or create a markdown cell in a notebook
  2. Position cursor where you want the TOC inserted
  3. Right-click and select "Insert Table of Contents"
  4. 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_extension

Development

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 build

Development workflow

# Watch mode - automatically rebuilds on changes
jlpm watch

# In another terminal, run JupyterLab
jupyter lab

Refresh 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 folder

Testing

Frontend tests:

jlpm test

Integration tests: See ui-tests/README.md for Playwright integration tests.

Packaging

See RELEASE.md for release process.