/*\ title: js/WikiTextRenderer.js \*/ (function(){ /*jslint node: true */ "use strict"; var ArgParser = require("./ArgParser.js").ArgParser, utils = require("./Utils.js"), util = require("util"); var WikiTextRenderer = function(store,title,parser) { this.parser = parser; this.store = store; this.title = title; }; WikiTextRenderer.prototype.render = function(type,treenode) { if(type === "text/html") { return this.renderAsHtml(treenode); } else if (type === "text/plain") { return this.renderAsText(treenode); } else { return null; } }; WikiTextRenderer.prototype.renderAsHtml = function(treenode) { var output = [], renderSubTree; var renderElement = function(element, selfClosing) { var tagBits = [element.type]; if(element.attributes) { for(var a in element.attributes) { var r = element.attributes[a]; if(a === "style") { var s = []; for(var t in r) { s.push(t + ":" + r[t] + ";"); } r = s.join(""); } tagBits.push(a + "=\"" + utils.htmlEncode(r) + "\""); } } output.push("<" + tagBits.join(" ") + (selfClosing ? " /" : "") + ">"); if(!selfClosing) { if(element.children) { renderSubTree(element.children); } output.push(""); } }; renderSubTree = function(tree) { for(var t=0; t