HTML File
Users don't need any app installed to view a WLJS notebook
Call Share from the top menu or click the icon and choose HTML File.
Use cases
- Share a notebook with a colleague (no WLJS app required)
- Share your work on the internet
- Lecture notes & offline presentations
- Make a report on data analysis, experiment
- Documentation
- Cross-platform personal notes
Local images are embedded automatically, NotebookStore is preserved, and embedded files are included. You can open the HTML file locally or publish it as a webpage.
Importing
The original cell metadata is preserved, allowing an HTML notebook to be converted back to a normal WLJS notebook format when opened or using deep-links—click the icon in the exported HTML file:
Static Export Option
The most basic export option is Static:
What it does:
- Keeps all standard plots, images, 3D graphics, and 3rd-party JavaScript assets intact and interactive
- Keeps all outputs of all cell types, including slides
- Keeps all objects in
NotebookStore(can be used when the document is reimported) AnimatePlotandAnimateParametericPlotwill still work (since they're based on precomputed states)
However:
-
Dynamic features provided by
ManipulatePlot,InputRange,Offload, animations made usingAnimate,AnimationFrameListener, orSetIntervalwill not work and will display the latest captured state in your HTML document.
This option is ideal for creating reports, compact notes for long-term storage, basic presentations, and shipping as a standalone HTML file.
Interactive Export Option
This is a dynamic version of the HTML exporter designed to recreate the full (or partial) interactivity of normal notebooks.
There are two presets to choose from:
Automatic
Following the steps
you get the following
- Everything that Static HTML export option provides
ManipulateManipulatePlotand related symbolsManipulate*, which produce interactive widgetsAnimate
However:
-
Dynamic features provided by
InputRange,Offload, animations made usingAnimationFrameListener, orSetIntervalwill not work and will display the latest captured state in your HTML document. - Missing states are interpolated using a stairstep-like method.
This mode is easy and optimal for most use cases that involve interactivity.
Animate and Manipulate.The result is a fully interactive widget that works offline without an internet connection or the Wolfram Kernel.
Manual sampling
Following the steps
you get the following
- Everything that Static HTML export option provides
- Dynamic features provided by
Manipulate*,Animate, input elements likeInputRange, anything withOffload, and animations made usingAnimationFrameListenercan be captured. FrontSubmitcalls caused by events can be captured.- Events generated by presentation slides can be captured.
- The missing states are interpolated using IDW method.
However:
-
Dynamic features provided by
SetIntervalwill not be captured. - The procedure requires manual sampling by dragging all sliders or activating other event-generating elements.
This method is the most comprehensive and the only way to keep your custom-made interactivity, animations like this one:
Your dynamic system must follow a call-and-response architecture. This means it must generate events (via user interaction or code) and produce a response (e.g., symbol mutation or FrontSubmit call).
How to use:
Prepare the notebook
Connect to the Wolfram Kernel and evaluate your expressions. Minimize the number of input elements and their states. Limit the number and complexity of dynamic symbols.
Run Export
Navigate to the export option and run it.
Sampling
For sliders/input elements
Move each slider/input element across its full range. This is necessary, as the sampling phase will only use values observed during sniffing.
For multiple inputs (2–3 sliders), move each one fully once. Cross-combinations are not needed—they will be resampled recursively and automatically.
For animations made with AnimationFrameListener
Start the animation (evaluate) and wait for the desired number of frames to be captured.
For presentation events or anything related to FrontSubmit
Go through slides or activate buttons/other event emitters.
Depending on what was sampled, a special sampling preset will be assigned automatically to process the gathered data. Here are a few examples of dynamic content for each:
Bundler features
Modules
To reduce the output file size, you can exclude certain modules from the final bundle. It can be done from the settings menu:
For example, if you do not use 3D graphics: exclude shared-threejs-*, graphics3d-*.
External images
Compress all external images and embed them inline to HTML file used on slides, WLX, HTML or Markdown cells:
Misc
You can enable automatic dark/light mode from the same page of the settings menu: