aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-11-28 16:21:49 +0000
committerMichael Williamson <mike@zwobble.org>2016-11-28 16:21:49 +0000
commitdc6e1277e8255a37727951b78ba5c8fd52de12ed (patch)
tree8f95b495bed9a411efacd80dce3710ec4459c9ce /src/main
parentb6fb987093ff794252b578ad3138baa20e8257c1 (diff)
Use break style maps in document conversion
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java14
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java5
-rw-r--r--src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java5
3 files changed, 19 insertions, 5 deletions
diff --git a/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java b/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java
index c252683..cfa4f56 100644
--- a/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java
+++ b/src/main/java/org/zwobble/mammoth/internal/conversion/DocumentToHtml.java
@@ -187,11 +187,15 @@ public class DocumentToHtml {
@Override
public List<HtmlNode> visit(Break breakElement) {
- if (breakElement.getType() == Break.Type.LINE) {
- return list(Html.element("br"));
- } else {
- return list();
- }
+ HtmlPath mapping = styleMap.getBreakHtmlPath(breakElement)
+ .orElseGet(() -> {
+ if (breakElement.getType() == Break.Type.LINE) {
+ return HtmlPath.element("br");
+ } else {
+ return HtmlPath.EMPTY;
+ }
+ });
+ return mapping.wrap(() -> list()).get();
}
@Override
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 0e8ed6d..9856d70 100644
--- a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java
+++ b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java
@@ -96,4 +96,9 @@ public class StyleMap {
return tryFind(runStyles, styleMapping -> styleMapping.matches(run))
.map(StyleMapping::getHtmlPath);
}
+
+ public Optional<HtmlPath> getBreakHtmlPath(Break breakElement) {
+ return tryFind(breakStyles, styleMapping -> styleMapping.matches(breakElement))
+ .map(StyleMapping::getHtmlPath);
+ }
}
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 2d66f2a..4972883 100644
--- a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java
+++ b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java
@@ -61,6 +61,11 @@ public class StyleMapBuilder {
return this;
}
+ public StyleMapBuilder mapBreak(BreakMatcher matcher, HtmlPath path) {
+ breakStyles.add(new StyleMapping<>(matcher, path));
+ return this;
+ }
+
public StyleMap build() {
return new StyleMap(bold, italic, underline, strikethrough, commentReference, paragraphStyles, runStyles, breakStyles);
}