/*\ title: js/Tiddler.js Tiddlers are an immutable dictionary of name:value pairs called fields. Values can be a string, an array of strings, or a JavaScript date object. The only field that is required is the `title` field, but useful tiddlers also have a `text` field, and some or all of the standard fields `modified`, `modifier`, `created`, `creator`, `tags` and `type`. Hardcoded in the system is the knowledge that the 'tags' field is a string array, and that the 'modified' and 'created' fields are dates. All other fields are strings. \*/ (function(){ /*jslint node: true */ "use strict"; var utils = require("./Utils.js"), ArgParser = require("./ArgParser.js").ArgParser; var Tiddler = function(/* tiddler,fields */) { var fields = {}, // Keep the fields private, later we'll expose getters for them tags, // Keep the tags separately because they're the only Array field f,t,c,arg,src; // Accumulate the supplied fields for(c=0; c bb) { return 1; } else { return 0; } } }; Tiddler.parseTiddlerField = function(name,value) { var type = Tiddler.specialTiddlerFields[name]; if(type) { return Tiddler.specialTiddlerFieldParsers[type](value); } else if (typeof value === "string") { return value; } else { return null; } }; exports.Tiddler = Tiddler; })();