diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-01-19 19:52:21 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-01-19 19:52:21 +0000 |
| commit | 83feedc21e7ba06625837d3c11461d9e8734bf6c (patch) | |
| tree | 60754063b1bdaed303b2eedb9896dffe89897a83 | |
| parent | 5a0b91e72fc89695fcb92ed5306587a64570ddd0 (diff) | |
Modify footnotes-reader to allow reading of other notes
| -rw-r--r-- | lib/docx/docx-reader.js | 4 | ||||
| -rw-r--r-- | lib/docx/footnotes-reader.js | 18 | ||||
| -rw-r--r-- | lib/docx/notes-reader.js | 22 | ||||
| -rw-r--r-- | tests/docx/footnotes-reader.tests.js | 2 |
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; |
