Skip to content

Latest commit

 

History

History
174 lines (142 loc) · 13.4 KB

File metadata and controls

174 lines (142 loc) · 13.4 KB

GraphCompose Documentation

Use these docs as a path while learning and as a catalogue afterwards. You do not need to understand the engine, module layout, or ADRs to generate documents.

If you have not rendered anything yet, begin with the root README.

The learning path

Follow the path only as far as your current task requires:

  1. Render one PDF: Your first document.
  2. Add the blocks you need: Recipes explains where text, tables, charts, icons, images, cards, rows, backgrounds, and canvases fit.
  3. Reuse a ready-made design: Templates — invoice, proposal, receipt and rota for business documents; CV and cover letter for profiles.
  4. Protect the result: Testing your document adds deterministic layout snapshots and pixel-level visual diffs.
  5. Run it in a backend: Production rendering covers streams, concurrency, failure handling, and operations.

Stop there if you are a library user. Continue to Contributing, the architecture overview, and extension guide only when you are changing GraphCompose itself.

Go directly to a task

I need to… Read
Add text, a list, table, chart, timeline, image, icon, emoji, or barcode Content and data recipes
Build columns, cards, clipping, overlapping layers, backgrounds, or a canvas Layout and visual recipes
Add a header, footer, page number, watermark, link, bookmark, or contents page Page behaviour recipes
Inspect layout boxes or create a page preview while developing Developer tools and output
Protect a document with snapshots and visual diffs Testing your document
Pick a ready-made document design Templates overview — all six families
Render an invoice or proposal from data Business templates
Render a receipt or a shift rota from data Templates overview
Render a CV or cover letter with my own data CV and cover-letter quickstart
Design a custom CV style Authoring presets
Upgrade a pre-2.0 caller 2.0 migration guide
Add a new template family Template contributor guide
Add a node or backend handler Extension guide → Package map
Operate GraphCompose in production Production rendering → Performance → Logging

📁 By category

Getting started

  • first-document.md — the five-minute path from an empty project to a rendered PDF.
  • getting-started.md — DSL vs templates, first-render walk-through, decision tree.
  • capabilities.md — one-glance map of every feature with its stability tier and guide link.
  • diagrams.md — visual decision diagrams (authoring path, layout, output, lifecycle).
  • troubleshooting.md — symptom-first fixes for common gotchas: stray ? glyphs, silent DOCX drops, optional-dependency NoClassDefFoundError, running the bundled examples.

Templates

  • templates/README.md — start here: all six shipped families, what data each takes, and which guide to open.
  • templates/business-templates.md — invoice & proposal templates: the compose-first contract, end to end, on the layered ModernInvoice / ModernProposal surface.
  • templates/v2-layered/ — the template surface (CV is the reference implementation): data / components / widgets / presets per family, over the shared templates.core.theme.
  • templates/v1-classic/ — 🗄️ archived: the classic spec/builder/presets surface removed in 2.0; kept for pre-2.0 callers.

Recipes

Operations / Testing

Output backends

Migrations

Historical documentation — shipped roadmaps and superseded minor-to-minor upgrade guides

Kept for anyone stepping through the 1.x line one minor at a time. Nothing here describes the current API.

Library internals — architecture, contributing, and ADRs. Needed only when you change GraphCompose itself, never to author a document.

Architecture

Contributing

ADRs

Numbered, dated decisions about non-trivial design choices. Read these when you need to understand why a piece of the system looks the way it does.

ADR numbering gap (0005–0010) is intentional — those numbers were reserved during a v1.5 restructure that landed under ADR 0011 instead of multiple smaller records. No deleted ADRs.

Showcase website (separate from docs)

  • The public showcase website is not documentation — it lives in web/ (static GitHub Pages site) and is documented by its own web/README.md. Kept out of docs/ on purpose so the two don't tangle.

Archive

  • archive/ — old migration guides and roadmaps kept for historical reference. Not part of the live doc set.

🔗 Quick links