aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS6
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/conversion/InternalImageConverter.java3
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/conversion/InternalImageConverterTests.java19
3 files changed, 26 insertions, 2 deletions
diff --git a/NEWS b/NEWS
index 81779f9..753a3ff 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,4 @@
-# 1.4.3
+# 1.5.0
* Convert symbols in supported fonts to corresponding Unicode characters.
@@ -11,6 +11,10 @@
* Ignore w:u elements when w:val is missing.
+* Only use the alt text of image elements as a fallback. If an alt attribute is
+ returned from ImgElement.convert, that value will now be preferred to the alt
+ text of the image element.
+
# 1.4.2
* Support soft hyphens.
diff --git a/src/main/java/org/zwobble/mammoth/internal/conversion/InternalImageConverter.java b/src/main/java/org/zwobble/mammoth/internal/conversion/InternalImageConverter.java
index 3aad8e8..4ef95bc 100644
--- a/src/main/java/org/zwobble/mammoth/internal/conversion/InternalImageConverter.java
+++ b/src/main/java/org/zwobble/mammoth/internal/conversion/InternalImageConverter.java
@@ -48,8 +48,9 @@ public class InternalImageConverter {
}
};
- Map<String, String> attributes = new HashMap<>(PassThroughException.wrap(() -> imgElement.convert(image)));
+ Map<String, String> attributes = new HashMap<>();
internalImage.getAltText().ifPresent(altText -> attributes.put("alt", altText));
+ attributes.putAll(PassThroughException.wrap(() -> imgElement.convert(image)));
return list(Html.element("img", attributes));
})
.orElse(list());
diff --git a/src/test/java/org/zwobble/mammoth/tests/conversion/InternalImageConverterTests.java b/src/test/java/org/zwobble/mammoth/tests/conversion/InternalImageConverterTests.java
index e5b49a6..5a9498b 100644
--- a/src/test/java/org/zwobble/mammoth/tests/conversion/InternalImageConverterTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/conversion/InternalImageConverterTests.java
@@ -54,4 +54,23 @@ public class InternalImageConverterTests {
deepEquals(list(Html.element("img", map("alt", "<alt>", "src", "<src>"))))
);
}
+
+ @Test
+ public void imageAltTextCanBeOverriddenByAltAttributeReturnedFromFunction() throws IOException {
+ Image internalImage = new Image(
+ Optional.of("<alt>"),
+ Optional.of("image/jpeg"),
+ () -> new ByteArrayInputStream(new byte[]{97, 98, 99})
+ );
+
+ InternalImageConverter imageConverter = InternalImageConverter.imgElement(image -> {
+ return map("alt", "<alt override>", "src", "<src>");
+ });
+ List<HtmlNode> result = imageConverter.convert(internalImage);
+
+ assertThat(
+ result,
+ deepEquals(list(Html.element("img", map("alt", "<alt override>", "src", "<src>"))))
+ );
+ }
}