All notable changes to JDF are documented here. Format: Keep a Changelog · semantic-ish.
- Edit-in-place: double-click any element (text, heading, list item, table cell, table header, collapsible title, image src/alt) to edit it inline. Auto-saves to disk (~400 ms debounce) with a toolbar status indicator.
- Live JSON view (
View ↔ JSONtoggle). Two-way bound to the rendered document; edit JSON directly withCmd+Sor blur to commit. - Native Markdown viewer with GFM (tables, blockquotes, code, task lists, images, hr) and
MD ↔ Pagedtoggle. - Welcome screen with recent files, drag-drop hint, and dark-mode coverage.
- Sidebar thumbnails (per-page mini layout preview).
- Search panel with multi-match highlighting and keyboard navigation.
- Help overlay (
?) with grouped File / View / Edit & Navigate shortcuts. - JSON Schema (
spec/jdf-schema.json) andspec/examples/hello-world.jdf. - CLI (
tools/jdf-cli/):validate(Ajv-based),import(md→jdf). - Header/footer with element children (not just template text).
- Internal link navigation (
#page-N→ jump to page N). - TOC click-to-navigate with hierarchical depth filter.
- PDF export now respects
meta.pageSize/pageOrientation(was hardcoded A4). - PDF export now applies
style.colorto text viaset_fill_color. - PDF export TOC: iterates document headings into a real TOC (was placeholder).
- Auto-save flushes pending writes on window close (
onCloseRequested). - Recent files self-clean: invalid paths are removed on failed open.
- Type ↔ renderer mismatches that silently broke many features:
- Heading:
heading: 1-6now renders as<h1>-<h6>(was always<p>). - List:
listType: "ordered"now renders<ol>(was always<ul>). - RichText:
bold/italic/underline/strikethrough/color/fontSize/fontFamilyper run. - Table:
headersarray,borders: bool|object,alternatingRowColor, column alignment. - Image: both
srcandresource,fitmodes (contain/cover/fill/none). - Header/footer:
contenttemplate variables ({{pageNumber}},{{title}}, …) actually evaluated. - Shape:
strokeaccepts string or{color, width}object.
- Heading:
text.alignfield now applied (was ignored — onlystyle.textAlignworked).- Footer no longer overlaps last element on long pages (page padding accounts for header/footer height).
- Markdown→JDF: tables, blockquotes, links, images, hr, GFM strikethrough/tasklists.
validate_documentperforms element-level schema checks witherrorsandwarningsseparation.- Untracked
.DS_Storefiles removed from the repo.
- The "Edit" mode toggle button. Editing is implicit on
.jdffiles via double-click; no global mode flag.
- Initial release: JDF format spec, Tauri viewer, PDF/Markdown import, PDF export, search/sidebar/zoom/dark mode, file associations.