diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-07-03 22:31:29 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-07-03 22:31:29 +0100 |
| commit | 27f3d32cabc5fae5b163ddf5a5449d93ebd959d5 (patch) | |
| tree | 373e830e2c15ad5252000c06aba70e4b144127d4 /lib/docx/notes-reader.js | |
| parent | cd3b84e15ea1a47ff8ebcca18d68ef0cdccf20b8 (diff) | |
Read note bodies immediately using relationships
Diffstat (limited to 'lib/docx/notes-reader.js')
| -rw-r--r-- | lib/docx/notes-reader.js | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/lib/docx/notes-reader.js b/lib/docx/notes-reader.js index 98cbba9..a74f79b 100644 --- a/lib/docx/notes-reader.js +++ b/lib/docx/notes-reader.js @@ -1,11 +1,14 @@ -exports.readFootnotesXml = createReader("footnote"); -exports.readEndnotesXml = createReader("endnote"); +var documents = require("../documents"); +var Result = require("../results").Result; -function createReader(noteType) { +exports.createFootnotesReader = createReader.bind(this, "footnote"); +exports.createEndnotesReader = createReader.bind(this, "endnote"); + +function createReader(noteType, bodyReader) { function readNotesXml(xml) { - return xml.root.getElementsByTagName("w:" + noteType) + return Result.combine(xml.root.getElementsByTagName("w:" + noteType) .filter(isFootnoteElement) - .map(readFootnoteElement); + .map(readFootnoteElement)); } function isFootnoteElement(element) { @@ -15,8 +18,10 @@ function createReader(noteType) { function readFootnoteElement(footnoteElement) { var id = footnoteElement.attributes["w:id"]; - var body = footnoteElement.children; - return {noteType: noteType, id: id, body: body}; + return bodyReader.readXmlElements(footnoteElement.children) + .map(function(body) { + return documents.Note({noteType: noteType, noteId: id, body: body}); + }); } return readNotesXml; |
