Add guide metadata, redesign PDF cover, paginate steps, and run exports in a helper process #19

Merged
Tyler merged 16 commits from export_changes into main 2026-06-15 22:10:32 +00:00
Owner

Summary

  • Adds a "Guide information…" dialog (More ▾ menu) to record optional author, co-authors, and organization metadata for a guide.
  • Redesigns the PDF cover: title in large text above the blue accent rule, with author/co-authors/organization below it.
  • Paginates PDF export per-step: steps pack onto a page when they fit, move to a fresh page when they don't, and an oversized step overflows naturally while forcing the next step to start on a new page. Step title/image/lead-in are never split across a page boundary.
  • Moves the export pipeline (buildRenderAst + runExport) into a forked helper process so large-guide exports no longer freeze the UI.

Test plan

  • node --test tests/unit/ — 163/163 pass, including new tests for metadata round-trip, render-AST placeholder expansion, PDF cover layout, PDF pagination, and the export-worker process.
  • Manually verified in the running app: Guide information dialog saves/persists metadata; PDF export shows the new cover layout and pagination behavior without blocking the UI.
## Summary - Adds a "Guide information…" dialog (More ▾ menu) to record optional author, co-authors, and organization metadata for a guide. - Redesigns the PDF cover: title in large text above the blue accent rule, with author/co-authors/organization below it. - Paginates PDF export per-step: steps pack onto a page when they fit, move to a fresh page when they don't, and an oversized step overflows naturally while forcing the next step to start on a new page. Step title/image/lead-in are never split across a page boundary. - Moves the export pipeline (buildRenderAst + runExport) into a forked helper process so large-guide exports no longer freeze the UI. ## Test plan - [x] `node --test tests/unit/` — 163/163 pass, including new tests for metadata round-trip, render-AST placeholder expansion, PDF cover layout, PDF pagination, and the export-worker process. - [x] Manually verified in the running app: Guide information dialog saves/persists metadata; PDF export shows the new cover layout and pagination behavior without blocking the UI.
Tyler added 1 commit 2026-06-15 17:54:50 +00:00
Lets users record author/co-authors/organization for a guide via a new
"Guide information…" dialog; this metadata renders below the title on
the PDF cover (title now sits above the accent rule). PDF export also
paginates so each step fits its own page where possible, keeps a
step's title/image/lead-in together, and forces the next step onto a
fresh page after an oversized step overflows. Exports now run in a
forked helper process so large guides no longer freeze the UI.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Tyler added 1 commit 2026-06-15 18:04:44 +00:00
Reuses the guide's existing descriptionHtml/descriptionText, which
already renders on the PDF cover and at the top of every other export
format, so it surfaces alongside author/co-authors/organization with
no exporter changes needed.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Tyler added 1 commit 2026-06-15 18:11:57 +00:00
Tyler added 1 commit 2026-06-15 18:22:58 +00:00
Adds PdfBuilder.linkRect() for /Subtype /Link annotations with a
/Dest pointing at another page's destination. TOC entries record a
target placeholder that the per-step loop fills in once it knows
which page the step landed on, so clicking a Contents line jumps the
reader straight to that step.
Tyler added 1 commit 2026-06-15 18:49:34 +00:00
Tyler added 1 commit 2026-06-15 18:59:08 +00:00
Tyler added 1 commit 2026-06-15 19:02:37 +00:00
Tyler added 1 commit 2026-06-15 19:03:34 +00:00
Tyler added 1 commit 2026-06-15 19:22:35 +00:00
Tyler added 1 commit 2026-06-15 19:32:17 +00:00
Tyler added 1 commit 2026-06-15 19:37:08 +00:00
Tyler added 1 commit 2026-06-15 19:40:25 +00:00
Tyler added 1 commit 2026-06-15 19:42:00 +00:00
Tyler added 1 commit 2026-06-15 19:46:44 +00:00
Tyler added 1 commit 2026-06-15 19:58:19 +00:00
Tyler added 1 commit 2026-06-15 22:07:43 +00:00
The export dialog's Export and Preview buttons now disable and show a
spinner with status text while the corresponding async operation is
in flight, so the user knows the (sometimes slow) export is running
and the app isn't stuck.

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
Tyler merged commit a201b05c9e into main 2026-06-15 22:10:32 +00:00
Tyler deleted branch export_changes 2026-06-15 22:10:33 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Tyler/StepForge#19