diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/documents.js | 14 | ||||
| -rw-r--r-- | lib/html-generator.js | 14 |
2 files changed, 24 insertions, 4 deletions
diff --git a/lib/documents.js b/lib/documents.js index eebd607..ba2e8ec 100644 --- a/lib/documents.js +++ b/lib/documents.js @@ -46,15 +46,23 @@ function DocumentConverter(options) { function styleForParagraph(element) { return paragraphStyleMap[element.properties.styleName] || defaultParagraphStyle; } + + function convertRun(run, html) { + var runHtml = new HtmlGenerator(); + if (run.properties.isBold) { + runHtml.style(styles.elements(["strong"])); + } + convertElements(run.children, runHtml); + runHtml.closeAll(); + html.append(runHtml); + } var elementConverters = { "document": function(document, html) { convertElements(document.children, html); }, "paragraph": convertParagraph, - "run": function(element, html) { - convertElements(element.children, html); - }, + "run": convertRun, "text": function(element, html) { html.text(element.value); } diff --git a/lib/html-generator.js b/lib/html-generator.js index af6cedc..38e3619 100644 --- a/lib/html-generator.js +++ b/lib/html-generator.js @@ -21,6 +21,15 @@ function HtmlGenerator() { return fragments.join(""); } + function append(otherHtmlGenerator) { + if (otherHtmlGenerator._fragments.length > 0) { + writeAll(); + } + otherHtmlGenerator._fragments.forEach(function(fragment) { + fragments.push(fragment); + }); + } + function style(style) { var firstFreshPartIndex = findIndex(style, function(part) { return part.fresh; @@ -82,7 +91,10 @@ function HtmlGenerator() { return { style: style, text: text, - asString: asString + closeAll: popAll, + asString: asString, + append: append, + _fragments: fragments }; } |
