重新使用 TiddlyWiki 2.04 进行个人网站发布
Although this beta is a big improvement over beta 5, we're still not quite there. Oustanding bugs and other issues are tagged <<tag bugs>> while new feature ideas are tagged <<tag featureIdeas>>. I'm aiming for a final release before the end of the year.\n\nThis revision shows off a new ViewTemplate with a new SideLinking tags feature. It shows tags that have been assigned to a tiddler in a column on the upper right. For tiddlers that are also used to tag other tiddlers, the incoming tags are shown in a column on the left (see, for example, [[mechanism]], [[systemTiddlers]], [[planning]]). It's influenced by the TagglyTagging variant of TiddlyWiki first developed by JodyFoo, and pluginised by SimonBaird over at [[MonkeyPirateTiddlyWiki|http://simonbaird.com/mptw/#%5B%5B5.%20Where%20did%20it%20come%20from%3F%5D%5D]].\n\nMost of the changes in the new version of TiddlyWiki are to implement the underlying TemplateMechanism, which allows plugin developers a much finer degree of control over the appearance and behaviour of TiddlyWikis. The new feature has meant adding or updating several of the internal [[mechanisms|mechanism]] of TiddlyWiki:\n* PageTemplateMechanism for controlling the layout of the entire TiddlyWiki page\n* TiddlerTemplateMechanism for controlling how individual tiddlers are displayed in view and edit mode\n* RefreshMechanism for automatically redrawing portions of the page affected by changes to tiddlers\n* WikifierMechanism for converting WikiSyntax text into HTML or text\nFurther features will build on these mechanisms to deliver dynamic theming of TiddlyWikis by orchestrating changes to templates and stylesheets. See TemplateOptions and try changing the default value for ViewTemplate to 'AlternativeViewTemplate'. (Changing the PageTemplate and StyleSheet in this way doesn't work yet).\n\nAs part of the template work, the tiddler toolbar is now based on [[macros]]. Several new [[macros]] have been introduced for use in toolbars and subtitles:\n* Support for tiddler creation dates\n* SimonBaird's CloseOthers macro\n* A new 'jump' macro intended to help navigation\n\nThe changes in this revision are quite deep, and will probably impact most existing macros. There shouldn't be any impact on existing [[Translations]], though.\n\n
There have been some changes to the way that toolbars and commands work, with the introduction of the ToolbarMacro and the CommandMechanism.
In Firefox on the Mac, there seems to be some interaction between the stylesheet and template mechanisms that can cause brief flashes to appear with the wrong styles (for example, on completing editting a tiddler).
Ever since the FirstVersion, TiddlyWiki has used a simple StorageFormat based on HTML DIVs for delivering its content. It looked like this:\n\n{{{\n<div id="storeArea">\n <div id="storeHelloThere"\n modified="200507080016"\n modifier="JeremyRuston"\n tags="welcome about">\n Welcome to TiddlyWiki\n </div>\n...\n</div>\n}}}\n\nIt's simple; just a bunch of DIVs that live within a container called 'storeArea'. There's a blinding problem with it, though, which I managed not to notice for far too long.\n\n//What happens if there's a tiddler called 'Area'?//\n\nAnd the ignoble answer is that TiddlyWiki blithely creates a DIV with the id 'storeArea' to save it. It works just fine until you come to reload the page; HTML throws its hands up in dismay at seeing //two// DIVs with the same ID of 'storeArea'... ''Ouch''.\n\nTo resolve this problem I've slightly adjusted the StorageFormat in this new revision; it'll still read the old format for backwards compatibility, so upgrades should work fine (but, for the first time, downgrades won't work).
Hacking TiddlyWiki requires familiarity with HTML, the W3C DOM, CSS and JavaScript. Here are some useful resources for learning the basics and for reference:\n* [[QuirksMode|http://www.quirksmode.org/]] is an excellent site for understanding the cross-browser differences in CSS and JavaScript\n* the Mozilla JavaScript [[reference|http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference]] and [[guide|http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide]] and the Mozilla [[DOM reference|http://developer.mozilla.org/en/docs/Gecko_DOM_Reference]]\n* [[DHTML Utopia: Modern Web Design|http://www.sitepoint.com/books/dhtml1/]] by Stuart Langridge, a real, paper-based book, but the [[first four chapters|http://www.sitepoint.com/article/dhtml-utopia-modern-web-design]] are available online\n* [[W3Schools|http://www.w3schools.com/]] and [[HtmlHtlp|http://www.htmlhelp.com/reference/html40/]] are good basic references
Several people have suggested adding real, interactive outlining:\n{{{\n*- This one is closed at the moment\n*+ This one is open\n** Meaning that you can see this one\n* This one will default to open\n}}}\nThe tree view is displayed as +/- buttons on the appropriate nodes. The desired behaviour is that the tiddler text is changed to reflect any expandy/collapsy actions (albeit perhaps flagged as a MinorChange). It will need the proposed BookmarkMechanism in order to work.
There are two GoogleGroups for discussions about TiddlyWiki:\n* A TiddlyWiki group for general discussion, bug reports and announcements at http://groups-beta.google.com/group/TiddlyWiki\n* A TiddlyWikiDev group for discussion about TiddlyWiki development at http://groups-beta.google.com/group/TiddlyWikiDev
HelloThere [[Revision 2.0.4]]
See RevisionHistory and EarlyRevisionHistory for more recent changes.\n* Revision 1.2.22, 20 June 2005\n** Corrected premature release date of revision 1.2.21 given in RevisionHistory(!)\n** Fixed ordering of 'search' matches and the MoreTab SpecialTiddlers mode to display ascending order by title\n** Fixed positioning of popup on 'Tag' tab on InternetExplorer\n** Rejigged CSS not to use floated elements, which should avoid some IE bugs\n* Revision 1.2.21, 17 June 2005\n** Added [[Tags]]\n** Improved CSS/JavaScript separation for setting edit box width\n** Fixed problem with saving backslashes (eg, c:\swindows\ssystem32\s)\n** Added SpecialTiddlers to MoreTab\n** Added 'Escape' to clear the search box to KeyboardShortcuts, thanks to ScatterBrain\n** Added automatic selection of the contents of search box when it gets the focus\n** Improved RssFeed - slightly - to include {{{<br/>}}}'s for newlines\n* Revision 1.2.20, 15 June 2005\n** Fixed problem with SaveEmptyTemplate and missing SpecialTiddlers\n** Fixed problem with PrettyLinks in HtmlTables, thanks to LyallPearce\n** Improved ReferencesButton to exclude self-referential links, thanks to AlanHecht\n** Fixed problem with apostrophes in BoldText and side-by-side BlockQuotes, thanks to GrantGongaware\n* Revision 1.2.19, 14 June 2005\n** Fixed embarrassing table display problem in IE\n** Improved tiddler refresh\n* Revision 1.2.18, 12 June 2005\n** Improved search performance by introducing a delay between a key press and doing the search\n** Fixed refresh of display after editing a tiddler (which means that MissingLinks get updated as soon as they are fixed)\n* Revision 1.2.17, 11 June 2005\n** Fixed the FireFox4KbLimitation (thanks to DanielBaird for putting me on the right track)\n** Fixed problem with searching for regular expression characters, thanks to TimBaker\n** Fixed a slightly different problem with saving blank tiddlers\n** Added MoreTab with MissingTiddlers and OrphanTiddlers\n** Added ToggleLinks\n** Improved ReferencesButton\n* Revision 1.2.16, 6 June 2005\n** Fixed problem with blank tiddlers\n** A number of bug-fixes from PhilipHellyer:\n*** Improved URL detection for automatic linking\n*** More intelligent setting of the height of a tiddler edit box\n*** Fixed problem with the search button not responding unless the search text has changed\n* Revision 1.2.15, 6 June 2005\n** Completely rewritten StorageModel\n** Added MissingTab\n** Added StickyTabs that use a cookie to remember your current tab between sessions\n** Fixed problem with @@highlighted text@@, thanks to KamalFarizMahyuddin\n* Revision 1.2.14, 27 May 2005\n** Fixed problem with saving Unicode characters that aren't in the ANSI subset in InternetExplorer. This is particularly helpful when importing text from MicrosoftWord, which tends to replace normal ANSI quotes with fancy 'directional' ones like this one: ’\n** Added warning if TiddlyWiki has been saved using File/Save in the browser, as discussed in SaveUnpredictabilities\n* Revision 1.2.13, 26 May 2005\n** Fixed problem with custom StyleSheet on InternetExplorer (associated with a //Unterminated String Contstant// error)\n** Adjusted size of table text to match main body text\n* Revision 1.2.12, 25 May 2005\n** Added support for MonospacedText\n** Fixed problem with saving backslashes that was introduced in 1.2.10\n** Applied fix for some unwanted screen redraw artefacts (contributed by NathanBower)\n* Revision 1.2.11, 24 May 2005\n** Fixed problem with superfluous square brackets in PermaView and missing ones in PermaLinks\n** Fixed problem with 'ß' being wrongly classified as uppercase for WikiWord purposes\n** Needing further verification, a fix for some InternetExplorer formatting problems with lists, headings and tables\n* Revision 1.2.10, 23 May 2005\n** Added SaveEmptyTemplate option\n* Revision 1.2.9, 17 May 2005\n** Fixed problem with encoding HTML entities in tiddlers (now you can say <div> with impunity)\n** Fixed problem with CustomStyleSheet and Safari\n** Added AutoSave support on deleting a tiddler\n** Added option to GenerateAnRssFeed\n* Revision 1.2.8, 16 May 2005\n** Added option of a CustomStyleSheet\n* Revision 1.2.7, 14 May 2005\n** Removed annoying confirmation alert()'s on a successful save, replaced with a more polished status area including links to the saved files\n** Added options for whether to SaveBackups and to AutoSave every time you edit a tiddler\n* Revision 1.2.6, 6 May 2005\n** Added CSS stylesheet to suppress menu and sidebar when printing\n** Fixed saving to network shares on FireFox on Windows\n** Fixed use of NonWikiWordLinks in DefaultTiddlers and PermaView\n** Fixed problem with clicking more than once on the PermaLinkButton\n** Added EnableAnimations to the InterfaceOptions\n* Revision 1.2.5, 19 April 2005\n** Fixed problem with the search results summary message\n** Fixed problem with clicking on highlighted links\n** Fixed problem with non-ANSI unicode characters in permalinks\n* Revision 1.2.4, 17 April 2005\n** Fixed Control-Enter on IE PC\n** Fixed UTF-8 encoding on SaveChanges\n** Fixed regular expressions to permit basic accented characters in WikiWords\n** Fixed problem with completely blank tiddlers\n** Added set focus on edit tiddler\n* Revision 1.2.3, 15 April 2005\n** Fixed problem with positioning of tiddlers opened from last displayed tiddler\n** Added KeyboardShortcuts\n* Revision 1.2.2, 14 April 2005 \n** No code changes\n* Revision 1.2.1, 14 April 2005\n** Fixed problem with spaces in pathnames on Mac/Unix\n* Revision 1.2.0, 14 April 2005\n** No code changes
See RevisionHistory for the more recent revisions, and EarliestRevisionHistory for older stuff.\n* Revision 1.2.28, 22 July 2005\n** Added warning if there are unsaved changes on unload, thanks to EricShulman\n** Fixed problem where search would cancel editting of tiddlers containing a match\n** 'Bluntened' explicit Unicode characters in source code into JavaScript escapes, to reduce impact of CharacterEncoding issues\n** Resolved issue with HTML encoding in certain RSS fields\n** Added optional tag parameter to {{{newJournal}} macro\n** Added ability to quote macro parameters with [[ ]], useful for ensuring tiddler names get picked up as links\n** Added new method 'formatString' to Date() used for\n*** the newJournal macro\n*** formatting dates in the timeline tab\n*** formatting translateable messages\n** Fixed RSS feed generation issue when SiteUrl is not specified\n* Revision 1.2.27, 20 July 2005\n** Fixed InternetExplorer problem with positioning the popup in the 'tags' tab, thanks to Max\n* Revision 1.2.26, 18 July 2005\n** Added remaining translateable strings\n** Added second parameter to 'tiddler' macro to specify the CSS class for the result\n** Added ToggleLinks feature to AdvancedOptions\n** Fixed PrettyLinks being reflected in the 'references' popup\n* Revision 1.2.25, 15 July 2005\n** Added additional options to the newJournal [[macro|Macros]]\n* Revision 1.2.24, 14 July 2005\n** Fixed problem with empty tiddlers (again), thanks to SteveRumsby for pointing it out first\n** Fixed problem with accidental triggering of PHP processing with '<?' and '?>' string constants\n** Added ShadowTiddlers containing fallback content for key SystemTiddlers like SideBarOptions and SideBarTabs\n** Reverted to loose DOCTYPE to resolve IE issues\n** Added CSS definitions for TabMacro in tiddlers\n* Revision 1.2.23, 13 July 2005\n** Added LiveStyleSheetEditing\n*** Internally, this is based on a new NotificationArchitecture that registers custom handlers to deal with changes to tiddlers\n** Fixed InternetExplorer 2,072 character limit for custom StyleSheet\n** Disabled printing of top line messages like "Main TiddlyWiki file saved as..." and "X tiddlers found..."\n** Added tags as <category> elements to RSS feeds\n** Fixed problem with source formatting appearing in the page title\n** Shaved nearly 14KB off the file size by converting spaces to tabs, thanks to FranckMarcia\n** Support for several SpecialTags for various purposes\n** Added 'Open all' option to tag popups\n** Added 'Add tag' popup for easily adding new tags to a tiddler\n** Minor CSS refinements\n** Added WikiWord support for the Hungarian characters ŐŰőű, thanks to JároliJózsef\n** Various object orientation improvements\n*** Several utility functions transformed into augmented methods on existing JavaScript objects like Array, String and Date\n*** Animation engine converted to object oriented approach\n** Added support for TiddlyWiki extensions via [[Macros]], including [[Sparklines]]\n** Added a machine-readable version string (see [[Macros]])\n** Added CustomisableConfiguration\n** Added NestedStyleSheets\n** Modified StorageFormat in response to the AreaBug\n** Fixed problem with disappearing popups over textareas, thanks to TiagoDionizio\n** Added PrettyLinks for links to tiddlers as well as external links, based on a suggestion by TheWurmOuroBoros\n** Simplified the animation for opening a tiddler to improve performance\n** Fixed peculiarity where SubHeadings started with <h2> instead of <h1>\n** Added WikiWordEscape\n
Consider removing the 'create empty' facility from the consumer edition of TW; it's confusing and unnecessary for end users. Failing that, consider removing the 'systemTiddlers' tag and relying on shadowTiddlers instead...\n<<<\nOne possibility is to borrow the build tools from the Dojo project\n<<<\n
When you first load a new EmptyTemplate, the <title> tag is set to the title of the parent TiddlyWiki, rather than the shadow SiteTitle and SiteSubtitle.
version.extensions.helloWorld = {major: 0, minor: 1, revision: 0};\n\nconfig.macros.helloWorld = {\n text: "Hello"\n};\n\nconfig.macros.helloWorld.handler = function(place,macroName,params)\n{\ncreateTiddlyElement(place,"span",null,null,this.text + " World");\n}
#displayArea {background-color: #ffccff; }\n#mainMenu {border: 1px solid #ffff88; }\n#commandPanel {background-color: #008800; }
config.animFast = 0.12; // Speed for animations (lower == slower)\nconfig.animSlow = 0.01; // Speed for EasterEgg animations\nconfig.views.wikified.toolbarEdit.text = "Edit away, it won't get saved";
Released in September 2004, the [[first version|firstversion.html]] was pretty basic, weighing in at 52KB.
* PoulStaugaard and IvanMetalnikov's at http://poul.staugaard.dk/IeWiki.htm\n* HenrikAastedSorensen's at http://aasted.org/wiki
A new feature for the ThirdVersion of TiddlyWiki is the ability to generate an RssFeed of its content. You can flick it on with a new addition to the InterfaceOptions. If enabled, it automatically saves an RSS 2.0 format file with the last few changed tiddlers in it. It's given the same filename as the TiddlyWiki file but with the ".xml" extension. Like all TiddlyWiki features, it's experimental, and will probably be a bit temperamental in your feedreader until the bugs are ironed out.\n\nNote that you must set the tiddler SiteUrl to be the URL where your TiddlyWiki will be published. (Don't put leading spaces or line breaks before or after the URL).
Several popular GreaseMonkey scripts can cause some or all features of TiddlyWiki to stop working - the default Linkify script seems to be particularly troublesome. There doesn't seem to be a //solid// way to disable GreaseMonkey from within TiddlyWiki (which is technically entirely understandable but does lead to a fairly grim user experience).
I mean hackers in a good sense, obviously.
In Firefox, switch a tiddler to edit mode; summon the 'tags' menu. Without selecting anything from it, choose the 'cancel' item in the toolbar. The tiddler will switch back to normal view mode, but leave the menu hanging.
Welcome to [[TiddlyWiki/Dev]], the [[hackers|Hackers]] guide to inside TiddlyWiki. It will build into the definitive source of information on hacking StyleSheets, [[Macros]], WikifierFormatters and [[Translations]].\n\nMany thanks to ClintChecketts for the "DevFire" theme that he created for this site.
HTML character entities (such as {{{&copy;}}} and {{{&amp;}}}) don't work correctly in the titles of tiddlers (they work fine in tiddler bodies, though).
Should page templates also embody the DefaultTiddlers? The PageTemplate might include something like:\n{{{\n<div macro="story DefaultTiddlers"></div>\n}}}\nPart of the attraction is that it removes another 'magic' tiddler name...
<<<\n<<option chkToggleLinks>> Clicking on links to tiddlers that are already open causes them to close\n<<<\nWith this option enabled, the functionality of the 'jump' toolbar button is broken; it closes the selected tiddler instead of scrolling to it...\n
[[Macros]] let you write tiddlers containing more exotic objects than just text. Also see [[Sparklines]] and SystemTiddlers like SideBarOptions and OptionsPanel\n\nToday's date:\n{{{\n<<today>>\n}}}\nwill result in: <<today>>\n\nTag popup:\n{{{\n<<tag features>>\n}}}\nwill result in <<tag features>>\n\nNew journal entry:\n{{{\n<<newJournal "DD MMM YYYY, hh:mm">>\n}}}\nwill result in the button <<newJournal "DD MMM YYYY, hh:mm">>\nThe first parameter is a template of the following format:\n* DDD - day of week in full (eg, "Monday")\n* DD - day of month, 0DD - adds leading zero\n* MMM - month in full (eg, "July")\n* MM - month number, 0MM - adds leading zero\n* YYYY - full year, YY - two digit year\n* hh - hours\n* mm - minutes\n* ss - seconds\n\nTiddler insertion:\n{{{\n<<tiddler MicroContent>>\n}}}\nwill insert the text of the tiddler MicroContent. //Note that there is no protection at the moment against inadvertantly setting up endless loops//\n<<tiddler MicroContent>>\n\nSlider:\n{{{\n<<slider chkTestSlider OptionsPanel options "Change TiddlyWiki advanced options">>\n}}}\nResults in this button <<slider chkTestSlider OptionsPanel options "Change TiddlyWiki advanced options">>\nThe parameters are:\n* cookie name to be used to save the state of the slider\n* name of the tiddler to include in the slider\n* title text of the slider\n* tooltip text of the slider\n
!Introduction\nHelloThere\nZoomQuiet\n!Overview\n[[是也乎]]\n!TiddlyWiki\nInsideTiddlyWiki\nRoadMap\n!Hacking\nStyleSheets\n[[Macros]]\n[[Translations]]\nWikifierFormatters\n!Resources\n[[Community]]\nBasicSkills\n[[RSS|RssFeed]]\n\n© 2006 [[osmosoft|http://www.osmosoft.com]]\n
It might be useful to introduce new notifications for events such as:\n* Creating a tiddler in the Story column\n* Refreshing a tiddler in the Story column\n* Clicking on a link to a tiddler\n* Opening an external link
The recent change to the PopupMechanism caused a bug whereby tiddlers selected from a popup menu (eg, 'references' on the toolbar) get opened at the top of the StoryColumn. The intended behaviour was that the tiddlers open immediately below the one containing the popup, but now I'm not so sure it wouldn't be better to show it //before// (which would give the appearance that it replaced the previous tiddler).
Opera can be used to SaveChanges, but it's a bit fiddly.\n\n"C:\sDocuments and Settings\syour-name\s.java.policy":\n{{{\ngrant codeBase "file:/c:/tiddlywiki.html" {\n permission java.io.FilePermission "c:\s\stiddlywiki.html", "read,write";\n permission java.io.FilePermission "c:\s\stiddlywiki_backup.html", "read,write";\n};\n}}}\n\n"~/.java.policy":\n{{{\ngrant codeBase "~/Sites/tiddlywiki.com/index.html" {\n permission java.io.FilePermission "~/Sites/tiddlywiki.com/*", "read,write";\n};\n}}}\n\nhttp://java.sun.com/j2se/1.3/docs/guide/security/permissions.html#FilePermission\n\nhttp://java.sun.com/j2se/1.3/docs/guide/security/PolicyFiles.html#DefaultLocs\n\n[[LiveConnect|http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Guide:LiveConnect_Overview:JavaScript_to_Java_Communication]]\n\nThanks to Andrew Gregory for the [[original code|http://my.opera.com/forums/showthread.php?threadid=91372]] to support Opera.
<div class='header' macro='gradient vert #390108 #900'>\n<div class='headerShadow'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n<div class='headerForeground'>\n<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;\n<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n</div>\n<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>\n<div id='sidebar'>\n<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n</div>\n<div id='displayArea'>\n<div id='messageArea'></div>\n<div id='tiddlerDisplay'></div>\n</div>
The PageTemplate tiddler (which is shadowed by the built-in settings) contains the HTML template of almost the entire TiddlyWiki page. By modifying it, the layout of the page can be changed arbitrarily.\n\nWhen TiddlyWiki starts up, the PageTemplate is jammed into the page and then processed by the RefreshMechanism, replacing the contents of specially marked HTML elements with the wikified contents of specified tiddlers. This process also occurs if the PageTemplate is modified while TiddlyWiki is running.\n\nIt's easy to change the PageTemplate. For instance, with a tiddler called 'SideBarHelp', you could add a new 'Help' sidebar like this:\n\n{{{\n...\n<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n<div id='sidebarHelp' refresh='content' tiddler='SideBarHelp'></div>\n<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n...\n}}}\nIf the PageTemplate has an element with the HTML ID {{{tiddlerDisplay}}} it will be used to display the main StoryColumn of tiddlers (if it doesn't exist, it is automatically created).\n\nMessing about with the PageTemplate can easily render TiddlyWiki unusable; the best safety net is to keep backups enabled (with <<option chkSaveBackups>> SaveBackups). Often you'll be able to recover simple by deleting your custom PageTemplate (if necessary create a link to it in any visible tiddler so that you can reach it without the sidebar or menu).
Format blocks of CSS definitions as:\n{{{\n/*{{{*/\ndiv {color: #ff0000;}\n/*}}}*/\n}}}\nIt will be displayed as:\n/*{{{*/\ndiv {color: #ff0000;}\n/*}}}*/
TiddlyWiki could do with a slim-down, and one way would be to strip out certain bits of functionality to make them optional:\n* SaveChanges\n* SaveRSS\n* Gradient\n* Sparklines\n* Animation\n* TableFormatting\nIt might also be helpful to at the same time build-in a plugin importer and management feature.
There are a number of [[Macros]], stylesheets and plugins that have been made available by independent TiddlyWikiHackers too:\n* one_each's [[TiddlyWiki bits|http://webpages.charter.net/one_each/]]\n* ClintChecketts' [[TiddlerWiki|http://checketts.objectis.net/wiki/]]\n* EricShulman's ELS Design site, at http://www.elsdesign.com/tiddlywiki/\n* SteveRumsby's YetAnotherTiddlyWikiAdaptation at http://www.rumsby.org/yatwa/\n* SimonBaird's MonkeyPirateTiddlyWiki at http://homes.jcu.edu.au/~ccscb/mptw/\n* AlanHecht's TiddlyWikiExtensions at http://www.personal.psu.edu/staff/a/c/ach12/tiddlywiki/extensions.htm\n* zRenard's TiddlyWiki StyleSheetRepository at http://www.zrenard.com/tiddlywiki/stylesrepository.php
The objective is to be able to automatically update the display in response to changes in the tiddler store. It is used by the TemplateMechanism.\n\nThe approach is to register refreshDisplay() as a global notification handler in config.notifyTiddlers. (A global notification handler is registered with a 'name' of null, and is called whenever a tiddler changes, regardless of it's title).\n\nrefreshDisplay() uses refreshElements() iterates through the DOM looking for elements with a {{{refresh}}} attribute. It maps those values through an array of named handlers in config.refreshers as follows:\n* refresh="link" means that this element represents a link to a named tiddler. The name of the tiddler is taken from the {{{tiddlyLink}}} attribute of the link\n* refresh="content" means that this element should be refreshed with the rendered contents of a tiddler named in the {{{tiddler}}} attribute. By default, TiddlyWiki will attempt to optimise things by only calling the refresh handler if the underlying tiddler text has changed. You can override this behaviour by specifying a value for the {{{force}}} attribute
//Released on 5th January 2006//\n* New TemplateMechanism, based on a new RefreshMechanism\n** Including recent changes to the way that the TiddlerTemplateMechanism chooses the right template\n* More StyleSheet improvements, thanks to ClintChecketts:\n** Improved documentation of built-in definitions, see StyleSheetLayout and StyleSheetColors\n** Restored stylesheet for printing (//properly//, this time)\n** Improved StyleSheet loading for InternetExplorer\n** Added CSS class 'imageLink' to anchor element of linked images\n** Minor tweaks and improved documentation\n* Switched [[DOCTYPE|http://www.htmlhelp.com/tools/validator/doctype.html]] to HTML 4.01 Strict mode\n** This switch has a big impact on how browsers behave, particularly InternetExplorer, but does generally lead to cleaner HTML/CSS interactions\n* Changed HREF for HTML {{{<A>}}} elements from {{{#}}} to {{{javascript:;}}}\n** Fixes a number of problems with InternetExplorer, and '#' signs appearing on the browser address bar after clicking on commands within TiddlyWiki\n* Added PluginFormatting for CSS blocks, thanks to PaulPetterson and ClintChecketts\n* Fixed problem where overidden shadow tiddlers were being wrongly highlighted\n* Excluded tiddlers tagged "systemConfig" or "excludeMissing" from processing for MissingTiddlers\n* Improved reporting of errors while executing macros\n** The new mechanism reports errors using a red error button. Clicking the button reveals details of the error. For example: <<noSuchMacroName>>\n* Fixed problem with caption rows in [[Tables]], thanks to ClintChecketts\n* Fixed problem with not being able to include '>' within the parameters of a macro, thanks to UdoBorkowski\n* Added ability to escape quotes with \s" and \s' in quoted macro parameters, thanks to UdoBorkowski\n* Added creation date field to tiddlers, thanks to SimonBaird\n** You can add {{{<span macro='view created date DD MMM YYYY'></span>}}} to the ViewTemplate to see the creation date\n** Added an optional parameter to the {{{<<timeline>>}}} macro to specify whether to use the {{{modified}}} or {{{created}}} date fields. (eg, {{{<<timeline created>>}}})\n* Added 'close others' button, inspired by SimonBaird\n* Moved the gradient in the sidebar from the SidebarOptions tiddler into the PageTemplate, thanks to ClintChecketts\n* Added ability to remove an existing tag by reselecting it from the {{{<<tagChooser>>}}} popup\n* Added automatic links to {{{file:}}} urls (for example file:///Users/jeremy), thanks to SimonBaird\n* Added JumpMacro to make it easier to move between currently open tiddlers\n* Added suspendNotifications() and resumeNotifications() APIs for plugins\n* Improved TagsMacro to use <UL>/<LI> tags to format its output and to offer the option of opening the tag itself\n* Added new TaggingMacro to display a list of links to the tiddlers tagged with the current tiddler\n** This is the basis of a simplified version of SimonBaird's TagglyTagging plugin\n* Separated createSlider() into it's own function\n* Added new CommandMechanism and ToolbarMacro\n** Including revised handling of default commands\n* Added a few of EricShulman's system tweaks, including:\n** Added new config.maxEditRows to limit the maximum height of an edit textarea\n** Added format codes ("0hh", "0mm", "0ss") for putting leading zeros on time values\n** Added format code "DDth" for putting a trailing (English) suffix on date numbers (1st, 2nd, 3rd, Nth,...)\n** Added a new checkbox in AdvancedOptions to force confirmation before deleting a tiddler\n* Belatedly fixed problem with crazy textarea widths in InternetExplorer, thanks to TomOtvos\n* Slightly altered zooming animation to avoid animating rectangles larger than the overall window\n* Fixed problem with nested {{{<<slider>>}}} and {{{<<tiddler>}}} macros\n* Added PaulPetterson's htmlEntitiesEncoding formatter that enables html entities like {{{&copy;}}} (&copy;) to be included in TiddlyWiki\n* Added fix to enable gradient fills to work on Safari\n** They still don't work on Opera, though\n* Fixed problem with quote marks in tiddler titles, tags and usernames, thanks to UdoBorkowski\n* Added facility to wikify to plain text rather than HTML DOM\n* Modified OrphanTiddler list to exclude tiddlers tagged with {{{excludeLists}}}\n* Fixed problem with displayMessage() not working before the PageTemplate is loaded\n* Added {{{oddRow}}} and {{{evenRow}}} CSS classes for styling alternate table rows, thanks to ClintChecketts\n* Re-introduced global displayTiddler() and displayTiddlers() functions that use the default StoryColumn\n* Revised code to more consistently use TiddlyWiki.setDirty(), suggested by Marcel\n* Fixed problem with String.prototype.trim(), thanks to ArphenLin\n* Improved encapsulation of "tiddlers" array in TiddlyWiki(), thanks to UdoBorkowski and PaulPetterson\n* Added support for #rgb format colors (as well as #rrggbb) in gradients
//Released on 19th April 2006//\n* Added workaround for Firefox 1.5.0.2 bug with printing {{{<noscript>}}} sections, thanks to ClintChecketts
//Released on 18th April 2006//\n* Fixed problem with extraneous content in {{{<div id='tiddlerDisplay'></div>}}} in a PageTemplate, thanks to KevinKleinfelter\n* Streamlined Story.prototype.setTiddlerTag, thanks to UdoBorkowski\n* Fixed problem with canceling confirmation on overwriting an existing tiddler\n* Fixed problem with saving tiddlers when MinorEdits are enabled\n
Reduce screen clutter by making it possible to rollup the sidelink boxes into the tiddler toolbar.
[[TiddlyWiki/Dev]]'s RSS feed is available [[here|http://www.tiddlywiki.com/dev/index.xml]].
There is now a plugin for Mac OS X Safari to enable it to SaveChanges. To install it, download [[this file|http://www.accela.net/~dankna/tiddlywiki/TiddlyWikiSaverPlugin.plugin.zip]], unzip it and put it in your "Library/Internet Plug-Ins" folder.\nSafari will throw up confirmation questions before allowing the plug-in to save anything.\n\nThe plug-in was originally written by JonathanPaisley and published at http://www.dcs.gla.ac.uk/~jp/tiddlywiki/ and then improved by DanKnapp at http://www.accela.net/~dankna/tiddlywiki/\n\nThere are still some issues with Safari:\n* PermaLinks with Unicode characters in them (like [[this one|http://avm.free.fr/tidlipo.html#AdaptationFran%C3%A7aise]]) don't work properly\n* There's a strange display bug that can leave behind phantom tiddlers after editing (the workaround is to SaveChanges and then use 'refresh' in Safari to reload the page)\n* InterfaceOptions (like your UserName) are not 'sticky' across sessions, related to the way that cookies are handled by Safari for files loaded from 'file://' URLs.\n* Searching doesn't always get triggered correctly after typing in the search box
Saves any pending edits to the current tiddler, and switches it to the default view. It is used with the ToolbarMacro like this:\n{{{\n<<toolbar saveTiddler>>\n}}}
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.
* KamiWiki at http://rakusai.org/kamiwiki/\n* IsaoSonobe's OgreKitWiki which is currently offline
<<list shadowed>>
Firefox uses the same set of cookies for all pages loaded from a {{{http://}}} URL, causing TiddlyWiki preferences to be shared across separate instances.\n\nOn solution might be to pack all preferences into a single cookie that's named with the pathname of the TW so that it's independent of any others.
Chinese Pythonic think log inside TiddlyWiki
ZoomQuiet .org
http://www.zoomquiet.org/
TiddlyWiki StartupOptions are specified in the URL after the '#' sign. The only option available at the moment is to specify the names of a list of tiddlers to be opened on startup:\n{{{\nhttp://www.tiddlywiki.com/#TiddlyWikiAdaptations [[18 December 2005]]\n}}}\nThere are several improvements considered:\n* Indicate any tiddlers that are specified but that do not exist\n* If none of the specifed tiddlers exist, it would make more sense to display the DefaultTiddlers instead\n* Allow for a 'safemode' option whereby no extensions or plugins are loaded\n** Safemode should also offer the option of blasting TW's cookies away\n* Allow a search term to be specified directly and display the matching the tiddlers\n* Allow a tag (or tag expression) to be specified to display a set of tiddlers
A macro that creates a static HTML version of a TiddlyWiki that can be read on really primitive downlevel devices. It:\n* uses a different wikilink wikifier to generate HTML # links to jump between tiddlers\n** the anchors themselves will need to be set in the PageTemplate, presumably?\n** it's readonly, so there's no point in rendering links to non-existent tiddlers\n** it'll need some mechanism to enable macros like slider to stop themselves doing the wrong thing\n* wikifies all tiddlers to an offscreen buffer, it uses innerHTML to read the HTML text\n** (the ordering options might include an override of the content of the DefaultTiddlers and then the rest in alphabetical order, or alphabetical order of tags, or something)\n* puts the html into a special template stored in a tiddler of it's own\n* the template mechanism needs to cope with things like inserting the {{{<title>}}} element as well as the main store area
TiddlyWiki loads its content from plain old HTML DIVs, using CSS definitions to hide them. The format consists of a container DIV with the special ID 'storeArea' (which must be the last DIV in the HTML document).\n\nEach tiddler is stored as a child DIV containing its content in a special escaped format, with HTML attributes as follows:\n\n|!Attribute name |!Value |\n|tiddler |Title of the tiddler |\n|modified |Modification date in YYYYMMDDHHMM format |\n|modifier |User name of the last modifier |\n|tags |Tag list |\n\nThe escaping is standard HTML encoding (which, for example, replaces '>' with '&gt;') with additional substitutions of '\ss' for '\s' and '\sn' for newline.
Earlier versions of TiddlyWiki used a series of hidden DIV tags to store tiddlers (the StorageFormat can be seen by inspecting view/source in your browser). This mechanism was used both for the initial delivery of the content and for transient, working storage. This meant that operations like 'search' involved extensive HTML DOM manipulations to access the content.\n\nRecent versions of TiddlyWiki still use DIV tags to deliver content to the browser, but immediately load the text of all tiddlers into a JavaScript data object model. This makes the content much easier to manipulate, and has enabled efficient implementation of the MissingTiddlers, OrphanTiddlers and ReferencesButton features.
The StoryColumn is the main reading area of TiddlyWiki; the place where new tiddlers are opened. It is rendered as:\n{{{\n<div id='tiddlerDisplay'>\n<!-- contains multiple tiddlers, each looking like this: -->\n<div id='tiddler<title>' class='tiddler selected shadow missing'\n tiddler='<title>' tags='<tags>'>\n <!-- rendered tiddler content goes here -->\n</div>\n</div>\n}}}\n\nSome of the classes are context sensitive:\n* ''selected'' is set for the tiddler under the mouse\n* ''shadow'' is set for tiddlers that are missing but have a shadow value\n* ''missing'' is set for tiddlers that are missing, and don't have a shadow value\n\nThe {{{tags}}} attribute is there so you can write CSS rules that target specific tiddlers by tag:\n{{{\ndiv[tags~="welcome"].viewer {\nbackground-color: #ffccaa;\n}\n\ndiv[tags~="features"].viewer {\nbackground-color: #88aaff;\n}\n}}}\n\nThe individual tiddlers are rendered by the TiddlerTemplateMechanism.\n
Despite some recent major changes to the TiddlyWiki code, there's still several biggish things that I plan to add:\n* Adding templates to control the layout of the page and of individual tiddlers (including the toolbar layout)\n* Adding an extensible tiddler view architecture that as well as supporting the current views (now named 'wikified' and 'editor') will also allow things like HTML views and custom views for things like calendars\n* Improvements to wikification to better cope with nested formatting (like image links)\n* Improvements to the still slightly clunky mechanisms used to refresh parts of the screen when tiddlers are changed or deleted\n* Adding more documentation for CustomStyleSheet, [[Macros]] and TiddlyWikiTranslations\n* Adding standard hooks for splicing in ServerSide saving code\n* Adding support for BidirectionalTagging, and possibly OutlineTagging\n* Improvements to the message panel to make it less intrusive\n* Revising the StorageModel again to move the metadata from attributes into into sub-elements
/***\n!Devfire\nStyle by Clint Checketts (http://www.checkettsweb.com) for TiddlyWiki 2.0\nInspired by the GLP'd Darkfire Wordpress skin.\n\n!Sections in this Tiddler:\n*Generic rules\n*Links styles\n*Header\n*Main menu\n*Sidebar\n**Sidebar options\n**Sidebar tabs\n*Message area\n*Popup\n*Tabs\n*Tiddler display\n**Viewer\n**Editor\n*Misc. rules\n!Generic rules /% ============================================================= %/\n***/\n/*{{{*/\nbody {\nbackground-color: #000;\n}\n/*}}}*/\n/***\n!Link styles /% ============================================================= %/\n***/\n/*{{{*/\na,\na.button,\n#mainMenu a.button,\n#sidebarOptions .sliderPanel a{\n color: #ffbf00;\n border: 0;\n}\n\na:hover,\na.button:hover,\n#mainMenu a.button:hover,\n#sidebarOptions .sliderPanel a:hover\n#sidebarOptions .sliderPanel a:active{\n color: #ff7f00;\n border: 0;\n border-bottom: #ff7f00 1px dashed;\n background: transparent;\n text-decoration: none;\n}\n\n#displayArea .button.highlight{\n color: #ffbf00;\n background: #4c4c4c;\n}\n/*}}}*/\n/***\n!Header styles /% ============================================================= %/\n***/\n/*{{{*/\n.header{\n border-bottom: 2px solid #ffbf00;\n color: #fff;\n}\n\n.headerForeground a {\n color: #fff;\n}\n\n.header a:hover {\n border-bottom: 1px dashed #fff;\n}\n/*}}}*/\n/***\n!Main menu styles /% ============================================================= %/\n***/\n/*{{{*/\n#mainMenu {color: #fff;}\n#mainMenu h1{\n font-size: 1.1em;\n}\n#mainMenu li,#mainMenu ul{\n list-style: none;\n margin: 0;\n padding: 0;\n}\n/*}}}*/\n/***\n!Sidebar styles /% ============================================================= %/\n***/\n/*{{{*/\n#sidebar {\n right: 0;\n color: #fff;\n border: 2px solid #ffbf00;\n border-width: 0 0 2px 2px;\n}\n#sidebarOptions {\n background-color: #4c4c4c;\n padding: 0;\n}\n\n#sidebarOptions a{\n margin: 0;\n color: #ffbf00;\n border: 0;\n}\n#sidebarOptions a:hover {\n color: #4c4c4c;\n background-color: #ffbf00;\n\n}\n\n#sidebarOptions a:active {\n color: #ffbf00;\n background-color: transparent;\n}\n\n#sidebarOptions .sliderPanel {\n background-color: #333;\n margin: 0;\n}\n\n#sidebarTabs {background-color: #4c4c4c;}\n#sidebarTabs .tabSelected {\n padding: 3px 3px;\n cursor: default;\n color: #ffbf00;\n background-color: #666;\n}\n#sidebarTabs .tabUnselected {\n color: #ffbf00;\n background-color: #5f5f5f;\n padding: 0 4px;\n}\n\n#sidebarTabs .tabUnselected:hover,\n#sidebarTabs .tabContents {\n background-color: #666;\n}\n\n.listTitle{color: #FFF;}\n#sidebarTabs .tabContents a{\n color: #ffbf00;\n}\n\n#sidebarTabs .tabContents a:hover{\n color: #ff7f00;\n background: transparent;\n}\n\n#sidebarTabs .txtMoreTab .tabSelected,\n#sidebarTabs .txtMoreTab .tab:hover,\n#sidebarTabs .txtMoreTab .tabContents{\n color: #ffbf00;\n background: #4c4c4c;\n}\n\n#sidebarTabs .txtMoreTab .tabUnselected {\n color: #ffbf00;\n background: #5f5f5f;\n}\n\n.tab.tabSelected, .tab.tabSelected:hover{color: #ffbf00; border: 0; background-color: #4c4c4c;cursor:default;}\n.tab.tabUnselected {background-color: #666;}\n.tab.tabUnselected:hover{color:#ffbf00; border: 0;background-color: #4c4c4c;}\n.tabContents {\n background-color: #4c4c4c;\n border: 0;\n}\n.tabContents .tabContents{background: #666;}\n.tabContents .tabSelected{background: #666;}\n.tabContents .tabUnselected{background: #5f5f5f;}\n.tabContents .tab:hover{background: #666;}\n/*}}}*/\n/***\n!Message area styles /% ============================================================= %/\n***/\n/*{{{*/\n#messageArea {background-color: #666; color: #fff; border: 2px solid #ffbf00;}\n#messageArea a:link, #messageArea a:visited {color: #ffbf00; text-decoration:none;}\n#messageArea a:hover {color: #ff7f00;}\n#messageArea a:active {color: #ff7f00;}\n#messageArea .messageToolbar a{\n border: 1px solid #ffbf00;\n background: #4c4c4c;\n}\n/*}}}*/\n/***\n!Popup styles /% ============================================================= %/\n***/\n/*{{{*/\n#popup {color: #fff; background-color: #4c4c4c; border: 1px solid #ffbf00;}\n#popup a {color: #ffbf00; }\n#popup a:hover { background: transparent; color: #ff7f00; border: 0;}\n#popup hr {color: #ffbf00; background: #ffbf00;}\n/*}}}*/\n/***\n!Tiddler Display styles /% ============================================================= %/\n***/\n/*{{{*/\n.title{color: #fff;}\nh1, h2, h3, h4, h5 {\n color: #fff;\n background-color: transparent;\n border-bottom: 1px solid #333;\n}\n\n.subtitle{\n color: #666;\n}\n\n.viewer {color: #fff; }\n\n.viewer table{background: #666; color: #fff;}\n\n.viewer th {background-color: #996; color: #fff;}\n\n.viewer pre, .viewer code {color: #ddd; background-color: #4c4c4c; border: 1px solid #ffbf00;}\n\n.viewer hr {color: #666;}\n\n.tiddler .button {color: #4c4c4c;}\n.tiddler .button:hover { color: #ffbf00; background-color: #4c4c4c;}\n.tiddler .button:active {color: #ffbf00; background-color: #4c4c4c;}\n\n.toolbar {\n color: #4c4c4c;\n}\n\n.toolbar a.button,\n.editorFooter a{\n border: 0;\n}\n\n.footer {\n color: #ddd;\n}\n\n.selectedTiddler .footer {\n color: #888;\n}\n\n.highlight, .marked {\n color: #000;\n background-color: #ffe72f;\n}\n.editorFooter {\n color: #aaa;\n}\n\n.tab{\n-moz-border-radius-topleft: 3px;\n-moz-border-radius-topright: 3px;\n}\n\n.tagging,\n.tagged{\n background: #4c4c4c;\n border: 1px solid #4c4c4c; \n}\n\n.selected .tagging,\n.selected .tagged{\n background: #000;\n border: 1px solid #ffbf00;\n}\n\n.tagging .listTitle,\n.tagged .listTitle{\n color: #fff;\n}\n\n.tagging .button,\n.tagged .button{\n color: #ffbf00;\n border: 0;\n padding: 0;\n}\n\n.tagging .button:hover,\n.tagged .button:hover{\nbackground: transparent;\n}\n/*}}}*//***\n!Devfire\nStyle by Clint Checketts (http://www.checkettsweb.com) for TiddlyWiki 2.0\nInspired by the GLP'd Darkfire Wordpress skin.\n\n!Sections in this Tiddler:\n*Generic rules\n*Links styles\n*Header\n*Main menu\n*Sidebar\n**Sidebar options\n**Sidebar tabs\n*Message area\n*Popup\n*Tabs\n*Tiddler display\n**Viewer\n**Editor\n*Misc. rules\n!Generic rules /% ============================================================= %/\n***/\n/*{{{*/\nbody {\nbackground-color: #000;\n}\n/*}}}*/\n/***\n!Link styles /% ============================================================= %/\n***/\n/*{{{*/\na,\na.button,\n#mainMenu a.button,\n#sidebarOptions .sliderPanel a{\n color: #ffbf00;\n border: 0;\n}\n\na:hover,\na.button:hover,\n#mainMenu a.button:hover,\n#sidebarOptions .sliderPanel a:hover\n#sidebarOptions .sliderPanel a:active{\n color: #ff7f00;\n border: 0;\n border-bottom: #ff7f00 1px dashed;\n background: transparent;\n text-decoration: none;\n}\n\n#displayArea .button.highlight{\n color: #ffbf00;\n background: #4c4c4c;\n}\n/*}}}*/\n/***\n!Header styles /% ============================================================= %/\n***/\n/*{{{*/\n.header{\n border-bottom: 2px solid #ffbf00;\n color: #fff;\n}\n\n.headerForeground a {\n color: #fff;\n}\n\n.header a:hover {\n border-bottom: 1px dashed #fff;\n}\n/*}}}*/\n/***\n!Main menu styles /% ============================================================= %/\n***/\n/*{{{*/\n#mainMenu {color: #fff;}\n#mainMenu h1{\n font-size: 1.1em;\n}\n#mainMenu li,#mainMenu ul{\n list-style: none;\n margin: 0;\n padding: 0;\n}\n/*}}}*/\n/***\n!Sidebar styles /% ============================================================= %/\n***/\n/*{{{*/\n#sidebar {\n right: 0;\n color: #fff;\n border: 2px solid #ffbf00;\n border-width: 0 0 2px 2px;\n}\n#sidebarOptions {\n background-color: #4c4c4c;\n padding: 0;\n}\n\n#sidebarOptions a{\n margin: 0;\n color: #ffbf00;\n border: 0;\n}\n#sidebarOptions a:hover {\n color: #4c4c4c;\n background-color: #ffbf00;\n\n}\n\n#sidebarOptions a:active {\n color: #ffbf00;\n background-color: transparent;\n}\n\n#sidebarOptions .sliderPanel {\n background-color: #333;\n margin: 0;\n}\n\n#sidebarTabs {background-color: #4c4c4c;}\n#sidebarTabs .tabSelected {\n padding: 3px 3px;\n cursor: default;\n color: #ffbf00;\n background-color: #666;\n}\n#sidebarTabs .tabUnselected {\n color: #ffbf00;\n background-color: #5f5f5f;\n padding: 0 4px;\n}\n\n#sidebarTabs .tabUnselected:hover,\n#sidebarTabs .tabContents {\n background-color: #666;\n}\n\n.listTitle{color: #FFF;}\n#sidebarTabs .tabContents a{\n color: #ffbf00;\n}\n\n#sidebarTabs .tabContents a:hover{\n color: #ff7f00;\n background: transparent;\n}\n\n#sidebarTabs .txtMoreTab .tabSelected,\n#sidebarTabs .txtMoreTab .tab:hover,\n#sidebarTabs .txtMoreTab .tabContents{\n color: #ffbf00;\n background: #4c4c4c;\n}\n\n#sidebarTabs .txtMoreTab .tabUnselected {\n color: #ffbf00;\n background: #5f5f5f;\n}\n\n.tab.tabSelected, .tab.tabSelected:hover{color: #ffbf00; border: 0; background-color: #4c4c4c;cursor:default;}\n.tab.tabUnselected {background-color: #666;}\n.tab.tabUnselected:hover{color:#ffbf00; border: 0;background-color: #4c4c4c;}\n.tabContents {\n background-color: #4c4c4c;\n border: 0;\n}\n.tabContents .tabContents{background: #666;}\n.tabContents .tabSelected{background: #666;}\n.tabContents .tabUnselected{background: #5f5f5f;}\n.tabContents .tab:hover{background: #666;}\n/*}}}*/\n/***\n!Message area styles /% ============================================================= %/\n***/\n/*{{{*/\n#messageArea {background-color: #666; color: #fff; border: 2px solid #ffbf00;}\n#messageArea a:link, #messageArea a:visited {color: #ffbf00; text-decoration:none;}\n#messageArea a:hover {color: #ff7f00;}\n#messageArea a:active {color: #ff7f00;}\n#messageArea .messageToolbar a{\n border: 1px solid #ffbf00;\n background: #4c4c4c;\n}\n/*}}}*/\n/***\n!Popup styles /% ============================================================= %/\n***/\n/*{{{*/\n#popup {color: #fff; background-color: #4c4c4c; border: 1px solid #ffbf00;}\n#popup li.disabled{color: #ffbf00;}\n\n#popup a {color: #ffbf00; }\n#popup a:hover { background: transparent; color: #ff7f00; border: 0;}\n#popup hr {color: #ffbf00; background: #ffbf00;}\n/*}}}*/\n/***\n!Tiddler Display styles /% ============================================================= %/\n***/\n/*{{{*/\n.title{color: #fff;}\nh1, h2, h3, h4, h5 {\n color: #fff;\n background-color: transparent;\n border-bottom: 1px solid #333;\n}\n\n.subtitle{\n color: #666;\n}\n\n.viewer {color: #fff; }\n\n.viewer table{background: #666; color: #fff;}\n\n.viewer th {background-color: #996; color: #fff;}\n\n.viewer pre, .viewer code {color: #ddd; background-color: #4c4c4c; border: 1px solid #ffbf00}\n\n.viewer hr {color: #666;}\n\n.tiddler .button {color: #4c4c4c;}\n.tiddler .button:hover { color: #ffbf00; background-color: #4c4c4c;}\n.tiddler .button:active {color: #ffbf00; background-color: #4c4c4c;}\n\n.toolbar {\n color: #4c4c4c;\n}\n\n.toolbar a.button,\n.editorFooter a{\n border: 0;\n}\n\n.footer {\n color: #ddd;\n}\n\n.selectedTiddler .footer {\n color: #888;\n}\n\n.highlight, .marked {\n color: #000;\n background-color: #ffe72f;\n}\n.editorFooter {\n color: #aaa;\n}\n\n.tab{\n-moz-border-radius-topleft: 3px;\n-moz-border-radius-topright: 3px;\n}\n\n.tagging,\n.tagged{\n background: #4c4c4c;\n border: 1px solid #4c4c4c; \n}\n\n.selected .tagging,\n.selected .tagged{\n background: #000;\n border: 1px solid #ffbf00;\n}\n\n.tagging .listTitle,\n.tagged .listTitle{\n color: #fff;\n}\n\n.tagging .button,\n.tagged .button{\n color: #ffbf00;\n border: 0;\n padding: 0;\n}\n\n.tagging .button:hover,\n.tagged .button:hover{\nbackground: transparent;\n}\n\n.cascade {\n background: #4c4c4c;\n color: #ddd;\n border: 1px solid #ffbf00;\n}\n/*}}}*/
The new SystemConfig feature allows arbitrary JavaScript code to be executed at startup from any tiddler that is tagged with 'systemConfig', one of the new SpecialTags.\n\nFor example, there's an ExampleSystemConfig. If you add the appropriate tag to it, SaveChanges and reload, you'll see how user interface text and other options can be changed.\n\nThe intention is that entire [[Macros]] can be delivered as a single tiddler - I'll add more documentation on the details over the next few days.
A mechanism to enable the template for a tiddler to be chosen based on it's tags.
The TaggingMacro produces a list of links to tiddlers that carry the specified tag. If no tag is specified, it looks for tiddlers tagged with the name of the current tiddler. It looks like this:\n{{{\n<<tagging>>\n<<tagging TiddlerTitle>>\n}}}\nIn HTML, the list is formatted like so:\n{{{\n<ul>\n<li class="listTitle">List title label</li>\n<li><a class="tiddlyLink ..." href="javascript:;" onclick="..."\n refresh="link" tiddlyLink="ExampleOne">ExampleOne</a></li>\n</ul>\n}}}
The TemplateMechanism is really two more or less independent things: the PageTemplateMechanism and the TiddlerTemplateMechanism.\n\nSubsequent updates to this beta will a ThemingMechanism that allows StyleSheet, PageTemplate, TiddlerTemplate and other changes to be orchestrated
This is the ThirdVersion of TiddlyWiki, released in April 2005. The SecondVersion was released in December 2004, and before that the FirstVersion in September 2004.\n\nSee the RevisionHistory for details of minor changes and bug-fixes since the ThirdVersion. See HowToUpgrade an earlier version of TiddlyWiki to the latest revision.
TiddlerTemplates are written in HTML with some custom attributes used to indicate dynamic content. After jamming the HTML into the DOM, it is scanned for {{{macro}}} attributes. The value of the attribute is interpreted as a macro name and parameters (equivalent to text within {{{<<}}} and {{{>>}}} in a normal tiddler). For example:\n\n{{{\n<span macro='view modifier link'></span>\n}}}\n\nAlthough any macro can be used inside TiddlerTemplates, there are several that are especially useful:\n* ViewMacro to display read-only fields\n* EditMacro to display editable fields\n* MessageMacro to display canned localisable messages\n* ToolbarMacro to display a toolbar of commands like 'close' and 'edit'\nThe default tiddler templates are called ViewTemplate and EditTemplate for viewing and editting tiddlers respectively. They are provided as ShadowTiddlers but may be overridden as required.\n\nIt's also possible for plugins to control the templating process by overriding two methods of the {{{Story}}} object that are called whenever a tiddler is displayed or refreshed:\n{{{\nStory.prototype.chooseTemplateForTiddler = function(title,template)\nStory.prototype.getTemplateForTiddler = function(title,template)\n}}}\n\nBoth functions take the following parameters:\n|title |title of new tiddler that is being displayed |\n|template |the name of the tiddler containing the template or one of the constants 1 (DEFAULT_VIEW_TEMPLATE) or 2 (DEFAULT_EDIT_TEMPLATE) |\n\n{{{chooseTemplateForTiddler}}} is used to determine the //name// of the template to be used while {{{getTemplateForTiddler}}} is used to retrieve the //text// of a template once it's name is established.\n
TiddlyWiki allows tiddlers with blank titles to be created; they don't subsequently work correctly, though
The main TiddlyWiki site is at http://www.tiddlywiki.com/\n\nA TiddlyWiki is like a blog because it's divided up into neat little chunks, but it encourages you to read it by hyperlinking rather than sequentially: if you like, a non-linear blog analogue that binds the individual microcontent items into a cohesive whole. I think that TiddlyWiki represents a novel medium for writing, and will promote its own distinctive WritingStyle. This is the ThirdVersion of TiddlyWiki, which adds several NewFeatures. There are also several TiddlyWikiAdaptations by other developers.
SaveChanges doesn't work in Firefox when the pathname to the TiddlyWiki file contains multi-byte Unicode characters such as "新しいフォルダ".
Currently, moving the mouse into a popup menu from a toolbar (eg, from 'references' or 'jump') causes the toolbar to disappear, leaving the popup menu hanging. It doesn't do any harm, but doesn't look great.
WikifierFormatters are plugins that implement individual rules for turning WikiText into HTML.\n\nTiddlyWiki comes with standard WikifierFormatters corresponding to each formatting rule - for example, {{{wikiLink}}}, {{{boldByChar}}}, {{{rule}}}. You can also add your own using standard PluginTechniques.\n\n
These topics discuss the distinct high-level internal components of TiddlyWiki.
These are tiddlers that have special meanings to TiddlyWiki itself, controlling how it works.
是也乎……\n个人口头禅