summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2013-05-03 17:54:41 +0100
committerMichael Williamson <mike@zwobble.org>2013-05-03 17:54:41 +0100
commit7663d1a7e71df101f177ce5b19dade4696f753b0 (patch)
tree30b24a761a8ea3ea6b9b75292b08b8cb538f0d00
parent49f72cd7bf6034f646a0f0e51ffbd204d86bea54 (diff)
Read numbering level from document.xml
-rw-r--r--lib/document-xml-reader.js6
-rw-r--r--lib/documents.js3
-rw-r--r--tests/document-xml-reader.tests.js11
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);