diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-07-03 19:34:51 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-07-03 19:34:51 +0100 |
| commit | d98f3862193c6bb9b88735c131531ac6b1f7b5c0 (patch) | |
| tree | 761a998bcd1711e49aeeefee3797e709d8a0f34a /lib | |
| parent | b5fef15290ef976620315eacd4cb762d07e1e7c3 (diff) | |
Add basic comments reader
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/documents.js | 10 | ||||
| -rw-r--r-- | lib/docx/comments-reader.js | 21 |
2 files changed, 31 insertions, 0 deletions
diff --git a/lib/documents.js b/lib/documents.js index 5665198..a8312e9 100644 --- a/lib/documents.js +++ b/lib/documents.js @@ -10,6 +10,7 @@ var types = exports.types = { noteReference: "noteReference", image: "image", note: "note", + comment: "comment", table: "table", tableRow: "tableRow", tableCell: "tableCell", @@ -112,6 +113,14 @@ function Note(options) { }; } +function comment(options) { + return { + type: types.comment, + commentId: options.commentId, + body: options.body + }; +} + function noteKey(noteType, id) { return noteType + "-" + id; } @@ -171,6 +180,7 @@ exports.Hyperlink = Hyperlink; exports.NoteReference = NoteReference; exports.Notes = Notes; exports.Note = Note; +exports.comment = comment; exports.Image = Image; exports.Table = Table; exports.TableRow = TableRow; diff --git a/lib/docx/comments-reader.js b/lib/docx/comments-reader.js new file mode 100644 index 0000000..be98bac --- /dev/null +++ b/lib/docx/comments-reader.js @@ -0,0 +1,21 @@ +var documents = require("../documents"); +var Result = require("../results").Result; + +function createCommentsReader(bodyReader) { + function readCommentsXml(xml) { + return Result.combine(xml.root.getElementsByTagName("w:comment") + .map(readCommentElement)); + } + + function readCommentElement(element) { + var id = element.attributes["w:id"]; + return bodyReader.readXmlElements(element.children) + .map(function(body) { + return documents.comment({commentId: id, body: body}); + }); + } + + return readCommentsXml; +} + +exports.createCommentsReader = createCommentsReader; |
