You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(templates): point template docs at the extracted templates.core (#252)
Update the current template docs to the post-extraction names: the CV
theme is BrandTheme in templates.core.theme, and the markdown/text
helpers, header widgets, and shared widgets live under templates.core.*.
- package-map: add core.theme/text/identity/widgets rows, fold the old
widgets+decorations entries into one core.widgets row, note MarkdownText
moved to core.text.
- v2-layered guides, AUTHORS, which-template-system, api-stability,
recipes, overview, CONTRIBUTING: CvTheme to BrandTheme,
cv.v2.theme to core.theme, and corrected widget package homes.
- coverletter package-info: the reused renderer is
core.text.RichParagraphRenderer.
Historical records (ADRs, CHANGELOG, migration guides) are left as
point-in-time records.
Copy file name to clipboardExpand all lines: docs/api-stability.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,7 @@ matrix.
28
28
29
29
| Tier | Marker | Used for | Breaking changes allowed in |
30
30
|---|---|---|---|
31
-
|**Stable**|_(default — no annotation)_| The canonical authoring surface that user code is meant to call: `GraphCompose.document(...)`, `DocumentSession`, `DocumentDsl`, `RowBuilder` / `SectionBuilder` / `ParagraphBuilder` and friends, `DocumentInsets` / `DocumentColor` / `DocumentTextStyle`, the `BusinessTheme` and `CvTheme` factories, the recommended template presets in `cv.v2.*` and `coverletter.v2.*`. |**Major releases only.**|
31
+
|**Stable**|_(default — no annotation)_| The canonical authoring surface that user code is meant to call: `GraphCompose.document(...)`, `DocumentSession`, `DocumentDsl`, `RowBuilder` / `SectionBuilder` / `ParagraphBuilder` and friends, `DocumentInsets` / `DocumentColor` / `DocumentTextStyle`, the `BusinessTheme` and `BrandTheme` factories, the recommended template presets in `cv.v2.*` and `coverletter.v2.*`. |**Major releases only.**|
32
32
|**Supported**|_(no annotation; called out in the page's Javadoc)_| A canonical surface that ships through 1.x but won't be in 2.0 — its replacement is already the Stable path. The `cv.presets.*` "classic" CV preset surface is the only Supported tier in 1.x today (replaced by `cv.v2.*` per [`which-template-system.md`](templates/which-template-system.md)). Bug fixes + behaviour-preserving refactors only. |**Minor releases for behaviour-preserving refactors; removed wholesale in 2.0.**|
33
33
|**Extension SPI**|[`@Beta`](../src/main/java/com/demcha/compose/document/api/Beta.java)| Public extension points that authors are expected to **implement**, not only call: render-handler interfaces, [`NodeDefinition`](../src/main/java/com/demcha/compose/document/layout/NodeDefinition.java), custom `Theme` subtype contracts, fragment payload interfaces designed for extension. | Minor releases, with a one-minor deprecation window where possible. |
34
34
|**Experimental**|[`@Beta`](../src/main/java/com/demcha/compose/document/api/Beta.java)_(same annotation as Extension SPI; the distinction lives in the docstring on the annotated element)_| A brand-new public type shipping in its first minor release before its contract has stabilised. The contract is in active flux. | Any minor release, including removal. No deprecation window. |
@@ -178,7 +178,7 @@ window starts, and its `Status` flips to `deprecated 1.x`.
178
178
|---|---|---|---|---|---|---|
179
179
|`DocumentSession.pageMargins(List<PageMarginRule>)` / `PageMarginRule`| Stable | planned | Per-page margins resolve a block's content width by the page it *begins* on (the engine measures each block once, before pagination). A margin that changes the content width therefore does not re-wrap a block mid-flow across a page boundary. | Revisit a page-aware per-line/per-fragment width model so a block can re-wrap when it crosses a margin boundary, if demand warrants. | — | — |
|`com.demcha.compose.document.templates.cv.presets.*`|**Stable but Supported**| The "classic" v1.6 rebuild surface. See [`which-template-system.md`](templates/which-template-system.md). Supported through 1.x; removed in 2.0. |
|`com.demcha.compose.document.templates.theme`| Older shared theme *objects* for built-ins (e.g. `WeeklyScheduleTheme`). Distinct from `…templates.themes` (plural) below. | Themes carry styling decisions, not document content. New v2 token work goes in `themes`, not here. |
70
70
|`com.demcha.compose.document.templates.themes`| Templates-v2 theme *token records* — `Spacing`, `Typography` (future `Palette`). Pure value types, no engine / session dependencies. | One source of truth per token group; keep it dependency-free. |
71
-
|`com.demcha.compose.document.templates.components`|Templates-v2 reusable composition components shared across families — `Header`, `Module`, `MarkdownText`.| Stateless after construction; produce `DocumentNode`s. Family-specific components go in `<family>.v2.components`. |
71
+
|`com.demcha.compose.document.templates.components`|Gen-2 composition components — `Header`, `Module` (`MarkdownText` moved to `core.text`).| Stateless after construction; produce `DocumentNode`s. |
72
72
|`com.demcha.compose.document.templates.blocks`| Templates-v2 module-body block kinds — `ParagraphBlock`, `BulletListBlock`, `NumberedListBlock`, `IndentedBlock`, `KeyValueBlock`, `MultiParagraphBlock`, `EducationBlock`, `WorkHistoryBlock`. | A block declares *what* content appears; the renderer expands it per active theme / tokens. |
73
-
|`com.demcha.compose.document.templates.decorations`| Templates-v2 decoration library — `Divider`, `AccentStrip`, `Spacer` (Panel / Banner / Ornament reserved). | First-class artefacts any preset can attach; not baked into composer logic. |
74
-
|`com.demcha.compose.document.templates.widgets`| Shared visual widgets usable by every family — `CardWidget`, `TableWidget`, `TimelineAxisWidget`. | Keep generic (no CV-only assumptions) so invoice / proposal / cover-letter can reuse them. |
73
+
|`com.demcha.compose.document.templates.core.theme`| Family-neutral theme tokens — `BrandTheme` + `Palette` / `Typography` / `Spacing` / `Decoration`. | The single token source every family's presets read. |
74
+
|`com.demcha.compose.document.templates.core.text`| Family-neutral text rendering — `MarkdownText`, `MarkdownInline`, `RichParagraphRenderer`, `TextStyles`, `TextOrnaments`. | Markdown → DSL nodes; no family data model. |
75
+
|`com.demcha.compose.document.templates.core.identity`| Family-neutral identity — `PartyIdentity` contract + header widgets (`Headline`, `ContactLine`, `Masthead`, `Subheadline`, `SvgGlyph`) + `Contact` / `Link`. | A masthead is the same shape in every family. |
76
+
|`com.demcha.compose.document.templates.core.widgets`| Family-neutral shared widgets + decoration primitives — `CardWidget`, `TableWidget`, `TimelineAxisWidget`, `Divider`, `AccentStrip`, `Spacer`. | Keep generic (no CV-only assumptions) so any family can reuse them. |
75
77
76
78
> **Preset families.** Concrete document families live under `…templates.<family>` — `cv`, `coverletter`, `invoice`, `proposal`, `schedule`. CV and cover letter additionally ship a layered v2 surface (`…cv.v2.*` / `…coverletter.v2.*`: `data` / `theme` / `components` / `widgets` / `presets`). These per-family packages are documented by the template guides rather than enumerated here — see [which-template-system.md](../templates/which-template-system.md) for the status matrix and [templates/v2-layered/](../templates/v2-layered/README.md) for the layered architecture.
Copy file name to clipboardExpand all lines: docs/recipes.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ authoring API; public application code should not import
11
11
| --- | --- |
12
12
|[Charts](recipes/charts.md)| Native vector bar / line / area / pie-donut charts: data–spec–style layers, axis & grid toggles, point markers, value-label halos, legend placement, translucent area fills |
13
13
|[Keep-together pagination](recipes/keep-together.md)|`keepTogether()` / `keepEntriesTogether()` — blocks that relocate whole instead of orphaning a heading at a page break |
14
-
|[Themes](recipes/themes.md)|`BusinessTheme.classic / modern / executive`, page background, palette slots, text scale, the `CvTheme` ↔ `BusinessTheme` bridge |
14
+
|[Themes](recipes/themes.md)|`BusinessTheme.classic / modern / executive`, page background, palette slots, text scale, the `BrandTheme` ↔ `BusinessTheme` bridge |
15
15
|[Shapes and visual primitives](recipes/shapes.md)| Filled cards, dividers, spacers, lines, ellipses, image fit modes, soft panels |
Copy file name to clipboardExpand all lines: docs/templates/v1-classic/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -121,7 +121,7 @@ copy-and-tweak entry point for callers extending their own branding.
121
121
122
122
## Authoring features built into every preset
123
123
124
-
-**Inline markdown**— body strings carrying `**bold**` and `*italic*` markers render with proper `DocumentTextDecoration` via `templates.components.MarkdownText`.
124
+
-**Inline markdown**— body strings carrying `**bold**` and `*italic*` markers render with proper `DocumentTextDecoration` via `templates.core.text.MarkdownText`.
125
125
-**Active hyperlinks**— header email + LinkedIn / GitHub labels become clickable `mailto:` / `https:` runs via `DocumentLinkOptions`.
-**Adaptive sidebar fill**— sidebar layouts size the trailing spacer dynamically from `canvas().innerHeight()` so background panels reach the page bottom on A4 / Letter / smaller fixtures without overflow.
0 commit comments