Changelog
Notable changes to Pageworks that affect how you author layouts or configure the app, newest first. This list covers user-facing changes only — it is not an exhaustive build log. For what's coming next, see the Roadmap.
Changes are grouped as Added (new capabilities), Changed (existing behaviour that now works differently), and Fixed (corrected defects).
2026-07-10
Added
- Conditional display with
data-if. Show or hide an element based on a bound value:data-if="{{Column}}",data-if="{{DataItem.Column}}", or negateddata-if="!{{Column}}". The element is hidden when the value is empty, numeric zero, or the literalfalse— and a hidden element takes up no space (no blank gap). Combine it withdata-eachto filter individual rows, e.g. drop a tax line when its amount is zero. See Template language → Conditional display. - Reusable Blocks with parameters. A Block can now take parameters at the include site
—
{{> lineItems item=ItemNo desc=Description qty=Quantity amount=LineAmount}}— so one Block can be reused across reports whose datasets use different field names. Inside the Block, reference each parameter with the{{$name}}placeholder. Unquoted values are dataset field references; quoted values (note="N/A") are literals. A plain{{> name}}with no parameters behaves exactly as before. See Template language → Reusable Blocks with parameters. - Custom page sizes. Define your own named page sizes as data in the client, then
reference one by name with
page-size="MyName". Dimensions and margins can be entered in millimetres, inches, or points — enter whichever unit you prefer and the others are computed for you. A4 and Letter ship built in. See Template language → Custom page sizes. - Insert picker in Layout Studio. Browse and insert dataset fields, Blocks, images, and fonts from the editor without memorising token syntax — inserted at the cursor in the Studio editor. See Using the insert picker.
Changed
- Table cells no longer add implicit padding.
<td>/<th>cells now render with no built-in padding, so cell spacing is fully under your control viastyle— existing layouts that relied on the old implicit spacing may need explicit padding added.
2026-07-08
Added
- Side-by-side block flow. Place blocks, tables, or sections next to each other by
giving them a
width(e.g. two halves atwidth: 50%) on<table>,<div>, or<section>, instead of everything stacking top to bottom — useful for headers with a logo on one side and address on the other. See Template language.
2026-07-06
Fixed
- Header and logo bands across page breaks. Repeated header/logo bands no longer collide with continuation content on multi-page documents.
2026-07-05
Added
- Box model. Blocks support padding, vertical spacing between blocks, and coloured borders, for finer control over spacing and framing.
- Richer table cells.
<td>/<th>gainedcolspan,rowspan,vertical-align, and the ability to nest block content inside a cell (e.g. a small key/value grid within one cell).
2026-07-04
Added
- Images and logos. Embed images with
<img>, including dataset-bound images, with control over sizing, fit, and alignment. Extensions can supply their own images. - Custom fonts. Embed custom fonts and register fonts from an extension, with support for non-Latin scripts (e.g. Cyrillic and Greek).
- Invoice-grade documents. Engine-computed carryover and running totals
(brought-forward / carried-forward), repeating group headers, value formatting controls,
double-rule borders on totals rows, and fixed-position
<region>elements.
2026-07-03
Added
- Initial release. Author report layouts as text templates (an HTML subset) with data
bindings (
{{Column}},{{DataItem.Column}}), repeating sections (data-each), reusable Blocks ({{> name}}), and design-time validation that reports clear finding codes. Includes the Layout Studio editor with live preview for building and adjusting layouts without writing AL.
Detailed changelog tracking begins with the entries above; dates reflect when each capability landed in the codebase.