From 8d185399de25c771015c19e51439fd8fa030cb60 Mon Sep 17 00:00:00 2001 From: Jeremy Ruston Date: Wed, 26 Dec 2012 19:37:33 +0000 Subject: [PATCH] Some new viewers we'll need for cooking TiddlyWiki files This is all part of getting the new parser able to cook TiddlyWiki files --- .../widgets/view/viewers/htmlencoded.js | 39 +++++++++++++++++++ .../widgets/view/viewers/htmlwikified.js | 39 +++++++++++++++++++ .../modules/widgets/view/viewers/jsencoded.js | 39 +++++++++++++++++++ 3 files changed, 117 insertions(+) create mode 100644 core/modules/widgets/view/viewers/htmlencoded.js create mode 100644 core/modules/widgets/view/viewers/htmlwikified.js create mode 100644 core/modules/widgets/view/viewers/jsencoded.js diff --git a/core/modules/widgets/view/viewers/htmlencoded.js b/core/modules/widgets/view/viewers/htmlencoded.js new file mode 100644 index 000000000..c7e687323 --- /dev/null +++ b/core/modules/widgets/view/viewers/htmlencoded.js @@ -0,0 +1,39 @@ +/*\ +title: $:/core/modules/widgets/view/viewers/htmlencoded.js +type: application/javascript +module-type: newfieldviewer + +A viewer for viewing tiddler fields as HTML encoded text + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var HtmlEncodedViewer = function(viewWidget,tiddler,field,value) { + this.viewWidget = viewWidget; + this.tiddler = tiddler; + this.field = field; + this.value = value; +}; + +HtmlEncodedViewer.prototype.render = function() { + // Get the value as a string + if(this.field !== "text" && this.tiddler) { + this.value = this.tiddler.getFieldString(this.field); + } + var value = ""; + if(this.value !== undefined && this.value !== null) { + value = this.value; + } + return this.viewWidget.renderer.renderTree.createRenderers(this.viewWidget.renderer.renderContext,[{ + type: "text", + text: $tw.utils.htmlEncode(value) + }]); +}; + +exports.htmlencoded = HtmlEncodedViewer; + +})(); diff --git a/core/modules/widgets/view/viewers/htmlwikified.js b/core/modules/widgets/view/viewers/htmlwikified.js new file mode 100644 index 000000000..1bd5e0990 --- /dev/null +++ b/core/modules/widgets/view/viewers/htmlwikified.js @@ -0,0 +1,39 @@ +/*\ +title: $:/core/modules/widgets/view/viewers/htmlwikified.js +type: application/javascript +module-type: newfieldviewer + +A viewer for viewing tiddler fields as a textual HTML representation of the wikified text + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var HtmlWikifiedViewer = function(viewWidget,tiddler,field,value) { + this.viewWidget = viewWidget; + this.tiddler = tiddler; + this.field = field; + this.value = value; +}; + +HtmlWikifiedViewer.prototype.render = function() { + // Parse the field text + var text = this.viewWidget.renderer.renderTree.wiki.new_renderText("text/html","text/vnd.tiddlywiki",this.value); + // Create a node containing the HTML representation of the field + var node = { + type: "element", + tag: "pre", + children: [{ + type: "text", + text: text + }] + }; + return this.viewWidget.renderer.renderTree.createRenderers(this.viewWidget.renderer.renderContext,[node]); +}; + +exports.htmlwikified = HtmlWikifiedViewer; + +})(); diff --git a/core/modules/widgets/view/viewers/jsencoded.js b/core/modules/widgets/view/viewers/jsencoded.js new file mode 100644 index 000000000..9d5a61dc3 --- /dev/null +++ b/core/modules/widgets/view/viewers/jsencoded.js @@ -0,0 +1,39 @@ +/*\ +title: $:/core/modules/widgets/view/viewers/jsencoded.js +type: application/javascript +module-type: newfieldviewer + +A viewer for viewing tiddler fields as JavaScript stringified text + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var JsEncodedViewer = function(viewWidget,tiddler,field,value) { + this.viewWidget = viewWidget; + this.tiddler = tiddler; + this.field = field; + this.value = value; +}; + +JsEncodedViewer.prototype.render = function() { + // Get the value as a string + if(this.field !== "text" && this.tiddler) { + this.value = this.tiddler.getFieldString(this.field); + } + var value = ""; + if(this.value !== undefined && this.value !== null) { + value = this.value; + } + return this.viewWidget.renderer.renderTree.createRenderers(this.viewWidget.renderer.renderContext,[{ + type: "text", + text: $tw.utils.stringify(value) + }]); +}; + +exports.jsencoded = JsEncodedViewer; + +})();