diff options
| author | Michael Williamson <mike@zwobble.org> | 2024-06-13 12:55:42 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2024-06-13 12:55:42 +0100 |
| commit | d12d00f3ed36f0ffe8f8920cf028fb977a18ce24 (patch) | |
| tree | 50d2b6c6c10b7aed41acee4c6a6167fe0cacadd6 | |
| parent | 0546ccd76018d05a513fb1a1c4bb6bca42628dab (diff) | |
Handle highlight value of none
| -rw-r--r-- | lib/docx/body-reader.js | 10 | ||||
| -rw-r--r-- | test/docx/body-reader.tests.js | 12 |
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]); |
