jupyterlab_export_markdown_extension
[!TIP] This extension is part of the stellars_jupyterlab_extensions metapackage. Install all Stellars extensions at once:
pip install stellars_jupyterlab_extensions
Export markdown files to PDF, DOCX, and HTML directly from JupyterLab. No external dependencies required - just pip install and go.
Features
- PDF Export - Full Unicode and emoji support via reportlab
- DOCX Export - Microsoft Word documents with smart image sizing (fit-to-page for large images)
- HTML Export - Standalone files with embedded images
- LaTeX Math - Native OMML equations in DOCX (editable in Word), KaTeX in HTML, PNG images in PDF
- GitHub Alerts - Colored alert boxes for
[!NOTE],[!TIP],[!IMPORTANT],[!WARNING],[!CAUTION]with left border and background shading in DOCX/PDF - Mermaid Diagrams - Rendered server-side to PNG via Playwright Chromium at the configured SVG export width
- Embedded Images - Local images automatically converted to base64
- Syntax Highlighting - Code blocks with Pygments-powered coloring
- Wide Tables - Tables wider than the page wrap within a fitted column layout instead of running past the margin, in PDF, DOCX and HTML
- Task Lists -
- [x]/- [ ]render as checkbox glyphs in HTML, DOCX and PDF - Lists and Callouts - two-space nested lists render as lists, every ordered list restarts at 1, and a bordered
<div>draws as a box - a uniform border as a frame in its own line style, an accented one with its bar - in DOCX and PDF - Inline HTML -
<span style="color:...">,font-weight,font-style,text-decoration,<mark>,<del>,<ins>,<kbd>,<font color>,align=and<div>render as written in DOCX and PDF - Symbol Glyphs -
★ ☆ ✓ ✗ ☐ ☒, arrows and box drawing name a font of their own in DOCX, so they look the same in every reader's Word - Export Spinner - Modal dialog shows progress during export operations
- File Menu Integration - "Export Markdown As" submenu appears when markdown is active
- Command Palette - All export commands available via Ctrl+Shift+C
- Settings - Configure export font size, SVG export width, math export width, themes, and alert label visibility via Settings Editor
- Pure Python - No pandoc, no LaTeX, no system dependencies
Requirements
- JupyterLab >= 4.0.0
- Python >= 3.10
For PDF export, install required system libraries and emoji font:
# Ubuntu/Debian
sudo apt-get install libcairo2 libpango-1.0-0 libpangoft2-1.0-0 fonts-noto-color-emoji
Mermaid diagrams are rendered client-side using JupyterLab's built-in Mermaid support - no additional installation required. An export driven through the REST endpoints instead of the UI has no browser to render them, so the server renders those diagrams itself with a bundled copy of Mermaid, in the same Playwright Chromium the SVG rasterizer uses - no network access involved.
A diagram that cannot be rendered never fails the export: its source is kept and the response carries an X-Export-Warnings header describing what happened, as a JSON array of {code, count, diagrams, message}. code is one of chromium-unavailable, bundle-missing, syntax-error, layout-unsupported, render-timeout, skipped, budget-exhausted, rasterize-failed or render-failed; count is how many diagrams the warning covers, diagrams a bounded prefix of their positions in the document, and message the remedy in full - a caller needs nothing beyond the header. It is absent when everything rendered, and is listed in Access-Control-Expose-Headers so a cross-origin caller can read it.
Install
pip install jupyterlab_export_markdown_extension
That's it. No really, that's actually it. We spent considerable effort making sure you don't have to install pandoc, LaTeX, or sacrifice a goat to get this working.
Usage
- Open a markdown file in JupyterLab
- Use File -> Export Markdown As submenu, or
- Open command palette (Ctrl+Shift+C) and search "Export Markdown"
Export Formats
| Format | Library | Notes |
|---|---|---|
| reportlab | Unicode support, compact styling, math as PNG images | |
| DOCX | python-docx + htmldocx | Native OMML math, smart image sizing, banded tables, alert boxes |
| HTML | markdown + KaTeX | Standalone with embedded images, client-side math rendering |
Settings
Configure the extension via Settings -> Settings Editor -> Markdown Export Extension:
- Export Font Size - Base body text size for all three formats:
small(10pt),medium(12pt, default),large(13pt). Every other size - headings, tables, code, captions - is a fixed proportion of it, so the whole document scales together - SVG Export Pixel Width - Target pixel width for SVG images and Mermaid diagrams rasterized server-side in DOCX/PDF (default: 1920, range: 400-4096). Height follows the source aspect ratio
- Math Export Pixel Width (PDF only) - Target pixel width for math expression images in PDF export (default: 800, range: 200-3000). DOCX uses native OMML equations and HTML uses KaTeX, neither affected by this setting
- Show Alert Labels - Display alert type labels (NOTE, TIP, etc.) in exported documents (default: off)
Uninstall
pip uninstall jupyterlab_export_markdown_extension
Contributing
If you would like to contribute to this extension, please refer to the Contributing Guide.
License
BSD 3-Clause License
Metadata
Release files for jupyterlab-export-markdown-extension 1.6.28
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jupyterlab_export_markdown_extension-1.6.28.tar.gz | 2.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jupyterlab_export_markdown_extension-1.6.28-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.8 MB
Release files / jupyterlab_export_markdown_extension-1.6.28.tar.gz
| Download URL | jupyterlab_export_markdown_extension-1.6.28.tar.gz |
|---|---|
| Size | 2.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b2eaa4d34c9c364476665c98c7fbd2b05e67820a1c5d75fb322f778a8d4a863c
|
|
BLAKE2b-256 checksum How to use checksums |
7d135c926beabdc3b26b8a6886d32965da2f0391ba42342973770ff40f5a627f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|
Release files / jupyterlab_export_markdown_extension-1.6.28-py3-none-any.whl
| Download URL | jupyterlab_export_markdown_extension-1.6.28-py3-none-any.whl |
|---|---|
| Size | 1.2 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
57f055cfb004fd30c5f109ae87ee62c7a426e84a187298b341bef3e1f671d173
|
|
BLAKE2b-256 checksum How to use checksums |
0e84e0514f9b27c67199da4ff2ec6671b782dfdcae3214e4f8a8c92ea770f165
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.15
|