summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2024-06-13 12:55:42 +0100
committerMichael Williamson <mike@zwobble.org>2024-06-13 12:55:42 +0100
commitd12d00f3ed36f0ffe8f8920cf028fb977a18ce24 (patch)
tree50d2b6c6c10b7aed41acee4c6a6167fe0cacadd6
parent0546ccd76018d05a513fb1a1c4bb6bca42628dab (diff)
Handle highlight value of none
-rw-r--r--lib/docx/body-reader.js10
-rw-r--r--test/docx/body-reader.tests.js12
2 files changed, 19 insertions, 3 deletions
diff --git a/lib/docx/body-reader.js b/lib/docx/body-reader.js
index 78c732e..28bd2ef 100644
--- a/lib/docx/body-reader.js
+++ b/lib/docx/body-reader.js
@@ -95,7 +95,7 @@ function BodyReader(options) {
isStrikethrough: readBooleanElement(element.first("w:strike")),
isAllCaps: readBooleanElement(element.first("w:caps")),
isSmallCaps: readBooleanElement(element.first("w:smallCaps")),
- highlight: element.firstOrEmpty("w:highlight").attributes["w:val"]
+ highlight: readHighlightValue(element.firstOrEmpty("w:highlight").attributes["w:val"])
};
});
}
@@ -118,6 +118,14 @@ function BodyReader(options) {
}
}
+ function readHighlightValue(value) {
+ if (!value || value === "none") {
+ return null;
+ } else {
+ return value;
+ }
+ }
+
function readParagraphStyle(element) {
return readStyle(element, "w:pStyle", "Paragraph", styles.findParagraphStyleById);
}
diff --git a/test/docx/body-reader.tests.js b/test/docx/body-reader.tests.js
index ddc060b..292e1a2 100644
--- a/test/docx/body-reader.tests.js
+++ b/test/docx/body-reader.tests.js
@@ -758,13 +758,21 @@ test("run has no highlight by default", function() {
});
test("run has highlight read from properties", function() {
- var fontXml = new XmlElement("w:highlight", {"w:val": "yellow"});
- var runXml = runWithProperties([fontXml]);
+ var highlightXml = new XmlElement("w:highlight", {"w:val": "yellow"});
+ var runXml = runWithProperties([highlightXml]);
var run = readXmlElementValue(runXml);
assert.deepEqual(run.highlight, "yellow");
});
+test("when highlight is none then run has no highlight", function() {
+ var highlightXml = new XmlElement("w:highlight", {"w:val": "none"});
+ var runXml = runWithProperties([highlightXml]);
+
+ var run = readXmlElementValue(runXml);
+ assert.deepEqual(run.highlight, null);
+});
+
test("run properties not included as child of run", function() {
var runStyleXml = new XmlElement("w:rStyle");
var runPropertiesXml = new XmlElement("w:rPr", {}, [runStyleXml]);