Skip to main content

jupyterlab_advanced_markdown_viewer_extension

GitHub Actions npm version PyPI version Total PyPI downloads JupyterLab 4 Brought To You By KOLOMOLO Donate PayPal

Keep open Markdown files live. When an AI agentic tool or any other process rewrites a Markdown file on disk, the open rendered view picks up the change on its own: the tab title signals it, removed text is struck on a pale red background, added text stands on a pale green background, and both fade. No more reloading the tab to see the latest content. You can also mark passages and attach notes to them, kept in the Markdown file itself.

Full disclosure: the rest of your JupyterLab stays exactly as it was. This extension only makes sure that the Markdown file you are looking at is the one that is actually on disk.

Features

  • Live updates - open Markdown documents refresh automatically when the file changes on disk
  • Tab title cue - the document tab signals that new content arrived
  • Change highlighting - removed text is struck through on a pale red background, added text stands on a pale green background, both fading out calmly. The strike is deliberate: a reader who cannot tell red from green still sees which text is going by its line, not only by its colour
  • Changes play out as typing - added text appears letter by letter on its green background, in every changed place at once; removed text first turns red, then is deleted from its last letter backwards. The reader follows a change as it happens and no text disappears without warning. The animation setting turns this off; animationSpeed sets the speed in characters per second
  • Rendered view - live updates apply to the rendered Markdown view; an editor open on the same file keeps JupyterLab's own File Changed dialog for a save over unsaved edits
  • Unsaved edits are never overwritten - a change arriving while the document has unsaved edits is held, shown as a red square on the tab, and applied once the document is clean again
  • A file that is gone says so - a document whose file has been deleted carries a still cross on the tab, distinct from the held change by shape and by movement, and takes the new content if the file comes back
  • Marks and notes in the file itself - select a passage in the rendered view, right-click and mark it in one of four colours, with notes attached to it; or select with caret browsing (F7) and press Accel Shift M, also in the command palette as Mark the selected passage. A mark is a pair of HTML comments around the passage, so the Markdown file carries everything and any other renderer shows the document with no trace of it
  • A panel beside the preview - the marks of the open document listed in order, each with its passage and its notes; a narrow strip of ticks instead, or nothing at all. The state you leave it in is written into the file, so the document opens the way you left it
  • Marking while the agent writes - a mark is written through the extension's own server route, which compares the file with what the preview holds and writes under a lock, so marking while writes stream in raises no File Changed dialog and the preview keeps following. A writer appending faster than about one line per 50 ms can still lose a line that lands inside the server's own write, a few milliseconds wide. A lab without the server extension, a document holding your unsaved edits, or live updates turned off keeps JupyterLab's save and its File Changed dialog; there, choose Revert, which keeps the agent's text

A change part way through: added text typed in on green, the last line still mid-word, and the removed text struck on red before it is deleted

The three tab markers side by side: a half-filled circle part way through its turn on report.md, whose change is waiting to be read; a red square on draft.md, whose change is held back because the editor beside it holds unsaved edits; and a red cross on archive.md, whose file is gone from disk

Settings

All settings live under Settings, Advanced Settings Editor, Advanced Markdown Viewer.

  • enabled - on by default; off, the preview keeps what it showed until the document is reloaded; marks and notes have their own setting
  • pollInterval - the interval of the fallback check for filesystems that raise no file events, in seconds; file events through the server extension are the primary path, so a lower value does not make updates faster
  • highlight - green and red backgrounds on changed text
  • fadeDuration - how long the highlight stays on changed text, in milliseconds; it rises over 0.5 s and fades away over the last 0.75 s
  • animation - on by default; changes play out as typing
  • animationSpeed - typing and deletion speed in characters per second; 0 shows a change at once
  • tabCue - the markers on the document tab
  • notes - on by default; off, the panel, the marks and the marking entries are hidden and the markers in the file are left alone
  • author - the handle a note line opens with; empty, the extension uses the name the lab reports for the reader

Requirements

  • JupyterLab >= 4.0.0

Install

To install the extension, execute:

pip install jupyterlab_advanced_markdown_viewer_extension

Uninstall

To remove the extension, execute:

pip uninstall jupyterlab_advanced_markdown_viewer_extension

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file jupyterlab_advanced_markdown_viewer_extension-0.6.41.tar.gz.

File metadata

File hashes

Hashes for jupyterlab_advanced_markdown_viewer_extension-0.6.41.tar.gz
Algorithm Hash digest
SHA256 dac47bacb4265d54793cd32e5fa008a42ce6bc077454fd706270cc4126e57acd
MD5 efcf97800b201acd79f02687f903b688
BLAKE2b-256 f4b964efe2e33d7822631f23f7ee8a06bb79bd3432b94862e9368e133c0d8e49

See more details on using hashes here.

File details

Details for the file jupyterlab_advanced_markdown_viewer_extension-0.6.41-py3-none-any.whl.

File metadata

File hashes

Hashes for jupyterlab_advanced_markdown_viewer_extension-0.6.41-py3-none-any.whl
Algorithm Hash digest
SHA256 e855af8a313c4a8186738d28aea042e0d5b8e4ecd37864b322931b4a33bedd9e
MD5 403a974ba3e7ccc78f336220775e3e25
BLAKE2b-256 cd00137b2e37b9b67d14897a0cc9bedce626ddd5ad2313d8a93999b8faa5c2ef

See more details on using hashes here.

Release history Release notifications | RSS feed

1.0.12

2 files

1.0.11

2 files

1.0.10

2 files

1.0.9

2 files

1.0.8

2 files

1.0.7

2 files

1.0.5

2 files

1.0.4

2 files

1.0.3

2 files

This release

0.6.41 This release

2 files

0.6.28

2 files

0.6.10

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page