diff options
| author | Michael Williamson <mike@zwobble.org> | 2013-05-03 17:54:41 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2013-05-03 17:54:41 +0100 |
| commit | 7663d1a7e71df101f177ce5b19dade4696f753b0 (patch) | |
| tree | 30b24a761a8ea3ea6b9b75292b08b8cb538f0d00 | |
| parent | 49f72cd7bf6034f646a0f0e51ffbd204d86bea54 (diff) | |
Read numbering level from document.xml
| -rw-r--r-- | lib/document-xml-reader.js | 6 | ||||
| -rw-r--r-- | lib/documents.js | 3 | ||||
| -rw-r--r-- | tests/document-xml-reader.tests.js | 11 |
3 files changed, 19 insertions, 1 deletions
diff --git a/lib/document-xml-reader.js b/lib/document-xml-reader.js index ec9682e..6f75745 100644 --- a/lib/document-xml-reader.js +++ b/lib/document-xml-reader.js @@ -62,6 +62,12 @@ function DocumentXmlReader(relationships, contentTypes, docxFile) { if (styleElement) { properties.styleName = styleElement.attributes["w:val"]; } + var numberingPropertiesElement = element.first("w:numPr"); + if (numberingPropertiesElement) { + properties.numbering = { + level: numberingPropertiesElement.first("w:ilvl").attributes["w:val"] + }; + } return new Result(properties); }, diff --git a/lib/documents.js b/lib/documents.js index 63d5664..5f64059 100644 --- a/lib/documents.js +++ b/lib/documents.js @@ -10,7 +10,8 @@ function Paragraph(children, properties) { return { type: "paragraph", children: children, - styleName: properties.styleName || null + styleName: properties.styleName || null, + numbering: properties.numbering || null }; } diff --git a/tests/document-xml-reader.tests.js b/tests/document-xml-reader.tests.js index 75ce8d8..1cffb13 100644 --- a/tests/document-xml-reader.tests.js +++ b/tests/document-xml-reader.tests.js @@ -39,6 +39,17 @@ describe("readXmlElement: ", function() { assert.deepEqual(paragraph.styleName, "Heading1"); }); + test("paragraph has numbering properties from paragraph properties if present", function() { + var numberingPropertiesXml = new XmlElement("w:numPr", {}, [ + new XmlElement("w:ilvl", {"w:val": "1"}), + new XmlElement("w:numId", {"w:val": "42"}) + ]); + var propertiesXml = new XmlElement("w:pPr", {}, [numberingPropertiesXml]); + var paragraphXml = new XmlElement("w:p", {}, [propertiesXml]); + var paragraph = readXmlElementValue(paragraphXml); + assert.deepEqual(paragraph.numbering, {level: 1}); + }); + test("run has no style if it has no properties", function() { var runXml = runWithProperties([]); var run = readXmlElementValue(runXml); |
