diff --git a/bindings/java/CHANGELOG.md b/bindings/java/CHANGELOG.md index 1fb20873..601f17a8 100644 --- a/bindings/java/CHANGELOG.md +++ b/bindings/java/CHANGELOG.md @@ -2,6 +2,10 @@ ## [Unreleased] +### Added + +- `CssInline.inline(String html, String css)` convenience overload for applying a CSS string to a full HTML document. [#693](https://github.com/Stranger6667/css-inline/issues/693) + ### Fixed - `inlineFragment` silently returning only leading whitespace when the input starts with whitespace. [#692](https://github.com/Stranger6667/css-inline/issues/692) diff --git a/bindings/java/README.md b/bindings/java/README.md index 81228bbe..6547d57f 100644 --- a/bindings/java/README.md +++ b/bindings/java/README.md @@ -122,6 +122,12 @@ public class Example { } ``` +To apply a CSS string directly to a document, use the `inline(html, css)` shortcut: + +```java +String inlined = CssInline.inline(html, "h1 { color: blue; }"); +``` + You can also configure the inlining process: ```java diff --git a/bindings/java/src/main/java/org/cssinline/CssInline.java b/bindings/java/src/main/java/org/cssinline/CssInline.java index 325e7b3d..c56ec582 100644 --- a/bindings/java/src/main/java/org/cssinline/CssInline.java +++ b/bindings/java/src/main/java/org/cssinline/CssInline.java @@ -35,6 +35,22 @@ public static String inline(String html, CssInlineConfig cfg) { return nativeInline(html, cfg); } + /** + * Inlines the provided CSS into an HTML document using default configuration. + * + *

This is a convenience shortcut for applying a CSS string to a full HTML document. + * Equivalent to building a config with {@code setExtraCss(css)} and calling + * {@link #inline(String, CssInlineConfig)}. + * + * @param html the HTML document to process + * @param css the CSS rules to inline + * @return the HTML document with CSS styles inlined + * @throws CssInlineException if an error occurs during processing + */ + public static String inline(String html, String css) { + return inline(html, new CssInlineConfig.Builder().setExtraCss(css).build()); + } + /** * Inlines CSS styles into HTML elements using default configuration. * diff --git a/bindings/java/src/test/java/org/cssinline/CssInlineTest.java b/bindings/java/src/test/java/org/cssinline/CssInlineTest.java index c9515e57..e47a00f9 100644 --- a/bindings/java/src/test/java/org/cssinline/CssInlineTest.java +++ b/bindings/java/src/test/java/org/cssinline/CssInlineTest.java @@ -15,6 +15,15 @@ void inlinesSimpleStyleTag() { assertTrue(out.contains("style=\"color: blue;\""), "Output should inline styles for h1, got: " + out); } + @Test + void inlineWithCssShortcut() { + String html = "

Hello

"; + + String out = CssInline.inline(html, "h1 { color: blue; }"); + + assertEquals("

Hello

", out); + } + @Test void extraCssAddsBackground() { String html = "

Hello

";