Skip to content

Commit e1ca311

Browse files
committed
docs(examples): browsable feature-catalog PDF - every capability with its API call
New flagship FeatureCatalogExample: one PDF where each shipped capability is a self-documenting block - the heading lands in the PDF outline so the bookmarks panel works as a clickable index, a code panel shows the exact API call (the source file contains the literal same call right below the snippet string, so drift is visible in review), and the live result renders underneath. Covered: rich text runs, inline sparklines, nested lists with per-depth markers, timelines, tables with totals, grouped / line-smooth-area / donut / horizontal-stacked charts, gradient and translucent fills, custom polygons, clipped shape containers, canvas placement, transforms, barcodes, and the document's own metadata / header / footer / outline chrome. Every block keeps together across page breaks. Snippet indentation survives wrapping via non-breaking spaces; list markers and snippet glyphs stay inside WinAnsi coverage.
1 parent 0aa9a4a commit e1ca311

6 files changed

Lines changed: 401 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,14 @@ Entries land here as they merge.
107107

108108
### Documentation
109109

110+
- **Browsable feature-catalog PDF.** New flagship `FeatureCatalogExample`
111+
renders every shipped capability as a self-documenting block: the heading
112+
lands in the PDF outline (the bookmarks panel works as a clickable index),
113+
a code panel shows the exact API call, and the live result renders right
114+
under it — rich text, sparklines, nested lists, timelines, tables, every
115+
chart kind, gradients, translucency, polygons, clipped containers, canvas,
116+
transforms, barcodes, and the document's own chrome. Blocks use
117+
`keepTogether()`, so a snippet is never orphaned from its result.
110118
- **Recipe coverage is complete.** Nine new cookbook pages close every gap the
111119
recipe index tracked: rich text, lists, timelines, barcodes, images,
112120
PDF chrome (metadata / watermark / running header-footer / protection /
25.6 KB
Binary file not shown.

assets/readme/feature-catalog.png

180 KB
Loading

examples/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@ are with the canonical DSL, then jump to its detailed section below.
9696
| [Layout snapshot regression](#layout-snapshot-regression) | Deterministic `layoutSnapshot()` workflow with baseline + drift report — production regression-testing pattern | [PDF](../assets/readme/examples/invoice-snapshot-regression.pdf) · [Source](src/main/java/com/demcha/examples/features/snapshots/LayoutSnapshotRegressionExample.java) |
9797
| [Business report cover](#business-report-cover) | Single-page Q1 investor brief — hero image, KPI cards, bar chart, metrics table | [PDF](../assets/readme/examples/business-report.pdf) · [Source](src/main/java/com/demcha/examples/flagships/BusinessReportExample.java) |
9898
| [Master showcase](#master-showcase) | Kitchen-sink "Q2 sample report" combining the canonical surface end-to-end | [PDF](../assets/readme/examples/master-showcase.pdf) · [Source](src/main/java/com/demcha/examples/flagships/MasterShowcaseExample.java) |
99+
| Feature catalog | Browsable reference PDF: every shipped capability as a block — outline-clickable heading, the exact API call, the rendered result right under it | [PDF](../assets/readme/examples/feature-catalog.pdf) · [Source](src/main/java/com/demcha/examples/flagships/FeatureCatalogExample.java) |
99100

100101
### 🗄️ Legacy
101102

examples/src/main/java/com/demcha/examples/GenerateAllExamples.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import com.demcha.examples.features.themes.CustomBusinessThemeExample;
1717
import com.demcha.examples.features.transforms.TransformsExample;
1818
import com.demcha.examples.flagships.BusinessReportExample;
19+
import com.demcha.examples.flagships.FeatureCatalogExample;
1920
import com.demcha.examples.flagships.MasterShowcaseExample;
2021
import com.demcha.examples.flagships.ModuleFirstFileExample;
2122
import com.demcha.examples.templates.coverletter.v2.CvBlueBannerLetterV2Example;
@@ -150,6 +151,7 @@ public static void main(String[] args) throws Exception {
150151
// === Flagships ===
151152
System.out.println("Generated: " + ModuleFirstFileExample.generate());
152153
System.out.println("Generated: " + MasterShowcaseExample.generate());
154+
System.out.println("Generated: " + FeatureCatalogExample.generate());
153155
System.out.println("Generated: " + BusinessReportExample.generate());
154156
}
155157
}

0 commit comments

Comments
 (0)