diff options
| author | Michael Williamson <mike@zwobble.org> | 2014-04-22 11:33:59 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2014-04-22 11:33:59 +0100 |
| commit | 15bf7ff1863049a7cad09719fa90b0e416b7715b (patch) | |
| tree | d4281becce7ef2e7f62a7dc93717f306bc312909 /lib/docx/styles-reader.js | |
| parent | 7cad7ca1dcdf48ac826c54e33629bb961c7380dd (diff) | |
Read character styles from styles.xml
Diffstat (limited to 'lib/docx/styles-reader.js')
| -rw-r--r-- | lib/docx/styles-reader.js | 16 |
1 files changed, 11 insertions, 5 deletions
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}; } |
