aboutsummaryrefslogtreecommitdiff
path: root/lib/docx
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2023-05-21 11:55:03 +0100
committerMichael Williamson <mike@zwobble.org>2023-05-21 11:55:03 +0100
commit0d60c148c8fdb8168dcc6402021639572243f9cd (patch)
tree5ae6df130691c372858e5b43c1cef8b899aebd7e /lib/docx
parent2e234c7d6ef381423b4f7d0ea5dac92dfce58a6b (diff)
Don't read run properties as document element
Diffstat (limited to 'lib/docx')
-rw-r--r--lib/docx/body-reader.js25
1 files changed, 7 insertions, 18 deletions
diff --git a/lib/docx/body-reader.js b/lib/docx/body-reader.js
index dbb091c..b9bdb57 100644
--- a/lib/docx/body-reader.js
+++ b/lib/docx/body-reader.js
@@ -259,20 +259,19 @@ function BodyReader(options) {
}
},
"w:r": function(element) {
- return readXmlElements(element.children)
- .map(function(children) {
- var properties = _.find(children, isRunProperties);
- children = children.filter(negate(isRunProperties));
-
+ return ReadResult.map(
+ readRunProperties(element.firstOrEmpty("w:rPr")),
+ readXmlElements(element.children),
+ function(properties, children) {
var hyperlinkOptions = currentHyperlinkOptions();
if (hyperlinkOptions !== null) {
children = [new documents.Hyperlink(children, hyperlinkOptions)];
}
return new documents.Run(children, properties);
- });
+ }
+ );
},
- "w:rPr": readRunProperties,
"w:fldChar": readFldChar,
"w:instrText": readInstrText,
"w:t": function(element) {
@@ -593,23 +592,13 @@ var ignoreElements = {
"w:footnoteRef": true,
"w:endnoteRef": true,
"w:pPr": true,
+ "w:rPr": true,
"w:tblPr": true,
"w:tblGrid": true,
"w:trPr": true,
"w:tcPr": true
};
-function isRunProperties(element) {
- return element.type === "runProperties";
-}
-
-function negate(predicate) {
- return function(value) {
- return !predicate(value);
- };
-}
-
-
function emptyResultWithMessages(messages) {
return new ReadResult(null, null, messages);
}