<<tabs txtMainTab\nTimeline Timeline TabTimeline\nAll "All tiddlers" TabMoreAll\n? "Missing tiddlers" TabMoreMissing\n! "Orphaned tiddlers" TabMoreOrphans\n>>
function alterBackupDir(args) {\n var path = args[0];\n var re = new RegExp("\s.[0-9]+\s.html");\n if (re.test(path)) {\n var backSlash = true;\n var dirPathPos = path.lastIndexOf("\s\s");\n if (dirPathPos == -1) {\n dirPathPos = path.lastIndexOf("/");\n backSlash = false;\n }\n var backupPath = path.substr(0,dirPathPos) + (backSlash ? "\s\s" : "/");\n backupPath += "backup" + path.substr(dirPathPos, path.length - dirPathPos);\n \n args[0] = backupPath;\n }\n return args;\n}\n\nAspects.addBefore(this,"saveFile",alterBackupDir);
function addCloseMessageLink(args) {\n var msgArea = document.getElementById("messageArea");\n if (msgArea.childNodes.length == 0) {\n linkDiv = createTiddlyElement(msgArea,"div",null,null,null);\n link = createTiddlyElement(linkDiv,"a",null,null,"[close x]");\n link.setAttribute("href", "javascript:clearMessage();");\n link.setAttribute("style", "float:right; font-weight:normal;");\n }\n return args;\n}\n\nAspects.addBefore(this,"displayMessage",addCloseMessageLink);\n
function onClickToolbarCloseOthers(e) {\n if (!e) var e = window.event;\n oldVal = config.options.chkAnimate;\n config.options.chkAnimate = false;\n closeAllTiddlers();\n if(this.parentNode.id) {\n var title = this.parentNode.id.substr(7);\n displayTiddler(e.target,title,0);\n }\n config.options.chkAnimate = oldVal;\n}\n\nfunction addCloseOthersButton(ignored, args) {\n var theToolbar = document.getElementById("toolbar" + args[0]);\n if(theToolbar) {\n if(!args[1]) {\n createTiddlyButton(theToolbar, "close others", "close others", onClickToolbarCloseOthers);\n insertSpacer(theToolbar);\n }\n }\n \n return args;\n}\n\nAspects.addAfter(this, "createTiddlerToolbar", addCloseOthersButton);
//Thanks to Roman Porotnikov\n//http://www.jroller.com/page/deep/20030701\n\n//NB this systemConfig needs to be evaluated before other ones \n//that use the Aspects so the name starts with "."\n//since they're loaded alphabetically\n//should really put it into the main source code, but\n//wanted to keep everything upgrade-proof\n\nAspects = new Object();\n\nAspects.addBefore = function(obj, fname, before) {\n var oldFunc = obj[fname];\n obj[fname] = function() {\n return oldFunc.apply(this, before(arguments, oldFunc, this));\n };\n};\n\nAspects.addAfter = function(obj, fname, after) {\n var oldFunc = obj[fname];\n obj[fname] = function() {\n return after(oldFunc.apply(this, arguments), arguments, oldFunc, this);\n };\n};\n\nAspects.addAround = function(obj, fname, around) {\n var oldFunc = obj[fname];\n obj[fname] = function() {\n return around(arguments, oldFunc, this);\n };\n};
store.addNotification(null,refreshMenu);
if (!config.options.txtDefaultTiddlers) {\n config.options.txtDefaultTiddlers = "";\n}\n\nfunction retrieveLayoutFromCookie(args) {\n var start = config.options.txtDefaultTiddlers;\n\n if(!window.location.hash && start.length > 0) {\n args[1] = start;\n }\n return args;\n}\n\nfunction saveLayoutInCookie(args) {\n var tiddlerContainer = document.getElementById("tiddlerDisplay");\n var visibleTiddlers = tiddlerContainer.childNodes;\n var defaultTiddlerSpec = "";\n for (i=0;i<visibleTiddlers.length;i++) {\n if (visibleTiddlers[i].id) {\n defaultTiddlerSpec += ' [['+ visibleTiddlers[i].id.substring(7) +']] ';\n }\n }\n config.options.txtDefaultTiddlers = defaultTiddlerSpec;\n saveOptionCookie('txtDefaultTiddlers');\n return args;\n}\n\nAspects.addAfter(this, "displayTiddler", saveLayoutInCookie);\nAspects.addBefore(this, "displayTiddlers", retrieveLayoutFromCookie);\nAspects.addAfter(this, "closeTiddler", saveLayoutInCookie);\n
Aspects.addBefore(this, "onClickTagOpenAll", function(args) {\n closeAllTiddlers();\n return args;\n});
config.macros.list["untagged"] = {prompt: "Tiddlers that are not tagged"};\n\nconfig.macros.list.untagged.handler = function(params)\n{\n//displayMessage("Building list of untagged tiddlers");\n var results = [];\n for(var t in store.tiddlers) {\n var tiddler = store.tiddlers[t];\n if(tiddler.getTags() == "")\n results.push(t);\n }\n results.sort();\n return results;\n}
function onClickDefaultView(e) {\n closeAllTiddlers();\n config.options.txtDefaultTiddlers = "";\n saveOptionCookie('txtDefaultTiddlers');\n var start = store.getTiddlerText("DefaultTiddlers");\n if(start)\n displayTiddlers(null,start,1,null,null);\n}\n\nconfig.macros["defaultView"] = {label: "default view", prompt: "Show the default tiddlers", title: "default view"};\n\nconfig.macros.defaultView.handler = function(place) {\n createTiddlyButton(place,this.label,this.prompt,onClickDefaultView);\n}\n
dissertiddler\n
<<tagCloud systemConfig>>
The plugins for this dissertiddler are:\n<<listTags plugins title *>>
// //''Name:'' list tags plugin\n// //''Author:'' SteveRumsby\n\n// //''Syntax:''\n// //<< {{{listTags tag //sort// //prefix//}}} >>\n\n// //''Description:''\n// //Generate a list of tiddlers tagged with the given tag.\n// //If both //sort// and //prefix// are omitted the list is sorted in increasing order of title, with one tiddler per line.\n// //If //sort// is specified the list is sorted in increasing order of the given tiddler property. Possible properties are: title. modified, modifier.\n// //If //prefix// is specified the given string is inserted before the tiddler title. The insertion happens before the text is wikified. This can be used to generated bulleted or numbered lists.\n\n// //''Examples:''\n// //<< {{{listTags usage}}} >> - generate a plain list of all tiddlers tagged with tag //usage//, sorted by title\n// //<< {{{listTags usage modified}}} >> - the same list, with most recently modified tiddlers last\n// //<< {{{listTags usage title #}}} >> - generate a numbered list if tiddlers tagged with //usage//, sorted by title\n\n// //''Code section:''\nversion.extensions.listTags = {major: 0, minor: 1, revision: 0, date: new Date(2005, 6,16)};\n\nconfig.macros.listTags = {\ntext: "Hello"\n};\n\nconfig.macros.listTags.handler = function(place,macroName,params)\n{\n var tagged = store.getTaggedTiddlers(params[0], params[1]);\n var string = "";\n for(var r=0;r<tagged.length;r++)\n {\n if(params[2]) string = string + params[2] + " ";\n string = string + "[[" + tagged[r].title + "]]\sn";\n }\n wikify(string, place, null, null);\n}
// //''Name:'' tagCloud plugin\n// //''Author:'' ClintChecketts\n\n// //''Syntax:'' << {{{tagCloud //tags//}}} >>\n// //Any //tags// listed as arguments are omitted from the cloud.\n\n// //''Code section''\nversion.extensions.tagCloud = {major: 0, minor: 2, revision: 0, date: new Date(2005,7,16)};\n\nconfig.macros.tagCloud = {noTags: "No tag cloud created because there are no tags."};\n\nconfig.macros.tagCloud.handler = function(place,macroName,params) {\n \nvar tagCloudWrapper = createTiddlyElement(place,"div",null,"tagCloud",null);\n\nvar tags = store.getTags();\nvar tagsNoParams = new Array();\nfor (t=0; t<tags.length; t++) {\n var keepTag = true;\n for (p=0;p<params.length; p++) if (tags[t][0] == params[p]) tags[t][0] = "";\n// if (keepTag) tagsNoParams.push(tags[t][0]);\n}\n//tags = tagsNoParams;\n\n\n if(tags.length == 0) \n createTiddlyElement(tagCloudWrapper,"span",null,null,this.noTags);\n //Findout the maximum number of tags\n var mostTags = 0;\n for (t=0; t<tags.length; t++) {\n if (tags[t][1] > mostTags) mostTags = tags[t][1];\n }\n //divide the mostTags into 4 segments for the 4 different tagCloud sizes\n var tagSegment = mostTags / 4;\n\n for (t=0; t<tags.length; t++) {\n var tagCloudElement = createTiddlyElement(tagCloudWrapper,"span",null,null,null);\n tagCloudWrapper.appendChild(document.createTextNode(" "));\n var theTag = createTiddlyButton(tagCloudElement,tags[t][0],this.tooltip + tags[t][0],onClickTag,"tagCloudtag tagCloud" + (Math.round(tags[t][1]/tagSegment)+1));\n theTag.setAttribute("tag",tags[t][0]);\n }\n\n};\n\nsetStylesheet(".tagCloud li{height: 1.8em; float:left; margin: 3px; list-style: none;}.tagCloud1{font-size: 1.2em;}.tagCloud2{font-size: 1.4em;}.tagCloud3{font-size: 1.6em;}.tagCloud4{font-size: 1.8em;}.tagCloud5{font-size: 1.8em;font-weight: bold;}.clearer{clear:left;}#mainMenu .tagCloud{ font-size: .5em; margin: 0; padding: 0; font-weight: bold; } #mainMenu .tagCloudtag:hover{ text-decoration: underline; }","tagCloudsStyles");
[img[adventure|cyoa.png]]\n\nread as much or as little as you like, in whatever order you like. There is only one possible ending (mine), but its supposed to be about the journey, not the destination, right? so get there your own way.
// //''Name:'' Favicon\n// //''Author:'' AlanHecht\n// //''Type:'' SystemConfig\n\n// //''Description:'' favicon allows you to stipulate the location of a webpage icon (also known as a favorite icon or favicon) for your TiddlyWiki. The location of the icon is absolute (meaning that you need to give the full URL path, including the "http:"). This allows you to use any favicon icon that exists on the Web -- even if it is on a totally different server.\n\n// //''Directions:'' <<tiddler StartupBehaviorDirections>> \n// //Then, in the code section below, change the line beginning with {{{n.href}}} so that the value inside the quotation marks is the absolute URL for the icon file (usually named favicon.ico).\n\n// //''Notes:'' Many