diff options
| author | Michael Williamson <mike@zwobble.org> | 2016-06-20 12:06:00 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2016-06-20 12:06:00 +0100 |
| commit | 8617c85c8626354fff63eeaeb775402715fe63a4 (patch) | |
| tree | cb6199ae4478ff579a3299dfa47414526fa46d74 | |
| parent | 50abac07dab8bf884cf37515405c6e57edc4ba8a (diff) | |
Add support for w:sdt elements
| -rw-r--r-- | NEWS | 5 | ||||
| -rw-r--r-- | lib/docx/body-reader.js | 4 | ||||
| -rw-r--r-- | tests/docx/body-reader.tests.js | 10 |
3 files changed, 19 insertions, 0 deletions
@@ -1,3 +1,8 @@ +# 1.0.4 + +* Add support for w:sdt elements. This allows the bodies of content controls, + such as bibliographies, to be converted. + # 1.0.3 * Actually add support for table cells spanning multiple rows. diff --git a/lib/docx/body-reader.js b/lib/docx/body-reader.js index 4b37510..71ad29d 100644 --- a/lib/docx/body-reader.js +++ b/lib/docx/body-reader.js @@ -182,6 +182,10 @@ function BodyReader(options) { "mc:AlternateContent": function(element) { return readChildElements(element.first("mc:Fallback")); }, + + "w:sdt": function(element) { + return readXmlElements(element.firstOrEmpty("w:sdtContent").children); + }, "w:ins": readChildElements, "w:smartTag": readChildElements, diff --git a/tests/docx/body-reader.tests.js b/tests/docx/body-reader.tests.js index 2e9671f..4a54aeb 100644 --- a/tests/docx/body-reader.tests.js +++ b/tests/docx/body-reader.tests.js @@ -656,6 +656,16 @@ describe("readXmlElement: ", function() { var result = readXmlElement(textbox, {styles: styles}); assert.deepEqual(result.value[0].styleId, "second"); }); + + test("w:sdtContent is used when w:sdt is read", function() { + var element = xml.element("w:sdt", {}, [ + xml.element("w:sdtContent", {}, [ + xml.element("w:t", {}, [xml.text("Blackdown")]) + ]) + ]); + var result = readXmlElement(element); + assert.deepEqual(result.value, [new documents.Text("Blackdown")]); + }); test("text nodes are ignored when reading children", function() { var runXml = new XmlElement("w:r", {}, [xml.text("[text]")]); |
