Skip to content

docs(api): inline svg/emoji recipes, blank-anchor @throws, emoji publish setup#222

Merged
DemchaAV merged 4 commits into
developfrom
docs/svg-emoji-recipes-and-publishing
Jun 22, 2026
Merged

docs(api): inline svg/emoji recipes, blank-anchor @throws, emoji publish setup#222
DemchaAV merged 4 commits into
developfrom
docs/svg-emoji-recipes-and-publishing

Conversation

@DemchaAV

Copy link
Copy Markdown
Owner

Why

Three loose ends on the inline-SVG / emoji surface that shipped in #217:

  • Only the navigation feature got a recipe; RichText.svgIcon / inlineSvgIcon
    and RichText.emoji / inlineEmoji had none, so the "every shipped feature
    has a recipe" line in docs/recipes/README.md was no longer true.
  • The link-by-anchor builder methods throw IllegalArgumentException on a
    blank anchor (new InternalLinkTarget(anchor)), while the sibling
    anchor(...) setter clears on blank — an asymmetry no Javadoc mentioned.
  • EmojiLibrary's class doc described a "small bundled starter set … replaced
    by the full jdecked/twemoji set", but the module ships the full Noto Emoji
    set (SIL OFL 1.1).
  • emoji/pom.xml describes an emoji-v* publish path that had no workflow, and
    pins central-publishing at 0.10.0 while the engine pom is at 0.11.0.

What changed

  • Recipes: docs/recipes/rich-text.md gains "Inline SVG icons" and
    "Emoji / shortcodes" sections (using the renamed inlineSvgIcon /
    inlineEmoji); both recipe indexes list them.
  • Javadoc: @throws IllegalArgumentException if anchor is blank on every
    link-by-anchor method — linkTo / inlineLinkTo / imageLinkTo /
    shapeLinkTo across RichText and the Paragraph / Barcode / Ellipse / Image
    / Line / Shape / Table builders. The anchor(...) setters are left untouched
    — they clear on blank by contract.
  • EmojiLibrary doc corrected to the bundled Noto Emoji set (SIL OFL 1.1).
  • Publish infra: central-publishing-maven-plugin 0.10.00.11.0 in
    the emoji, fonts and bundle standalone poms (no shared parent, so swept
    by hand); new .github/workflows/publish-emoji.yml mirrors publish-fonts.yml
    (emoji-v* tag, -f emoji/pom.xml -P release), so the module publishes to
    Central independently.

Verification

./mvnw test -pl .BUILD SUCCESS, 1466 tests; ./mvnw javadoc:javadoc -pl .
BUILD SUCCESS (the new @throws tags are doclint-clean);
./mvnw -f emoji/pom.xml validate (and fonts / bundle) → BUILD SUCCESS.
Doc / Javadoc / build only — no runtime code or public method signatures change.

Lane: docs + build (release) — recipes, Javadoc, publish workflow + plugin-pin sweep.

Stacked on #221 — based on feat/inline-svg-rename-wrap-tests (the recipe uses the renamed methods). Retarget to develop after #221 merges.

DemchaAV added 3 commits June 22, 2026 14:53
…nlineEmoji

ParagraphBuilder's inline adders now follow the existing inlineText /
inlineImage / inlineLink convention: svgIcon -> inlineSvgIcon and
emoji -> inlineEmoji (all overloads). RichText keeps its bare svgIcon /
emoji names, which are internally consistent there. The API is unreleased
(@SInCE 1.9.0), so there is no deprecation bridge.

Also adds two InlineSvgRenderTest cases for inline-SVG paths that only
single-line paragraphs reached before: an icon that wraps onto a later
line (asserting that line grows to the icon via lineHeight > textLineHeight)
and an icon inside a paragraph that splits across a page break (it still
paints on its head page).
… throw

- New "Inline SVG icons" and "Emoji / shortcodes" sections in the
  rich-text recipe, restoring the "every shipped feature has a recipe"
  guarantee; both recipe indexes updated.
- @throws IllegalArgumentException on every link-by-anchor builder method
  (linkTo / inlineLinkTo / imageLinkTo / shapeLinkTo across RichText and the
  Paragraph / Barcode / Ellipse / Image / Line / Shape / Table builders),
  spelling out that a blank anchor throws while the anchor(...) setter clears.
- Correct EmojiLibrary's class doc: it bundles the Noto Emoji set (SIL OFL
  1.1), not a "small jdecked/twemoji starter set".
… workflow

Bump central-publishing-maven-plugin 0.10.0 -> 0.11.0 in the emoji, fonts
and bundle standalone poms to match the engine pom (#219); they share no
parent, so the literal is swept by hand. Add publish-emoji.yml mirroring
publish-fonts.yml (emoji-v* tag, -f emoji/pom.xml, -P release) so
graph-compose-emoji publishes to Central independently — matching the
emoji-v* prose already in emoji/pom.xml.
Base automatically changed from feat/inline-svg-rename-wrap-tests to develop June 22, 2026 15:01
@DemchaAV DemchaAV merged commit 4ae4152 into develop Jun 22, 2026
11 checks passed
@DemchaAV DemchaAV deleted the docs/svg-emoji-recipes-and-publishing branch June 22, 2026 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant