summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-01-19 19:52:21 +0000
committerMichael Williamson <mike@zwobble.org>2015-01-19 19:52:21 +0000
commit83feedc21e7ba06625837d3c11461d9e8734bf6c (patch)
tree60754063b1bdaed303b2eedb9896dffe89897a83
parent5a0b91e72fc89695fcb92ed5306587a64570ddd0 (diff)
Modify footnotes-reader to allow reading of other notes
-rw-r--r--lib/docx/docx-reader.js4
-rw-r--r--lib/docx/footnotes-reader.js18
-rw-r--r--lib/docx/notes-reader.js22
-rw-r--r--tests/docx/footnotes-reader.tests.js2
4 files changed, 25 insertions, 21 deletions
diff --git a/lib/docx/docx-reader.js b/lib/docx/docx-reader.js
index 3fb0023..9326588 100644
--- a/lib/docx/docx-reader.js
+++ b/lib/docx/docx-reader.js
@@ -9,7 +9,7 @@ var relationshipsReader = require("./relationships-reader");
var contentTypesReader = require("./content-types-reader");
var numberingXml = require("./numbering-xml");
var stylesReader = require("./styles-reader");
-var footnotesReader = require("./footnotes-reader");
+var notesReader = require("./notes-reader");
function read(options) {
@@ -71,6 +71,6 @@ var readStylesFromZipFile = xmlFileReader({
var readFootnotesFromZipFile = xmlFileReader({
filename: "word/footnotes.xml",
- readElement: footnotesReader.readFootnotesXml,
+ readElement: notesReader.readFootnotesXml,
defaultValue: undefined
});
diff --git a/lib/docx/footnotes-reader.js b/lib/docx/footnotes-reader.js
deleted file mode 100644
index aea623a..0000000
--- a/lib/docx/footnotes-reader.js
+++ /dev/null
@@ -1,18 +0,0 @@
-exports.readFootnotesXml = readFootnotesXml;
-
-function readFootnotesXml(xml) {
- return xml.root.getElementsByTagName("w:footnote")
- .filter(isFootnoteElement)
- .map(readFootnoteElement);
-}
-
-function isFootnoteElement(element) {
- var type = element.attributes["w:type"];
- return type !== "continuationSeparator" && type !== "separator";
-}
-
-function readFootnoteElement(footnoteElement) {
- var id = footnoteElement.attributes["w:id"];
- var body = footnoteElement.children;
- return {id: id, body: body};
-}
diff --git a/lib/docx/notes-reader.js b/lib/docx/notes-reader.js
new file mode 100644
index 0000000..00bcce5
--- /dev/null
+++ b/lib/docx/notes-reader.js
@@ -0,0 +1,22 @@
+exports.readFootnotesXml = createReader("footnote");
+
+function createReader(noteType) {
+ function readNotesXml(xml) {
+ return xml.root.getElementsByTagName("w:" + noteType)
+ .filter(isFootnoteElement)
+ .map(readFootnoteElement);
+ }
+
+ function isFootnoteElement(element) {
+ var type = element.attributes["w:type"];
+ return type !== "continuationSeparator" && type !== "separator";
+ }
+
+ function readFootnoteElement(footnoteElement) {
+ var id = footnoteElement.attributes["w:id"];
+ var body = footnoteElement.children;
+ return {noteType: noteType, id: id, body: body};
+ }
+
+ return readNotesXml;
+}
diff --git a/tests/docx/footnotes-reader.tests.js b/tests/docx/footnotes-reader.tests.js
index 0ef136f..d3226f8 100644
--- a/tests/docx/footnotes-reader.tests.js
+++ b/tests/docx/footnotes-reader.tests.js
@@ -1,6 +1,6 @@
var assert = require("assert");
-var readFootnotesXml = require("../../lib/docx/footnotes-reader").readFootnotesXml;
+var readFootnotesXml = require("../../lib/docx/notes-reader").readFootnotesXml;
var XmlElement = require("../../lib/xmlreader").Element;
var test = require("../testing").test;