diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-02-20 16:01:31 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-02-20 16:01:31 +0000 |
| commit | 219012a4d37e3f950181b215d8daa8c950e3abf5 (patch) | |
| tree | fde5a9944d2ea28573aaf454453dbfbfab43924a /src | |
| parent | 9f91b3bb403c0cda34fa91bdbf8cb5ea22cb7525 (diff) | |
Wire up numbering XML reading
Diffstat (limited to 'src')
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"), |
