/*\ title: $:/core/modules/deserializers.js type: application/javascript module-type: tiddlerdeserializer Functions to deserialise tiddlers from a block of text \*/ (function(){ /*jslint node: true, browser: true */ /*global $tw: false */ "use strict"; /* Utility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:
The text of the tiddler (without the expected HTML encoding).
tag is not encoded. When these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way. */ var parseTiddlerDiv = function(text /* [,fields] */) { // Slot together the default results var result = {}; if(arguments.length > 1) { for(var f=1; f]*)>([(?:\s|\S)]*)<\/div>\s*$/gi, subDivRegExp = /^\s* ([(?:\s|\S)]*)<\/pre>\s*$/gi, attrRegExp = /\s*([^=\s]+)\s*=\s*"([^"]*)"/gi, match = divRegExp.exec(text); if(match) { var subMatch = subDivRegExp.exec(match[2]); // Body of thetag if(subMatch) { result.text = subMatch[1]; } else { result.text = match[2]; } var attrMatch; do { attrMatch = attrRegExp.exec(match[1]); if(attrMatch) { var name = attrMatch[1]; var value = attrMatch[2]; result[name] = value; } } while(attrMatch); return result; } else { return undefined; } }; exports["application/x-tiddler-html-div"] = function(text,fields) { return [parseTiddlerDiv(text,fields)]; }; exports["application/json"] = function(text,fields) { var tiddlers = JSON.parse(text), result = [], getKnownFields = function(tid) { var fields = {}; "title text created creator modified modifier type tags".split(" ").forEach(function(value) { if(tid[value] !== null) { fields[value] = tid[value]; } }); return fields; }; for(var t=0; t