Learning in public — this documentation is written in the open and updated as the engine moves.
paged.Paged Docs
Plugins

paged.web — HTML/CSS

The web-content plugin — author HTML/CSS as a content type, with a sandboxed preview and on-canvas rendering via a Blitz/WASM lowering to the engine's scene layer.

Tier: IntermediateIntermediateIIexplanationDraft

In short paged.web lets HTML/CSS be a content type inside a paged document. You author source in a panel, see a sandboxed preview, and the frame renders on-canvas through a Blitz/WASM lowering to the engine's scene layer (falling back to the sandboxed preview when the wasm isn't available).

What it does

  • A source lane: author HTML/CSS with a diagnostics linter (page JS never executes — <script> is flagged as an error by policy).
  • A deterministic template pass ({{name}} + a pure-filter whitelist).
  • On-canvas vector rendering via the web-render crate (Blitz/WASM → scene layer), with font bytes supplied through the capability-gated asset store.
  • Persists the source into the .paged container.
  • In development: editing a web frame's text in place, flowing web content across threaded frames with break rules, web fonts on the canvas, bound data in templates, layout parity checked against Chrome, and web frames as typed objects (the object model).

How it's built

web-model (pure source model + linter) + web-bundle (manifest, source panel, sandboxed preview, render command).

Capability state

● shipped & verified · ○ shipped, re-test pending · ◍ shipped, untested · ◐ partial · ✗ failing · · planned

Plugin · web 22 features · 100% green

FeatureRendererCanvasPanelWeb
Canvas follows the document
plugin-web.auto-render
●
Bake to native content — flatten a rendered web frame/flow to Paged page items (IDML/PDF export path)
plugin-web.bake-to-native
◐
Layout parity with Chrome (recorded oracle)
plugin-web.chrome-parity
●
Bound data in templates
plugin-web.data-binding
●
On-canvas vector rendering of web frames (Blitz/WASM → C-1 sceneLayer lane)
plugin-web.engine-rendering
●●●
Flow fragmentation — re-line-break one flow across N frames (ADR-020 ladder)
plugin-web.flow-fragmentation
●
Flow threading — one web source across a chain of publication frames
plugin-web.flow-threading
●
.html file importer — File/Open + drag-drop an HTML file into a web frame
plugin-web.html-importer
●
In-frame text editing
plugin-web.in-frame-edit
●
Insert web frame (one undo step, frame + source metadata)
plugin-web.insert-command
●●
Source persistence in the document (IDML round-trip, foreign-open safe)
plugin-web.metadata-persistence
●●
Object model — web frames, their HTML and CSS properties addressable through host.objects
plugin-web.object-model
●
Outline and canvas highlight
plugin-web.outline-canvas
●
Overflow policies
plugin-web.overflow-policies
●
Break rules and @page in flows
plugin-web.page-breaks
●
Host undo reaches panel edits
plugin-web.panel-undo
●
Work counters and count budgets
plugin-web.perf-budgets
●
Flow/render readout — the last render/flow/bake outcome in the source panel
plugin-web.render-readout
●●
Sub-resources from the document only
plugin-web.resources
●
WebFrameSource model + metadata envelope + diagnostics linter
plugin-web.source-model
●
Source panel — HTML/CSS editors, sandboxed preview, options, diagnostics
plugin-web.source-panel
●●
Web fonts and faces on the canvas
plugin-web.web-fonts
●

Recent activity

On this page