diff options
Diffstat (limited to 'src')
4 files changed, 20 insertions, 1 deletions
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 81dfe80..eb810aa 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMap.java @@ -21,6 +21,7 @@ public class StyleMap { private final Optional<HtmlPath> italic; private final Optional<HtmlPath> underline; private final Optional<HtmlPath> strikethrough; + private final Optional<HtmlPath> commentReference; private final List<StyleMapping<Paragraph>> paragraphStyles; private final List<StyleMapping<Run>> runStyles; @@ -29,6 +30,7 @@ public class StyleMap { Optional<HtmlPath> italic, Optional<HtmlPath> underline, Optional<HtmlPath> strikethrough, + Optional<HtmlPath> commentReference, List<StyleMapping<Paragraph>> paragraphStyles, List<StyleMapping<Run>> runStyles) { @@ -36,6 +38,7 @@ public class StyleMap { this.italic = italic; this.underline = underline; this.strikethrough = strikethrough; + this.commentReference = commentReference; this.paragraphStyles = paragraphStyles; this.runStyles = runStyles; } @@ -47,6 +50,7 @@ public class StyleMap { Optionals.first(styleMap.italic, italic), Optionals.first(styleMap.underline, underline), Optionals.first(styleMap.strikethrough, strikethrough), + Optionals.first(styleMap.commentReference, commentReference), Lists.eagerConcat(styleMap.paragraphStyles, paragraphStyles), Lists.eagerConcat(styleMap.runStyles, runStyles)); } 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 9935417..e834715 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java @@ -12,6 +12,7 @@ public class StyleMapBuilder { private Optional<HtmlPath> strikethrough; private Optional<HtmlPath> bold; private Optional<HtmlPath> italic; + private Optional<HtmlPath> commentReference; private final List<StyleMapping<Paragraph>> paragraphStyles = new ArrayList<>(); private final List<StyleMapping<Run>> runStyles = new ArrayList<>(); @@ -20,6 +21,7 @@ public class StyleMapBuilder { this.underline = Optional.empty(); this.strikethrough = Optional.empty(); this.italic = Optional.empty(); + this.commentReference = Optional.empty(); } public StyleMapBuilder bold(HtmlPath path) { @@ -42,6 +44,11 @@ public class StyleMapBuilder { return this; } + public StyleMapBuilder commentReference(HtmlPath path) { + this.commentReference = Optional.of(path); + return this; + } + public StyleMapBuilder mapParagraph(ParagraphMatcher matcher, HtmlPath path) { paragraphStyles.add(new StyleMapping<>(matcher, path)); return this; @@ -53,6 +60,6 @@ public class StyleMapBuilder { } public StyleMap build() { - return new StyleMap(bold, italic, underline, strikethrough, paragraphStyles, runStyles); + return new StyleMap(bold, italic, underline, strikethrough, commentReference, paragraphStyles, runStyles); } } diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/DocumentMatcherParser.java b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/DocumentMatcherParser.java index 90b9ba0..e7de55c 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/DocumentMatcherParser.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/DocumentMatcherParser.java @@ -28,6 +28,8 @@ public class DocumentMatcherParser { return StyleMapBuilder::underline; case "strike": return StyleMapBuilder::strikethrough; + case "comment-reference": + return StyleMapBuilder::commentReference; default: throw new LineParseException(identifier, "Unrecognised document element: " + identifier); } diff --git a/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMapParserTests.java b/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMapParserTests.java index e76a632..d6205cd 100644 --- a/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMapParserTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/styles/parsing/StyleMapParserTests.java @@ -54,6 +54,12 @@ public class StyleMapParserTests { } @Test + public void canMapCommentReference() { + StyleMap styleMap = StyleMapParser.parse("comment-reference =>"); + assertThat(styleMap, deepEquals(StyleMap.builder().commentReference(HtmlPath.EMPTY).build())); + } + + @Test public void blankLinesAreIgnored() { StyleMap styleMap = StyleMapParser.parse("\n\n \n\np =>\n\r\n"); assertThat(styleMap, deepEquals(StyleMap.builder().mapParagraph(ParagraphMatcher.ANY, HtmlPath.EMPTY).build())); |
