summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/document-to-html.js3
-rw-r--r--lib/documents.js1
-rw-r--r--lib/docx/document-xml-reader.js1
-rw-r--r--tests/document-to-html.tests.js18
-rw-r--r--tests/docx/document-xml-reader.tests.js15
5 files changed, 37 insertions, 1 deletions
diff --git a/lib/document-to-html.js b/lib/document-to-html.js
index 7e37255..35fb3e6 100644
--- a/lib/document-to-html.js
+++ b/lib/document-to-html.js
@@ -100,6 +100,9 @@ function DocumentConversion(options) {
if (run.isBold) {
runHtml.open(htmlPaths.element("strong"));
}
+ if (run.isUnderline) {
+ runHtml.open(htmlPaths.element("u"));
+ }
if (run.isItalic) {
runHtml.open(htmlPaths.element("em"));
}
diff --git a/lib/documents.js b/lib/documents.js
index 07062ab..46699bc 100644
--- a/lib/documents.js
+++ b/lib/documents.js
@@ -42,6 +42,7 @@ function Run(children, properties) {
styleId: properties.styleId || null,
styleName: properties.styleName || null,
isBold: properties.isBold,
+ isUnderline: properties.isUnderline,
isItalic: properties.isItalic
};
}
diff --git a/lib/docx/document-xml-reader.js b/lib/docx/document-xml-reader.js
index 84773e9..e0a8ad3 100644
--- a/lib/docx/document-xml-reader.js
+++ b/lib/docx/document-xml-reader.js
@@ -131,6 +131,7 @@ function DocumentXmlReader(options) {
}
}
properties.isBold = !!element.first("w:b");
+ properties.isUnderline = !!element.first("w:u");
properties.isItalic = !!element.first("w:i");
return new Result(properties);
diff --git a/tests/document-to-html.tests.js b/tests/document-to-html.tests.js
index 3b3bd9b..e8d6d27 100644
--- a/tests/document-to-html.tests.js
+++ b/tests/document-to-html.tests.js
@@ -139,6 +139,24 @@ describe('DocumentConverter', function() {
});
});
+ test('underline runs are wrapped in <u> tags', function() {
+ var run = runOfText("Hello.", {isUnderline: true});
+ var converter = new DocumentConverter();
+ return converter.convertToHtml(run).then(function(result) {
+ assert.equal(result.value, "<u>Hello.</u>");
+ });
+ });
+
+ test('underline runs can exist inside other tags', function() {
+ var run = new documents.Paragraph([
+ runOfText("Hello.", {isUnderline: true})
+ ]);
+ var converter = new DocumentConverter();
+ return converter.convertToHtml(run).then(function(result) {
+ assert.equal(result.value, "<p><u>Hello.</u></p>");
+ });
+ });
+
test('italic runs are wrapped in <em> tags', function() {
var run = runOfText("Hello.", {isItalic: true});
var converter = new DocumentConverter();
diff --git a/tests/docx/document-xml-reader.tests.js b/tests/docx/document-xml-reader.tests.js
index 2c0f8ea..6fa3949 100644
--- a/tests/docx/document-xml-reader.tests.js
+++ b/tests/docx/document-xml-reader.tests.js
@@ -127,7 +127,20 @@ describe("readXmlElement: ", function() {
var run = readXmlElementValue(runXml);
assert.equal(run.isBold, true);
});
-
+
+ test("isUnderline is false if underline element is not present", function() {
+ var runXml = runWithProperties([]);
+ var run = readXmlElementValue(runXml);
+ assert.deepEqual(run.isUnderline, false);
+ });
+
+ test("isUnderline is true if underline element is present", function() {
+ var underlineXml = new XmlElement("w:u");
+ var runXml = runWithProperties([underlineXml]);
+ var run = readXmlElementValue(runXml);
+ assert.equal(run.isUnderline, true);
+ });
+
test("isItalic is false if bold element is not present", function() {
var runXml = runWithProperties([]);
var run = readXmlElementValue(runXml);