Skip to main content

jupyterlab_advanced_html_viewer_extension

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

Read an HTML file in JupyterLab and comment on it. The viewer trusts and refreshes a page as the built-in HTML Viewer does, and adds the marks, comments and notes panel of the advanced Markdown viewer. The comments are stored in the HTML file itself, so an AI agent reading the file reads them too and can answer in it.

Features

  • Opens HTML files - double-click an .html file; Trust HTML runs its scripts and Rerender HTML Document reads it again, as in the built-in viewer
  • Shows a page on the whole screen - the full-screen button on the toolbar shows the page alone on the whole screen, as it is, with the keyboard on the page; Escape returns to the lab
  • Remembers trust in the file - Trust HTML, or the Always trust this page checkbox beside it, writes this lab's signature of the file's path into the file's settings line, so the file opens trusted next time, also after an agent rewrites it, while the line stays; Distrust HTML, or clearing the checkbox, takes it out. While the checkbox is checked in an open view, a rewrite from disk that drops the settings line gets the signature written back. While the checkbox is checked, a program that holds the file open and pauses partway through writing it can get the trust line written into its page; tools that write the whole file at once are not affected. A signature made in another lab, or for another path, trusts nothing, so a downloaded file cannot trust itself
  • Says what trust allows - More info, after the Always trust this page checkbox, opens a dialog read from the file without running it: what trust allows, the page's inline scripts and the address of each script file, the other hosts it loads from, and the browser features its inline scripts name, found by text search
  • Lets a trusted page change its address - the scripts of a trusted page may change the part of its address after the #, as a slide deck does to record its slide; an untrusted page runs no scripts, and the Let a trusted page change its address setting switches it off
  • Scrollbar follows the lab theme - the page's scrollbar, and any scrolling area inside it, takes the colours of the current JupyterLab theme; switching the theme recolours it without reloading the page
  • Wide pages fit the frame - a page wider than the frame is scaled down to the frame's width before trust as well as after, and a page that fits keeps its own size; opening the notes panel, resizing the window or going full screen fits it again without a reload
  • Follows the file - a change another program writes to the file shows within a few seconds, applied to the page in place: the page is not loaded again, so the scroll position, the part of the address after the # and the state of the page's scripts stay; a change to the notes alone leaves the page as it is. A change in the head or the doctype; in or of a script, style, link, meta, base, template, SVG, MathML, iframe, frame, frameset, object, embed, source or track; in or of an element whose text the page does not show as text (textarea, title, xmp, noembed, noframes, plaintext, and noscript on a trusted page); a rewrite of more than 1000 words, spaces and child elements inside one element; a change of the signature in the settings line of an untrusted page; a tag or attribute name the browser cannot create, such as one with a stray quote in it; and a change at a place a trusted page's scripts changed load the page again, with the added text on green, except where more than 1000 words and spaces lie between the first and the last change, which shows without a tint. On a trusted page a change in place runs no script again, so a part a script built at load from the file's text keeps its old result until Rerender HTML Document. An edit in the lab's editor renders the page again as before. The Enabled setting switches following off; the file is then read only on Rerender HTML Document and when the viewer writes a mark, a note, the panel state or the trust, and the page changes then or on an edit in the lab
  • Types changes in - added text is typed in letter by letter; removed text stands struck through for a moment and is then deleted from its end. An element that goes loses its text first and then its tags, the innermost first; an element that comes is put in empty and its text typed in. The Animate changes setting shows a change at once
  • Highlights changes - added text on the lab theme's success colour, removed text on its error colour and struck through, fading out a few seconds after the change, with the marks keeping their colours meanwhile; the Highlight changes setting switches it off
  • Marks the tab of a changed file - while changes arrive, a half-filled circle before the tab's name swaps its filled half from side to side, faster the more changes arrive. Changes that arrived while the tab was behind another leave a dot in the theme's brand colour 2 until you bring the tab to the front. The tab's tooltip says what the marker means, and the Tab marker setting switches it off
  • Marks in six colours - select text, right-click and choose a colour under Mark, or Add Comment to write a note at once; Ctrl Shift M (Cmd Shift M on macOS) marks from the keyboard
  • Only text written in the file takes a comment - text a trusted page's scripts produce, and whatever an iframe, object or embed of the page shows, is refused
  • Notes are stored in the file - as HTML comments around the passage, which no browser shows, in the same form the advanced Markdown viewer writes
  • Notes panel beside the page - a comment and its replies per mark, with edit, delete, colour, close and a note on the whole document

Agent skill

The skill in .agents/skills/jupyterlab-advanced-html-viewer-extension teaches an AI assistant the marks this extension stores in the HTML file. With it, the assistant can:

  • mark passages in the six colours, change a mark's colour and hide a mark
  • comment on a passage or on the whole page
  • answer and close your comments
  • watch a file for new comments, with the bundled scripts/watch-marks.py

pip install puts a copy in <sys.prefix>/share/jupyter/agents/skills/, inside the Python environment, not in ~/.agents/skills. No agent reads that directory, so link the copy into ~/.agents/skills yourself, with the Python that runs the lab:

mkdir -p ~/.agents/skills
ln -s "$(python -c 'import sys; print(sys.prefix)')/share/jupyter/agents/skills/jupyterlab-advanced-html-viewer-extension" ~/.agents/skills/jupyterlab-advanced-html-viewer-extension

Agents that read .agents/skills also find it in a clone of this repository; to make it available to Claude Code everywhere, link it into the skills directory from the root of the clone:

mkdir -p ~/.claude/skills && ln -sfn "$PWD/.agents/skills/jupyterlab-advanced-html-viewer-extension" ~/.claude/skills/jupyterlab-advanced-html-viewer-extension

Requirements

  • JupyterLab >= 4.6.0

Install

To install the extension, execute:

pip install jupyterlab_advanced_html_viewer_extension

Uninstall

To remove the extension, execute:

pip uninstall jupyterlab_advanced_html_viewer_extension

Metadata

Release files for jupyterlab-advanced-html-viewer-extension 1.0.69

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jupyterlab-advanced-html-viewer-extension 1.0.69
File Size Uploaded Provenance
jupyterlab_advanced_html_viewer_extension-1.0.69.tar.gz 567.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for jupyterlab-advanced-html-viewer-extension 1.0.69
File Interpreter ABI Platform
jupyterlab_advanced_html_viewer_extension-1.0.69-py3-none-any.whl Python 3 none any Details

Total release size: 794.3 kB

Release files / jupyterlab_advanced_html_viewer_extension-1.0.69.tar.gz

Download URL jupyterlab_advanced_html_viewer_extension-1.0.69.tar.gz
Size 567.7 kB
Tags Source
SHA-256 checksum
How to use checksums
2861173bfa06a4d453ebc2e40086c07d4fd5897ab9b537ed098b2d4b568ee481
BLAKE2b-256 checksum
How to use checksums
791811243bc0d5e5ecf69d979f56a619142be8ae455c780a1a1251efab922208
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.9

Release files / jupyterlab_advanced_html_viewer_extension-1.0.69-py3-none-any.whl

Download URL jupyterlab_advanced_html_viewer_extension-1.0.69-py3-none-any.whl
Size 226.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
acadab6b389edd79be6aac60a380d6bff10190e1bb5e618642f1d9dde361aa66
BLAKE2b-256 checksum
How to use checksums
76f9b6c6348228b634fbe95f26f094a6d3e4fb2b700608f70d14d4dce54978f9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.9

Security for jupyterlab-advanced-html-viewer-extension 1.0.69

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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