aboutsummaryrefslogtreecommitdiff
path: root/lib/documents.js
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2013-03-29 20:31:19 +0000
committerMichael Williamson <mike@zwobble.org>2013-03-29 20:31:19 +0000
commit15aaddae7a7e2dd8d369b514218778931a1543e0 (patch)
tree3564634c61e53dfa15f82f02757c289da988ce3f /lib/documents.js
parent12aa4a332cf40f5aab393bc7eafc2020945ea9f4 (diff)
Convert XML into simple document elements
Diffstat (limited to 'lib/documents.js')
-rw-r--r--lib/documents.js64
1 files changed, 47 insertions, 17 deletions
diff --git a/lib/documents.js b/lib/documents.js
index a470b84..d51e604 100644
--- a/lib/documents.js
+++ b/lib/documents.js
@@ -1,38 +1,68 @@
+var q = require("q");
+
exports.DocumentConverter = DocumentConverter;
+exports.Document = Document;
+exports.Paragraph = Paragraph;
+exports.Run = Run;
+exports.Text = Text;
function DocumentConverter() {
}
-DocumentConverter.prototype.convertToHtml = function(documentXml) {
- var body = documentXml.root.first("w:body");
-
- var html = body.children.map(elementToHtml).join("");
+DocumentConverter.prototype.convertToHtml = function(document) {
+ var html = document.children.map(elementToHtml).join("");
- return {
+ return q.when({
html: html
- };
+ });
}
function elementToHtml(element) {
- if (element.type === "element") {
- var handler = elementConverters[element.name];
- if (handler) {
- return handler(element);
- } else {
- return "";
- }
+ var handler = elementConverters[element.type];
+ if (handler) {
+ return handler(element);
+ } else {
+ return "";
}
}
var elementConverters = {
- "w:p": function(element) {
+ "paragraph": function(element) {
var innerHtml = element.children.map(elementToHtml).join("");
return "<p>" + innerHtml + "</p>";
},
- "w:r": function(element) {
+ "run": function(element) {
return element.children.map(elementToHtml).join("");
},
- "w:t": function(element) {
- return element.children[0].value;
+ "text": function(element) {
+ return element.value;
}
};
+
+function Document(children) {
+ return {
+ type: "document",
+ children: children
+ };
+}
+
+function Paragraph(children) {
+ return {
+ type: "paragraph",
+ children: children
+ };
+}
+
+function Run(children) {
+ return {
+ type: "run",
+ children: children
+ };
+}
+
+function Text(value) {
+ return {
+ type: "text",
+ value: value
+ };
+}