From 6e9be35431b581bd6fda3eeabac5e55ddff65e77 Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Thu, 25 Feb 2016 19:35:57 +0000 Subject: Parse italic document matcher --- .../org/zwobble/mammoth/internal/styles/StyleMapBuilder.java | 7 +++++++ .../mammoth/internal/styles/parsing/StyleMappingParser.java | 9 +++++++++ .../org/zwobble/mammoth/tests/styles/StyleMapParserTests.java | 6 ++++++ 3 files changed, 22 insertions(+) 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 2711123..bc6efac 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/StyleMapBuilder.java @@ -10,6 +10,7 @@ public class StyleMapBuilder { private Optional underline; private Optional strikethrough; private Optional bold; + private Optional italic; private final ImmutableList.Builder> paragraphStyles = ImmutableList.builder(); private final ImmutableList.Builder> runStyles = ImmutableList.builder(); @@ -17,6 +18,7 @@ public class StyleMapBuilder { this.bold = Optional.empty(); this.underline = Optional.empty(); this.strikethrough = Optional.empty(); + this.italic = Optional.empty(); } public StyleMapBuilder bold(HtmlPath path) { @@ -24,6 +26,11 @@ public class StyleMapBuilder { return this; } + public StyleMapBuilder italic(HtmlPath path) { + this.italic = Optional.of(path); + return this; + } + public StyleMapBuilder underline(HtmlPath path) { this.underline = Optional.of(path); return this; diff --git a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/StyleMappingParser.java b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/StyleMappingParser.java index 3a580d9..4f1871b 100644 --- a/src/main/java/org/zwobble/mammoth/internal/styles/parsing/StyleMappingParser.java +++ b/src/main/java/org/zwobble/mammoth/internal/styles/parsing/StyleMappingParser.java @@ -54,6 +54,15 @@ public class StyleMappingParser extends BaseParser { return true; } }), + Sequence( + "i", + new Action() { + @Override + public boolean run(Context context) { + updateBuilder.set(StyleMapBuilder::italic); + return true; + } + }), Sequence( "u", new Action() { diff --git a/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java b/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java index 760a0a6..a89b192 100644 --- a/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java +++ b/src/test/java/org/zwobble/mammoth/tests/styles/StyleMapParserTests.java @@ -35,6 +35,12 @@ public class StyleMapParserTests { assertThat(styleMap, deepEquals(StyleMap.builder().bold(HtmlPath.collapsibleElement("em")).build())); } + @Test + public void canMapItalic() { + StyleMap styleMap = StyleMapParser.parse("i => strong"); + assertThat(styleMap, deepEquals(StyleMap.builder().italic(HtmlPath.collapsibleElement("strong")).build())); + } + @Test public void canMapUnderline() { StyleMap styleMap = StyleMapParser.parse("u => em"); -- cgit v1.2.3