diff options
| -rw-r--r-- | lib/docx/body-reader.js | 11 | ||||
| -rw-r--r-- | test/docx/body-reader.tests.js | 7 |
2 files changed, 17 insertions, 1 deletions
diff --git a/lib/docx/body-reader.js b/lib/docx/body-reader.js index e7e306c..ad4f409 100644 --- a/lib/docx/body-reader.js +++ b/lib/docx/body-reader.js @@ -70,7 +70,7 @@ function BodyReader(options) { font: element.firstOrEmpty("w:rFonts").attributes["w:ascii"], fontSize: fontSize, isBold: readBooleanElement(element.first("w:b")), - isUnderline: readBooleanElement(element.first("w:u")), + isUnderline: readUnderline(element.first("w:u")), isItalic: readBooleanElement(element.first("w:i")), isStrikethrough: readBooleanElement(element.first("w:strike")), isSmallCaps: readBooleanElement(element.first("w:smallCaps")) @@ -78,6 +78,15 @@ function BodyReader(options) { }); } + function readUnderline(element) { + if (element) { + var value = element.attributes["w:val"]; + return value !== "false" && value !== "0" && value !== "none"; + } else { + return false; + } + } + function readBooleanElement(element) { if (element) { var value = element.attributes["w:val"]; diff --git a/test/docx/body-reader.tests.js b/test/docx/body-reader.tests.js index 48f6b16..50506ae 100644 --- a/test/docx/body-reader.tests.js +++ b/test/docx/body-reader.tests.js @@ -459,6 +459,13 @@ test("isUnderline is true if underline element is present", function() { assert.equal(run.isUnderline, true); }); +test("isUnderline is false if underline element is 'none'", function() { + var underlineXml = new XmlElement("w:u", {"w:val": "none"}); + var runXml = runWithProperties([underlineXml]); + var run = readXmlElementValue(runXml); + assert.equal(run.isUnderline, false); +}); + test("isStrikethrough is false if strikethrough element is not present", function() { var runXml = runWithProperties([]); var run = readXmlElementValue(runXml); |
