Skip to content

Commit 843a9bd

Browse files
authored
docs(readme): link the tech badges and fold the install caveats away (#463)
The Java, PDFBox, POI and MIT badges were bare images while the CI, Release and Central badges were links, so half the badge row went nowhere: Java and the two backend badges now point at the install section and the backend capability matrix, MIT at LICENSE. Installation opened with the dependency snippet and then four stacked blockquotes — the artifact matrix, the font and emoji companions, distribution, and an upgrade note. The three that answer follow-up questions collapse into <details>; the upgrade note is dropped because the migration guide is already linked from the header and from the 2.0 section. "What's new in 2.0" moves below Hello world so the release notes stop pushing getting-started under the fold. jitpack.yml is gone: JitPack resolves a tag against the jitpack.yml committed at that tag, so the root copy only served new tags, which it built wrong — it installed core and the wrapper but none of the render backends or templates. Maven Central has been the documented channel since v1.6.6.
1 parent 7f4ec8d commit 843a9bd

2 files changed

Lines changed: 67 additions & 69 deletions

File tree

README.md

Lines changed: 67 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@
1313
<a href="https://github.com/DemchaAV/GraphCompose/actions/workflows/ci.yml?query=branch%3Amain"><img src="https://img.shields.io/github/actions/workflow/status/DemchaAV/GraphCompose/ci.yml?branch=main&style=for-the-badge&label=CI" alt="CI"/></a>
1414
<a href="https://github.com/DemchaAV/GraphCompose/releases/latest"><img src="https://img.shields.io/github/v/release/DemchaAV/GraphCompose?style=for-the-badge&label=Release" alt="Latest release"/></a>
1515
<a href="https://central.sonatype.com/artifact/io.github.demchaav/graph-compose"><img src="https://img.shields.io/maven-central/v/io.github.demchaav/graph-compose?style=for-the-badge&label=Maven%20Central" alt="Maven Central"/></a>
16-
<img src="https://img.shields.io/badge/Java-17%2B-orange?style=for-the-badge&logo=openjdk" alt="Java 17+"/>
17-
<img src="https://img.shields.io/badge/PDFBox-3.0-red?style=for-the-badge" alt="PDFBox 3.0 — PDF backend"/>
18-
<img src="https://img.shields.io/badge/Apache%20POI-5.5-blueviolet?style=for-the-badge" alt="Apache POI 5.5 — PPTX and DOCX backends"/>
19-
<img src="https://img.shields.io/badge/License-MIT-blue?style=for-the-badge" alt="MIT License"/>
16+
<a href="#installation"><img src="https://img.shields.io/badge/Java-17%2B-orange?style=for-the-badge&logo=openjdk" alt="Java 17+"/></a>
17+
<a href="./docs/architecture/backend-capability-matrix.md"><img src="https://img.shields.io/badge/PDFBox-3.0-red?style=for-the-badge" alt="PDFBox 3.0 — PDF backend"/></a>
18+
<a href="./docs/architecture/backend-capability-matrix.md"><img src="https://img.shields.io/badge/Apache%20POI-5.5-blueviolet?style=for-the-badge" alt="Apache POI 5.5 — PPTX and DOCX backends"/></a>
19+
<a href="./LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue?style=for-the-badge" alt="MIT License"/></a>
2020
</p>
2121

2222
> **Release status** &mdash;
@@ -85,19 +85,6 @@ try (DocumentSession doc = GraphCompose.document(Path.of("twin-output.pdf"))
8585

8686
Sits between **iText** (low-level page primitives) and **JasperReports** (XML-template-driven layout): a Java DSL describes the document semantically, the engine renders.
8787

88-
## What's new in 2.0
89-
90-
The **module-first** release &mdash; the single jar becomes a family of per-concern artifacts, so you install exactly what you render.
91-
92-
- **Lean engine** &mdash; `graph-compose-core` is the document model, DSL, themes, and deterministic layout with **no PDFBox, POI, or template code** on its dependency tree. Backends plug in through a `ServiceLoader` seam; a core-only classpath asked to render throws `MissingBackendException` naming the artifact to add.
93-
- **Opt-in render backends** &mdash; `graph-compose-render-pdf` (PDFBox 3.0, full DSL coverage), `graph-compose-render-pptx` (Apache POI, geometry-identical PowerPoint decks from the same resolved layout — one page per editable slide; clipped regions land as pixel-exact pictures; ships as **beta** in its first release), `graph-compose-render-docx` (Apache POI, semantic export).
94-
- **`graph-compose` stays a drop-in** &mdash; the 1.x coordinate is now a thin wrapper over core + the PDF backend, so existing callers upgrade with **no code and no dependency change**.
95-
- **Templates are their own artifact** &mdash; the CV / cover-letter / invoice / proposal preset families moved to `graph-compose-templates` (imports unchanged). This is the [one dependency-level break](./docs/migration/v2.0.0-modules.md#the-one-break-templates) of the split.
96-
- **`graph-compose-bundle`** &mdash; one batteries-included coordinate: PDF stack + templates + fonts + colour emoji.
97-
- **Retired surface** &mdash; the APIs deprecated across 1.6&ndash;1.9 are removed, the layered template packages dropped their `.v2` suffix, and `BusinessTheme` plus the classic pre-layered presets are gone &mdash; each removal has a named replacement in the [migration guide](./docs/migration/v2.0.0-modules.md).
98-
99-
Everything the 1.9 line added &mdash; in-document navigation, native TOC and page references, bookmarks, multi-section documents, inline chips / SVG icons / colour emoji, render-to-image &mdash; ships unchanged in 2.0. Full history in [`CHANGELOG.md`](./CHANGELOG.md).
100-
10188
## Installation
10289

10390
**Requires Java 17+** (enforced by the build).
@@ -114,43 +101,56 @@ Everything the 1.9 line added &mdash; in-document navigation, native TOC and pag
114101
dependencies { implementation("io.github.demchaav:graph-compose:2.1.0") }
115102
```
116103

117-
> **Which artifact? (2.0 module split).** `graph-compose` above is the drop-in default —
118-
> it renders PDF out of the box because it aggregates the lean `graph-compose-core` engine
119-
> plus the `graph-compose-render-pdf` backend, so existing 1.x callers upgrade with **no
120-
> code change**. Reach for a different coordinate only to take less or more:
121-
>
122-
> | Goal | Depend on |
123-
> |---|---|
124-
> | **PDF — the 1.x default** | `graph-compose` |
125-
> | **Batteries-included** (PDF + templates + fonts + emoji) | `graph-compose-bundle` |
126-
> | **Lean core, bring your own backend** | `graph-compose-core` |
127-
> | **Built-in CV / cover-letter / invoice / proposal templates** | add `graph-compose-templates` |
128-
> | **PowerPoint deck, geometry-identical to the PDF** | add `graph-compose-render-pptx` |
129-
> | **DOCX export (semantic)** | add `graph-compose-render-docx` |
130-
>
131-
> Every 2.0 coordinate shares the `graph-compose` version (the fonts and emoji companions
132-
> keep their own lines). A bare `graph-compose-core` renders nothing until a backend is on
133-
> the classpath — asking it to build a PDF throws `MissingBackendException`, which names the
134-
> artifact to add (`graph-compose-render-pdf`, already included in `graph-compose`).
135-
136-
> **Companion artifacts: fonts &amp; colour emoji.** Two opt-in companions carry
137-
> their own version lines (they change on their own cadence, so an engine upgrade
138-
> never re-downloads them): `graph-compose-fonts:1.0.0` &mdash; the curated Google
139-
> font families (~18&nbsp;MB; pure-text and standard-14 documents need nothing
140-
> extra; details in the [fonts migration note](./docs/migration/v1.8.0-fonts.md)) &mdash;
141-
> and `graph-compose-emoji:1.0.0` &mdash; inline colour emoji for
142-
> `RichText.emoji(":star:", size)` (an unknown shortcode falls back to its literal
143-
> text, so documents without emoji render unchanged). Both are already included in
144-
> `graph-compose-bundle`.
145-
146-
> **Distribution** &mdash; Maven Central is the canonical channel from **v1.6.6** onwards
147-
> (`io.github.demchaav:graph-compose:<version>`). Hosted Javadocs auto-publish to
148-
> [javadoc.io/doc/io.github.demchaav/graph-compose](https://javadoc.io/doc/io.github.demchaav/graph-compose)
149-
> shortly after each Central release. The legacy JitPack URL
150-
> (`com.github.DemchaAV:GraphCompose:v<version>`) remains resolvable for callers
151-
> pinned to v1.6.5 and earlier but is no longer the documented install option.
152-
153-
> **Upgrading from 1.x?** Rendering PDF through `graph-compose` needs no change at all. If you reached the built-in templates through the single 1.x jar, add `graph-compose-templates` (imports are unchanged) &mdash; the [2.0 migration guide](./docs/migration/v2.0.0-modules.md) walks every case, including the removed deprecated APIs and their replacements.
104+
That coordinate renders PDF out of the box: it aggregates the lean `graph-compose-core`
105+
engine plus the `graph-compose-render-pdf` backend, so existing 1.x callers upgrade with
106+
**no code change**.
107+
108+
<details>
109+
<summary><b>Which artifact?</b> &mdash; the 2.0 module split, when you want to take less or more</summary>
110+
111+
| Goal | Depend on |
112+
|---|---|
113+
| **PDF — the 1.x default** | `graph-compose` |
114+
| **Batteries-included** (PDF + templates + fonts + emoji) | `graph-compose-bundle` |
115+
| **Lean core, bring your own backend** | `graph-compose-core` |
116+
| **Built-in CV / cover-letter / invoice / proposal templates** | add `graph-compose-templates` |
117+
| **PowerPoint deck, geometry-identical to the PDF** | add `graph-compose-render-pptx` |
118+
| **DOCX export (semantic)** | add `graph-compose-render-docx` |
119+
120+
Every 2.0 coordinate shares the `graph-compose` version (the fonts and emoji companions
121+
keep their own lines). A bare `graph-compose-core` renders nothing until a backend is on
122+
the classpath — asking it to build a PDF throws `MissingBackendException`, which names the
123+
artifact to add (`graph-compose-render-pdf`, already included in `graph-compose`).
124+
125+
</details>
126+
127+
<details>
128+
<summary><b>Bundled fonts &amp; colour emoji</b> &mdash; optional companions</summary>
129+
130+
Two opt-in companions carry their own version lines (they change on their own cadence, so
131+
an engine upgrade never re-downloads them):
132+
133+
- `graph-compose-fonts:1.0.0` &mdash; the curated Google font families (~18&nbsp;MB).
134+
Pure-text and standard-14 documents need nothing extra; details in the
135+
[fonts migration note](./docs/migration/v1.8.0-fonts.md).
136+
- `graph-compose-emoji:1.0.0` &mdash; inline colour emoji for `RichText.emoji(":star:", size)`.
137+
An unknown shortcode falls back to its literal text, so documents without emoji render unchanged.
138+
139+
Both are already included in `graph-compose-bundle`.
140+
141+
</details>
142+
143+
<details>
144+
<summary><b>Distribution</b> &mdash; Maven Central, hosted Javadocs, legacy JitPack</summary>
145+
146+
Maven Central is the canonical channel from **v1.6.6** onwards
147+
(`io.github.demchaav:graph-compose:<version>`). Hosted Javadocs auto-publish to
148+
[javadoc.io/doc/io.github.demchaav/graph-compose](https://javadoc.io/doc/io.github.demchaav/graph-compose)
149+
shortly after each Central release. The legacy JitPack URL
150+
(`com.github.DemchaAV:GraphCompose:v<version>`) remains resolvable for callers
151+
pinned to v1.6.5 and earlier but is no longer the documented install option.
152+
153+
</details>
154154

155155
## Hello world
156156

@@ -201,6 +201,19 @@ class Hello {
201201

202202
For a Spring Boot `@RestController` streaming the PDF straight to the response, see [`HttpStreamingExample`](./examples/src/main/java/com/demcha/examples/features/streaming/HttpStreamingExample.java).
203203

204+
## What's new in 2.0
205+
206+
The **module-first** release &mdash; the single jar becomes a family of per-concern artifacts, so you install exactly what you render.
207+
208+
- **Lean engine** &mdash; `graph-compose-core` is the document model, DSL, themes, and deterministic layout with **no PDFBox, POI, or template code** on its dependency tree. Backends plug in through a `ServiceLoader` seam; a core-only classpath asked to render throws `MissingBackendException` naming the artifact to add.
209+
- **Opt-in render backends** &mdash; `graph-compose-render-pdf` (PDFBox 3.0, full DSL coverage), `graph-compose-render-pptx` (Apache POI, geometry-identical PowerPoint decks from the same resolved layout — one page per editable slide; clipped regions land as pixel-exact pictures; ships as **beta** in its first release), `graph-compose-render-docx` (Apache POI, semantic export).
210+
- **`graph-compose` stays a drop-in** &mdash; the 1.x coordinate is now a thin wrapper over core + the PDF backend, so existing callers upgrade with **no code and no dependency change**. Reached the built-in templates through the single 1.x jar? Add `graph-compose-templates` (imports are unchanged) &mdash; the [migration guide](./docs/migration/v2.0.0-modules.md) walks every case, including the removed deprecated APIs and their replacements.
211+
- **Templates are their own artifact** &mdash; the CV / cover-letter / invoice / proposal preset families moved to `graph-compose-templates` (imports unchanged). This is the [one dependency-level break](./docs/migration/v2.0.0-modules.md#the-one-break-templates) of the split.
212+
- **`graph-compose-bundle`** &mdash; one batteries-included coordinate: PDF stack + templates + fonts + colour emoji.
213+
- **Retired surface** &mdash; the APIs deprecated across 1.6&ndash;1.9 are removed, the layered template packages dropped their `.v2` suffix, and `BusinessTheme` plus the classic pre-layered presets are gone &mdash; each removal has a named replacement in the [migration guide](./docs/migration/v2.0.0-modules.md).
214+
215+
Everything the 1.9 line added &mdash; in-document navigation, native TOC and page references, bookmarks, multi-section documents, inline chips / SVG icons / colour emoji, render-to-image &mdash; ships unchanged in 2.0. Full history in [`CHANGELOG.md`](./CHANGELOG.md).
216+
204217
## Scope and comparison
205218

206219
### Output support

jitpack.yml

Lines changed: 0 additions & 15 deletions
This file was deleted.

0 commit comments

Comments
 (0)