aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-20 16:01:31 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-20 16:01:31 +0000
commit219012a4d37e3f950181b215d8daa8c950e3abf5 (patch)
treefde5a9944d2ea28573aaf454453dbfbfab43924a /src
parent9f91b3bb403c0cda34fa91bdbf8cb5ea22cb7525 (diff)
Wire up numbering XML reading
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/mammoth/Mammoth.java8
-rw-r--r--src/main/java/org/zwobble/mammoth/docx/DocumentReader.java8
-rw-r--r--src/main/java/org/zwobble/mammoth/styles/HtmlPathElement.java9
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/MammothTests.java7
4 files changed, 31 insertions, 1 deletions
diff --git a/src/main/java/org/zwobble/mammoth/Mammoth.java b/src/main/java/org/zwobble/mammoth/Mammoth.java
index 4421a17..bb1e501 100644
--- a/src/main/java/org/zwobble/mammoth/Mammoth.java
+++ b/src/main/java/org/zwobble/mammoth/Mammoth.java
@@ -11,6 +11,7 @@ import org.zwobble.mammoth.docx.ZippedDocxFile;
import org.zwobble.mammoth.html.Html;
import org.zwobble.mammoth.results.Result;
import org.zwobble.mammoth.styles.HtmlPath;
+import org.zwobble.mammoth.styles.HtmlPathElement;
import org.zwobble.mammoth.styles.ParagraphMatcher;
import org.zwobble.mammoth.styles.StyleMap;
import org.zwobble.mammoth.util.Casts;
@@ -49,6 +50,13 @@ public class Mammoth {
.mapParagraph(ParagraphMatcher.styleName("endnote text"), HtmlPath.element("p"))
.mapParagraph(ParagraphMatcher.styleName("Footnote"), HtmlPath.element("p"))
.mapParagraph(ParagraphMatcher.styleName("Endnote"), HtmlPath.element("p"))
+
+ .mapParagraph(
+ ParagraphMatcher.unorderedList("0"),
+ new HtmlPath(list(
+ HtmlPathElement.collapsible("ul"),
+ HtmlPathElement.fresh("li"))))
+
.mapParagraph(ParagraphMatcher.styleName("Normal"), HtmlPath.element("p"))
.build();
diff --git a/src/main/java/org/zwobble/mammoth/docx/DocumentReader.java b/src/main/java/org/zwobble/mammoth/docx/DocumentReader.java
index 06d8ad5..d55fa9b 100644
--- a/src/main/java/org/zwobble/mammoth/docx/DocumentReader.java
+++ b/src/main/java/org/zwobble/mammoth/docx/DocumentReader.java
@@ -19,7 +19,7 @@ public class DocumentReader {
public static Result<Document> readDocument(DocxFile zipFile) {
Styles styles = readStyles(zipFile);
- Numbering numbering = Numbering.EMPTY;
+ Numbering numbering = readNumbering(zipFile);
ContentTypes contentTypes = readContentTypes(zipFile);
FileReader fileReader = uri -> {
throw new UnsupportedOperationException();
@@ -52,6 +52,12 @@ public class DocumentReader {
.orElse(Styles.EMPTY);
}
+ private static Numbering readNumbering(DocxFile file) {
+ return tryParseOfficeXml(file, "word/numbering.xml")
+ .map(NumberingXml::readNumberingXmlElement)
+ .orElse(Numbering.EMPTY);
+ }
+
private static ContentTypes readContentTypes(DocxFile file) {
return tryParseOfficeXml(file, "[Content_Types].xml")
.map(ContentTypesXml::readContentTypesXmlElement)
diff --git a/src/main/java/org/zwobble/mammoth/styles/HtmlPathElement.java b/src/main/java/org/zwobble/mammoth/styles/HtmlPathElement.java
index f250992..b34fb50 100644
--- a/src/main/java/org/zwobble/mammoth/styles/HtmlPathElement.java
+++ b/src/main/java/org/zwobble/mammoth/styles/HtmlPathElement.java
@@ -7,8 +7,17 @@ import java.util.List;
import java.util.Map;
import static org.zwobble.mammoth.util.MammothLists.list;
+import static org.zwobble.mammoth.util.MammothMaps.map;
public class HtmlPathElement {
+ public static HtmlPathElement fresh(String tagName) {
+ return new HtmlPathElement(tagName, map(), false);
+ }
+
+ public static HtmlPathElement collapsible(String tagName) {
+ return new HtmlPathElement(tagName, map(), true);
+ }
+
private final String tagName;
private final Map<String, String> attributes;
private final boolean isCollapsible;
diff --git a/src/test/java/org/zwobble/mammoth/tests/MammothTests.java b/src/test/java/org/zwobble/mammoth/tests/MammothTests.java
index 46bafb2..26e802b 100644
--- a/src/test/java/org/zwobble/mammoth/tests/MammothTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/MammothTests.java
@@ -40,6 +40,13 @@ public class MammothTests {
}
@Test
+ public void simpleListIsConvertedToListElements() {
+ assertThat(
+ convertToHtml("simple-list.docx"),
+ deepEquals(success("<ul><li>Apple</li><li>Banana</li></ul>")));
+ }
+
+ @Test
public void inlineImagesAreIncludedInOutput() {
assertThat(
convertToHtml("tiny-picture.docx"),