aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java2
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java8
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java2
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/DocumentToHtmlTests.java9
4 files changed, 19 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java b/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java
index 5270ea3..11869e0 100644
--- a/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java
+++ b/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java
@@ -125,7 +125,7 @@ public class DocumentToHtml {
nodes = list(Html.collapsibleElement("sup", nodes));
}
if (run.isItalic()) {
- nodes = list(Html.collapsibleElement("em", nodes));
+ nodes = styleMap.getItalic().orElse(HtmlPath.collapsibleElement("em")).wrap(nodes);
}
if (run.isBold()) {
nodes = styleMap.getBold().orElse(HtmlPath.collapsibleElement("strong")).wrap(nodes);
diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java
index 2a790f0..537b347 100644
--- a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java
+++ b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java
@@ -17,6 +17,7 @@ public class StyleMap {
public static final StyleMap EMPTY = new StyleMapBuilder().build();
private final Optional<HtmlPath> bold;
+ private final Optional<HtmlPath> italic;
private final Optional<HtmlPath> underline;
private final Optional<HtmlPath> strikethrough;
private final List<StyleMapping<Paragraph>> paragraphStyles;
@@ -24,12 +25,14 @@ public class StyleMap {
public StyleMap(
Optional<HtmlPath> bold,
+ Optional<HtmlPath> italic,
Optional<HtmlPath> underline,
Optional<HtmlPath> strikethrough,
List<StyleMapping<Paragraph>> paragraphStyles,
List<StyleMapping<Run>> runStyles)
{
this.bold = bold;
+ this.italic = italic;
this.underline = underline;
this.strikethrough = strikethrough;
this.paragraphStyles = paragraphStyles;
@@ -40,6 +43,7 @@ public class StyleMap {
// TODO: add appropriate tests
return new StyleMap(
MammothOptionals.first(styleMap.bold, bold),
+ MammothOptionals.first(styleMap.italic, italic),
MammothOptionals.first(styleMap.underline, underline),
MammothOptionals.first(styleMap.strikethrough, strikethrough),
MammothLists.concat(styleMap.paragraphStyles, paragraphStyles),
@@ -50,6 +54,10 @@ public class StyleMap {
return bold;
}
+ public Optional<HtmlPath> getItalic() {
+ return italic;
+ }
+
public Optional<HtmlPath> getUnderline() {
return underline;
}
diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java
index ab024a9..34a72ba 100644
--- a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java
+++ b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java
@@ -52,6 +52,6 @@ public class StyleMapBuilder {
}
public StyleMap build() {
- return new StyleMap(bold, underline, strikethrough, paragraphStyles.build(), runStyles.build());
+ return new StyleMap(bold, italic, underline, strikethrough, paragraphStyles.build(), runStyles.build());
}
}
diff --git a/src/test/java/org/zwobble/mammoth/tests/DocumentToHtmlTests.java b/src/test/java/org/zwobble/mammoth/tests/DocumentToHtmlTests.java
index 32e8702..0783ac2 100644
--- a/src/test/java/org/zwobble/mammoth/tests/DocumentToHtmlTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/DocumentToHtmlTests.java
@@ -132,6 +132,15 @@ public class DocumentToHtmlTests {
}
@Test
+ public void italicRunsCanBeMappedUsingStyleMapping() {
+ assertThat(
+ convertToHtml(
+ make(a(RUN, with(ITALIC, true), with(CHILDREN, list(new Text("Hello"))))),
+ StyleMap.builder().italic(HtmlPath.element("strong")).build()),
+ deepEquals(list(Html.element("strong", list(Html.text("Hello"))))));
+ }
+
+ @Test
public void underliningIsIgnoredByDefault() {
assertThat(
convertToHtml(make(a(RUN, with(UNDERLINE, true), with(CHILDREN, list(new Text("Hello")))))),