/*\ 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 date. The only field that is required is the `title` field, but useful tiddlers also have a `text` field, and some 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. The Tiddler object exposes the following API new Tiddler(src) - create a Tiddler given a hashmap of field values or a tiddler to clone new Tiddler(src1,src2) - create a Tiddler with the union of the fields from the sources, with the rightmost taking priority Tiddler.fields - hashmap of tiddler fields, OK for read-only access The hashmap(s) can specify the "modified" and "created" fields as strings in YYYYMMDDHHMMSSMMM format or as JavaScript date objects. The "tags" field can be given as a JavaScript array of strings or as a TiddlyWiki quoted string (eg, "one [[two three]]"). \*/ (function(){ /*jslint node: true */ "use strict"; var utils = require("./Utils.js"), ArgParser = require("./ArgParser.js").ArgParser, WikiTextParser = require("./WikiTextParser.js").WikiTextParser; var Tiddler = function(/* tiddler,fields */) { this.fields = {}; for(var c=0; c