Browser-based viewers that render various file formats as self-contained HTML. Each package ships a standalone UI and a plugin mode (plugin.html) for embedding in hosts such as QuickLook / WebView2 via postMessage.
| Package | Formats | Engine |
|---|---|---|
src/adoc |
.adoc, .asciidoc |
Asciidoctor.js |
src/chm |
.chm |
In-browser CHM parser |
src/excalidraw |
.excalidraw |
@excalidraw/excalidraw |
src/gv |
.gv, .dot |
@viz-js/viz (Graphviz WASM) |
src/iconfont |
.ttf, .otf, .woff, .woff2 |
Local icon-font browser |
src/ipynb |
.ipynb |
Jupyter Notebook renderer |
src/rst |
.rst, .rest |
rst-compiler |
- Node.js 20+ (18+ may work for some packages)
- npm
Each package is independent. From the repo root:
cd src/<package> # e.g. src/adoc
npm install
npm run devOpen the Vite URL (usually http://localhost:5173) and open a sample file from the UI.
cd src/<package>
npm run build # multi-file output under dist/
npm run build:all # build + inline into single-file HTMLAfter build:all, dist/index.html and dist/plugin.html are self-contained (no external runtime requests).
Embed plugin.html in an iframe (or WebView2) and push content with postMessage. Message shapes differ per package — see each package README for the exact API.
Typical host flow:
- Load
plugin.html - Wait for the viewer ready signal (if documented)
postMessagefile bytes / text / JSON- Viewer renders inside the page
QuickLook.WebPlugins/
├── README.md
└── src/
├── adoc/
├── chm/
├── excalidraw/
├── gv/
├── iconfont/
├── ipynb/
└── rst/
See individual package directories for details. This collection is maintained for use with QuickLook on Windows.