config.options.chkHttpReadOnly = false;
//{{{\nfunction applyHtmlMacros(root,tiddler)\n{\n var e = root.firstChild;\n while(e)\n {\n var nextChild = e.nextSibling;\n if(e.getAttribute)\n {\n var macro = e.getAttribute("macro");\n e.removeAttribute("macro");\n if(macro)\n {\n var params = "";\n var p = macro.indexOf(" ");\n if(p != -1)\n {\n params = macro.substr(p+1);\n macro = macro.substr(0,p);\n }\n invokeMacro(e,macro,params,null,tiddler);\n }\n }\n if(e.hasChildNodes())\n applyHtmlMacros(e,tiddler);\n e = nextChild;\n }\n}\n//}}}
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>\n<div>Author Name: <div class='editor' macro='edit name readonly'></div></div>\n\n<div style="display:none;">\n<div class='editor' macro='edit text'>\n<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div></div>\n\n<div style="display:none">Edit: <span macro='edit EditTemplate AuthorEditTemplate'></span></div>\n<div style="display:none">View: <span macro='edit ViewTemplate AuthorViewTemplate'></span></div>
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler permalink references jump'></div>\n <div class='title' macro='view name'></div> (id: <span macro='view title'></span>)
MetaQuotes
//{{{\nconfig.macros.edit.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n var field = params[0];\n var defaultVal = params[1] ? params[1] : "";\n\n if((tiddler instanceof Tiddler) && field)\n {\n story.setDirty(tiddler.title,true);\n if(field != "text")\n {\n var e = createTiddlyElement(null,"input");\n if(tiddler.isReadOnly())\n e.setAttribute("readOnly","readOnly");\n e.setAttribute("edit",field);\n e.setAttribute("type","text");\n var v = store.getValue(tiddler,field);\n if(!v) \n v = defaultVal;\n e.value = v;\n e.setAttribute("size","40");\n e.setAttribute("autocomplete","off");\n place.appendChild(e);\n }\n else\n {\n var wrapper1 = createTiddlyElement(null,"fieldset",null,"fieldsetFix");\n var wrapper2 = createTiddlyElement(wrapper1,"div");\n var e = createTiddlyElement(wrapper2,"textarea");\n if(tiddler.isReadOnly())\n e.setAttribute("readOnly","readOnly");\n var v = store.getValue(tiddler,field);\n if(!v) \n v = defaultVal;\n e.value = v;\n var rows = 10;\n var lines = v.match(/\sn/mg);\n var maxLines = Math.max(parseInt(config.options.txtMaxEditRows),5);\n if(lines != null && lines.length > rows)\n rows = lines.length + 5;\n rows = Math.min(rows,maxLines);\n e.setAttribute("rows",rows);\n e.setAttribute("edit",field);\n place.appendChild(wrapper1);\n }\n }\n}\n//}}}
//{{{\nconfig.commands.inlineEditTiddler = {};\n\nmerge(config.commands.inlineEditTiddler,{\n text: "edit",\n tooltip: "Edit this tiddler",\n readOnlyText: "view",\n readOnlyTooltip: "View the source of this tiddler"});\n\nconfig.commands.inlineEditTiddler.handler = function(event,src,title)\n{\n clearMessage();\n\ninlineTiddler = document.getElementById("inline"+title);\ninlineTiddler.innerHTML = story.getTemplateForTiddler(title,store.getValue(title,"EditTemplate"));\napplyHtmlMacros(inlineTiddler,store.getTiddler(title)); //Had to get the tiddler to pass it in for the macros\ninlineTiddler[window.event?"onkeydown":"onkeypress"] = config.macros.inlineDone.onKeyPress;\nconfig.macros.inlineDone.doFade(7, inlineTiddler.id) \n story.focusTiddler(title,"text");\n return false;\n}\n\n//}}}
//{{{\nversion.extensions.inlineDone = {major: 0, minor: 1, revision: 0, date: new Date(2006,8,8)};\n\nconfig.macros.inlineDone = {label: "Inline Done", prompt: "Save Inline Edit"};\n\nvar StartFadeAt = 7;\nconfig.macros.inlineDone.FadeInterval = 200;\nconfig.macros.inlineDone.FadeSteps = new Array();\nconfig.macros.inlineDone.FadeSteps[1] = "ff";\nconfig.macros.inlineDone.FadeSteps[2] = "ee";\nconfig.macros.inlineDone.FadeSteps[3] = "dd";\nconfig.macros.inlineDone.FadeSteps[4] = "cc";\nconfig.macros.inlineDone.FadeSteps[5] = "bb";\nconfig.macros.inlineDone.FadeSteps[6] = "aa";\nconfig.macros.inlineDone.FadeSteps[7] = "99";\nconfig.macros.inlineDone.doFade = function(colorId, targetId) {\n if (colorId >= 1) {\n document.getElementById(targetId).style.backgroundColor = "#ffff" + config.macros.inlineDone.FadeSteps[colorId];\n \n // If it's the last color, set it to transparent\n if (colorId==1) {\n document.getElementById(targetId).style.backgroundColor = "transparent";\n }\n colorId--;\n \n // Wait a little bit and fade another shade\n setTimeout("config.macros.inlineDone.doFade("+colorId+",'"+targetId+"')", config.macros.inlineDone.FadeInterval);\n }\n}\n\n\nconfig.macros.inlineDone.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\nvar doneButton = createTiddlyButton(place,this.label,this.prompt,this.onClick);\ndoneButton.setAttribute("tiddler",tiddler.title);\n}\n\nconfig.macros.inlineDone.onClick = function(e){\nvar title = this.getAttribute("tiddler");\ntiddler = document.getElementById("inline"+title);\nconfig.macros.inlineDone.save(tiddler);\nreturn false;\n}\n\nconfig.macros.inlineDone.save = function(tiddler){\n//==============================================\n//Taken from: Story.prototype.saveTiddler = function(title,minorUpdate)\nvar title = tiddler.getAttribute("tiddler");\nvar minorUpdate = null;\n var fields = {};\n story.gatherSaveFields(tiddler,fields);\n\n// tiddler.id = this.idPrefix + newTitle;\n// tiddler.setAttribute("tiddler",newTitle);\n// tiddler.setAttribute("template",DEFAULT_VIEW_TEMPLATE);\n tiddler.setAttribute("dirty","false");\n if(config.options.chkForceMinorUpdate)\n minorUpdate = !minorUpdate;\n var newDate = new Date();\n store.saveTiddler(title,title,fields.text,config.options.txtUserName,minorUpdate ? undefined : newDate,fields.tags);\n for (var n in fields) \n if (!TiddlyWiki.isStandardField(n))\n store.setValue(title,n,fields[n]);\n if(config.options.chkAutoSave)\n saveChanges();\n//==============================================\ninlineTiddler = document.getElementById("inline"+title);\ninlineTiddler.innerHTML = story.getTemplateForTiddler(title,store.getValue(title,"ViewTemplate"));\napplyHtmlMacros(inlineTiddler,store.getTiddler(title)); //Had to get the tiddler to pass it in for the macros\n\nconfig.macros.inlineDone.doFade(7, "inline"+title);\n}\n\n\nconfig.macros.inlineDone.onKeyPress = function(e)\n{\n if (!e) var e = window.event;\n clearMessage();\n var consume = false; \n var target = resolveTarget(e);\n switch(e.keyCode)\n {\n case 9: // Tab\n if(config.options.chkInsertTabs && ( target.tagName.toLowerCase() == "input" || target.tagName.toLowerCase() == "textarea"))\n {\n replaceSelection(target,String.fromCharCode(9));\n consume = true; \n }\n if(config.isOpera)\n {\n target.onblur = function()\n {\n this.focus();\n this.onblur = null;\n }\n }\n break;\n case 13: // Ctrl-Enter\n case 10: // Ctrl-Enter on IE PC\n case 77: // Ctrl-Enter is "M" on some platforms\n if(e.ctrlKey)\n {\n blurElement(this);\n config.macros.inlineDone.save(this);\n consume = true;\n }\n break; \n case 27: // Escape\n blurElement(this);\n config.macros.quickAdd.reset(this);\n\n consume = true;\n break;\n }\n e.cancelBubble = consume;\n if(consume)\n {\n if (e.stopPropagation) e.stopPropagation(); // Stop Propagation\n e.returnValue = true; // Cancel The Event in IE\n if (e.preventDefault ) e.preventDefault(); // Cancel The Event in Moz\n }\n return(!consume);\n};\n\n//}}}
<<newTiddler label:"Add a new quote" autoNamePrefix:q tag:Quote template:QuoteEditTemplate>>\n<<newTiddler label:"Add a new source" autoNamePrefix:s tag:Source template:SourceEditTemplate>>\n\nMetaQuotes\n\n<<tagging Source>>\n/%\ncopy: config.macros.tagging.handler\n%/
MetaQuotes is a simple compilation using the new powerful features available in TiddlyWiki <<version>>\n\n''Additions''\nIn using TiddlyWiki I'm trying to polish some of its rougher edges (though there are very few in truth).\n\nSince this TiddlyWiki is still in Beta I figured I'd give it a run for my money (oh, right, its free!) to make sure it can do what I need it to.\n\n[[MetaViewMacro|TheNewMetaView]]\n[[Select Macro]]
//{{{\nStory.prototype.chooseTemplateForTiddler = function(title,template)\n{\n var tiddler = store.getTiddler(title);\n if (!template)\n template = DEFAULT_VIEW_TEMPLATE;\n if(template == DEFAULT_VIEW_TEMPLATE)\n {\n var metatemplate = store.getValue(tiddler,"ViewTemplate");\n }\n else if (template == DEFAULT_EDIT_TEMPLATE)\n {\n var metatemplate = store.getValue(tiddler,"EditTemplate");\n }\n template = (metatemplate!=undefined &&store.tiddlerExists(metatemplate))? metatemplate : template ;\n if (config.tiddlerTemplates[template])\n {\n return config.tiddlerTemplates[template];\n }\n else\n {\n return template;\n }\n}\n//}}}
//{{{\n\nfunction getSystemSetting(fieldSettingName)\n{\n return store.getValue('SystemSettings',fieldSettingName);\n}\n\nfunction setSystemSetting(newFieldSettingName,value)\n{\n store.setValue('SystemSettings',newFieldSettingName,value);\n}\n\nconfig.macros.newTiddler.createNewTiddlerButton_NoAutoNumber = config.macros.newTiddler.createNewTiddlerButton;\nconfig.macros.newTiddler.createNewTiddlerButton = function(place,title,params,label,prompt,accessKey,newFocus)\n{\nvar btn = config.macros.newTiddler.createNewTiddlerButton_NoAutoNumber(place,title,params,label,prompt,accessKey,newFocus);\n var autoNamePrefix = getParam(params,"autoNamePrefix",null);\n btn.setAttribute("autoNamePrefix",autoNamePrefix);\n return btn;\n}\n\n\nconfig.macros.newTiddler.onClickNewTiddler = function()\n{\n var title = this.getAttribute("newTitle");\n var params = this.getAttribute("params").split("|");\n// Added for auto numbering\n if (this.getAttribute("autoNamePrefix")){\n var prefix = this.getAttribute("autoNamePrefix");\n var currNum = getSystemSetting('autoprefix'+prefix);\n var autoNumber = currNum != undefined ? parseInt(currNum) + 1: 1000;\n title = prefix + autoNumber;\n setSystemSetting('autoprefix'+prefix,autoNumber);\n }\n// End Added for auto numbering\n var focus = this.getAttribute("newFocus");\n var template = this.getAttribute("newTemplate");\n story.displayTiddler(null,title,template);\n var text = this.getAttribute("newText");\n if(typeof text == "string")\n story.getTiddlerField(title,"text").value = text.format([title]);\n for(var t=0;t<params.length;t++)\n story.setTiddlerTag(title,params[t],+1);\n story.focusTiddler(title,focus);\n return false;\n}\n//}}}
<<quickAdd autoNamePrefix:q template:QuoteEditTemplate>>
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div><span class='quoteBar' macro='inlineDone'></span>\n<div class='editor' macro='edit text'></div>\n\n<div>By: <span macro='edit authorName'></span></div>\n\n<div>Source: <span class='editor' macro='select Source name'></span> Details: <span macro='edit sourceDetails'></span> or <span macro='newTiddler label:"Add a new source" autoNamePrefix:s tag:Source template:SourceEditTemplate'></span></div>\n\n<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>\n\n<div style="display:none">Title: <span macro='edit title'></span></div>\n<div style="display:none">Edit: <span macro='edit EditTemplate QuoteEditTemplate'></span></div>\n<div style="display:none">View: <span macro='edit ViewTemplate QuoteViewTemplate'></span></div>
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler permalink references jump'></div>\n<div class='viewer' macro='view text wikified'></div>\n<div class="authorName">-<span class='viewer author' macro='view authorName'></span> (<span class='viewer source' macro='showSelected Source name'></span>- <span class='viewer source' macro='view sourceDetails'></span>) (<span class='quoteBar' macro='toolbar inlineEditTiddler'></span>)\n</div>\n\n
/***\n|''Name:''|Select macro|\n|''Description:''|To make it easy to edit tiddler relationships|\n|''Version:''|0.1|\n|''Date:''|Aug 1, 2006|\n|''Source:''|http://www.tiddlystyles.com|\n|''Author:''|ClintChecketts (checketts (at) gmail (dot) com)|\n|''License:''|[[BSD open source license]]|\n|''~CoreVersion:''|2.1.0|\n|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|\n***/\n\n//{{{\nversion.extensions.select = {major: 0, minor: 1, revision: 0, date: new Date(2006,8,8)};\nconfig.macros.select = {};\n\nconfig.macros.select.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n parents = [];\n var parentTiddlers = store.getTaggedTiddlers(params[0]);\n for(var t=0; t<parentTiddlers.length; t++){\n parents.push({name: parentTiddlers[t].title, caption: store.getValue(parentTiddlers[t],params[1])});\n }\n var selector = createTiddlyDropDown(place,null,parents,store.getValue(tiddler.title,params[0]));\n selector.setAttribute("edit",params[0]);\n}\n\n\nversion.extensions.showSelected = {major: 0, minor: 1, revision: 0, date: new Date(2006,8,8)};\nconfig.macros.showSelected = {};\nconfig.macros.showSelected.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n var selectedRef = createTiddlyElement(place,"span",null,null,store.getValue(store.getTiddler(store.getValue(tiddler,params[0])),params[1]));\n}\n\n//}}}\n\n// //Extending this for fun\n\n//{{{\nfunction createTiddlyDropDown(place,onchange,options,defaultValue)\n{\n var sel = createTiddlyElement(place,"select");\n sel.onchange = onchange;\n for(var t=0; t<options.length; t++)\n {\n var e = createTiddlyElement(sel,"option",null,null,options[t].caption);\n e.value = options[t].name;\n if (options[t].name == defaultValue) e.selected = true;\n }\n return sel;\n}\n//}}}
//{{{\nversion.extensions.quoteList = {major: 0, minor: 1, revision: 0, date: new Date(2006,8,8)};\nconfig.macros.quoteList = {};\nconfig.macros.quoteList.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n var quotes = store.getTiddlersWithField("source",tiddler.title);\n for(var t=0; t<quotes.length; t++){\n var aQuote = createTiddlyElement(place,"div","inline"+quotes[t].title,"aQuote");\n var html = story.getTemplateForTiddler(quotes[t].title,"QuoteViewTemplate",quotes[t]);\n aQuote.setAttribute("tiddler",quotes[t].title);\n aQuote.innerHTML = html;\n applyHtmlMacros(aQuote,quotes[t]);\n }\n}\n//}}}
<<search>><<closeAll>><<slider chkSliderQuoteAddPanel QuoteAddPanel 'New Quote ยป' 'Quick add form for quotes'>><<permaview>><<newTiddler>><<newJournal 'DD MMM YYYY'>><<upload http://checkettsweb.com/tw/store.php beta.html backups >><<slider chkSliderOptionsPanel OptionsPanel 'options ยป' 'Change TiddlyWiki advanced options'>><<saveChanges>>
using TiddlyWiki <<version>>
MetaQuotes (version 0.7)
<div class='toolbar' macro='toolbar +saveTiddler -cancelTiddler deleteTiddler'></div>\n<div>Source Name: <div class='editor' macro='edit name readonly'></div></div>\n\n<div style="display:snone;">\n<div class='editor' macro='edit text'>\n<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div></div>\n\n<div style="display:none">Edit: <span macro='edit EditTemplate SourceEditTemplate'></span></div>\n<div style="display:none">View: <span macro='edit ViewTemplate SourceViewTemplate'></span></div>
<div class='toolbar' macro='toolbar closeTiddler closeOthers +editTiddler permalink references jump'></div>\n\n<div class='title' macro='view name'></div> (source id: <span macro='view title'></span>)\n<span macro='newTiddler label:"Add a new quote" autoNamePrefix:q tag:Quote template:QuoteEditTemplate'></span>\n\n<div class='quotes' macro='quoteList'></div>
.authorName{\n font-style: italic;\n margin-left: 2em;\n}\n\n\n.aQuote .toolbar{display:none;}\n.aQuote .toolbar.inlinetoolbar{display:block;}\n.aQuote .quoteBar{font-size: .8em;}
This tiddler's Meta Values are system settings that are saved with the TW file instead of cookies.
config.macros.view.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n if((tiddler instanceof Tiddler) && params[0] && ((tiddler[params[0]] != undefined) || (store.getValue(tiddler,params[0]) != undefined) ))\n {\n switch(params[1])\n {\n case undefined:\n highlightify(store.getValue(tiddler,params[0]),place,highlightHack);\n break;\n case "link":\n createTiddlyLink(place,tiddler[params[0]],true);\n break;\n case "wikified":\n wikify(tiddler[params[0]],place,highlightHack,tiddler);\n break;\n case "date":\n if(params[2])\n createTiddlyText(place,tiddler[params[0]].formatString(params[2]));\n else\n createTiddlyText(place,store.getValue(tiddler,params[0]));\n break;\n }\nplace.setAttribute("view",params[0]);\n }\n}
// //Submitted by Saq\n\n//{{{\n\nTiddlyWiki.prototype.getTiddlersWithField = function (field,fieldValue)\n{\n var results= [];\n this.forEachTiddler(function(title,tiddler){\n var fieldResult = store.getValue(tiddler,field);\n if (fieldResult!=undefined)\n {if(fieldValue == undefined || fieldValue == fieldResult)\n results.push(tiddler);}\n });\n results.sort(); // add more sorting options?\n return results;\n}\n\n//}}}\n\n
/***\n<<tiddler UploadPluginDoc>>\n!Code\n***/\n//{{{\nversion.extensions.UploadPlugin = {\n major: 3, minor: 3, revision: 3, \n date: new Date(2006,6,30),\n type: 'macro',\n source: 'http://tiddlywiki.bidix.info/#UploadPlugin',\n docs: 'http://tiddlywiki.bidix.info/#UploadPluginDoc'\n};\n//}}}\n\n////+++!![config.lib.file]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.file) config.lib.file= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\nconfig.lib.file.dirname = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(0, lastpos);\n } else {\n return filePath.substring(0, filePath.lastIndexOf("\s\s"));\n }\n};\nconfig.lib.file.basename = function (filePath) {\n var lastpos;\n if ((lastpos = filePath.lastIndexOf("#")) != -1) \n filePath = filePath.substring(0, lastpos);\n if ((lastpos = filePath.lastIndexOf("/")) != -1) {\n return filePath.substring(lastpos + 1);\n } else\n return filePath.substring(filePath.lastIndexOf("\s\s")+1);\n};\nwindow.basename = function() {return "@@deprecated@@";};\n//}}}\n////===\n\n////+++!![config.lib.log]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.log) config.lib.log= {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\nconfig.lib.Log = function(tiddlerTitle, logHeader) {\n if (version.major < 2)\n this.tiddler = store.tiddlers[tiddlerTitle];\n else\n this.tiddler = store.getTiddler(tiddlerTitle);\n if (!this.tiddler) {\n this.tiddler = new Tiddler();\n this.tiddler.title = tiddlerTitle;\n this.tiddler.text = "| !date | !user | !location |" + logHeader;\n this.tiddler.created = new Date();\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[tiddlerTitle] = this.tiddler;\n else\n store.addTiddler(this.tiddler);\n }\n return this;\n};\n\nconfig.lib.Log.prototype.newLine = function (line) {\n var now = new Date();\n var newText = "| ";\n newText += now.getDate()+"/"+(now.getMonth()+1)+"/"+now.getFullYear() + " ";\n newText += now.getHours()+":"+now.getMinutes()+":"+now.getSeconds()+" | ";\n newText += config.options.txtUserName + " | ";\n var location = document.location.toString();\n var filename = config.lib.file.basename(location);\n if (!filename) filename = '/';\n newText += "[["+filename+"|"+location + "]] |";\n this.tiddler.text = this.tiddler.text + "\sn" + newText;\n this.addToLine(line);\n};\n\nconfig.lib.Log.prototype.addToLine = function (text) {\n this.tiddler.text = this.tiddler.text + text;\n this.tiddler.modifier = config.options.txtUserName;\n this.tiddler.modified = new Date();\n if (version.major < 2)\n store.tiddlers[this.tiddler.tittle] = this.tiddler;\n else {\n store.addTiddler(this.tiddler);\n story.refreshTiddler(this.tiddler.title);\n store.notify(this.tiddler.title, true);\n }\n if (version.major < 2)\n store.notifyAll(); \n};\n//}}}\n////===\n\n////+++!![config.lib.options]\n\n//{{{\nif (!config.lib) config.lib = {};\nif (!config.lib.options) config.lib.options = {\n author: 'BidiX',\n version: {major: 0, minor: 1, revision: 0}, \n date: new Date(2006,3,9)\n};\n\nconfig.lib.options.init = function (name, defaultValue) {\n if (!config.options[name]) {\n config.options[name] = defaultValue;\n saveOptionCookie(name);\n }\n};\n//}}}\n////===\n\n////+++!![PasswordTweak]\n\n//{{{\nversion.extensions.PasswordTweak = {\n major: 1, minor: 0, revision: 2, date: new Date(2006,3,11),\n type: 'tweak',\n source: 'http://tiddlywiki.bidix.info/#PasswordTweak'\n};\n//}}}\n/***\n!!config.macros.option\n***/\n//{{{\nconfig.macros.option.passwordCheckboxLabel = "Save this password on this computer";\nconfig.macros.option.passwordType = "password"; // password | text\n\nconfig.macros.option.onChangeOption = function(e)\n{\n var opt = this.getAttribute("option");\n var elementType,valueField;\n if(opt) {\n switch(opt.substr(0,3)) {\n case "txt":\n elementType = "input";\n valueField = "value";\n break;\n case "pas":\n elementType = "input";\n valueField = "value";\n break;\n case "chk":\n elementType = "input";\n valueField = "checked";\n break;\n }\n config.options[opt] = this[valueField];\n saveOptionCookie(opt);\n var nodes = document.getElementsByTagName(elementType);\n for(var t=0; t<nodes.length; t++) {\n var optNode = nodes[t].getAttribute("option");\n if (opt == optNode) \n nodes[t][valueField] = this[valueField];\n }\n }\n return(true);\n};\n\nconfig.macros.option.handler = function(place,macroName,params)\n{\n var opt = params[0];\n var size = 15;\n if (params[1])\n size = params[1];\n if(config.options[opt] === undefined) {\n return;}\n var c;\n switch(opt.substr(0,3)) {\n case "txt":\n c = document.createElement("input");\n c.onkeyup = this.onChangeOption;\n c.setAttribute ("option",opt);\n c.size = size;\n c.value = config.options[opt];\n place.appendChild(c);\n break;\n case "pas":\n // input password\n c = document.createElement ("input");\n c.setAttribute("type",config.macros.option.passwordType);\n c.onkeyup = this.onChangeOption;\n c.setAttribute("option",opt);\n c.size = size;\n c.value = config.options[opt];\n place.appendChild(c);\n // checkbox link with this password "save this password on this computer"\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option","chk"+opt);\n place.appendChild(c);\n c.checked = config.options["chk"+opt];\n // text savePasswordCheckboxLabel\n place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));\n break;\n case "chk":\n c = document.createElement("input");\n c.setAttribute("type","checkbox");\n c.onclick = this.onChangeOption;\n c.setAttribute("option",opt);\n place.appendChild(c);\n c.checked = config.options[opt];\n break;\n }\n};\n//}}}\n/***\n!! Option cookie stuff\n***/\n//{{{\nwindow.loadOptionsCookie_orig_PasswordTweak = window.loadOptionsCookie;\nwindow.loadOptionsCookie = function()\n{\n var cookies = document.cookie.split(";");\n for(var c=0; c<cookies.length; c++) {\n var p = cookies[c].indexOf("=");\n if(p != -1) {\n var name = cookies[c].substr(0,p).trim();\n var value = cookies[c].substr(p+1).trim();\n switch(name.substr(0,3)) {\n case "txt":\n config.options[name] = unescape(value);\n break;\n case "pas":\n config.options[name] = unescape(value);\n break;\n case "chk":\n config.options[name] = value == "true";\n break;\n }\n }\n }\n};\n\nwindow.saveOptionCookie_orig_PasswordTweak = window.saveOptionCookie;\nwindow.saveOptionCookie = function(name)\n{\n var c = name + "=";\n switch(name.substr(0,3)) {\n case "txt":\n c += escape(config.options[name].toString());\n break;\n case "chk":\n c += config.options[name] ? "true" : "false";\n // is there an option link with this chk ?\n if (config.options[name.substr(3)]) {\n saveOptionCookie(name.substr(3));\n }\n break;\n case "pas":\n if (config.options["chk"+name]) {\n c += escape(config.options[name].toString());\n } else {\n c += "";\n }\n break;\n }\n c += "; expires=Fri, 1 Jan 2038 12:00:00 UTC; path=/";\n document.cookie = c;\n};\n//}}}\n/***\n!! Initializations\n***/\n//{{{\n// define config.options.pasPassword\nif (!config.options.pasPassword) {\n config.options.pasPassword = 'defaultPassword';\n window.saveOptionCookie('pasPassword');\n}\n// since loadCookies is first called befor password definition\n// we need to reload cookies\nwindow.loadOptionsCookie();\n//}}}\n////===\n\n////+++!![config.macros.upload]\n\n//{{{\nconfig.macros.upload = {\n accessKey: "U",\n formName: "UploadPlugin",\n contentType: "text/html;charset=UTF-8",\n defaultStoreScript: "store.php"\n};\n\n// only this two configs need to be translated\nconfig.macros.upload.messages = {\n aboutToUpload: "About to upload TiddlyWiki to %0",\n errorDownloading: "Error downloading",\n errorUploadingContent: "Error uploading content",\n fileNotFound: "file to upload not found",\n fileNotUploaded: "File %0 NOT uploaded",\n mainFileUploaded: "Main TiddlyWiki file uploaded to %0",\n urlParamMissing: "url param missing",\n rssFileNotUploaded: "RssFile %0 NOT uploaded",\n rssFileUploaded: "Rss File uploaded to %0"\n};\n\nconfig.macros.upload.label = {\n promptOption: "Save and Upload this TiddlyWiki with UploadOptions",\n promptParamMacro: "Save and Upload this TiddlyWiki in %0",\n saveLabel: "save to web", \n saveToDisk: "save to disk",\n uploadLabel: "upload" \n};\n\nconfig.macros.upload.handler = function(place,macroName,params){\n // parameters initialization\n var storeUrl = params[0];\n var toFilename = params[1];\n var backupDir = params[2];\n var uploadDir = params[3];\n var username = params[4];\n var password; // for security reason no password as macro parameter\n var label;\n if (document.location.toString().substr(0,4) == "http")\n label = this.label.saveLabel;\n else\n label = this.label.uploadLabel;\n var prompt;\n if (storeUrl) {\n prompt = this.label.promptParamMacro.toString().format([this.dirname(storeUrl)]);\n }\n else {\n prompt = this.label.promptOption;\n }\n createTiddlyButton(place, label, prompt, \n function () {\n config.macros.upload.upload(storeUrl, toFilename, uploadDir, backupDir, username, password); \n return false;}, \n null, null, this.accessKey);\n};\nconfig.macros.upload.UploadLog = function() {\n return new config.lib.Log('UploadLog', " !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |" );\n};\nconfig.macros.upload.UploadLog.prototype = config.lib.Log.prototype;\nconfig.macros.upload.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir, backupDir) {\n var line = " [[" + config.lib.file.basename(storeUrl) + "|" + storeUrl + "]] | ";\n line += uploadDir + " | " + toFilename + " | " + backupDir + " |";\n this.newLine(line);\n};\nconfig.macros.upload.UploadLog.prototype.endUpload = function() {\n this.addToLine(" Ok |");\n};\nconfig.macros.upload.basename = config.lib.file.basename;\nconfig.macros.upload.dirname = config.lib.file.dirname;\nconfig.macros.upload.upload = function(storeUrl, toFilename, uploadDir, backupDir, username, password)\n{\n // parameters initialization\n storeUrl = (storeUrl ? storeUrl : config.options.txtUploadStoreUrl);\n toFilename = (toFilename ? toFilename : config.options.txtUploadFilename);\n backupDir = (backupDir ? backupDir : config.options.txtUploadBackupDir);\n uploadDir = (uploadDir ? uploadDir : config.options.txtUploadDir);\n username = (username ? username : config.options.txtUploadUserName);\n password = config.options.pasUploadPassword; // for security reason no password as macro parameter\n if (storeUrl === '') {\n config.macros.upload.defaultStoreScript;\n }\n if (config.lib.file.dirname(storeUrl) === '') {\n storeUrl = config.lib.file.dirname(document.location.toString())+'/'+storeUrl;\n }\n if (toFilename === '') {\n toFilename = config.lib.file.basename(document.location.toString());\n }\n\n clearMessage();\n // only for forcing the message to display\n if (version.major < 2)\n store.notifyAll();\n if (!storeUrl) {\n alert(config.macros.upload.messages.urlParamMissing);\n return;\n }\n \n var log = new this.UploadLog();\n log.startUpload(storeUrl, toFilename, uploadDir, backupDir);\n if (document.location.toString().substr(0,5) == "file:") {\n saveChanges();\n }\n displayMessage(config.macros.upload.messages.aboutToUpload.format([this.dirname(storeUrl)]), this.dirname(storeUrl));\n this.uploadChanges(storeUrl, toFilename, uploadDir, backupDir, username, password);\n if(config.options.chkGenerateAnRssFeed) {\n //var rssContent = convertUnicodeToUTF8(generateRss());\n var rssContent = generateRss();\n var rssPath = toFilename.substr(0,toFilename.lastIndexOf(".")) + ".xml";\n this.uploadContent(rssContent, storeUrl, rssPath, uploadDir, '', username, password, \n function (responseText) {\n if (responseText.substring(0,1) != '0') {\n displayMessage(config.macros.upload.messages.rssFileNotUploaded.format([rssPath]));\n }\n else {\n if (uploadDir) {\n rssPath = uploadDir + "/" + config.macros.upload.basename(rssPath);\n } else {\n rssPath = config.macros.upload.basename(rssPath);\n }\n displayMessage(config.macros.upload.messages.rssFileUploaded.format(\n [config.macros.upload.dirname(storeUrl)+"/"+rssPath]), config.macros.upload.dirname(storeUrl)+"/"+rssPath);\n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n });\n }\n return;\n};\n\nconfig.macros.upload.uploadChanges = function(storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var original;\n if (document.location.toString().substr(0,4) == "http") {\n original = this.download(storeUrl, toFilename, uploadDir, backupDir, username, password);\n return;\n }\n else {\n // standard way : Local file\n \n original = loadFile(getLocalPath(document.location.toString()));\n if(window.Components) {\n // it's a mozilla browser\n try {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n var converter = Components.classes["@mozilla.org/intl/scriptableunicodeconverter"]\n .createInstance(Components.interfaces.nsIScriptableUnicodeConverter);\n converter.charset = "UTF-8";\n original = converter.ConvertToUnicode(original);\n }\n catch(e) {\n }\n }\n }\n //DEBUG alert(original);\n this.uploadChangesFrom(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password);\n};\n\nconfig.macros.upload.uploadChangesFrom = function(original, storeUrl, toFilename, uploadDir, backupDir, \n username, password) {\n var startSaveArea = '<div id="' + 'storeArea">'; // Split up into two so that indexOf() of this source doesn't find it\n var endSaveArea = '</d' + 'iv>';\n // Locate the storeArea div's\n var posOpeningDiv = original.indexOf(startSaveArea);\n var posClosingDiv = original.lastIndexOf(endSaveArea);\n if((posOpeningDiv == -1) || (posClosingDiv == -1))\n {\n alert(config.messages.invalidFileError.format([document.location.toString()]));\n return;\n }\n var revised = original.substr(0,posOpeningDiv + startSaveArea.length) + \n allTiddlersAsHtml() + "\sn\st\st" +\n original.substr(posClosingDiv);\n var newSiteTitle;\n if(version.major < 2){\n newSiteTitle = (getElementText("siteTitle") + " - " + getElementText("siteSubtitle")).htmlEncode();\n } else {\n newSiteTitle = (wikifyPlain ("SiteTitle") + " - " + wikifyPlain ("SiteSubtitle")).htmlEncode();\n }\n revised = revised.replace(new RegExp("<title>[^<]*</title>", "im"),"<title>"+ newSiteTitle +"</title>");\n var response = this.uploadContent(revised, storeUrl, toFilename, uploadDir, backupDir, \n username, password, function (responseText) {\n if (responseText.substring(0,1) != '0') {\n alert(responseText);\n displayMessage(config.macros.upload.messages.fileNotUploaded.format([getLocalPath(document.location.toString())]));\n }\n else {\n if (uploadDir !== '') {\n toFilename = uploadDir + "/" + config.macros.upload.basename(toFilename);\n } else {\n toFilename = config.macros.upload.basename(toFilename);\n }\n displayMessage(config.macros.upload.messages.mainFileUploaded.format(\n [config.macros.upload.dirname(storeUrl)+"/"+toFilename]), config.macros.upload.dirname(storeUrl)+"/"+toFilename);\n var log = new config.macros.upload.UploadLog();\n log.endUpload();\n store.setDirty(false);\n }\n // for debugging store.php uncomment last line\n //DEBUG alert(responseText);\n }\n );\n};\n\nconfig.macros.upload.uploadContent = function(content, storeUrl, toFilename, uploadDir, backupDir, \n username, password, callbackFn) {\n var boundary = "---------------------------"+"AaB03x"; \n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n if (window.netscape){\n try {\n if (document.location.toString().substr(0,4) != "http") {\n netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead');}\n }\n catch (e) { }\n } \n //DEBUG alert("user["+config.options.txtUploadUserName+"] password[" + config.options.pasUploadPassword + "]");\n // compose headers data\n var sheader = "";\n sheader += "--" + boundary + "\sr\snContent-disposition: form-data; name=\s"";\n sheader += config.macros.upload.formName +"\s"\sr\sn\sr\sn";\n sheader += "backupDir="+backupDir\n +";user=" + username \n +";password=" + password\n +";uploaddir=" + uploadDir\n + ";;\sr\sn"; \n sheader += "\sr\sn" + "--" + boundary + "\sr\sn";\n sheader += "Content-disposition: form-data; name=\s"userfile\s"; filename=\s""+toFilename+"\s"\sr\sn";\n sheader += "Content-Type: " + config.macros.upload.contentType + "\sr\sn";\n sheader += "Content-Length: " + content.length + "\sr\sn\sr\sn";\n // compose trailer data\n var strailer = new String();\n strailer = "\sr\sn--" + boundary + "--\sr\sn";\n var data;\n data = sheader + content + strailer;\n //request.open("POST", storeUrl, true, username, password);\n request.open("POST", storeUrl, true);\n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if (request.status == 200)\n callbackFn(request.responseText);\n else\n alert(config.macros.upload.messages.errorUploadingContent);\n }\n };\n request.setRequestHeader("Content-Length",data.length);\n request.setRequestHeader("Content-Type","multipart/form-data; boundary="+boundary);\n request.send(data); \n};\n\n\nconfig.macros.upload.download = function(uploadUrl, uploadToFilename, uploadDir, uploadBackupDir, \n username, password) {\n var request;\n try {\n request = new XMLHttpRequest();\n } \n catch (e) { \n request = new ActiveXObject("Msxml2.XMLHTTP"); \n }\n try {\n if (uploadUrl.substr(0,4) == "http") {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");\n }\n else {\n netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");\n }\n } catch (e) { }\n //request.open("GET", document.location.toString(), true, username, password);\n request.open("GET", document.location.toString(), true);\n request.onreadystatechange = function () {\n if (request.readyState == 4) {\n if(request.status == 200) {\n config.macros.upload.uploadChangesFrom(request.responseText, uploadUrl, \n uploadToFilename, uploadDir, uploadBackupDir, username, password);\n }\n else\n alert(config.macros.upload.messages.errorDownloading.format(\n [document.location.toString()]));\n }\n };\n request.send(null);\n};\n\n//}}}\n////===\n\n////+++!![Initializations]\n\n//{{{\nconfig.lib.options.init('txtUploadStoreUrl','store.php');\nconfig.lib.options.init('txtUploadFilename','');\nconfig.lib.options.init('txtUploadDir','');\nconfig.lib.options.init('txtUploadBackupDir','');\nconfig.lib.options.init('txtUploadUserName',config.options.txtUserName);\nconfig.lib.options.init('pasUploadPassword','');\nconfig.shadowTiddlers.UploadPluginDoc = "[[Full Documentation|http://tiddlywiki.bidix.info/l#UploadPluginDoc ]]\sn"; \n\n\n//}}}\n////===\n\n////+++!![Core Hijacking]\n\n//{{{\nconfig.macros.saveChanges.label_orig_UploadPlugin = config.macros.saveChanges.label;\nconfig.macros.saveChanges.label = config.macros.upload.label.saveToDisk;\n\nconfig.macros.saveChanges.handler_orig_UploadPlugin = config.macros.saveChanges.handler;\n\nconfig.macros.saveChanges.handler = function(place)\n{\n if ((!readOnly) && (document.location.toString().substr(0,4) != "http"))\n createTiddlyButton(place,this.label,this.prompt,this.onClick,null,null,this.accessKey);\n}\n\n//}}}\n////===
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |\n| 15/8/2006 15:37:9 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 16/8/2006 21:52:39 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 16/8/2006 21:55:44 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 16/8/2006 21:57:17 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 16/8/2006 22:1:50 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 16/8/2006 22:2:43 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 16/8/2006 22:4:8 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 16/8/2006 22:5:14 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 16/8/2006 22:9:26 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 16/8/2006 22:11:20 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 16/8/2006 22:13:31 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 16/8/2006 22:14:37 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 10:10:1 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 10:14:50 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 10:15:40 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 10:17:3 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 10:18:47 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 10:20:19 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 10:24:51 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 10:28:13 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 10:29:32 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 10:30:16 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 10:31:5 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 13:36:39 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 14:10:58 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 15:7:36 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 15:21:3 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 18/8/2006 15:28:48 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 23/10/2006 21:20:34 | ClintChecketts | [[metaquotes.html|file:///C:/Documents%20and%20Settings/Clint/Desktop/metaquotes.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 24/10/2006 20:24:52 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups | Ok |\n| 24/10/2006 20:47:53 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 25/10/2006 6:17:27 | YourName | [[beta.html|file:///home/checketts/Desktop/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 25/10/2006 6:40:7 | YourName | [[beta.html|file:///home/checketts/Desktop/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 25/10/2006 12:19:14 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 25/10/2006 12:35:18 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups | Ok |\n| 25/10/2006 12:36:44 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 25/10/2006 12:37:56 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 25/10/2006 12:42:5 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 25/10/2006 12:42:49 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 25/10/2006 12:43:40 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 25/10/2006 12:44:42 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 25/10/2006 12:45:37 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 25/10/2006 12:47:59 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 25/10/2006 16:52:8 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 25/10/2006 20:58:22 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 25/10/2006 21:3:58 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |\n| 26/10/2006 15:0:22 | YourName | [[beta.html|http://checkettsweb.com/tw/beta.html]] | [[store.php|http://checkettsweb.com/tw/store.php]] | | beta.html | backups |
The almost universal gift everyone can develop is the creation of a pleasant disposition, an even temperament.
Muddy water let stand will clear.
Nothing can be more useful to a man than a determination not to be hurried.
For fast-acting relief, try slowing down.
Be patient. Patience is also preparation. It is the action before the act.
" . . . it is happy for you that you possess the talent of flattering with delicacy. May I ask whether these pleasing attentions proceed from the impulse of the moment, or are the result of previous study?"
The art of resting the mind and the power of dismissing from it all care and worry is probably one of the secrets of our great men.
The distance is nothing; it's only the first step that is difficult.
The great French marshal Lyautey once asked his gardener to plant a tree. The gardener objected that the tree was slow growing and would not reach maturity for one hundred years. The marshal replied, "In that case, there is no time to lose; plant it this afternoon!"
He who can take no interest in what is small will take false interest in what is great.
In the end, it is attention to detail that makes all the difference. It's the center fielder's extra two step to the left, the salesman's memory for names, the lover's phone call, the soldier's clean weapon. It is the thing that separates the winners from the losers, the men from the boys and, very often, the living from the dead.
Knowledge must come through action; you can have no test which is not fanciful, save by trial.
Nothing is more revealing than movement.
A man who dares to waste one hour of time has not discovered the value of life.
I don't think necessity is the mother of invention - invention, in my opinion, arises directly from idleness, possibly also from laziness. To save oneself trouble.
What makes a river so restful to people is that it doesn't have any doubt - it is sure where it is going, and it doesn't want to go anywhere else.
Drive thy business, or it will drive thee.
When you're in an earthquake on a unicycle, juggling chain saws, the only way to survive is to tack down everything you can tack down, so you can deal with what you can't.
Thousands of people have talent. I might as well congratulate you for having eyes in your head. The one and only thing that counts is: Do you have staying power?
We are all, it seems, saving ourselves for the Senior Prom. But many of us forget that somewhere along the way we must learn to dance.
Aim for success, not perfection. Never give up your right to be wrong, because then you will lose the ability to learn new things and move forward with your life. Remember that fear always lurks behind perfectionism. Confronting your fears and allowing yourself the right to be human can, paradoxically, make you a far happier and more productive person.
//{{{\n\nfunction applyHtmlMacros(root,tiddler)\n{\n var e = root.firstChild;\n while(e)\n {\n var nextChild = e.nextSibling;\n if(e.getAttribute)\n {\n var macro = e.getAttribute("macro");\n e.removeAttribute("macro");\n if(macro)\n {\n var params = "";\n var p = macro.indexOf(" ");\n if(p != -1)\n {\n params = macro.substr(p+1);\n macro = macro.substr(0,p);\n }\n invokeMacro(e,macro,params,null,tiddler);\n }\n }\n if(e.hasChildNodes())\n applyHtmlMacros(e,tiddler);\n e = nextChild;\n }\n}\n\n\nversion.extensions.quickAdd = {major: 0, minor: 1, revision: 0, date: new Date(2006,8,8)};\nconfig.macros.quickAdd = {};\nconfig.macros.quickAdd.handler = function(place,macroName,params,wikifier,paramString,tiddler)\n{\n var params = paramString.parseParams("anon",null,true,false,false);\n var autoNamePrefix = getParam(params,"autoNamePrefix",null);\n var editTemplate = getParam(params,"template",null);\n\n//create a container to help save it\n var html = story.getTemplateForTiddler(null,editTemplate,null);\n\n// var quotes = store.getTiddlersWithField("source",tiddler.title);\n// for(var t=0; t<quotes.length; t++){\nvar aQuote = createTiddlyElement(place,"div",null,"aQuote");\naQuote.innerHTML = html;\napplyHtmlMacros(aQuote,null);\n// }\n}\n\n//}}}
''glitch! Ready for Anything''
''kapow!''
''Jane didn't say this!''