diff options
Diffstat (limited to 'src/main')
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); } |
