From 15bf7ff1863049a7cad09719fa90b0e416b7715b Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Tue, 22 Apr 2014 11:33:59 +0100 Subject: Read character styles from styles.xml --- lib/docx/styles-reader.js | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'lib') diff --git a/lib/docx/styles-reader.js b/lib/docx/styles-reader.js index d896d3d..fd3425c 100644 --- a/lib/docx/styles-reader.js +++ b/lib/docx/styles-reader.js @@ -1,25 +1,31 @@ exports.readStylesXml = readStylesXml; -function Styles(paragraphStyles) { +function Styles(paragraphStyles, characterStyles) { return { findParagraphStyleById: function(styleId) { return paragraphStyles[styleId]; + }, + findCharacterStyleById: function(styleId) { + return characterStyles[styleId]; } }; } function readStylesXml(xml) { - var paragraphStyles = []; + var paragraphStyles = {}; + var characterStyles = {}; xml.root.getElementsByTagName("w:style").forEach(function(styleElement) { var style = readStyleElement(styleElement); - paragraphStyles[style.styleId] = style; + var styleSet = style.type === "paragraph" ? paragraphStyles : characterStyles; + styleSet[style.styleId] = style; }); - return new Styles(paragraphStyles); + return new Styles(paragraphStyles, characterStyles); } function readStyleElement(styleElement) { + var type = styleElement.attributes["w:type"]; var styleId = styleElement.attributes["w:styleId"]; - return {styleId: styleId}; + return {type: type, styleId: styleId}; } -- cgit v1.2.3