Message Area
 
 
HelloThere TiddlyWiki MyTiddlyWikiVariant NewFeatures UsingThisSite ReusingThisSite DownloadSoftware\n\n© [[osmosoft|http://www.osmosoft.com]] 2005\n+2¢ : [[christianhauck|http://www.christianhauck.net]]
LatestAndGreatestNews MigrationPlan
In this version of April 13, 2005: A number of parameters ar now possible in the url for ExternalControl: not only PermaLink (one tiddler e.g. #HelloThere) and PermaView (several Tiddlers e.g. #HelloThere TiddlyWiki ), but also a searchstring (PermaSearch e.g. #?text or #*text ; PermaSearch is not really a good name for that ; #? does not work on my MS IE explorer, but in Firefox), TiddlerGroups (e.g. #_Jeremys Original) or a date ( e.g. #!20050409 ; uses DailyTiddlers functionality). April 10, 2005: the new DateTab is similar to a calendar, it might be good for Blog-like use of TiddlyWiki. DailyTiddlers: a functionality to click on the date in the Timeline Tab and display all tiddlers from that day.
ExternalControl of TiddlyWiki via parameters in the url: not only PermaLink (one tiddler e.g. #HelloThere) and PermaView (several Tiddlers e.g. #HelloThere TiddlyWiki ), but also a searchstring (PermaSearch e.g. #?text or #*text ; PermaSearch is not really a good name for that; #? does not work on my MS IE explorer, but in Firefox), TiddlerGroups (e.g. #_Jeremys Original) or a date ( e.g. #!20050409 ; uses DailyTiddlers functionality).Examples which will open in new windows: http://www.christianhauck.net/html/14300.html#HelloThere%20TiddlyWiki ; http://www.christianhauck.net/html/14300.html#?text ; http://www.christianhauck.net/html/14300.html#*text ; http://www.christianhauck.net/html/14300.html#_Jeremys%20Original ; http://www.christianhauck.net/html/14300.html#!20050409 .
PermaSearch would ne similar to Permalink or PermaView, but instead of understanding the extra text in the url as a TiddlerTitle, it should be used as a search string, and all Tiddlers containing that text should be displayed.
DailyTiddlers: click on the date in the Timeline Tab and display all tiddlers from that day. Also used in the DateTab. In MS IE, unfortunately, the black font function for the text of the DailyTiddlers in the DateTab does not work. In Firefox, it's fine.
the DateTab is similar to a calendar. By year, then by month, all days are shown where tiddlers have been edited. Click on the day to show all these tiddlers. This is the new DailyTiddlers functionality, which, by the way, is also available from the TimelineTab.
Similar to DefaultTiddlers or MainMenu, but generic: Tiddlers (name starts with underscore) which contain names of other tiddlers. When clicked in the groups tab, all tiddlers mentioned in the content of the respective Tiddler are displayed at once. When clicked from the Time Tab (I shortened Timeline to Time) or All Tab, it behaves as usual, and can be editied. Similar also to PermaView, but internally, not als an external url.
Ironically, delaying the start of the search using a timeout makes it faster. Otherwise, with many tiddlers present, the IncrementalSearch starting at keyup of the third letter would delay input of futher letters and slow down the search.
WikiWord EmailMe SiteTitle SiteSubtitle SkeletonInTheCloset WikiWikiWeb TiddlyWikiDev
Somewhat tricky. I'd prefer to adjust it.\n* the new Tab\n* the new function to create the button,\n* the new event handler\n* the new function itself:\n\n!! a new the tab for the TiddlerGroups\n// Groups tab\nfunction refreshTabGroups()\n {\n // Get names and dates of all tiddlers from the store\n var allTiddlers = new Array(); // Will be an array of 2-entry arrays, where entry 0 = name, 1 = date\n var storeNodes = document.getElementById("storeArea").childNodes;\n for (var t = 0; t < storeNodes.length; t++)\n {\n var n = storeNodes[t];\n if(n.id)\n if(n.id.substr(0,6) == "store_") // ChristianHauck from 5 to 6 and added "_" : TiddlerGroups start with underscore(workaround), improve later\n allTiddlers.push(new Array(n.id.substr(5),n.getAttribute("modified")));\n }\n // Sort the tiddlers by name\n allTiddlers.sort(function (a,b) { if(a[0] == b[0]) return(0); else return (a[0] > b[0]) ? +1 : -1; });\n // Delete any existing entries in the 'all' list\n var place = document.getElementById("sidebarContent");\n while(place.firstChild != null)\n place.removeChild(place.firstChild);\n // Output the links: its TiddlerGroupLink not TiddlerLink\n for (t = 0; t < allTiddlers.length; t++)\n {\n createTiddlerGroupLink(place,allTiddlers[t][0],true);\n place.appendChild(document.createElement("br"));\n }\n}\n\n\n!! a new function to create Tiddlergrouplinks\nfunction createTiddlerGroupLink(place,title,includeText)\n{\n var btn;\n var text = includeText ? title : null;\n var subTitle = getTiddlerSubtitle(title);\n var theClass = subTitle ? "tiddlyLinkExisting" : "tiddlyLinkNonExisting";\n if(!subTitle)\n subTitle = title + " doesn't yet exist";\n var btn = createTiddlyButton(place,text,subTitle,onClickTiddlerGroupLink);\n btn.className = theClass;\n btn.setAttribute("TiddlerGroupLink",title);\n return(btn);\n}\n\n\n!! a new event handler for clicking on the TiddlerGroupLink\nfunction onClickTiddlerGroupLink(e)\n{\n if (!e) var e = window.event;\n hideMessage();\n // Get the text of the link\n var title = this.getAttribute("TiddlerGroupLink");\n // Display that tiddler\n restartTiddlerGroup(title);\n}\n\n!! a new function to show all tiddlers in a tiddler group\nfunction restartTiddlerGroup(ThisTiddlerGroup)\n{\n closeAllTiddlers();\n hideMessage();\n refreshAll();\n onClearSearch();\n displayTiddlers(null,getTiddlerText(ThisTiddlerGroup),1,null,null);\n displayMessage(ThisTiddlerGroup);\n searchText.focus();\n}\n\n
in in the style area\n #titleLine \n!!!! change from:\npadding: 5em 1em 1em 1em;\n!!!! change to:\npadding: 1em;
FINISHED. Change the code and add some code\n\n!! in the style area. \n!!!! change from:\n.tiddler {\n padding: 0em 0em 0em 0em;\n}\n!!!! change to:\n.tiddler {\n padding: 0em 0em 0em 0em;\n background-color: #ffffff;\n}\n\n.tiddlerSelected {\n padding: 0em 0em 0em 0em;\n background-color: #f0fcd0;\n}\n\n!! in the Function Area\n!!!! change from:\nfunction selectTiddler(title)\n{\n var e = document.getElementById("toolbar" + title);\n if(e != null)\n e.style.visibility = "visible";\n}\n\n!!!! change to:\nfunction selectTiddler(title)\n{\n // Change the background colour\n var e = document.getElementById("tiddler" + title);\n if(e != null)\n e.className = "tiddlerSelected";\n // Make the toolbar visible\n e = document.getElementById("toolbar" + title);\n if(e != null)\n e.style.visibility = "visible";\n}\n\n!!!! change from\nfunction deselectTiddler(title)\n{\n e = document.getElementById("toolbar" + title);\n if(e != null)\n e.style.visibility = "hidden";\n}\n!!!! change to\nfunction deselectTiddler(title)\n{\n // Change the background colour\n var e = document.getElementById("tiddler" + title);\n if(e != null)\n e.className = "tiddler";\n // Make the toolbar invisible\n e = document.getElementById("toolbar" + title);\n if(e != null)\n e.style.visibility = "hidden";\n}\n
FINISHED, BUT: #_ and #! depend on these functionalities ChMig11 and ChMig12\n\n!! In main(),\n!!! change from:\n var start = getTiddlerText("DefaultTiddlers");\n if(window.location.hash)\n displayTiddlers(null,decodeURI(window.location.hash.substr(1)),1,null,null);\n else if(start)\n displayTiddlers(null,start,1,null,null);\n!!!! change to:\n // check for parameters in the URI\n if(window.location.hash) // different cases for parameters in URI: # #? #* #_ #!\n {\n var theSwitch = decodeURI(window.location.hash.substr(1,1));\n switch(theSwitch)\n {\n case "?": // #? triggers a search of the rest of the URI\n {\n var theSearchText = decodeURI(window.location.hash.substr(2));\n searchTiddlers(decodeURI(window.location.hash.substr(2)),null);\n var text = document.getElementById("searchText");\n text.value = theSearchText;\n break;\n }\n case "*": // #? triggers a search of the rest of the URI; for MS IE explorer which does not accept "?"\n {\n var theSearchText = decodeURI(window.location.hash.substr(2));\n searchTiddlers(decodeURI(window.location.hash.substr(2)),null);\n var text = document.getElementById("searchText");\n text.value = theSearchText;\n break;\n }\n case "!": // #! triggers a diplay of Tiddlers for that day in YYYYMMDD format\n showTiddlersPerDay(decodeURI(window.location.hash.substr(2,8)));\n break;\n case "_": // #_ triggers display of the tiddlers in that TiddlerGroup\n {\n var theTiddlerGroup = decodeURI(window.location.hash.substr(1));\n displayTiddlers(null,getTiddlerText(theTiddlerGroup),1,null,null);\n displayMessage(theTiddlerGroup);\n }\n break;\n default: // # triggers display of the tiddlers whose tiddler titles follow\n displayTiddlers(null,decodeURI(window.location.hash.substr(1)),1,null,null);\n break;\n } // switch\n } // if window location hash\n else displayTiddlers(null,getTiddlerText("DefaultTiddlers"),1,null,null);\n searchText.focus();\n\nnote: The last line \n searchText.focus();\nis actually ChMig05; here is the place where this line has to go
!! add code at the end of function main()\n searchText.focus();\n
FINISHED. Added code at three places:\n* the new button in the body\n* the new event handler\n* and the new function itself \n\n!! In the body, add the button to trigger it (close to the "search" part, but could be anywhere)\n@@color(red):go and get that one line of code by yourself from the source, I have troubles when pasting it here into this tiddler.@@\n\n!! in the scripts part: \n!!! a new event handler for clicking on random\nfunction onRandomTiddler()\n{\n hideMessage(); \n randomTiddler();\n}\n!!! and the new function itself:\n// RandomTiddler\nfunction randomTiddler()\n{\n // Get names and dates of all tiddlers from the store\n var allTiddlers = new Array(); // Will be an array of 2-entry arrays, where entry 0 = name, 1 = date\n var storeNodes = document.getElementById("storeArea").childNodes;\n for (var t = 0; t < storeNodes.length; t++)\n {\n var n = storeNodes[t];\n if(n.id)\n if(n.id.substr(0,5) == "store")\n allTiddlers.push(new Array(n.id.substr(5),n.getAttribute("modified")));\n }\n // find a random tiddler and output it\n var r = Math.round((allTiddlers.length * Math.random()));\n displayTiddler(null,allTiddlers[r][0],0,null,null,null);\n}\n\n
change code\nIn the body, embed the onSearch in a setTimeout as follows:\n onKeyUp="setTimeout('onSearch()',1500)"\n
My email address is jeremy (at) osmosoft (dot) com
TiddlyWiki
One of the neatest features of TiddlyWiki is that it is entirely self-contained in a single HTML file. It contains the actual hypertext document, and the JavaScript, CascadingStyleSheets and HTML necessary to both view and edit the document. This means that it is trivial to host a TiddlyWiki on a website, or to distribute one by email. And anyone with a reasonably recent web browser will be able to read and edit it.
MicroContent being a fashionable word for self-contained fragments of content that are typically smaller than entire pages. Often MicroContent is presented via some kind of aggregation that reduces the perceptual shock and resource cost of context switching (eg Blogs aggregating several entries onto a page or Flickr presenting photos in an album). This TiddlyWiki aggregates MicroContent items that I call 'tiddlers' into pages that are loaded in one gulp and progressively displayed as the user clicks hypertext links to read them.
When it loads, TiddlyWiki looks for the names of tiddlers to open as a space-separated list after the # in the URL. If there are no tiddlers in the URL it instead loads the tiddlers named in DefaultTiddlers, one of the SpecialTiddlers.
You can divide a tiddler into\n----\nsections by typing four dashes on a line by themselves
IsaoSonobe's TiddlyWikiPod is a nifty utility for Mac OS X that copies the content of a TiddlyWiki to an iPod where it can be read, and links followed, using the touch wheel. Isao has also added the ability to link to songs from the TiddlyWiki text which enables some interesting applications. At the moment, it only works with the older SecondVersion of TiddlyWiki. It can be found at http://www8.ocn.ne.jp/~sonoisa/TiddlyWikiPod/index.html
!Header 1\n!!Header 2\n!!!Header 3\n!!!!Header 4\n!!!!!Header 5\n
start\n#item1\n#item2\n##item2.1\n##item2.2\n##item2.3\n#item3\n##item3.1\n###item3.1.1\n###item3.1.2\n\nend
Putting TiddlyWiki on a USB thumb drive lets you carry around a SelfContained notebook that you can update wherever there's a reasonably modern computer, whether it's a Mac, Linux or a PC. (To be even more independent you can [[install FireFox on the drive|http://www.mozilla.org/support/firefox/tips#oth_usb]] as well).
Edit this tiddler to see how to create BulletPoints\n* Like this one\n* And this one\n** And this second-level one\n* And a final one
FireFox lets you SaveChanges in TiddlyWiki, but you will see up to three dialogs asking your permission for the local file operations. You must allow all three operations for it to work properly. Note that you can select the //Remember this decision// option to avoid seeing the dialogs in future.
TiddlyWiki is published under a BSD OpenSourceLicense that gives you the freedom to use it pretty much however you want, including for commercial purposes, as long as you keep my copyright notice. I'd appreciate a link back to http://www.tiddlywiki.com as well.
I'm Jeremy Ruston, a technologist based in London. I do consultancy work through my company [[Osmosoft|http://www.osmosoft.com]], as well as pursuing some independent projects like TiddlyWiki.
TiddlyWiki is a spare time project that I'm making available under an OpenSourceLicense. Accordingly, there's no warranty on it, and you can only use it at your own risk. I am interested in hearing about new bugs to add to the rather rapidly growing pile; just EmailMe.
Released in September 2004, the [[first version|firstversion.html]] was pretty basic, weighing in at 52KB.
Released in December 2004, the [[second version|secondversion.html]] of TiddlyWiki grew 50% over the FirstVersion to 76KB. It added IncrementalSearch, the ReferencesButton, the PermaLinkButton, PermaView, CloseAll, SmoothScrolling, an ImprovedSidebar, an animation for the CloseButton and a tiny EasterEgg in homage to Macintosh OS X. It also introduced a new SiteDesign.
InternetExplorer on Windows allows you to SaveChanges in TiddlyWiki. It will give you an ActiveX warning, and ask for your permission to proceed each time. It should work from version 4, but I have only extensively tested against version 6. I have found some annoying difficulties with XpServicePack2, but there's always FireFox.