mirror of
				https://github.com/Jermolene/TiddlyWiki5
				synced 2025-10-31 07:32:59 +00:00 
			
		
		
		
	Get rid of the old WikiTextParseTree class
And replace it with a new root Renderer() class
This commit is contained in:
		| @@ -9,8 +9,7 @@ Compiles images into JavaScript functions that render them in HTML | |||||||
| /*jslint node: true */ | /*jslint node: true */ | ||||||
| "use strict"; | "use strict"; | ||||||
|  |  | ||||||
| var WikiTextParseTree = require("./WikiTextParseTree.js").WikiTextParseTree, | var Renderer = require("./Renderer.js").Renderer, | ||||||
|     Renderer = require("./Renderer.js").Renderer, |  | ||||||
|     Dependencies = require("./Dependencies.js").Dependencies, |     Dependencies = require("./Dependencies.js").Dependencies, | ||||||
|     utils = require("./Utils.js"); |     utils = require("./Utils.js"); | ||||||
|  |  | ||||||
| @@ -25,7 +24,7 @@ ImageParser.prototype.parse = function(type,text) { | |||||||
| 	} else { | 	} else { | ||||||
|         src = "data:" + type + ";base64," + text; |         src = "data:" + type + ";base64," + text; | ||||||
| 	} | 	} | ||||||
| 	return new WikiTextParseTree([Renderer.ElementNode("img",{src: src})],new Dependencies(),this.store); | 	return new Renderer([Renderer.ElementNode("img",{src: src})],new Dependencies(),this.store); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| exports.ImageParser = ImageParser; | exports.ImageParser = ImageParser; | ||||||
|   | |||||||
| @@ -9,8 +9,7 @@ Compiles JSON objects into JavaScript functions that render them in HTML and pla | |||||||
| /*jslint node: true */ | /*jslint node: true */ | ||||||
| "use strict"; | "use strict"; | ||||||
|  |  | ||||||
| var WikiTextParseTree = require("./WikiTextParseTree.js").WikiTextParseTree, | var Renderer = require("./Renderer.js").Renderer, | ||||||
|     Renderer = require("./Renderer.js").Renderer, |  | ||||||
|     Dependencies = require("./Dependencies.js").Dependencies, |     Dependencies = require("./Dependencies.js").Dependencies, | ||||||
|     utils = require("./Utils.js"); |     utils = require("./Utils.js"); | ||||||
|  |  | ||||||
| @@ -44,7 +43,7 @@ var JSONParser = function(options) { | |||||||
| }; | }; | ||||||
|  |  | ||||||
| JSONParser.prototype.parse = function(type,text) { | JSONParser.prototype.parse = function(type,text) { | ||||||
| 	return new WikiTextParseTree([renderObject(JSON.parse(text))],new Dependencies(),this.store); | 	return new Renderer([renderObject(JSON.parse(text))],new Dependencies(),this.store); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| exports.JSONParser = JSONParser; | exports.JSONParser = JSONParser; | ||||||
|   | |||||||
| @@ -9,8 +9,7 @@ Parses JavaScript source code into a parse tree using Esprima | |||||||
| /*jslint node: true */ | /*jslint node: true */ | ||||||
| "use strict"; | "use strict"; | ||||||
|  |  | ||||||
| var WikiTextParseTree = require("./WikiTextParseTree.js").WikiTextParseTree, | var Renderer = require("./Renderer.js").Renderer, | ||||||
|     Renderer = require("./Renderer.js").Renderer, |  | ||||||
|     Dependencies = require("./Dependencies.js").Dependencies, |     Dependencies = require("./Dependencies.js").Dependencies, | ||||||
|     esprima = require("esprima"); |     esprima = require("esprima"); | ||||||
|  |  | ||||||
| @@ -27,7 +26,7 @@ JavaScriptParser.prototype.parse = function(type,code) { | |||||||
| 		parseTree = esprima.parse(code,{comment: true,tokens: true,range: true}); | 		parseTree = esprima.parse(code,{comment: true,tokens: true,range: true}); | ||||||
| 	} catch(ex) { | 	} catch(ex) { | ||||||
| 		// Return a helpful error if the parse failed | 		// Return a helpful error if the parse failed | ||||||
| 		return new WikiTextParseTree([ | 		return new Renderer([ | ||||||
| 			Renderer.ElementNode("pre",{"class": "javascript-source"},[ | 			Renderer.ElementNode("pre",{"class": "javascript-source"},[ | ||||||
| 				Renderer.TextNode(code.substring(0,ex.index)), | 				Renderer.TextNode(code.substring(0,ex.index)), | ||||||
| 				Renderer.ErrorNode(ex), | 				Renderer.ErrorNode(ex), | ||||||
| @@ -95,7 +94,7 @@ JavaScriptParser.prototype.parse = function(type,code) { | |||||||
| 	} | 	} | ||||||
| 	renderWhitespace(code.length); | 	renderWhitespace(code.length); | ||||||
| 	// Wrap the whole lot in a `<PRE>` | 	// Wrap the whole lot in a `<PRE>` | ||||||
| 	return new WikiTextParseTree([ | 	return new Renderer([ | ||||||
| 			Renderer.ElementNode("pre",{"class": "javascript-source"},result) | 			Renderer.ElementNode("pre",{"class": "javascript-source"},result) | ||||||
| 		],new Dependencies(),this.store); | 		],new Dependencies(),this.store); | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -9,8 +9,7 @@ Renders plain text tiddlers | |||||||
| /*jslint node: true */ | /*jslint node: true */ | ||||||
| "use strict"; | "use strict"; | ||||||
|  |  | ||||||
| var WikiTextParseTree = require("./WikiTextParseTree.js").WikiTextParseTree, | var Renderer = require("./Renderer.js").Renderer, | ||||||
|     Renderer = require("./Renderer.js").Renderer, |  | ||||||
|     Dependencies = require("./Dependencies.js").Dependencies, |     Dependencies = require("./Dependencies.js").Dependencies, | ||||||
|     utils = require("./Utils.js"); |     utils = require("./Utils.js"); | ||||||
|  |  | ||||||
| @@ -19,7 +18,7 @@ var PlainTextParser = function(options) { | |||||||
| }; | }; | ||||||
|  |  | ||||||
| PlainTextParser.prototype.parse = function(type,text) { | PlainTextParser.prototype.parse = function(type,text) { | ||||||
| 	return new WikiTextParseTree([Renderer.ElementNode("pre",{},[Renderer.TextNode(text)])],new Dependencies(),this.store); | 	return new Renderer([Renderer.ElementNode("pre",{},[Renderer.TextNode(text)])],new Dependencies(),this.store); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| exports.PlainTextParser = PlainTextParser; | exports.PlainTextParser = PlainTextParser; | ||||||
|   | |||||||
| @@ -14,6 +14,13 @@ var utils = require("./Utils.js"), | |||||||
| 	Dependencies = require("./Dependencies.js").Dependencies, | 	Dependencies = require("./Dependencies.js").Dependencies, | ||||||
| 	esprima = require("esprima"); | 	esprima = require("esprima"); | ||||||
|  |  | ||||||
|  | // Intialise the renderer object | ||||||
|  | var Renderer = function(tree,dependencies,store) { | ||||||
|  | 	this.tree = tree; | ||||||
|  | 	this.dependencies = dependencies; | ||||||
|  | 	this.store = store; | ||||||
|  | }; | ||||||
|  |  | ||||||
| var Node = function(children) { | var Node = function(children) { | ||||||
| 	if(this instanceof Node) { | 	if(this instanceof Node) { | ||||||
| 		this.children = children; | 		this.children = children; | ||||||
| @@ -498,16 +505,14 @@ var SliderNode = function(type,label,tooltip,isOpen,children) { | |||||||
| 	); | 	); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| var Renderer = { | Renderer.MacroNode = MacroNode; | ||||||
| 	MacroNode: MacroNode, | Renderer.ElementNode = ElementNode; | ||||||
| 	ElementNode: ElementNode, | Renderer.TextNode = TextNode; | ||||||
| 	TextNode: TextNode, | Renderer.EntityNode = EntityNode; | ||||||
| 	EntityNode: EntityNode, | Renderer.ErrorNode = ErrorNode; | ||||||
| 	ErrorNode: ErrorNode, | Renderer.LabelNode = LabelNode; | ||||||
| 	LabelNode: LabelNode, | Renderer.SplitLabelNode = SplitLabelNode; | ||||||
| 	SplitLabelNode: SplitLabelNode, | Renderer.SliderNode = SliderNode; | ||||||
| 	SliderNode: SliderNode |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| exports.Renderer = Renderer; | exports.Renderer = Renderer; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,25 +0,0 @@ | |||||||
| /*\ |  | ||||||
| title: js/WikiTextParseTree.js |  | ||||||
|  |  | ||||||
| A container for the parse tree generated by parsing wikitext |  | ||||||
|  |  | ||||||
| \*/ |  | ||||||
| (function(){ |  | ||||||
|  |  | ||||||
| /*jslint node: true */ |  | ||||||
| "use strict"; |  | ||||||
|  |  | ||||||
| var Renderer = require("./Renderer.js").Renderer, |  | ||||||
| 	ArgParser = require("./ArgParser.js").ArgParser, |  | ||||||
| 	utils = require("./Utils.js"); |  | ||||||
|  |  | ||||||
| // Intialise the parse tree object |  | ||||||
| var WikiTextParseTree = function(tree,dependencies,store) { |  | ||||||
| 	this.tree = tree; |  | ||||||
| 	this.dependencies = dependencies; |  | ||||||
| 	this.store = store; |  | ||||||
| }; |  | ||||||
|  |  | ||||||
| exports.WikiTextParseTree = WikiTextParseTree; |  | ||||||
|  |  | ||||||
| })(); |  | ||||||
| @@ -32,7 +32,6 @@ HTML nodes look like this: | |||||||
| "use strict"; | "use strict"; | ||||||
|  |  | ||||||
| var WikiTextRules = require("./WikiTextRules.js"), | var WikiTextRules = require("./WikiTextRules.js"), | ||||||
| 	WikiTextParseTree = require("./WikiTextParseTree.js").WikiTextParseTree, |  | ||||||
| 	Dependencies = require("./Dependencies.js").Dependencies, | 	Dependencies = require("./Dependencies.js").Dependencies, | ||||||
| 	Renderer = require("./Renderer.js").Renderer, | 	Renderer = require("./Renderer.js").Renderer, | ||||||
| 	utils = require("./Utils.js"), | 	utils = require("./Utils.js"), | ||||||
| @@ -71,7 +70,7 @@ WikiTextParser.prototype.parse = function(type,text) { | |||||||
| 	this.dependencies = new Dependencies(); | 	this.dependencies = new Dependencies(); | ||||||
| 	this.output = null; | 	this.output = null; | ||||||
| 	this.subWikify(this.children); | 	this.subWikify(this.children); | ||||||
| 	var tree = new WikiTextParseTree(this.children,this.dependencies,this.store); | 	var tree = new Renderer(this.children,this.dependencies,this.store); | ||||||
| 	this.source = null; | 	this.source = null; | ||||||
| 	this.children = null; | 	this.children = null; | ||||||
| 	return tree; | 	return tree; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Jeremy Ruston
					Jeremy Ruston