aboutsummaryrefslogtreecommitdiff
path: root/lib/numbering-xml.js
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2014-03-18 14:15:33 +0000
committerMichael Williamson <mike@zwobble.org>2014-03-18 14:15:33 +0000
commit45f302766a3a5ca99338fd8e5fef07dec42c0e56 (patch)
treee5081b43310e6c3698c08ab021e0d61d0a84d09c /lib/numbering-xml.js
parentdca50ccd84f91a7db2a41a59e15b3ed95b2c3f46 (diff)
Move modules for docx reading into separate directory
Diffstat (limited to 'lib/numbering-xml.js')
-rw-r--r--lib/numbering-xml.js63
1 files changed, 0 insertions, 63 deletions
diff --git a/lib/numbering-xml.js b/lib/numbering-xml.js
deleted file mode 100644
index 7e64dc2..0000000
--- a/lib/numbering-xml.js
+++ /dev/null
@@ -1,63 +0,0 @@
-var readXmlFromZipFile = require("./office-xml-reader").readXmlFromZipFile;
-
-exports.readNumberingXml = readNumberingXml;
-exports.readNumberingFromZipFile = readNumberingFromZipFile;
-exports.Numbering = Numbering;
-
-function readNumberingFromZipFile(file) {
- return readXmlFromZipFile(file, "word/numbering.xml")
- .then(function(xml) {
- return xml ? readNumberingXml(xml) : new Numbering({});
- });
-}
-
-function Numbering(nums) {
- return {
- findLevel: function(numId, level) {
- var num = nums[numId];
- if (num) {
- return num[level];
- } else {
- return null;
- }
- }
- };
-}
-
-function readNumberingXml(xml) {
- var abstractNums = readAbstractNums(xml);
- var nums = readNums(xml, abstractNums);
- return new Numbering(nums);
-}
-
-function readAbstractNums(xml) {
- var abstractNums = {};
- xml.root.getElementsByTagName("w:abstractNum").forEach(function(element) {
- var id = element.attributes["w:abstractNumId"];
- abstractNums[id] = readAbstractNum(element);
- });
- return abstractNums;
-}
-
-function readAbstractNum(element) {
- var levels = {};
- element.getElementsByTagName("w:lvl").forEach(function(levelElement) {
- var levelIndex = levelElement.attributes["w:ilvl"];
- var numFmt = levelElement.first("w:numFmt").attributes["w:val"];
- levels[levelIndex] = {
- isOrdered: numFmt !== "bullet",
- level: levelIndex
- };
- });
- return levels;
-}
-
-function readNums(xml, abstractNums) {
- var nums = {};
- xml.root.getElementsByTagName("w:num").forEach(function(element) {
- var id = element.attributes["w:numId"];
- var abstractNumId = element.first("w:abstractNumId").attributes["w:val"];
- nums[id] = abstractNums[abstractNumId];
- });
- return nums;
-}