From 84f30b611589ef7141ab7e928604c2d2fe6d6d1c Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 25 Feb 2016 19:42:37 +0000 Subject: Allow bold runs to be configured using style mapping --- src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java | 2 +- src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java | 8 ++++++++ .../java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) (limited to 'src/main/java/org') diff --git a/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java b/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java index 16210cd..5270ea3 100644 --- a/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java +++ b/src/main/java/org/zwobble/mammoth/internal/DocumentToHtml.java @@ -128,7 +128,7 @@ public class DocumentToHtml { nodes = list(Html.collapsibleElement("em", nodes)); } if (run.isBold()) { - nodes = list(Html.collapsibleElement("strong", nodes)); + nodes = styleMap.getBold().orElse(HtmlPath.collapsibleElement("strong")).wrap(nodes); } HtmlPath mapping = styleMap.getRunHtmlPath(run) .orElseGet(() -> { 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 b181074..2a790f0 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java @@ -16,17 +16,20 @@ public class StyleMap { public static final StyleMap EMPTY = new StyleMapBuilder().build(); + private final Optional bold; private final Optional underline; private final Optional strikethrough; private final List> paragraphStyles; private final List> runStyles; public StyleMap( + Optional bold, Optional underline, Optional strikethrough, List> paragraphStyles, List> runStyles) { + this.bold = bold; this.underline = underline; this.strikethrough = strikethrough; this.paragraphStyles = paragraphStyles; @@ -36,12 +39,17 @@ public class StyleMap { public StyleMap update(StyleMap styleMap) { // TODO: add appropriate tests return new StyleMap( + MammothOptionals.first(styleMap.bold, bold), MammothOptionals.first(styleMap.underline, underline), MammothOptionals.first(styleMap.strikethrough, strikethrough), MammothLists.concat(styleMap.paragraphStyles, paragraphStyles), MammothLists.concat(styleMap.runStyles, runStyles)); } + public Optional getBold() { + return bold; + } + public Optional 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 bc6efac..ab024a9 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(underline, strikethrough, paragraphStyles.build(), runStyles.build()); + return new StyleMap(bold, underline, strikethrough, paragraphStyles.build(), runStyles.build()); } } -- cgit v1.2.3