comments-reader.js 976 B

12345678910111213141516171819202122232425262728293031
  1. var documents = require("../documents");
  2. var Result = require("../results").Result;
  3. function createCommentsReader(bodyReader) {
  4. function readCommentsXml(element) {
  5. return Result.combine(element.getElementsByTagName("w:comment")
  6. .map(readCommentElement));
  7. }
  8. function readCommentElement(element) {
  9. var id = element.attributes["w:id"];
  10. function readOptionalAttribute(name) {
  11. return (element.attributes[name] || "").trim() || null;
  12. }
  13. return bodyReader.readXmlElements(element.children)
  14. .map(function(body) {
  15. return documents.comment({
  16. commentId: id,
  17. body: body,
  18. authorName: readOptionalAttribute("w:author"),
  19. authorInitials: readOptionalAttribute("w:initials")
  20. });
  21. });
  22. }
  23. return readCommentsXml;
  24. }
  25. exports.createCommentsReader = createCommentsReader;