Welcome to TiddlyWiki created by Jeremy Ruston; Copyright © 2004-2007 Jeremy Ruston, Copyright © 2007-2011 UnaMesa Association
|''URL:''|https://tiddlywiki.abego-software.de|
|''Description:''|UdoBorkowski's Extensions for TiddlyWiki|
|''Author:''|UdoBorkowski|
When you click on the [[download|Download]] button it will download an empty ~TiddlyWiki file. This is version <<version>> of ~TiddlyWiki.
If you want to download a copy of this website (without images), right click [[this link|#]] and select "Save as" to download.
These links may be useful:
* [[Setting up saving]]
* Older ~TiddlyWiki versions in the [[archive|./archive/]]
At it's most basic this macro lists all the tags used in you tiddlywiki as dropdown lists of all the tiddlers which have that tag
For example
{{{
<<allTags>>
}}}
Displays as:
<<allTags>>
This tiddler shows some more complex effects that can be obtained with cunning use of CSS.
You can have special formatting for a specific, named tiddler like this:
{{{
#tiddlerHelloThere .title {
background-color: #99aaee;
}
}}}
(spaces in tiddler title should be substituted with "_", like "Hello There" → "~Hello_There"; "_" – with "__", like "~Hello_There" → "~Hello__There")
Or for the first displayed tiddler:
{{{
div.tiddler:first-child .title {
font-size: 28pt;
}
}}}
Or just for the first line of every tiddler:
{{{
.viewer:first-line {
background-color: #999999;
}
}}}
Or just for the first letter of every tiddler:
{{{
.viewer:first-letter {
float: left;
font-size: 28pt;
font-weight: bold;
}
}}}
Or just for tiddlers tagged with a particular tag (note that this won't work for tags that contain spaces):
{{{
div[tags~="welcome"].tiddler .viewer {
background-color: #ffccaa;
}
div[tags~="features"].tiddler .viewer {
background-color: #88aaff;
}
}}}
If you check this box in the InterfaceOptions, TiddlyWiki will automatically SaveChanges every time you edit a tiddler. In that way there's a lot less chance of you losing any information.
However, if you also have the SaveBackups checkbox ticked, you'll end up with a lot of archived files. You may prefer to select either one or the other.
One of the great strengths of TiddlyWiki is its highly customisable interface. However, while authors need to access the full array of TiddlyWiki features, readers generally benefit from seeing a restricted set of functionality (only things which they can use).
The backstage area helps with this by providing access to authoring functionality that is
* independent of the interface customisations (even if you blast away the contents of your PageTemplate, you can still access the backstage area)
* only available when a TiddlyWiki is editable (typically meaning that it's been opened off of a {{{file://}}} URL)
It appears as a link in the topright corner of the page. Clicking it reveals the backstage toolbar consisting of commands like {{{saveChanges}}} and drop-down tasks like ImportTiddlers, Upgrade, PluginManager and Tweak (which provides access to the new [[options macro]]).
|Style|Formatting|h
|''bold''|{{{''bold''}}} - two single-quotes, not a double-quote|
|//italics//|{{{//italics//}}}|
|''//bold italics//''|{{{''//bold italics//''}}}|
|__underline__|{{{__underline__}}}|
|--strikethrough--|{{{--Strikethrough--}}}|
|super^^script^^|{{{super^^script^^}}}|
|sub~~script~~|{{{sub~~script~~}}}|
|@@Highlight@@|{{{@@Highlight@@}}}|
|{{{plain text}}}|{{{ {{{PlainText No ''Formatting''}}} }}}|
|/%this text will be invisible%/hidden text|{{{/%this text will be invisible%/}}}|
|''URL:''|https://web.archive.org/web/20130801155706/http://tiddlywiki.bidix.info/|
|''Description:''|Repository for ~BidiX's TiddlyWiki Extensions|
|''Author:''|~BidiX|
Community member ~BidiX created an adaptation of the ~TiddlyWiki user interface as an [[iPhone web app|https://web.archive.org/web/20130117085629/https://www.apple.com/webapps/productivity/itwatiddlywikiforiphone.html]]. It can be downloaded [[here|https://web.archive.org/web/20130129032529if_/http://itw.bidix.info/]].
|''URL:''|http://bob.mcelrath.org/plugins.html#tag:systemConfig|
|''Description:''|Bob ~McElrath's Plugins|
|''Author:''|~BobMcElrath|
~TiddlyWiki works in any browser; however, the ability of saving (TW itself and other files) and loading (other files) are nuanced.
Firefox has the best support of saving via browser extensions: TiddlyFox and its successor Timimi make it almost limitless; for extended loading capabilities, you can set {{{security.fileuri.strict_origin_policy}}} setting to {{{false}}}. The ancient versions of Firefox (3.x) can save TW without any manual interaction or extensions or other savers.
Internet Explorer supports saving without manual interaction or other savers thanks to Active X. There's also an [[.hta trick for windows|https://github.com/TiddlyWiki/TiddlyWikiClassic/issues/275]] that's not fully supported out of box.
[[Chrome]], [[Opera]], and other Cromium-based browsers may support {{{--allow-file-access-from-files}}} option for loading files; however, it's presumably more insecure than the option for Firefox mentioned above as it probably allows to load files even to sites from the Internet, so use it only if you know what you're doing.
See also [[TiddlyWiki Browser Compatibility]].
See also the [[TiddlyWiki apps available for smartphones|MobileDevices]].
Please [[let us know|https://groups.google.com/group/TiddlyWikiClassic]] of any additions or corrections.
CamelCase (camel case or camel-case)—also known as medial capitals—is the practice of writing compound words or phrases in which the elements are joined without spaces.
Abandons any pending edits to the current tiddler, and switches it the default view. It is used with the ToolbarMacro like this:
{{{
<<toolbar cancelTiddler>>
}}}
When you upload a TiddlyWiki to a web server, if doesn't load properly, it may be a CharacterEncoding issue.
TiddlyWiki uses Unicode ~UTF-8 encoding and won't load properly if your host is serving it as ~ISO-8859-1. You should be able to check this by loading another page on the server in [[Firefox]] and selecting 'Page Info' on the 'Tools' menu.
If this is the case, it should be reasonably easy to sort out. We recommend that you contact your server host and ask them to serve it in ~UTF-8 mode. If you are more technically hands-on, you may be able to [[solve the issue yourself|http://www.w3.org/International/questions/qa-htaccess-charset]].
See [[Setting up saving]], including savetiddlers, file-backups, Serverside applications, and Hosted Options. If you're interested in using Timimi in Chrome, [[ask the community|https://groups.google.com/g/TiddlyWikiClassic]] (it's possible, but requires some additional steps for now).
For advanced loading options (loading external files), see [[TiddlyWiki Browser Compatibility]].
To close all open tiddlers:
{{{
<<closeAll>>
}}}
Displays as:
<<closeAll>>
Closes all other open tiddlers, except for any that are being editted. It is used with the ToolbarMacro like this:
{{{
<<toolbar closeOthers>>
}}}
Closes the current tiddler, regardless of whether it is being editted. It is used with the ToolbarMacro like this:
{{{
<<toolbar closeTiddler>>
}}}
Text such as computer code that should be displayed without wiki processing and preserving line breaks:
{{{
Some plain text including WikiLinks
}}}
Displays as:
{{{
Some plain text including WikiLinks
}}}
!See Also
[[Suppressing Formatting]]
Background: #fff
Foreground: #000
PrimaryPale: #aef
PrimaryLight: #8ad
PrimaryMid: #38c
PrimaryDark: #026
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
QuaternaryPale: #cf8
QuaternaryLight: #8f1
QuaternaryMid: #4b0
QuaternaryDark: #140
Error: #f88
This tiddler determines the colour scheme used within the TiddlyWiki.
{{{
Background: #e0e3f5
Foreground: #090d1e
PrimaryPale: #b9c2e8
PrimaryLight: #7485d2
PrimaryMid: #384fb1
PrimaryDark: #0c1126
SecondaryPale: #cbe8b9
SecondaryLight: #98d274
SecondaryMid: #67b138
SecondaryDark: #16260c
TertiaryPale: #e8bab9
TertiaryLight: #d27574
TertiaryMid: #b13a38
TertiaryDark: #260c0c
Error: #f88
ColorPaletteParameters: HSL([229|48], [0.5146822107288709],[0.1|0.8208696653333263])
}}}
Background: #000
Foreground: #ddd
~PrimaryPale: #730
~PrimaryLight: #e70
~PrimaryMid: #fb4
~PrimaryDark: #feb
~SecondaryPale: #003
~SecondaryLight: #017
~SecondaryMid: #24b
~SecondaryDark: #7be
~TertiaryPale: #111
~TertiaryLight: #333
~TertiaryMid: #666
~TertiaryDark: #999
~QuaternaryPale:
~QuaternaryLight:
~QuaternaryMid: #3a0
~QuaternaryDark: #2b0
Error: #f44
~TiddlyWiki today is the result of the efforts of dozens of people around the world generously contributing their time and skill, and offering considerable help and support.
The community has several hubs for different activities:
* DiscussionForums on Google Groups
* ~TiddlyWiki code at http://github.com/TiddlyWiki/tiddlywiki
* ~TiddlyWiki issue tracker at https://github.com/TiddlyWiki/tiddlywiki/issues
* [[TiddlyWiki development resources|DeveloperDocumentation]]
The community welcomes [[contributions|Contribute]]
PageTemplate
|>|>|SiteTitle - SiteSubtitle|
|MainMenu|DefaultTiddlers<br><br><br><br>ViewTemplate<br><br>EditTemplate|SideBarOptions|
|~|~|OptionsPanel|
|~|~|AdvancedOptions|
|~|~|<<tiddler [[Configuration##SideBarTabs]]>>|
StyleSheet (see also StyleSheetColors, StyleSheetLayout, and StyleSheetPrint, but don't edit them)
InterfaceOptions
SiteUrl
Extensive StartupParameters to control the startup beahviour of ~TiddlyWiki through specially crafted ~URLs
/%
!SideBarTabs
SideBarTabs
|[[Timeline|TabTimeline]]|[[All|TabAll]]|[[Tags|TabTags]]|>|>|[[More|TabMore]] |
|>|>||[[Missing|TabMoreMissing]]|[[Orphans|TabMoreOrphans]]|[[Shadowed|TabMoreShadowed]]|
!%/
@@margin-left:.5em;<<slider chkContents SideBarTabs "contents »" "show
lists of tiddlers contained in this document">>@@
~TiddlyWiki has an enthusiastic and friendly [[Community]] of people around the world helping to grow and improve it. But there's always more to do and we welcome any offers of assistance. There are many ways that you can help:
* Testing and [[reporting bugs|https://github.com/TiddlyWiki/TiddlyWiki/issues]] against the core code. Clear, easily reproducible bug reports are incredibly useful and help improve the quality of ~TiddlyWiki
* [[Contributing code|https://github.com/TiddlyWiki/TiddlyWiki]]
* Making [[translations|Translations]]
* Improving [[documentation|Documentation]]
!!Inline Styles
Apply CSS properties inline:
{{{
@@color:#4bbbbb;Some random text@@
}}}
Displays as:
@@color:#4bbbbb;Some random text@@
!!CSS classes
CSS classes can be applied to text blocks or runs. This form creates an HTML {{{<span>}}}:
{{{
{{customClassName{Some random text}}}
}}}
Displays as:
{{customClassName{Some random text}}}
This form generates an HTML {{{<div>}}}:
{{{
{{customClassName{
Some random text
}}}
}}}
Displays as:
{{customClassName{
Some random text
}}}
You can customise the appearance and behaviour of TiddlyWiki to almost any degree you want:
* Install [[Plugins]] to extend the core functionality
** Including [[translations|https://github.com/TiddlyWiki/translations]]
* Use off-the-shelf themes from [[TiddlyThemes|https://yakovl.github.io/TiddlyThemes/]]
* Another extension type is transclusions, like those in the "transclusions" tab [[in TiddlyTools|https://tiddlytools.com/Classic/#CatalogTabs]]
* Use the ColorPalette to change the basic colour scheme
* Create a CustomStyleSheet to customize styles further
* Change the page composition and the individual tiddlers layout in PageTemplate, ViewTemplate, or EditTemplate (see also [[Configuration]] summary)
** See also explanations in SpecialTiddlers
* Use TiddlyBookmarklets to interact with ~TiddlyWikis that you open (including those you don't own). This is an advanced technique that may require some hacking
Also, it's useful to know built-in [[Formatting|Basic Formatting]] techniques
Sometimes it's necessary to include custom HTML markup in the {{{<head>}}} of a TiddlyWiki file - typically for compatibility with ad serving software, external libraries, or for custom meta tags. The CustomMarkup operation defines four shadow tiddlers whose contents are spliced into the saved HTML file. (If you do a view/source you'll see the markers referred to below).
|!Title |!Location |!Marker |
|MarkupPreHead |Start of the {{{<head>}}} section |{{{<!--PRE-HEAD-START-->}}} |
|MarkupPostHead |End of the {{{<head>}}} section |{{{<!--POST-HEAD-START-->}}} |
|MarkupPreBody |Start of the {{{<body>}}} section |{{{<!--PRE-BODY-START-->}}} |
|MarkupPostBody |End of the {{{<body>}}} section |{{{<!--POST-BODY-START-->}}} |
MarkupPreHead is the only one with shadow content: a link to the default location of the RSS feed.
You can skin ~TiddlyWiki with a special StyleSheet tiddler containing your own CSS style sheet declarations. Unlike hacking the HTML directly, the ~StyleSheet tiddler withstands upgrading to a new version of the ~TiddlyWiki code (see HowToUpgrade). You can also use the NestedStyleSheets feature to structure your CSS declarations.
The ExampleStyleSheet shows some of the basic options you can control (see AnotherExampleStyleSheet for more complex examples). SaveChanges and then click refresh in your browser to see StyleSheet changes. Any errors in your CSS syntax will be caught and displayed, but they shouldn't stop ~TiddlyWiki from working.
/***
|''Name''|DarkModePlugin|
|''Description''|This plugin introduces "dark mode" (changes styles) and switching it by the {{{darkMode}}} macro and operating system settings|
|''Documentation''|https://yakovl.github.io/TiddlyWiki_DarkModePlugin/|
|''Author''|Yakov Litvin|
|''Version''|1.3.2|
|''Source''|https://github.com/YakovL/TiddlyWiki_DarkModePlugin/blob/master/DarkModePlugin.js|
|''License''|[[MIT|https://github.com/YakovL/TiddlyWiki_DarkModePlugin/blob/master/LICENSE]]|
!!!Demo
<<darkMode>>
<<darkMode label:"☀️/🌘">>
!!!Syntax
{{{
<<darkMode>> (<<switchNightMode>> also works, for backward compatibility)
<<darkMode label:"☀️/🌘">>
}}}
!!!Installation
Is as usual: import or copy the plugin with the {{{systemConfig}}} tag, reload. Note: for the plugin to work correctly, you should keep its name (DarkModePlugin).
!!!Optional configuration
When the dark mode is applied, the {{{darkMode}}} class is added to the {{{html}}} element. This allows to add ''styles for dark mode'' only, like this:
{{{
.darkMode code { color:red }
code { color: green }
}}}
Ordinary styles are applied to both modes, but {{{.darkMode}}} ones have higher precedence and "overwrite" the oridinary ones.
The palette applied for the dark mode can be ''customized'' by editing ColorPaletteDark (removing it restores the default values).
!!!Additional notes
Styles of some browser interface bits (like <html><button class="button" onclick='alert("this is known as an alert")'>alert</button</html> are only affected by OS/browser's "dark mode"/theme, so for good UI it is recommended to switch OS dark mode (DarkModePlugin will follow). For Windows users, [[switching by hotkey|https://superuser.com/a/1724237/576393]] may be useful.
The plugin ''adds extra styles'' (see ~FollowDarkMode and ~FewerColors sections) which are not yet configurable.
The option {{{chkDarkMode}}} is now ''deprecated'': later it will be either removed or re-implemented.
!!!Code
***/
//{{{
config.macros.switchNightMode = // backward compatibility
config.macros.darkMode = {
pluginName: "DarkModePlugin",
optionName: "chkDarkMode",
getDarkPaletteText: function() {
return store.getTiddlerText(this.darkPaletteTitle)
},
// this helper may become more complex for custom themes
getMainPaletteTitle: function() {
return "ColorPalette"
},
lightPaletteTitle: "ColorPaletteLight",
darkPaletteTitle: "ColorPaletteDark",
// setDark, setLight, and applyAdjustments are "governed outside": they don't check or change the cookie-parameter
setDark: function() {
var paletteTitle = this.getMainPaletteTitle()
var lightPaletteTiddler = new Tiddler(this.lightPaletteTitle)
lightPaletteTiddler.text = store.getTiddlerText(paletteTitle) || "shadow"
store.saveTiddler(lightPaletteTiddler)
var darkPaletteTiddler = new Tiddler(paletteTitle)
darkPaletteTiddler.text = this.getDarkPaletteText()
// attach the tiddler, recalc slices, invoke notifiers
store.saveTiddler(darkPaletteTiddler)
this.applyAdjustments(true)
},
setLight: function() {
var paletteTitle = this.getMainPaletteTitle()
var lightPaletteText = store.getTiddlerText(this.lightPaletteTitle)
if(!lightPaletteText || lightPaletteText === "shadow")
store.removeTiddler(paletteTitle) // to recalc slices of ColorPalette
else
store.saveTiddler(paletteTitle, paletteTitle, lightPaletteText)
store.deleteTiddler(this.lightPaletteTitle)
this.applyAdjustments(false)
},
applySectionCSS: function(sectionName) {
var sectionText = store.getRecursiveTiddlerText(this.pluginName + "##" + sectionName, "", 1)
var css = sectionText.replace(/^\s*{{{((?:.|\n)*?)}}}\s*$/, "$1")
return setStylesheet(css, sectionName)
},
applyAdjustments: function(isDarkMode) {
if(isDarkMode) {
jQuery('html').addClass('darkMode')
this.applySectionCSS("FollowDarkMode")
this.applySectionCSS("~FewerColors")
} else {
jQuery('html').removeClass('darkMode')
removeStyleSheet("FollowDarkMode")
removeStyleSheet("~FewerColors")
}
},
// "governance" methods
isDarkMode: function() {
return !!store.fetchTiddler(this.lightPaletteTitle)
},
switchMode: function() {
var me = config.macros.darkMode
config.options[me.optionName] = !config.options[me.optionName]
config.options[me.optionName] ? me.setDark() : me.setLight()
// "baking" doesn't work yet..
if(saveOption)
saveOption(me.optionName)
else
saveOptionCookie(me.optionName)
refreshColorPalette()
},
followOsMode: function(followLight) {
// old browsers may fail to detect
var isOsDarkModeDetected = window.matchMedia &&
window.matchMedia('(prefers-color-scheme: dark)').matches
if(isOsDarkModeDetected && !this.isDarkMode()) {
config.options[this.optionName] = false
this.switchMode()
}
if(!isOsDarkModeDetected && this.isDarkMode() && followLight) {
config.options[this.optionName] = true
this.switchMode()
}
},
restoreSavedMode: function() {
if(!this.isDarkMode()) return
// TODO: check if styles are really missing (avoid applying twice)
this.applyAdjustments(true)
config.options[this.optionName] = true
},
handler: function(place, macroName, params, wikifier, paramString, tiddler) {
var pParams = paramString.parseParams("anon", null, true, false, true)
var label = getParam(pParams, "label", "switch")
var tooltip = ""
createTiddlyButton(place, label, tooltip, this.switchMode)
}
}
// We avoid using .init to support installation via SharedTiddlersPlugin, TiddlerInFilePlugin, and reinstalling via CookTiddlerPlugin.
// This also helps to avoid extra refreshing.
;(function(macro) {
// Save the palette as shadow so that one can cusomize it
config.shadowTiddlers[macro.darkPaletteTitle] =
store.getTiddlerText(macro.pluginName + "##DarkModeColorPalette")
// Set dark mode on start if OS dark mode is set or dark mode was saved previously
macro.followOsMode(false)
macro.restoreSavedMode()
// install only once
if(!config.extensions.DarkModePlugin) {
// prevent sites to ask about unsaved changes after switching mode
config.extensions.DarkModePlugin = {
orig_confirmExit: confirmExit
}
window.confirmExit = function() {
if(readOnly) return
return config.extensions.DarkModePlugin.orig_confirmExit ?
config.extensions.DarkModePlugin.orig_confirmExit() : undefined
}
// Detect OS mode change, apply
if(window.matchMedia) window.matchMedia('(prefers-color-scheme: dark)')
.addEventListener('change', function(event) { macro.followOsMode(true) })
}
})(config.macros.darkMode)
//}}}
/***
!!!FollowDarkMode
{{{
input, select, textarea {
color:[[ColorPalette::Foreground]];
background-color:[[ColorPalette::Background]];
}
.darkMode {
color-scheme: dark;
}
}}}
!!!~FewerColors
{{{
.title, h1, h2, h3, h4, h5, h6 {
color: [[ColorPalette::PrimaryDark]];
}
::selection {
background: [[ColorPalette::TertiaryMid]];
}
}}}
!!!DarkModeColorPalette
Background: #000
Foreground: #ddd
~PrimaryPale: #730
~PrimaryLight: #e70
~PrimaryMid: #fb4
~PrimaryDark: #feb
~SecondaryPale: #003
~SecondaryLight: #017
~SecondaryMid: #24b
~SecondaryDark: #7be
~TertiaryPale: #111
~TertiaryLight: #333
~TertiaryMid: #666
~TertiaryDark: #999
Error: #f44
!!!
***/
Several [[Macros|MacrosContent]] including the [[Today Macro|today macro]] take a [[Date Format String|Date Formats]] as an optional argument. This string can be a combination of ordinary text, with some special characters that get substituted by parts of the date:
* {{{DDD}}} - day of week in full (eg, "Monday")
* {{{ddd}}} - short day of week (eg, "Mon")
* {{{DD}}} - day of month
* {{{0DD}}} - adds a leading zero
* {{{DDth}}} - adds a suffix
* {{{WW}}} - ~ISO-8601 week number of year
* {{{0WW}}} - adds a leading zero
* {{{MMM}}} - month in full (eg, "July")
* {{{mmm}}} - short month (eg, "Jul")
* {{{MM}}} - month number
* {{{0MM}}} - adds leading zero
* {{{YYYY}}} - full year
* {{{YY}}} - two digit year
* {{{wYYYY}}} - full year with respect to week number
* {{{wYY}}} two digit year with respect to week number
* {{{hh}}} - hours
* {{{0hh}}} - adds a leading zero
* {{{hh12}}} - hours in 12 hour clock
* {{{0hh12}}} - hours in 12 hour clock with leading zero
* {{{mm}}} - minutes
* {{{0mm}}} - minutes with leading zero
* {{{ss}}} - seconds
* {{{0ss}}} - seconds with leading zero
* {{{am}}} or {{{pm}}} - lower case AM/PM indicator
* {{{AM}}} or {{{PM}}} - upper case AM/PM indicator
!!!!Examples
{{{DDth MMM YYYY}}} - 16th February 2011
{{{DDth mmm hh:mm:ss}}} - 16th Feb 2011 11:38:42
HelloThere GettingStarted WhatsNew Raves Examples
This tiddler contains a list of tiddlers that are opened automatically when you load the tiddlywiki.
The default is:
{{{
[[GettingStarted]]
}}}
An example could be:
{{{
[[HelloThere]]
[[Reference]]
[[Features]]
}}}
Note you can also put [[filters|Filters]] into your DefaultTiddlers tiddler. For instance to open all tiddlers tagged with "blog" on startup:
{{{
[tag[blog]]
}}}
Deletes the current tiddler. A confirmation dialogue is displayed unless disabled with the ConfirmBeforeDeleting checkbox in AdvancedOptions. It is used with the ToolbarMacro like this:
{{{
<<toolbar deleteTiddler>>
}}}
~TiddlyWiki developer documentation is now available [[here|./dev/docs_from_TiddlyWikiDev.tiddlyspace.com.html]]. It was created by the community at the tiddlywikidev [[TiddlySpace|HostedOptions]], and will get occasional updates when needed.
Michael Mahemoff has written a very helpful outline of the architecture of ~TiddlyWiki: [[Part 1|http://softwareas.com/tiddlywiki-internals-1-of-3-architectural-concepts]], [[Part 2|http://softwareas.com/tiddlywiki-internals-2-of-3-list-of-javascript-files]] and [[Part 3|http://softwareas.com/tiddlywiki-internals-3-of-3-key-javascript-classes-and-files]].
Up-to-date docs regarding building the core can be found [[in the TW repository|https://github.com/TiddlyWiki/TiddlyWikiClassic/blob/master/build/README.md]].
There are two Google Group discussion forums for discussions about ~TiddlyWiki, whether basic entry level questions or more complex development challenges. They are the best places to ask questions about ~TiddlyWiki, and to connect with other enthusiasts:
* A ~TiddlyWikiClassic group for general discussion, bug reports and announcements at https://groups.google.com/group/TiddlyWikiClassic
* A ~TiddlyWikiDev group for discussion about ~TiddlyWiki development at https://groups.google.com/group/TiddlyWikiDev
!~Non-English resources
There are a number of resources for non-English language speakers:
* ~TiddlyWikiFR, in French, at https://groups.google.com/group/TiddlyWikiFR
* ~TiddlyWiki 華語支援論壇, in Chinese, at https://groups.google.com/group/TiddlyWiki-zh
* A guide to [[TiddlyWiki in Japanese|http://web.archive.org/web/20181105134952/https://www.geocities.jp/potto372/tiddlywiki/tiddlywikinote.html]]
Documentation for ~TiddlyWiki Classic is maintained [[here|https://classic.tiddlywiki.com]]. Content tiddlers are stored [[in the core GitHub repository|https://github.com/TiddlyWiki/TiddlyWiki/tree/master/content]] as separate files and are merged into a single TW (this site) with the [[build tools|https://github.com/TiddlyWiki/TiddlyWiki/blob/master/build/README.md]].
!Contributing
Documentation always needs updates and improvements and contributions are welcome.
* Feel free to propose changes; to learn more about what is needed most, ask at the [[community forum|DiscussionForums]]. /%# put some bits from the google doc here, or link it %/
* Also, you can ask about best practices and guidelines. /%# they should become a part of docs at some point %/
* If you are not familiar with contributing at ~GitHub, learn [[how to propose changes|Improving documentation via GitHub]].
!History and other documentation
Previously documentation was maintained in a ~MediaWiki instance hosted by Osmosoft at tiddlywiki.org. [[In 2011|https://groups.google.com/forum/?fromgroups#!topic/tiddlywiki/wAW1pQABu8k]], the content was migrated to a ~TiddlySpace known as the Community Documentation. A separate ~DeveloperDocumention was also hosted on ~TiddlySpace. [[In 2016|https://groups.google.com/forum/#!topic/tiddlyspace/gDqcOXvpiZc]] with ~TiddlySpace discontinued, the Community Documentation and ~DeveloperDocumention are no longer actively maintained.
There's also a number of other [[tutorials and guides|TutorialsAndGuides]] created by other ~TiddlyWiki users.
Many seemingly gone docs and other resources in ~TiddlyWikis are in fact available via [[Web Archive|http://web.archive.org/]], for instance [[Community Documentation|http://web.archive.org/web/20161211153445/http://tiddlywiki.tiddlyspace.com/]] and [[Developer Documentation|http://web.archive.org/web/20160810230802/http://tiddlywikidev.tiddlyspace.com/]].
<html><a class="downloadButton" title="Download TiddlyWiki"
href="empty.html" download="empty.html" onclick="story.displayTiddler(null, 'Setting up saving')"
tabindex="0"
>
download
</a></html>
The following downloading guidelines have been created to cover the vast majority of browsers and operating systems.
If you are still having trouble downloading ~TiddlyWiki after checking these guidelines, check the [[list of browsers|Browsers]] to make sure your browser and operating system are supported. And you can always [[turn to the community|Help and Support]] for help!
!Downloading guidelines
[[Firefox on Mac OS X|Downloading guidelines: Firefox on Mac OS X]]
[[Firefox on Windows Vista|Downloading guidelines: Firefox on Windows Vista]]
[[Firefox on Windows XP|Downloading guidelines: Firefox on Windows XP]]
[[Firefox on Ubuntu|Downloading guidelines: Firefox on Ubuntu]]
[[Internet Explorer on Windows Vista|Downloading guidelines: Internet Explorer on Windows Vista]]
[[Internet Explorer on Windows XP|Downloading guidelines: Internet Explorer on Windows XP]]
[[Safari on Mac OS X|Downloading guidelines: Safari on Mac OS X]]
[[Opera on Mac OS X|Downloading guidelines: Opera on Mac OS X]]
For unusual or custom deployments, have a look at [[advanced download options|Advanced download options]].
Follow these easy steps to get started. Note that these guidelines are for Firefox v3.0.1 running on Mac OS X 10.5.4.
''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Downloading]] to find some that are right for you.''
!Step 1 - Download file
You'll need to choose a name and location for your empty ~TiddlyWiki file - we recommend either your Desktop or Documents folder. Make sure you keep the .html file extension and leave the "Save As: Hypertext" default option as it is.
[img[images/step1mac.jpg]]
!Step 2 - Download complete
Empty ~TiddlyWiki files are very small, and download should be completed quickly. You can now either launch the file from the download pane (shown below, double click on the file name to launch), or open your finder to open the file from there.
[img[images/step2mac.jpg]]
!Step 3 - Open file
You'll be asked if you're sure you want to open the file - click "Open".
[img[images/step3mac.jpg]]
!Step 4 - Grant authority
When you try to save your changes for the first time, Firefox may ask you to grant access to the file system. You will need to 'Allow' this for ~TiddlyWiki changes to be saved, and we recommend you tick the 'Remember this decision' checkbox so this dialogue box doesn't appear each time.
[img[images/step4mac.jpg]]
!Step 5 - You're ready to start!
You're now ready to start playing with your ~TiddlyWiki file - be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
Follow these easy steps to get started! Note that these guidelines are for Firefox v3.0.1 running on Ubuntu version 8.0.4 (Hardy Heron).
''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Downloading]] to find some that are right for you.''
!Step 1 - Download file
You'll need to choose a name and location for your empty ~TiddlyWiki file - we recommend either your Desktop or Documents folder. Make sure you keep the file type as HTML Document.
[img[images/step1ubuntu.png]]
!Step 2 - Download complete
Empty ~TiddlyWiki files are very small, and download should be completed quickly. You can now either launch the file from the download pane (shown below, double click on the file name to launch), or open your finder to open the file from there.
[img[images/step2ubuntu.png]]
!Step 3 - Grant authority
When you try to save your changes for the first time, Firefox may ask you to grant access to the file system. You will need to 'Allow' this for ~TiddlyWiki changes to be saved, and we recommend you tick the 'Remember this decision' checkbox so this dialogue box doesn't appear each time.
[img[images/step3ubuntu.png]]
!Step 4 - You're ready to start!
You're now ready to start playing with your ~TiddlyWiki file - be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
<<tiddler [[Downloading guidelines: Firefox on Windows Vista]]>>
Follow these steps to get started! These guidelines are for Firefox 3.0.1 running on Microsoft Windows Vista 6.0.0. Hopefully they will be helpful for your setup too.
''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Downloading]] to find some that are right for you.''
!Step 1 - Download file
You'll need to choose a name and location for your empty ~TiddlyWiki file - we recommend either your Desktop or Documents folder. Make sure you leave the "Save as type: HTML Document" default option as it is. Then click 'Save'.
[img[images/step1vistaff.jpg]]
!Step 2 - Open file
Click on the file name in the Download dialogue box. This will open your ~TiddlyWiki file, and you'll be able to start editing immediately - but you'll need to complete Step 3 below to save your changes.
[img[images/step2vistaff.jpg]]
!Step 3 - Enable advanced features
When you try to save changes for the first time in a browser session, this dialogue box will appear. These features will enable the saving mechanism. Tick the 'Remember this decision' checkbox and then click on 'Allow'.
[img[images/step3vistaff.jpg]]
!Step 4 - You're ready to start!
You're now ready to start playing with your ~TiddlyWiki file - be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
Follow these steps to get started! These guidelines are for Firefox 3.0.1 running on Microsoft Windows XP, Service Pack 3. Hopefully they will be helpful for your setup too.
''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Downloading]] to find some that are right for you.''
!Step 1 - Download file
You'll need to choose a name and location for your empty ~TiddlyWiki file - we recommend either your Desktop or My Documents folder. Make sure you leave the "Save as type: Firefox Document" default option as it is. Then click 'Save'.
[img[images/step1xpff.jpg]]
!Step 2 - Open file
Double click on the file name in the Download dialogue box, shown below. This will open your ~TiddlyWiki file, and you'll be able to start editing immediately - but you'll need to complete Step 3 below to save your changes.
[img[images/step2xpff.jpg]]
!Step 3 - Enable advanced features
When you try to save changes for the first time in a browser session, this dialogue box will appear. These features will enable the saving mechanism. Tick the 'Remember this decision' checkbox and then click on 'Allow'.
[img[images/step3xpff.jpg]]
!Step 4 - You're ready to start!
You're now ready to start playing with your ~TiddlyWiki file - be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
<<tiddler [[Downloading guidelines: Internet Explorer on Windows Vista]]>>
Follow these steps to get started! These guidelines are for Internet Explorer 7.0 running on Microsoft Windows Vista 6.0.0. Hopefully they will be helpful for your setup too.
''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Downloading]] to find some that are right for you.''
!Step 1 - Download file
You'll need to choose a name and location for your empty ~TiddlyWiki file - we recommend either your Desktop or Documents folder. Make sure you leave the "Save as type: HTML Document" default option as it is. Then click 'Save'.
[img[images/step1vista.jpg]]
!Step 2 - Open folder
Once the download has been completed, ''don't open the file yet'' - a minor modification is required before ~TiddlyWiki will work! Click on 'Open Folder'.
[img[images/step2vista.jpg]]
!Step 3 - Modify properties
In the folder, right click on the file name and select 'Properties' from the bottom of the contextual menu.
[img[images/step3vista.jpg]]
!Step 4 - Unblock file
In order to allow saving, you need to Unblock the file. Select 'Unblock' near the bottom of the dialogue box, then click on 'OK'. If the Unblock button doesn't appear, then you don't need to worry about it - click on OK and proceed to step 5.
[img[images/step4vista.jpg]]
!Step 5 - Open file
Double click on the file name to open the file. Internet Explorer takes special care to block javascript from untrusted sources, so a screen will appear with a yellow bar at the top and a warning in red. Click on the yellow bar (this will make it turn blue, as shown below), and select 'Allow Blocked Content...'.
[img[images/step5vista.jpg]]
!Step 6 - Allow active content
~TiddlyWiki contains 'active content' that, for example, allows search and tagging to function. Approve this active content by clicking on 'Yes'.
[img[images/step6vista.jpg]]
!Step 7 - Enable saving mechanism
One final hurdle! When you save for the first time, you'll be prompted to allow the activity. Click on 'Yes'.
[img[images/step7vista.jpg]]
!Step 8 - You're ready to start!
You're now ready to start playing with your ~TiddlyWiki file - be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
Follow these steps to get started! These guidelines are for Internet Explorer 7.0 running on Microsoft Windows XP, Service Pack 3. Hopefully they will be helpful for your setup too.
''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Downloading]] to find some that are right for you.''
!Step 1 - Download file
You'll need to choose a name and location for your empty ~TiddlyWiki file - we recommend either your Desktop or My Documents folder. Make sure you leave the "Save as type: HTML Document" default option as it is. Then click 'Save'.
[img[images/step1xpie.jpg]]
!Step 2 - Open folder
Once the download has been completed, ''don't open the file yet'' - a minor modification is required before ~TiddlyWiki will work! ''Click on 'Open Folder'''.
[img[images/step2xpie.jpg]]
!Step 3 - Modify properties
In the folder, right click on the file name and select 'Properties' from the bottom of the contextual menu.
[img[images/step3xpie.jpg]]
!Step 4 - Unblock file
In order to allow saving, you need to Unblock the file. Select 'Unblock' near the bottom of the dialogue box, then click on 'OK'. If the Unblock button doesn't appear, then you don't need to worry about it - click on OK and proceed to step 5.
[img[images/step4xpie.jpg]]
!Step 5 - Open file
Now you've unblocked the file, you can double click on the file name to open the file. Internet Explorer takes special care to block javascript from untrusted sources, so a screen will appear with a yellow bar at the top and a warning in red. Click on the yellow bar (this will make it turn blue, as shown below), and select 'Allow Blocked Content...'.
[img[images/step5xpie.jpg]]
!Step 6 - Allow active content
~TiddlyWiki contains 'active content' that, for example, allows animations to function. Approve this active content by clicking on 'Yes'.
[img[images/step6xpie.jpg]]
!Step 7 - Enable saving mechanism
One final hurdle! When you save for the first time, you'll be prompted to allow the activity. Click on 'Yes'.
[img[images/step7xpie.jpg]]
!Step 8 - You're ready to start!
You're now ready to start playing with your ~TiddlyWiki file - be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
Follow these easy steps to get started! Note that these guidelines are for Opera 9.5.1 running on Mac OS X 10.5.4, but will apply to several other configurations (including most other versions of [[Opera]])
''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Downloading]] to find some that are right for you.''
!Step 1 - Download files
Download the zip file to a location of your choice.
[img[images/step1macopera.jpg]]
!Step 2 - Check files
Open the zip file, and then check in the resulting folder that you have automatically received two files:
*empty.html (this is your ~TiddlyWiki file)
*~TiddlySaver.jar (this is a java applet, which will make sure everything works in your chosen browser. Note a copy of this file ''must'' be kept in the same folder as any ~TiddlyWiki file you are using)
[img[images/step2macopera.jpg]]
You can download the TiddlySaver file on it's own from [[here|./TiddlySaver.jar]] if you need it.
Open the empty.html file to get started.
!Step 3 - Trust applet
The ~TiddlySaver.jar applet has been signed by [[UnaMesa|http://www.unamesa.org]], who hold the rights to ~TiddlyWiki on behalf of the community. You can find out more about the applet itself [[here|TiddlySaver]], and you'll need to click on 'Trust' in order for the ~TiddlyWiki to work. If you've accidentally clicked on 'Don't Trust' previously, don't worry - just restart the browser and you should get asked again.
[img[images/step3macopera.jpg]]
!Step 4 - You're done!
Thanks to the applet, you now have the full functionality of ~TiddlyWiki at your disposal. Be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
Follow these easy steps to get started! Note that these guidelines are for Safari 3.1.2 running on Mac OS X 10.5.4, but will apply to several other configurations (other versions of [[Safari]] and [[Opera]] too)
''If these guidelines aren't appropriate, check the [[other browser-specific guidelines|Downloading]] to find some that are right for you.''
!Step 1 - Check downloaded files
After [[Download]], check first that you have automatically received a zip file containing two files (the contents of the zip file may have been extracted automatically - if not, open the zip file):
*empty.html (this is your ~TiddlyWiki file)
*~TiddlySaver.jar (this is a java applet, which will make sure everything works in your chosen browser. Note a copy of this file ''must'' be kept in the same folder as any ~TiddlyWiki file you are using)
[img[images/step1macsafari.jpg]]
You can download the ~TiddlySaver.jar file on it's own from [[here|./TiddlySaver.jar]] if you need it.
Double click the empty.html file to get started.
!Step 2 - Open file
The system will check you're happy to open the ~TiddlyWiki file. Click on 'Open'.
[img[images/step2macsafari.jpg]]
!Step 3 - Trust applet
The ~TiddlySaver.jar applet has been signed by [[UnaMesa|http://www.unamesa.org]], who hold the rights to ~TiddlyWiki on behalf of the community. You can find out more about the applet itself [[here|TiddlySaver]], and you'll need to click on 'Trust' in order for the ~TiddlyWiki to work. If you've accidentally clicked on 'Don't Trust' previously, don't worry - just restart the browser and you should get asked again.
[img[images/step3macsafari.jpg]]
!Step 4 - You're done!
Thanks to the applet, you now have the full functionality of ~TiddlyWiki at your disposal. Be sure to check out the guidelines in [[Getting Started|GettingStarted]]!
~TiddlyWiki is made up of chunks of information called tiddlers. You're reading a tiddler called "Editing" right now.
When you open an empty ~TiddlyWiki, you see a tiddler called "~GettingStarted" that describes how to set up the Title of your ~TiddlyWiki, the username and and some other bits (see also [[Configuration]]). The username is used to sign your edits (which is meaningful mostly for online ~TiddlyWikis, but also can indicated imported tiddlers). You can always change the username in the right hand sidebar (under [[options »|InterfaceOptions]]).
To switch a tiddler into edit mode, click ''edit'' in its toolbar (in the top right corner) or simply double click the tiddler. When you are finished, click on ''done'', or ''cancel'' to discard your changes.
You can [[link|Link Formatting]] other tiddlers: both [[existing|LikeThis]] and [[unexisting|UnexistingTiddler]]. Linking unexisting tiddlers is a natural way to create them or mark that some gaps should be filled later.
This tiddler contains the markup used to display tiddlers in edit mode. It is designed to make it easy to change the layout/structure of the tiddler in edit mode.
By default it contains the following markup:
{{{
<div class='toolbar'
macro='toolbar [[ToolbarCommands::EditToolbar]] icons:yes'>
</div>
<div class='heading editorHeading'>
<div class='editor title' macro='edit title'></div>
<div class='tagClear'></div>
</div>
<div class='annotationsBox' macro='annotations'>
<div class='editSpaceSiteIcon'
macro='tiddlerOrigin height:16 width:16 label:no interactive:no'>
</div>
<div class="privacyEdit" macro='setPrivacy label:no interactive:no'></div>
<div class='tagClear'></div>
</div>
<div class='editor' macro='edit text'></div>
<div class='editorFooter'>
<div class='tagTitle'>tags</div>
<div class='editor' macro='edit tags'></div>
<div class='tagAnnotation'>
<span macro='message views.editor.tagPrompt'></span>
<span macro='tagChooser excludeLists'></span>
</div>
</div>
}}}
Switches the current tiddler to the current edit view. It is used with the ToolbarMacro like this:
{{{
<<toolbar editTiddler>>
}}}
/***
|''Name:''|ExamplePlugin|
|''Description:''|To demonstrate how to write TiddlyWiki plugins|
|''Version:''|2.0.3|
|''Date:''|Sep 22, 2006|
|''Source:''|https://classic.tiddlywiki.com/#ExamplePlugin|
|''Author:''|JeremyRuston (jeremy (at) osmosoft (dot) com)|
|''License:''|[[BSD open source license]]|
|''~CoreVersion:''|2.1.0|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|
***/
//{{{
// Uncomment the following line to see how the PluginManager deals with errors in plugins
// deliberateError();
// Log a message
pluginInfo.log.push("This is a test message from " + tiddler.title);
//}}}
See Dave Gifford's incredibly detailed catalogue of TiddlyWiki being used in the wild in his [[TiddlyWikiShowcase|http://giffmex.tiddlyspot.com/]].
Other notable or interesting examples:
* Getting Things Done - [[MonkeyPirateTiddlyWiki|http://mptw.tiddlyspot.com/]], [[mGSD|http://mgsd.tiddlyspot.com/#mGSD]],[[D-Cubed|http://www.dcubed.ca/]], [[TeamTasks|http://www.hawksworx.com/playground/TeamTasks/]], [[TiddlyPackingList|http://web.archive.org/web/20161108230815/http://tiddlypacking.tiddlyspace.com/]], [[tbGTD|http://tbgtd.tiddlyspot.com/]]
* [[Open Notebook Science|http://pineda-krch.com/2008/10/31/starting-an-open-notebook-science-project/]] - [[Garrett Lisi's|http://www.telegraph.co.uk/earth/main.jhtml?CMP=ILC-mostviewedbox&xml=/earth/2007/11/14/scisurf114.xml]] [[Deferential Geometry|http://deferentialgeometry.org/]], ([[video|http://broadcast.oreilly.com/2008/09/lisi-on-a-wiki.html]])
* Novels and creative writing - [[TiddlyWikiWrite|http://www.ljcohen.net/resources-wiki.html]], [[Gimcrack'd|http://gimcrackd.com/]], [[Singularity!|http://www.antipope.org/charlie/blog-static/fiction/accelerando/toughguide.html]], [[Liberty Hall Writers Wiki|http://wiki.libertyhallwriters.org/doku.php?id=tiddlywiki]], [[Bibliotheca Caelestis. Tiddlywikiroman|http://bc.etkbooks.com/opac/]] from Hartmut Abendschein, [[Die, Vampire! Die!|http://www.davidvanwert.com/wiki/dievampiredie.html]] from David Van Wert, [[Rose|http://www.emacswiki.org/alex/rose.html]] from Alex Schroeder
* Education - [[South Australia|https://secure.ait.org/wiki/background.htm]], [[maths in Massachusetts|http://luceatlux.net/mcasmath10/]], [[The NoteStorm Christian database|http://giffmex.org/nsdb.html]]
* Factbooks - [[Volvo P120|http://www.tinyurl.com/volvo122s]] (in Spanish), [[Web campaigning in the US|http://mitpress.mit.edu/books/0262062585/WebCampaigningDigitalSupplement.html]], [[Bolivian politics|http://www.centellas.org/politics/politiddly.html]], [[Prince2 project management|http://www.microupdate.co.uk/tiddlywikis/princeII.htm]], [[Python Grimoire|http://the.taoofmac.com/space/Python/Grimoire]], [[Marc Bolan and T-Rex|http://videodrama.tiddlyspot.com/]]
* Teaching - [[An Introduction to Chain Indexing|http://informationr.net/tdw/publ/chain_indexing/chain_indexing.html]], [[Reasoning Well|http://reasoningwell.tiddlyspot.com/]]
* Role Playing Games - [[Making kickass campaign sites with TiddlyWiki|http://www.encounteraday.com/2009/05/20/making-kickass-campaign-sites-with-mptw/]]
* Medicine - [[TiddlyManuals|http://tiddlymanuals.tiddlyspace.com/]], [[AMBIT|http://ambit.tiddlyspace.com/]]
* Law - [[TiddLegal|http://tiddlegal.tiddlyspot.com/]], [[Courtrules|https://web.archive.org/web/20130629062942/http://www.michlaw.net:80/courtrules.html]]
* Activism - [[Climate Change 2.0|http://www.climate-change-two.net/]], [[TiddlyWiki for Left Wing Journalists and Researchers|http://leftclickblog.blogspot.com/2008/02/tiddlywiki-for-left-journoes-and.html]]
* Homepage/Portfolio - [[Digimask|http://digimask.com/]], [[American Cryptogram Association|http://msig.med.utah.edu/RunningUtes/cryptogram/aca.html]], [[Nykyri.net|http://www.nykyri.net/]]
* Blog - [[UdiGrudi|http://udigrudi.net/]], [[LumpyMilk|http://lumpymilk.tiddlyspot.com/]], [[Veminra|http://veminra.tiddlyspace.com/]]
* Mobile - [[iTW optimised for the iPhone|http://itw.bidix.info/]], [[iPhone|http://iphone.tiddlyspace.com/]], [[Android|http://android.tiddlyspace.com]]
* Tools - [[TiddlyFolio|http://tiddlyfolio.tiddlyspot.com/]] (an electronic wallet), [[TiddlySlidy|http://tiddlyslidy.com/#TiddlySlidy]] (presentations using TiddlyWiki), [[TiddlyPocketBooks|http://tiddlypocketbook.com/]] (printable pocket books), [[TiddlyTweets|http://osmosoft.com/tiddlytweets/]] (a tweet archiver), [[Project Cecily|http://osmosoft.com/cecily/]] (a zooming user interface for TiddlyWiki)
* As a component of other products:
** [[Dido|http://projects.csail.mit.edu/exhibit/Dido/]] - a tiddlywikified database application
** [[KNote|http://www.smartgoldfish.com/download.html]] - a notetakingprogram (desktopapplikation)
** [[Twine|http://gimcrackd.com/etc/src/]] - a program for creating interactive stories
** [[CkEditor + TW|http://simonmcmanus.wordpress.com/2010/06/28/installing-ckeditor-with-standalone-tiddlywiki/]] - wysiwyg and TW on local disk
Also, see TiddlyWikiAdaptations
/*{{{*/
#displayArea { background-color: #ffccff; }
#mainMenu { border: 1px solid #ffff88; }
#commandPanel { background-color: #008800; }
/*}}}*/
config.animFast = 0.12; // Speed for animations (lower == slower)
config.animSlow = 0.01; // Speed for Easter Egg animations
config.views.wikified.toolbarEdit.text = "Edit away, it won't get saved";
If you've any comments, corrections or observations about TiddlyWiki, the best way to get our attention is to post to the [[Community]] groups -- or write a blog entry.
Filters are expressions describing how to collect a number of tiddlers. This example describes "all tiddlers tagged {{{notes}}} sorted by their {{{modified}}} date:
{{{
[tag[notes]] [sort[modified]]
}}}
Typically, they are used in macros like [[list|list macro]], but also are supported in [[DefaultTiddlers|DefaultTiddlers shadows]] and other places:
{{{
<<list filter "[tag[notes]] [sort[modified]]">>
}}}
Here are the filters available by default:
|Syntax |Action |h
|{{{[[title]]}}}, {{{TitleWithoutSpaces}}}, or {{{[tiddler[title]]}}} |add a tiddler by title|
|{{{[tag[tag title]]}}} |add tiddlers tagged with {{{tag title}}}|
|{{{[field[value]]}}} |add tiddlers that have the specified [[field|Fields]] with the specified value: like, {{{[creator[ericshulman]]}}}|
|{{{[limit[number]]}}} |keep only the first {{{number}}} of tiddlers, like {{{[tag[notes]] [limit[10]]}}}|
|{{{[sort[fieldAnd]]}}} |sort tiddlers by the specified field: ascending by default (if {{{fieldAnd}}} is just field name); if {{{fieldAnd}}} is {{{-fieldName}}}, descending; you may also use {{{+fieldName}}} for ascending|
Vairous plugins introduce additional filters, for instance you can check
* [[ExtraFiltersPlugin|https://yakovl.github.io/TiddlyWiki_ExtraFilters]],
* [[MatchTagsPlugin|https://tiddlytools.com/Classic/#MatchTagsPlugin]],
* [[GetPlugin|https://github.com/tobibeer/TiddlyWikiPlugins/blob/master/plugins/GetPlugin.js]] ([[docs|http://web.archive.org/web/20140222203941/http://get.tiddlyspace.com/#GettingStarted]]),
* [[some filters|http://web.archive.org/web/20140713204307/http://filters.tiddlyspace.com/#NumberSortFilterPlugin%20RandomSortFilter%20StoryFiltersPlugin%20ExtraFiltersPlugin]] by Jon Robson.
To use TiddlyWiki with recent versions of Mozilla Firefox you'll need to install the TiddlyFox extension. It enables TiddlyWiki documents loaded from a {{{file:///}}} URI to save changes to themselves.
<<tiddler TiddlyFox>>
Here's one way to get a Flickr badge in TiddlyWiki:
<html>
<a href="http://www.flickr.com" style="text-align:center;">www.<strong style="color:#3993ff">flick<span style="color:#ff1c92">r</span></strong>.com</a><br>
<iframe style="background-color:#ffffff; border-color:#ffffff; border:none;" width="113" height="151" frameborder="0" scrolling="no" src="//www.flickr.com/apps/badge/badge_iframe.gne?zg_bg_color=ffffff&zg_person_id=35468148136%40N01" title="Flickr Badge"></iframe>
</html>
Here's the HTML code to insert in a tiddler:
{{{
<html>
<a href="http://www.flickr.com" style="text-align:center;">www.<strong style="color:#3993ff">flick<span style="color:#ff1c92">r</span></strong>.com</a><br>
<iframe style="background-color:#ffffff; border-color:#ffffff; border:none;" width="113" height="151" frameborder="0" scrolling="no" src="//www.flickr.com/apps/badge/badge_iframe.gne?zg_bg_color=ffffff&zg_person_id=35468148136%40N01" title="Flickr Badge"></iframe>
</html>
}}}
You'll need to know your Flickr person ID, which should replace the value "35468148136%40N01" in the HTML. There's a useful [[Flickr idGettr|http://eightface.com/code/idgettr/]] to help with this.
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.
Note 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).
Once you've successfully [[downloaded|Downloading]] ~TiddlyWiki, you can find out how to:
* [[Set up a nice saver|Setting up saving]]
* [[Edit|Editing]] your tiddlers (and use [[markup|Reference]])
* [[Save changes|SaveChanges]]
* [[Search]] for content
* Use [[tagging|Tags]] to organise your tiddlers
* [[Customise|Customisation]] ~TiddlyWiki's appearance and behaviour
* Use apps to run ~TiddlyWiki on a [[MobileDevice|MobileDevices]]
See the full [[Reference Guide|Reference]]
The GettingStarted shadow tiddler contains information about how to start using your TiddlyWiki.
You can change it to include anything you desire.
For example a lot of tiddlywiki authors use it to explain what their wiki is about. This is a particularly useful approach because by default the GettingStarted tiddler is in the [[DefaultTiddlers|DefaultTiddlers shadows]] tiddler, thus opens automatically upon loading of the page.
By default it is also part of the [[MainMenu|MainMenu shadows]] tiddler so is included on the left side of the menu bar above.
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).
TiddlyWiki makes a great GuerillaWiki in situations where it's not practical to use a traditional wiki.
For instance, in a corporate setting, persuading an over-worked IT department to install you a Wiki server for you isn't always going to be possible overnight. And your PC is locked down so you can't install a conventional Wiki yourself. But, equally, you can't go and use one of the public hosted Wiki services because your Information Security department would not allow all that corporate data to flow into an outside server.
TiddlyWiki slices through those barriers by being usable on virtually all ~PCs.
{{{
!Heading Level 1
!!Heading Level 2
!!!Heading Level 3
!!!!Heading Level 4
!!!!!Heading Level 5
!!!!!!Heading Level 6
}}}
Display as:
!Heading Level 1
!!Heading Level 2
!!!Heading Level 3
!!!!Heading Level 4
!!!!!Heading Level 5
!!!!!!Heading Level 6
Welcome to ~TiddlyWiki, a reusable non-linear personal web notebook. It's a unique [[wiki|WikiWikiWeb]] that people [[love using|Raves]] to keep ideas and information organized. It was originally created by [[Jeremy Ruston|JeremyRuston]] and is now a thriving open source project with a busy [[Community]] of independent developers.
What's great about ~TiddlyWiki?
* It's cross-platform, works both online and offline, and is easy to setup (you can download and go, although more convenient saving requires an additional [[saver|Setting up saving]]);
* it's free, [[open source|OpenSourceLicense]], and fully customizable via plugins, themes, etc;
* it's a single HTML file, so it's easy to backup, sync, version control, publish, or migrate;
* various built-in features like tags and fields, lists and filters, search and references, etc.
With ~TiddlyWiki, you both own your data and can do whatever you want with its representation and behavior.
~TiddlyWiki is written in HTML, CSS, and ~JavaScript to work on any modern browser. It allows anyone to create personal SelfContained hypertext documents that can be published to a web server, sent by email, stored in a Dropbox, or kept on a USB thumb drive to make a WikiOnAStick. Because it doesn't need to be installed and configured, it makes a great GuerillaWiki.
This is revision <<version>> of ~TiddlyWiki Classic. Incremental updates will occur every few months, depending upon the complexity of the changes being made. A comprehensive re-write of ~TiddlyWiki, called "TiddlyWiki5", is available at https://tiddlywiki.com (backward-incompatible with ~TiddlyWiki Classic).
TiddlyWiki is an [[OpenSourceLicense]] product, with most help and support being provided by the [[Community]]. The best way to get help with a specific problem is the TiddlyWiki DiscussionForums (it's worth searching the group archives to see if anyone else has already solved the same problem).
There are a number of other useful resources for learning about TiddlyWiki:
* [[TiddlerToddler|http://tiddlertoddler.tiddlyspot.com/]] from Julie Starr
* [[TwHelp|http://twhelp.tiddlyspot.com/]] from Morris Gray
This is an [[advanced option|AdvancedOptions]] that lets you choose whether editting features are shown when a TiddlyWiki file is viewed over {{{http:}}} (as opposed to {{{file:}}}).
To publish a TiddlyWiki with the editting features hidden you'll need to create a tiddler tagged with 'systemConfig' and include in it the line:
{{{
config.options.chkHttpReadOnly = true;
}}}
End users can then override the setting using the AdvancedOptions panel.
Released in September 2004, the [[first version|archive/firstversion.html]] was pretty basic, weighing in at 52KB.
Released in December 2004, the [[second version|archive/secondversion.html]] of TiddlyWiki grew 50% over the FirstVersion to 76KB. It added IncrementalSearch, the ReferencesButton, the PermalinkCommand, PermaView, [[closeAll macro]], smooth scrolling, an improved sidebar, an animation for the CloseTiddlerCommand and a tiny Easter egg in homage for Macintosh OS X. It also introduced a new site design.
After that, there's a nearly complete archive of old versions of TiddlyWiki at:
* https://classic.tiddlywiki.com/archive/
Four dashes on a line by themselves are used to introduce a horizontal rule:
{{{
Before the rule
----
After the rule
}}}
Displays as:
Before the rule
----
After the rule
The HTML tag {{{<hr>}}} can be used as an alternative syntax:
{{{
Before the rule<hr>After the rule
}}}
Displays as:
Before the rule<hr>After the rule
There are several ways that you can have your TiddlyWiki data hosted online, making it easier to access and share your information.
!Tiddlyhost
<html><div style="float:left;padding:0.2em 0.5em;"><a href="https://tiddlyhost.com/"><img style="height:2.2em;width:2.2em;" src="https://raw.githubusercontent.com/simonbaird/tiddlyhost/main/rails/app/assets/images/logo-800-square.png"></a></div></html> [[Tiddlyhost|https://tiddlyhost.com/]] lets you put TiddlyWiki documents on the Web, and edit them directly in your browser. Its focus is on single-user TiddlyWiki hence it does not support simultaneous editing by multiple users. (Click "Show more types" when [[creating|https://tiddlyhost.com/sites/new]] to find the "~TiddlyWiki Classic" option.)
!Tiddlyspot
<html><div style="float:left;padding:0.2em 0.5em;"><a href="https://tiddlyspot.com/"><img style="height:2em;" src="https://raw.githubusercontent.com/simonbaird/tiddlyhost/main/rails/app/assets/images/tiddlyspot-banner-logo.png"></a></div></html> [[Tiddlyspot|https://tiddlyspot.com/]] is the predecessor of Tiddlyhost. It now works primarily as a public archive for older content, with the back-end service provided by Tiddlyhost.
!~DropBox
Many people use [[DropBox|http://dropbox.com]] to synchronise their TiddlyWiki documents to make them available on multiple computers. The ~DropBox iPhone/iPad application also permits read only access to TiddlyWiki documents. See [[A Personal Knowledgebase Solution: Tiddlywiki and Dropbox|http://www.broowaha.com/articles/7671/a-personal-knowledgebase-solution-tiddlywiki-and-dropbox]]
!~TiddlyWeb & ~TiddlySpace
[[TiddlyWeb|http://tiddlyweb.com]] is a flexible architecture for putting tiddlers on the web. On top of it ~TiddlySpace was created in 2010 by the Osmosoft team at BT, and generously operated for the community by them and their successors until December 9th 2016.
[[TiddlySpace|http://tiddlyspace.com]] was a full hosted service for TiddlyWiki that allowed multiple people to edit the same wiki at the same time. It was particularly focused on sharing tiddlers.
!TiddlyWiki Server for node.js (TWS)
[[TWS|https://github.com/PoulStaugaard/TWS]] by Poul Staugaard is a simple node.js based serverside for TiddlyWiki.
!~GieWiki
[[GieWiki|http://code.google.com/p/giewiki/]] by Poul Staugaard is a new serverside for TiddlyWiki that focusses on making TiddlyWiki behave like a real wiki, with preview and versioning of tiddlers, any number of pages in any hierachy, an auto-generated sitemap, comments on tiddlers, fine-grained access control, image upload, recent changes etc. You can see a default instance at http://giewiki.appspot.com/.
!ccTiddly
[[ccTiddly|http://tiddlywiki.org/#ccTiddly]] is an older serverside written in PHP to use [[MySQL|http://en.wikipedia.org/wiki/MySQL]] for storage. It is no longer under active development, but remains a popular choice for basic TiddlyWiki hosting needs.
!~TiddlyCouch
[[TiddlyCouch|http://bijl.iriscouch.com/bijl-ctw/_design/tiddlycouch/_list/tiddlywiki/tiddlers]] is an experimental integration of TiddlyWiki with CouchDB.
To check if a new ~TiddlyWiki version is available or to upgrade to the new version, one can use the "upgrade" wizard in the backstage (or from the {{{<<upgrade>>}}} macro).
⚠️ The upgrading mechanism only works with some savers; with others, upgrading //from// a TW below 2.10.0 may result in an empty TW. To avoid problems and upgrade easily, it is recommended to
# always create a backup before upgrading, and
# install the [[SimplifiedUpgradingPlugin|https://github.com/YakovL/TiddlyWiki_SimplifiedUpgradingPlugin/blob/master/SimplifiedUpgradingPlugin.js]] (and then use the upgrade wizard as usual) – it helps at least with Timimi, ~MainTiddlyServer, and Tiddloid.
If ~SimplifiedUpgradingPlugin doesn't work for you, please
* provide feedback (either on Github or in the [[community discussions|DiscussionForums]]): it will help make sure it works in the future and, ultimately, will be used to make ~TiddlyWiki upgrade correctly without any plugin;
* use the import fallback described below.
!!!The import fallback
This method of upgrading is known to be 100% reliable and works even with old ~TiddlyWikis (below 2.4.0). In two words,
* download the new TW version,
* open it, open backstage, and click "import",
* import your non-upgraded TW and save,
* use this TW as an upgraded one (and keep your old one as a backup).
You may also want to check out [[this older, more detailed instruction|HowToUpgradeOlderTiddlyWikis]].
!!!Old plugins
While new ~TiddlyWiki versions are created with backwards compatibility in mind, some old plugins may have become incompatible with them (or with certain savers). If you encounter any problems, you can get help from the [[community|DiscussionForums]] or create an issue [[on Github|https://github.com/TiddlyWiki/tiddlywiki/issues]].
The steps you need to take depend on which version of TiddlyWiki you are upgrading from. From version 2.4.0 onwards, you can upgrade to the latest version using the 'Upgrade' tab in the BackstageArea, as described in HowToUpgrade. If you're using an earlier version of TiddlyWiki, you'll need to follow these instructions instead:
! Upgrading from TiddlyWiki earlier than version 2.4.0 to the latest version
* Download a fresh, empty version of TiddlyWiki by right-clicking on [[this link|./empty.html]], selecting 'Save target' or 'Save link' and saving it in a convenient location as (say) "mynewtiddlywiki.html"
* Open the new TiddlyWiki file in your browser
* Choose ''import'' from the BackstageArea at the top of the window (you may need to click the 'backstage' button at the upper right to show the BackstageArea)
* Click the ''browse'' button and select your original TiddlyWiki file (say, "mytiddlywiki.html") from the file browser
* Click the ''open'' button on the import wizard; a list of all of your tiddlers is displayed
* Click on the top-left checkbox to select all the tiddlers in the list
* Scroll down to the bottom of the wizard and ensure that the checkbox labelled //Keep these tiddlers linked to this server...// is ''clear''
* Click the ''import'' button
The most likely cause of the upgrade process not working properly is that one of the [[Plugins]] you're using is not compatible with a change in the new release. If so, you can repeat the process omitting the troublesome plugins.
HTML entities can be used to easily type special characters:
{{{
Here is a quote symbol: "
And a pound sign: £
}}}
Displays as:
Here is a quote symbol: "
And a pound sign: £
!Notes
For a full list of available HTML references see:
http://www.w3schools.com/tags/ref_entities.asp
Raw HTML text can be included in a tiddler:
{{{
<html>
This is some <strong>HTML</strong> formatting
</html>
}}}
<html>
This is some <strong>HTML</strong> formatting
</html>
!Notes
* only static HTML elements that are valid within a {{{<div>}}} work correctly
* {{{document.write}}} cannot be used to generate dynamic content
* External {{{<script>}}} elements cannot be used within {{{<html>}}} blocks
Entities in HTML documents allow characters to be entered that can't easily be typed on an ordinary keyboard. They take the form of an ampersand (&), an identifying string, and a terminating semi-colon (;). There's a complete reference [[here|http://www.htmlhelp.com/reference/html40/entities/]]; some of the more common and useful ones are shown below.
|>|>|>|>|>|>| !HTML Entities |
| &nbsp; | | no-break space | | &apos; | ' | single quote, apostrophe |
| &ndash; | – | en dash |~| &quot; | " | quotation mark |
| &mdash; | — | em dash |~| &prime; | ′ | prime; minutes; feet |
| &hellip; | … | horizontal ellipsis |~| &Prime; | ″ | double prime; seconds; inches |
| &copy; | © | Copyright symbol |~| &lsquo; | ‘ | left single quote |
| &reg; | ® | Registered symbol |~| &rsquo; | ’ | right single quote |
| &trade; | ™ | Trademark symbol |~| &ldquo; | “ | left double quote |
| &dagger; | † | dagger |~| &rdquo; | ” | right double quote |
| &Dagger; | ‡ | double dagger |~| &laquo; | « | left angle quote |
| &para; | ¶ | paragraph sign |~| &raquo; | » | right angle quote |
| &sect; | § | section sign |~| &times; | × | multiplication symbol |
| &uarr; | ↑ | up arrow |~| &darr; | ↓ | down arrow |
| &larr; | ← | left arrow |~| &rarr; | → | right arrow |
| &lArr; | ⇐ | double left arrow |~| &rArr; | ⇒ | double right arrow |
| &harr; | ↔ | left right arrow |~| &hArr; | ⇔ | double left right arrow |
The table below shows how accented characters can be built up by subsituting a base character into the various accent entities in place of the underscore ('_'):
|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>| !Accented Characters |
| grave accent | &_grave; | À | à | È | è | Ì | ì | Ò | ò | Ù | ù | | | | | | |
| acute accent | &_acute; | Á | á | É | é | Í | í | Ó | ó | Ú | ú | | | Ý | ý | | |
| circumflex accent | &_circ; | Â | â | Ê | ê | Î | î | Ô | ô | Û | û | | | | | | |
| umlaut mark | &_uml; | Ä | ä | Ë | ë | Ï | ï | Ö | ö | Ü | ü | | | Ÿ | ÿ | | |
| tilde | &_tilde; | Ã | ã | | | | | Õ | õ | | | Ñ | ñ | | | | |
| ring | &_ring; | Å | å | | | | | | | | | | | | | |
| slash | &_slash; | | | | | | | Ø | ø | | | | | | | |
| cedilla | &_cedil; | | | | | | | | | | | | | | | Ç | ç |
!Simple Images
{{{
[img[https://classic.tiddlywiki.com/images/fractalveg.jpg]]
}}}
Displays as:
[img[https://classic.tiddlywiki.com/images/fractalveg.jpg]]
!Tooltips for Images
{{{
[img[tooltip|images/fractalveg.jpg]]
}}}
Shows a toolitp if one hovers mouse over the image:
[img[tooltip|images/fractalveg.jpg]]
!Image Links
{{{
[img[images/fractalveg.jpg][http://www.flickr.com/photos/jermy/10134618/]]
}}}
Makes the image clickable (works as a link; check out the tooltip as well):
[img[images/fractalveg.jpg][http://www.flickr.com/photos/jermy/10134618/]]
!Floating Images with Text
{{{
[<img[images/fractalveg.jpg]]
}}}
[<img[images/fractalveg.jpg]] Floats to the left like here
@@clear:both;display:block; @@
To start a new line with "cleared" float like this, put the code below in the beginning of it:
{{{
@@clear:both;display:block; @@
}}}
[>img[images/fractalveg.jpg]]Likewise, you can make image float to the right:
{{{
[>img[images/fractalveg.jpg]]
}}}
You can import tiddlers from another ~TiddlyWiki file, or from an external website this way:
# If the tiddler is on an external site, first copy the URL of that site (like https://tiddlytools.com/Classic/);
# In your ~TiddlyWiki, click on the 'Backstage' button at the top right of the page;
# In the menu, click on 'Import' and follow the guidance from there. Note that you may need to grant authorisation to your ~TiddlyWiki file to import tiddlers – this is fine and expected.
Alternatively, you can use {{{<<importTiddlers>>}}} macro to show the import wizard outside the backstage.
Anyone can suggest improvements to the documentation. Since it is [[built|https://github.com/TiddlyWiki/TiddlyWiki/blob/master/build/README.md]] from separate .tid content [[files|https://github.com/TiddlyWiki/TiddlyWiki/tree/master/content]] stored in the {{{TiddlyWiki}}} [[GitHub repository|https://github.com/TiddlyWiki/TiddlyWiki]], proposing changes is done via ~GitHub too. Here's how:
# Create an account on [[GitHub|https://github.com]] if you don't already have one. /%#
to adapt:
# Sign the [[Contributor License Agreement|https://tiddlywiki.com/#Contributor%20License%20Agreement]] as described in [[Signing the Contributor License Agreement|https://tiddlywiki.com/#Signing%20the%20Contributor%20License%20Agreement]].
%/
# For the tiddler you want to improve, locate its .tid file either by clicking from the "suggest changes" button or directly within the [[content|https://github.com/TiddlyWiki/TiddlyWiki/tree/master/content]] folder.
# Click the pencil edit icon to make changes to the file. ~GitHub will prompt you to write the file into your personal fork of the repository.
** A "fork" is your personal copy of the repository that you can edit freely. Later you can propose to merge your changes into the main repository via a pull request (see below).
** Ensure to adjust the modified field with a date time stamp in {{{YYYYMMDDHHMM}}} format and the modifier field with your username.
# Below the edit box for the tiddler text you should see a box labeled ''Propose file change''.
# Enter a brief title to explain the change, prefixed with "docs:" (eg, "docs: add examples of the slider macro usage").
# If necessary, enter a longer description too.
# Click the green button labeled ''Propose file change''.
# On the following screen, click the green button labeled ''Create pull request''.
One of the core developers will review your pull request and merge it so it will be incorporated into main repository.
/%# describe also:
* aspects of edit beyond the first one, branch names and updating master in the fork
* split.recipe and how to propose renaming, deleting or adding a tiddler
* review the process in practice and add if there's any missing bits (like commenting the pull request itself
and the process of reviewing/improving a PR)
%/
When you type more than three characters in the search box at the upper right, any matching tiddlers are automatically displayed with the text highlighted. There's a couple of minor issues: the highlights don't get removed when you clear the search, and occasionally, on some browsers, keystrokes get missed if you type quickly so you may need to click the 'search' button to manually trigger the search.
[[Plugins]] are just tiddlers containing ~JavaScript code and tagged with <<tag systemConfig>>. ~TiddlyWiki executes any plugin as it loads (unless it is tagged with {{{systemConfigDisable}}}).
Typical ways to install a plugin are:
* importing (see the "import" panel in backstage of your TW);
* copying (the title, the text, and adding the {{{systemConfig}}} tag; see also ManuallyInstallIngPlugins);
* using [[ExtensionsExplorerPlugin|https://github.com/YakovL/TiddlyWiki_ExtensionsExplorerPlugin]] (it also can check for updates when you open your ~TiddlyWiki).
Usually, these methods require reloading after the plugin is added and the ~TiddlyWiki is saved.
InterfaceOptions are displayed when you click the 'options' button on the right in your TiddlyWiki file. They are saved in a cookie on your browser, making them sticky between visits:
<<<
<<tiddler OptionsPanel>>
<<<
* The user name for edits should be set //before// starting to edit things
* SaveBackups gives the option of whether to generate backup files
* AutoSave gives the option of automatically saving every time a change is made
* RegExpSearch allows more complex search expressions
* CaseSensitiveSearch does as its name implies
TiddlyWiki works on InternetExplorer 6.x and above under Windows. It also allows you to SaveChanges, albeit there are some annoying XP ServicePack2Problems and VistaIssues to work around. If you're having problems, make sure you've followed the appropriate [[downloading guidelines|Downloading]].
Known problems with ~TiddlyWiki under InternetExplorer:
* [[Gradient|GradientMacro]] fills sometimes appear in the wrong place until you move the mouse over the tiddler
* Horizontal gradients don't work correctly
* Links to tiddlers with multiple consecutive spaces in their titles is broken
* Runs of spaces within tiddlers get conflated into a single space when you edit a tiddler. This is particularly annoying when using MonospacedText blocks
JavaScript is the programming language that powers the [[Web]]. In the browser it is used to script behaviours that breathe life into the static world of [[HTML]] and [[CSS]], and it is increasingly being selected as a ServerSide programming language.
TiddlyWiki relies on JavaScript, and can't function properly without it. An alternative is to use a ServerSide adaptation like TiddlyWeb or TiddlySpace that can provide a static HTML view of TiddlyWiki content that doesn't require JavaScript in the browser.
Jeremy is the original creator of TiddlyWiki (nowadays, it's more of a [[group effort|Community]]). He works at [[BT|http://www.btplc.com/]] where he is Head of Open Source Innovation. He runs the [[Osmosoft]] team, and generally tries to help BT be better at understanding and participating in open source.
I can be reached at {{{jeremy (at) osmosoft (dot) com}}}, and I regularly read and reply to messages on the [[TiddlyWiki Google Groups|Community]]. I (occasionally) write on my TiddlySpace at http://jermolene.com/ and you can also find me on [[Flickr|http://www.flickr.com/photos/jermy/]], [[del.icio.us|http://del.icio.us/jeremyruston]] and [[twitter|http://twitter.com/Jermolene]].
Offers a popup menu to jump directly to any of the currently open tiddlers. It is used with the ToolbarMacro like this:
{{{
<<toolbar jump>>
}}}
Access keys are shortcuts to common functions accessed by typing a letter with either the 'alt' (PC) or 'control-alt' (Mac) key:
|!PC|!Mac|!Function|
|~Alt-F|~Ctrl-Alt-F|Search|
|~Alt-J|~Ctrl-Alt-J|NewJournal|
|~Alt-N|~Ctrl-Alt-N|NewTiddler|
|~Alt-S|~Ctrl-Alt-S|SaveChanges|
These access keys are provided by the associated internal [[Macros]] for the functions above. The macro needs to be used in an open tiddler (or the MainMenu or SideBar) in order for the access keys to work.
While editing a tiddler:
* ~Control-Enter or ~Control-Return accepts your changes and switches out of editing mode (use ~Shift-Control-Enter or ~Shift-Control-Return to stop the date and time being updated for MinorChanges)
* Escape abandons your changes and reverts the tiddler to its previous state
In the search box:
* Escape clears the search term
~TiddlyWiki is published under a BSD licence, and is owned by the not-for-profit [[UnaMesa Foundation|http://www.unamesa.org/]].
You've clicked on an example link! Click close to close this tiddler.
Line breaks can be forced explicitly:
{{{
Some text with a<br>line break in the middle
}}}
Displays as:
Some text with a<br>line break in the middle
!Wiki Links
Any words or phrases that are CamelCase or compound words - in which the elements are joined without spaces - will result in them becoming links to tiddlers with that name.
For example,
{{{
WikiWord
}}}
Displays as:
WikiWord
To stop this happening the words must be escaped:
{{{
~WikiWord
}}}
Displays as:
~WikiWord
Alternatively, a tiddler can be linked to using square brackets to encompass the whole tiddler title:
{{{
[[tiddler name]]
}}}
!Pretty Links
Optionally, custom text can be added, separated by a pipe character (|)
{{{
[[alternative link text|tiddler name]]
}}}
Displays as:
[[link to our WikiWord tiddler|WikiWord]]
!External Links
Writing the URL in the text results in a link to that external site:
{{{
http://osmosoft.com
}}}
Displays as:
http://osmosoft.com
Similar to pretty links alternative text can be used to link to external sites:
{{{
[[Visit the Osmosoft site|http://osmosoft.com]]
}}}
Displays as:
[[Visit the Osmosoft site|http://osmosoft.com]]
!~TiddlySpace: Links to Other Spaces
In [[TiddlySpace|HostedOptions]], it was possible to link to a space by preceding it with {{{@}}}:
{{{
@about
}}}
Displays as:
@about
Suppress space linking with {{{~}}}:
{{{
~@about
}}}
~@about
Link to a tiddler within another space:
{{{
TiddlyWiki@glossary
[[TiddlySpace API]]@glossary
[[Information about the HTTP interface|TiddlySpace API]]@glossary
}}}
Displays as:
TiddlyWiki@glossary
[[TiddlySpace API]]@glossary
[[Information about the HTTP interface|TiddlySpace API]]@glossary
[[Link Formatting]] allows for links that open local or network folders. Depending on your browser and operating system, the folders are opened in Windows Explorer, the OS X Finder, or the browser itself.
Edit this tiddler to see [[this link to a Windows network share|file://///server/share/folder/path/name]], [[this link to a Windows drive-mapped folder|file:///c:/folder/path/name]] and [[this link to a Unix-style folder|file:///folder/path/name]].
!Ordered Lists
Lists can be ordered with numbers and letters:
{{{
#List item one
##List item two
###List item three
}}}
Displays as:
#List item one
##List item two
###List item three
!Unordered Lists
Lists can be unordered:
{{{
*Unordered List Level 1
**Unordered List Level 2
***Unordered List Level 3
}}}
Displays as:
*Unordered List Level 1
**Unordered List Level 2
***Unordered List Level 3
!Definition Lists
Definition lists can also be created:
{{{
;Title 1
:Definition of title 1
;Title 2
:Definition of title 2
}}}
Displays as:
;Title 1
:Definition of title 1
;Title 2
:Definition of title 2
See also [[Tagging Macro]]
The {{{<<list>>}}} macro creates a list of tiddlers of a given type. It takes the following parameters:
{{{
<<list {type} [template:<templateTiddlerName>] [emptyMessage:"<message for when the list is empty>"]>>
}}}
The template tiddlers allows you to customise the text that is displayed about each tiddler. If it is not provided, then the default of "{{{<<view title link>>}}}" is used, which just includes the title of the tiddler as a link. You could add the author to each entry in the list by setting the template to a tiddler with the text "{{{<<view title link>> by <<view modified link>>}}}".
The empty message parameter allows you to specify text to be displayed if the list of tiddlers is empty.
The following types are supported:
!all
To list all tiddlers
{{{
<<list all>>
}}}
!filter
List [[filtered|Filters]] tiddlers. The following example lists all plugins:
{{{
<<list filter [tag[systemConfig]]>>
}}}
!Missing
To list tiddlers that have links to them but are not defined:
{{{
<<list missing>>
}}}
!Orphans
To list tiddlers that are not linked to from any other tiddlers:
{{{
<<list orphans>>
}}}
!Shadowed
To list tiddlers shadowed with default contents:
{{{
<<list shadowed>>
}}}
!Touched
Show tiddlers that have been modified locally:
{{{
<<list touched>>
}}}
[[luakit|http://luakit.org/]] is a powerful customizable web browser for Linux. In their own words:
<<<
Luakit is a highly configurable, micro-browser framework based on the WebKit web content engine and the GTK+ toolkit. It is very fast, extensible by Lua and licensed under the GNU GPLv3 license.
It is primarily targeted at power users, developers and any people with too much time on their hands who want to have fine-grained control over their web browsers behaviour and interface.
<<<
'perlguy' has written up his customizations to get TiddlyWiki working: https://github.com/perlguy/luakit-tiddlywiki
[[allTags|allTags macro]]
[[closeAll|closeAll macro]]
[[list|list macro]]
[[newJournal|newJournal macro]]
[[newTiddler|newTiddler macro]]
[[permaview|permaview macro]]
[[saveChanges|saveChanges macro]]
[[search|search macro]]
[[slider|slider macro]]
[[tabs|tabs macro]]
[[tag|tag macro]]
[[tagging|tagging macro]]
[[tags|tags macro]]
[[tiddler|tiddler macro]]
[[timeline|timeline macro]]
[[today|today macro]]
[[version|version macro]]
[[view|view macro]]
HelloThere
GettingStarted
[[Customisation]]
[[Examples]]
[[Reference]]
[[Dev docs|DeveloperDocumentation]]
[[Help and Support]]
[[Community]]
[[RSS|RssFeed]]
<<tiddler Download>>
/%
<html>
<a href="http://flattr.com/thing/958386/TiddlyWiki" target="_blank">
<img src="//api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Flattr this" border="0" /></a>
</html>
%/
^^[img[images/favicon.ico]] TiddlyWiki <<version>>
© 2013 [[UnaMesa|http://www.unamesa.org/]]^^
This tiddler contains a list of the tiddlers that appear in the MainMenu. In the default TiddlySpace theme the MainMenu appears in the horizontal bar at the top of the page and in the default TiddlyWiki theme the MainMenu is on the left.
In some situations it can be useful to use the clipboard insead of InstallingPlugins using ImportTiddlers.
# Open a new browser window and navigate to the TiddlyWiki site containing the macro you want
# Double click the tiddler, or click the {{{source}}} button (on other sites it will sometimes be a {{{view}}} or {{{edit}}} button)
# The entire text of the tiddler should be selected; if not select it manually with ~Control-A or ~Command-A
# Copy the entire text of the tiddler to the clipboard
# Open your TiddlyWiki file in a new browser window
# Click {{{new tiddler}}} to create a new blank tiddler
## Paste the contents of the clipboard into it's body
## Set the title as appropriate
## Add the tag {{{systemConfig}}}
# Click {{{done}}} on the tiddler
# SaveChanges
# Reload your TiddlyWiki in the browser
The plugin should now be available for use.
<!--{{{-->
<link rel="shortcut icon" href="images/favicon.ico" />
<link href="/index.xml" rel="alternate"
type="application/rss+xml" title="tiddlywiki.com's RSS feed" />
<!--}}}-->
|''URL:''|http://web.archive.org/web/20120321101358/http://www.martinswiki.com/ |
|''Description:''|Martin Buddens's Plugins |
|''Author:''|MartinBudden |
There are several ways to incorporate mathematical formulae into ~TiddlyWiki and use ~LaTeX in tiddlers:
# The latest solution is [[TwFormulaPlugin|https://github.com/YakovL/TiddlyWiki_TwFormulaPlugin/]], allowing to use ~KaTeX and other libraries like ~MathJax, and ~MathQuill.
# It's worth mentioning some of its predecessors: [[PluginMathJax|http://math-template.tiddlyspace.com/#%5B%5BPluginMathJax%20v1.3%5D%5D]], [[TiddlyJsMath|http://bob.mcelrath.org/tiddlyjsmath.html]], and [[MathSVGPlugin|https://web.archive.org/web/20130707161357/http://www.math.ist.utl.pt/~psoares/mathsvg.html]]; but it's unlikely that you'll need them.
An alternative is to use a service like [[CodeCogs|http://www.codecogs.com/latex/eqneditor.php]] that enables you to generate images of equations from ~LaTeX source that can be manually inserted into ~TiddlyWiki. Some examples of this technique are https://twmath.tiddlyspot.com and https://twequation.tiddlyspot.com
MicroContent and MicroCopy being fashionable words for self-contained fragments of content that are smaller than an entire pages.
Usually MicroContent is presented through some kind of aggregation that reduces the perceptual shock and resource cost of context switching (eg the way that blogs aggregating several entries onto a page, or Flickr presents a bunch of photos in an album). TiddlyWiki aggregates MicroContent items called [[tiddlers|Tiddler]] into pages that are loaded in one gulp and progressively displayed as the user clicks hypertext links to read them.
Sometimes it's useful to stop a minor change to a tiddler from causing it to rise to the top of the timeline. This can be done by pressing the Shift key while clicking the 'done' toolbar button, or with the ~Shift-Control-Enter key. This behaviour can be switched to become the default with one of the AdvancedOptions.
The 'Missing' option on the MoreTab shows you the names of tiddlers that you've referred to but not gone ahead to define. It can be useful during writing sessions to keep track of things you need to come back and fill out.
TiddlyWiki sites on the Internet work well on the iPhone, iPad and Android devices but the browsers on those devices do not allow documents to be saved.
To work around this limitation, you can use these apps:
* [[AndTidWiki|https://market.android.com/details?id=de.mgsimon.android.andtidwiki]] for Android Devices
* [[TWMobile|http://itunes.apple.com/gb/app/twmobile/id381945222?mt=8]] for iPad
* [[TWEdit|http://itunes.apple.com/gb/app/twedit/id409607956?mt=8]] for iPhone, iPad and iPod Touch
* [[tiddlyNotes|http://itunes.apple.com/us/app/tiddlynotes-lite/id465933435?mt=8]] for iPhone, iPad and iPod Touch
Note that these applications are produced by independent third parties, and are not associated with tiddlywiki.com or UnaMesa.
|''URL:''|https://mptw.tiddlyspot.com|
|''Description:''|a tiddlywiki distribution and plugins|
|''Author:''|SimonBaird|
The functions of 'Timeline' and 'All' tabs have been around since the FirstVersion of TiddlyWiki. The purpose of the 'More' tab is to bring together some other, more specialised lists of tiddlers that can be useful during writing sessions. Currently, it offers lists of OrphanTiddlers and MissingTiddlers.
Within a CustomStyleSheet, you can include the text of another tiddler by including it in double square brackets. For example, if the tiddler MyFavouriteColour contains {{{#ff763e}}}, and the StyleSheet tiddler contained:
{{{
#mainMenu {background-color:[[MyFavouriteColour]];}
}}}
Then, the effect is that each CSS declaration will be set to {{{background-color: #ff763e;}}}.
In practice, for small bits of text like a colour, it makes sense to use TiddlerSlicing format to reference a chunk of text within a tiddler. See ColorPalette and StyleSheetColors for an example.
Of course, you can use this mechanism to redirect any part of a stylesheet, not just colours. And you can nest references for more complex effects.
A PageTemplate, ViewTemplate or EditTemplate can include the text of another tiddler by including it in double square brackets. For example:
{{{
<div>
[[MyHeader]]
</div>
}}}
You can also use TiddlerSlicing format to include a smaller chunk of the text of a tiddler.
To create a new tiddler from the current date and time:
{{{
<<newJournal>>
}}}
Displays as:
<<newJournal>>
Using the following you get a new tiddler button:
{{{
<<newTiddler>>
}}}
Displays as:
<<newTiddler>>
Certain attributes can also be attached, such as a label, default text, tags and fields:
{{{
<<newTiddler label:WikiWord text:"text" tag:tag tag:tag accessKey:key focus:field>>
}}}
Displays as:
<<newTiddler label:WikiWord text:"text" tag:tag tag:tag accessKey:key focus:field>>
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 the copyright notice. (You can see the full license text by doing a 'view source' in your browser).
Contemporary Opera works mostly the same as [[Chrome]]
The options macro, used predominately in the backstage, allows the user to set a number of cookie based options that affect the enabled features of the Tiddlywiki. These settings can be trivial, such as do you want animations enabled, or can be used for more complex things, such as enable regular expressions searches.
It is used as below:
{{{
<<options>>
}}}
Options can be used by plugin developers to add settings that can be used by their plugin.
Displays as:
<<options>>
The 'Orphans' option on the MoreTab shows you the names of tiddlers that aren't linked to from any other tiddlers - in other words, tiddlers that there is no way for readers to find other than searching for them.
Osmosoft Limited was founded by JeremyRuston in 2005, and acquired by [[BT|http://btplc.com]] in 2007.
Osmosoft is now a small team within [[BT|http://www.btplc.com/]] that focuses on showing the value of open source working methods. It does this through working with the community on the ongoing development of TiddlyWiki, TiddlyWeb and TiddlySpace, and applying them to solve problems within BT.
See http://www.osmosoft.com/ for more details.
This tiddler contains the mark up to display the page. You can change the mark up to create a custom view of the page.
By default it contains the following markup:
{{{
<!--{{{-->
<div class='header'>
<div id='sidebarSearch'>
<span macro='search'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='clearFloat'></div>
</div>
<div id='menuBar'>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<!--}}}-->
}}}
The ParameterParser is used in several places in TiddlyWiki:
* to process the StartupParameters after the '#' in a TiddlyWiki URL
* to process the DefaultTiddlers list
* to process the parameters to Macros
* to process tag lists when editing a tiddler
It supports a list of parameters each of the form "name:value". For example:
{{{
name:John location:"Isle of Wight" [[dietary needs]]:none really:'yes, really'
}}}
Names and values that need to contain spaces may be quoted with single- or double-quotes or double-square brackets. The parser is generally tolerant of additional spaces.
When processing macro parameters, names and values may also be quoted with double-braces which causes them to be evaluated as a [[JavaScript|http://en.wikipedia.org/wiki/JavaScript]] expression. For example:
{{{
title:{{window.title}}
}}}
The ParameterParser will cope with either the name or the value being omitted, and will substitute a specified default. This is how the StartupParameters work; the default parameter name is specified as 'open'.
|''URL:''|https://bradleymeck.tiddlyspot.com|
|''Description:''|Resources that are Ripe for the Picking|
|''Author:''|~BradleyMeck|
|Standard Periodic Table (ref. Wikipedia)|c
|| !1 | !2 |!| !3 | !4 | !5 | !6 | !7 | !8 | !9 | !10 | !11 | !12 | !13 | !14 | !15 | !16 | !17 | !18 |
|!1|bgcolor(#a0ffa0): @@color(red):H@@ |>|>|>|>|>|>|>|>|>|>|>|>|>|>|>|>||bgcolor(#c0ffff): @@color(red):He@@ |
|!2|bgcolor(#ff6666): Li |bgcolor(#ffdead): Be |>|>|>|>|>|>|>|>|>|>||bgcolor(#cccc99): B |bgcolor(#a0ffa0): C |bgcolor(#a0ffa0): @@color(red):N@@ |bgcolor(#a0ffa0): @@color(red):O@@ |bgcolor(#ffff99): @@color(red):F@@ |bgcolor(#c0ffff): @@color(red):Ne@@ |
|!3|bgcolor(#ff6666): Na |bgcolor(#ffdead): Mg |>|>|>|>|>|>|>|>|>|>||bgcolor(#cccccc): Al |bgcolor(#cccc99): Si |bgcolor(#a0ffa0): P |bgcolor(#a0ffa0): S |bgcolor(#ffff99): @@color(red):Cl@@ |bgcolor(#c0ffff): @@color(red):Ar@@ |
|!4|bgcolor(#ff6666): K |bgcolor(#ffdead): Ca ||bgcolor(#ffc0c0): Sc |bgcolor(#ffc0c0): Ti |bgcolor(#ffc0c0): V |bgcolor(#ffc0c0): Cr |bgcolor(#ffc0c0): Mn |bgcolor(#ffc0c0): Fe |bgcolor(#ffc0c0): Co |bgcolor(#ffc0c0): Ni |bgcolor(#ffc0c0): Cu |bgcolor(#ffc0c0): Zn |bgcolor(#cccccc): Ga |bgcolor(#cccc99): Ge |bgcolor(#cccc99): As |bgcolor(#a0ffa0): Se |bgcolor(#ffff99): @@color(green):Br@@ |bgcolor(#c0ffff): @@color(red):Kr@@ |
|!5|bgcolor(#ff6666): Rb |bgcolor(#ffdead): Sr ||bgcolor(#ffc0c0): Y |bgcolor(#ffc0c0): Zr |bgcolor(#ffc0c0): Nb |bgcolor(#ffc0c0): Mo |bgcolor(#ffc0c0): Tc |bgcolor(#ffc0c0): Ru |bgcolor(#ffc0c0): Rh |bgcolor(#ffc0c0): Pd |bgcolor(#ffc0c0): Ag |bgcolor(#ffc0c0): Cd |bgcolor(#cccccc): In |bgcolor(#cccccc): Sn |bgcolor(#cccc99): Sb |bgcolor(#cccc99): Te |bgcolor(#ffff99): I |bgcolor(#c0ffff): @@color(red):Xe@@ |
|!6|bgcolor(#ff6666): Cs |bgcolor(#ffdead): Ba |bgcolor(#ffbfff):^^*1^^|bgcolor(#ffc0c0): Lu |bgcolor(#ffc0c0): Hf |bgcolor(#ffc0c0): Ta |bgcolor(#ffc0c0): W |bgcolor(#ffc0c0): Re |bgcolor(#ffc0c0): Os |bgcolor(#ffc0c0): Ir |bgcolor(#ffc0c0): Pt |bgcolor(#ffc0c0): Au |bgcolor(#ffc0c0): @@color(green):Hg@@ |bgcolor(#cccccc): Tl |bgcolor(#cccccc): Pb |bgcolor(#cccccc): Bi |bgcolor(#cccc99): Po |bgcolor(#ffff99): At |bgcolor(#c0ffff): @@color(red):Rn@@ |
|!7|bgcolor(#ff6666): Fr |bgcolor(#ffdead): Ra |bgcolor(#ff99cc):^^*2^^|bgcolor(#ffc0c0): Lr |bgcolor(#ffc0c0): Rf |bgcolor(#ffc0c0): Db |bgcolor(#ffc0c0): Sq |bgcolor(#ffc0c0): Bh |bgcolor(#ffc0c0): Hs |bgcolor(#ffc0c0): Mt |bgcolor(#ffc0c0): Ds |bgcolor(#ffc0c0): Rg |bgcolor(#ffc0c0): @@color(green):Uub@@ |bgcolor(#cccccc): Uut |bgcolor(#cccccc): Uuq |bgcolor(#cccccc): Uup |bgcolor(#cccccc): Uuh |bgcolor(#fcfecc): @@color(#cccccc):Uus@@ |bgcolor(#ecfefc): @@color(#cccccc):Uuo@@ |
| !Lanthanides^^*1^^|bgcolor(#ffbfff): La |bgcolor(#ffbfff): Ce |bgcolor(#ffbfff): Pr |bgcolor(#ffbfff): Nd |bgcolor(#ffbfff): Pm |bgcolor(#ffbfff): Sm |bgcolor(#ffbfff): Eu |bgcolor(#ffbfff): Gd |bgcolor(#ffbfff): Tb |bgcolor(#ffbfff): Dy |bgcolor(#ffbfff): Ho |bgcolor(#ffbfff): Er |bgcolor(#ffbfff): Tm |bgcolor(#ffbfff): Yb |
| !Actinides^^*2^^|bgcolor(#ff99cc): Ac |bgcolor(#ff99cc): Th |bgcolor(#ff99cc): Pa |bgcolor(#ff99cc): U |bgcolor(#ff99cc): Np |bgcolor(#ff99cc): Pu |bgcolor(#ff99cc): Am |bgcolor(#ff99cc): Cm |bgcolor(#ff99cc): Bk |bgcolor(#ff99cc): Cf |bgcolor(#ff99cc): Es |bgcolor(#ff99cc): Fm |bgcolor(#ff99cc): Md |bgcolor(#ff99cc): No |
|used notation|c
|Chemical Series of the Periodic Table|State at standard temperature and pressure|
|bgcolor(#ff6666): Alkali metals|color(red):gases|
|bgcolor(#ffdead): Alkaline earth metals|color(green):liquids|
|bgcolor(#ffbfff): Lanthanides|solids|
|bgcolor(#ff99cc): Actinides|
|bgcolor(#ffc0c0): Transition metals|
|bgcolor(#cccccc): Poor metals|
|bgcolor(#cccc99): Metalloids|
|bgcolor(#a0ffa0): Nonmetals|
|bgcolor(#ffff99): Halogens|
|bgcolor(#c0ffff): Noble gases|
Changes the browser address bar to a permalink to the current tiddler. It is used with the ToolbarMacro like this:
{{{
<<toolbar permalink>>
}}}
On some browsers, the PermalinkCommand can be unreliable if the tiddler title includes characters that have special meanings in ~URLs (like "+" and "\") or are outside the basic ANSI character set.
PermaView is a button in the right-hand sidebar that sets the browser address bar to a URL embodying all the currently open tiddlers in the order that they are currently shown. To use it, arrange the open tiddlers that you want, click the permaview button, copy the URL from the browser address bar, and then paste it into an email, web page or whatever.
On some browsers, PermaView can be unreliable if any of the tiddler titles include characters that have special meanings in URLs (like "+" and "\") or are outside the basic ANSI character set.
To create a permaview URL for all open tiddlers:
{{{
<<permaview>>
}}}
Displays as:
<<permaview>>
TiddlyWiki now has the ability to save options in the TiddlyWiki document itself (in addition to the ability to save options in cookies). Persistent options are stored in the [[SystemSettings]] tiddler. Persistent options are sometimes called "baked" options, since the value of the cookie is "baked" into the TiddlyWiki.
As an example, let's look at the {{{chkAnimate}}} option; this is currently stored as a cookie. You can get its value to be persistent by adding it to the [[SystemSettings]] tiddler. If there is no SystemSettings tiddler, you need to create it. Then add, for example:
<<<
chkAnimate: true
<<<
This has two effects, it makes the {{{chkAnimate}}} option persistent, and it gives the option a value (in this case {{{true}}}, it could equally well have been {{{false}}}).
The option can still be changed in the normal way (by ticking the box in the options panel); it can also be changed by editing the value in the [[SystemSettings]] tiddler. If the option is removed from the [[SystemSettings]] tiddler, then its value will be retained, but it will stored in a cookie.
!!Under the hood
The "source" of an option is controlled by the {{{config.optionsSource[optionName]}}} variable. This can take one of two values:
# {{{null}}} - the option is stored in a cookie, this is the ''default''.
# {{{setting}}} - the option is stored in the [[SystemSettings]] tiddler.
The {{{config.optionsSource[]}}} variable is controlled by the values in the [[SystemSettings]] tiddler. If the option exists in [[SystemSettings]], then {{{config.optionsSource[optionName]}}} is set to {{{setting}}}, and the option is persisted.
Sometimes text can inadvertently match TiddlyWiki formatting instructions - particularly program code, or text pasted from elsewhere. In these situations you can either use MonospacedText or you can accomplish the same thing without the monospaced effect like this:
{{{
This is AnotherLink, this is a copyright symbol © and this site is called <<tiddler SiteTitle>>
<nowiki>This is AnotherLink, this is a copyright symbol © and this site is called <<tiddler SiteTitle>></nowiki>
"""This is AnotherLink, this is a copyright symbol © and this site is called <<tiddler SiteTitle>>"""
}}}
Which displays as:
This is AnotherLink, this is a copyright symbol © and this site is called <<tiddler SiteTitle>>
<nowiki>This is AnotherLink, this is a copyright symbol © and this site is called <<tiddler SiteTitle>></nowiki>
"""This is AnotherLink, this is a copyright symbol © and this site is called <<tiddler SiteTitle>>"""
It is recommended that [[Plugins]] start with some standard information in TiddlerSlicing format. For example, see the ExamplePlugin:
{{{
|''Name:''|ExamplePlugin|
|''Description:''|To demonstrate how to write TiddlyWiki plugins|
|''Version:''|2.0.2|
|''Date:''|Jul 12, 2006|
|''Source:''|https://classic.tiddlywiki.com/#ExamplePlugin|
|''Author:''|JeremyRuston (jeremy (at) osmosoft (dot) com)|
|''License:''|[[BSD open source license]]|
|''~CoreVersion:''|2.1.0|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|
}}}
At the moment, only ~CoreVersion affects how [[Plugins]] are processed: if the ~CoreVersion is specified for a plugin, TiddlyWiki will only execute the plugin if the core code version matches or exceeds the version specified. For example, if you specify a ~CoreVersion of 2.2, version 2.1.x of TiddlyWiki will refuse to execute the plugin.
To indicate an error, plugins should just {{{throw}}} an exception. The text of the exception will be displayed in the PluginManager.
To make plugins, stylesheets and templates easier to read, you can use special alternative formatting for monospaced blocks.
In [[JavaScript|http://en.wikipedia.org/wiki/JavaScript]] code:
{{{
//{{{
var id = document.getElementById("mainMenu");
//}}}
}}}
In HTML templates:
{{{
<!--{{{-->
<div id="MainMenu">
</div>
<!--}}}-->
}}}
In CSS stylesheets
{{{
/*{{{*/
div {color: #ff0000;}
/*}}}*/
}}}
It will be displayed as:
//{{{
var id = document.getElementById("mainMenu");
//}}}
<!--{{{-->
<div id="MainMenu">
</div>
<!--}}}-->
/*{{{*/
div {color: #ff0000;}
/*}}}*/
This tiddler contains the command to display the plugin manager:
{{{
<<plugins>>
}}}
~TiddlyWiki can be extended by [[installing plugins|InstallingPlugins]] (and [[other extensions|Customisation]]) that implement a wide variety of features (like adding [[better search|Search]], [[formulas support|Mathematics]], additional [[Macros]], etc).
There are several catalogues of plugins and other extensions, for instance:
* [[TiddlyVault|https://tiddlyvault.tiddlyspot.com/]] by Dave Gifford,
* [[TiddlyTools|https://tiddlytools.com/Classic/]] (contains mostly extensions by Eric Shulman, but there are lots of them),
* servers of some other authors are tagged [[systemServer]] here (but it's not a comprehensive list),
* [[Customize Space Archive|https://yakovlitvin.pro/TW/TS_backups/customize.tiddlyspace.com%20(24.02.2016).html]] (a comprehensive catalogue of its time).
As many of them were not maintained for a while, some links got broken, so sometimes you'll need to use [[Web Archive|https://archive.org/web]] to get an extension.
For information on writing plugins, see DeveloperDocumentation.
|''URL:''|https://ptw.sourceforge.net/ptwe.html|
|''Description:''|~BramChen's Extensions for TiddlyWiki|
|''Author:''|~BramChen|
~TiddlyWiki has appeared in a number of publications and articles:
* A [[book about TiddlyWiki|http://www.flickr.com/photos/philhawksworth/1933329531/]] published in Taiwain
* A [[guide|http://www.broowaha.com/articles/7671/a-personal-knowledgebase-solution-tiddlywiki-and-dropbox]] on using ~TiddlyWiki with ~DropBox.
* [[Wikify Yourself|http://eriwen.com/tools/wikify-yourself/]] - Why every programmer should have a Tiddlywiki
* Mike Mahemoff has created a [[screencast|http://softwareas.com/tiddlywiki-screencast-forum-in-15-minutes]] showing how to create a multi-user forum with ~TiddlyWiki in 15 minutes.
* Pao-hsu Shih, a professor at Taipai University in Taiwan, has written an [[Introduction to TiddlyWiki|http://www.wunan.com.tw/bookdetail.asp?no=8852]] in Chinese
* Dmitri Popov discusses ~TiddlyWiki in [[Writer for Writers and Advanced Users|http://www.lulu.com/content/221513]]
* Jeremy Wagstaff's [[The Power of Tiddly|http://www.loosewireblog.com/2007/11/the-power-of-ti.html]]
* Eric Shulman talking about TiddlyWiki at TiddlyWest, a meeting of TiddlyWiki enthusiasts in San Francisco in 2008:
** http://blip.tv/play/gtQ9vexsAg
** http://blip.tv/play/gtQ9ve0NAg
** http://blip.tv/play/gtQ9ve0vAg
!Block Quotations
Blocks of text can be displayed as quotations:
{{{
<<<
Steve Jobs: "computers are like a bicycle for our minds"
<<<
}}}
Displays as:
<<<
Steve Jobs: "computers are like a bicycle for our minds"
<<<
!Nested Quotations
Quotes can be displayed on multi-levels:
{{{
> blockquote, level 1
>> blockquote, level 2
>>> blockquote, level 3
}}}
Displays as:
> blockquote, level 1
>> blockquote, level 2
>>> blockquote, level 3
~TiddlyWiki has received many favourable reviews:
* "~TiddlyWiki offers a glimpse of how things are changing in terms of how people think about software... a new beginning for simple software." -- //Jeremy Wagstaff, [[WSJ.com|http://groups.google.com/group/TiddlyWiki/browse_thread/thread/53c7b7686b9bb5c2/122f1b2146d2ba6d?q=wsj&rnum=1]]//
* "The original ~TiddlyWiki by Jeremy Ruston is, without a doubt, one of the most amazing dynamic web apps I've ever seen (sorry Gmail.)" -- [[Lifehacker.com recommendation|http://www.lifehacker.com/software/productivity/getting-things-done-tiddlywiki-102953.php]]
* "It's blowing my mind." -- //Evan Williams, founder of Blogger, Twitter and Odeo, [[EvHead|http://evhead.com/2005/05/tiddlywiki-reusable-non-linear.asp]]//
* "What I love most about ~TiddlyWiki is that it is quite easy to use but incredibly flexible." -- //Ed Sim of Dawntreader Ventures, [[BeyondVC|http://www.beyondvc.com/2005/10/tiddlywiki.html]]//
* "~TiddlyWiki is completely blowing my mind... Completely tripped out. Try it and you'll see what I mean." -- //Russell Beattie of Yahoo!, [[Russell Beattie's Notebook|http://www.russellbeattie.com/notebook/1008896.html]]//
* "OK, this is the first wiki interface I’ve seen that has real potential. Dunno quite why exactly, but this blows my mind." -- //Jason Kottke, [[Kottke's Remaindered Links|http://www.kottke.org/remainder/04/09/6574.html]]//
There is also the [[The Great TiddlyWiki Viral Mass Interview Challenge|http://interview.tiddlyspace.com/]], a community project to record the impact that TiddlyWiki has had on the people that use it and build it.
|''URL:''|http://solo.dc3.com/tw/|
|''Description:''|Bob Denny's extensions to TiddlyWiki|
|''Author:''|~BobDenny|
|!Formatting|!Macros|!Shadow tiddlers|!Miscellaneous|
|<<tiddler WikiTextContent>>|<<tiddler MacrosContent>>|<<tiddler ShadowTiddlersContent>>|<<tiddler ReferenceContent>>|
InterfaceOptions
SaveChanges
ToolbarButtons
SafeMode
KeyboardShortcuts
StartupParameters
SpecialTags
SpecialTiddlers
PermaView
HtmlEntities
[[Tags]]
IncrementalSearch
RegExpSearch
SaveEmptyTemplate
CustomStyleSheet
NestedStyleSheets
NestedTemplates
TiddlerSlicing
CustomMarkup
MobileDevices
Since the FirstVersion of TiddlyWiki, the ReferencesButton has been implemented as a canned search for the name of the current tiddler. That approach was a bit disruptive because of the way that a search operation wipes the current reading state of the document.
The new implementation offers a popup menu of the names of all the referring tiddlers. It can be consulted without disturbing any tiddlers that are currently open.
Offers a popup menu displaying the tiddlers that link to the current one. It is used with the ToolbarMacro like this:
{{{
<<toolbar references>>
}}}
RegExpSearch is an [[advanced option|AdvancedOptions]] uses [[JavaScript|http://en.wikipedia.org/wiki/JavaScript]]'s [[RegExp syntax|http://www.programmershelp.co.uk/docs/javascript/regexp.html#1193188]] to allow flexible searches.
TiddlyWiki's RSS feed is available [[here|./index.xml]]. You can generate an RSS feed for your own TiddlyWiki using the GenerateAnRssFeed option.
Safari can SaveChanges using the TiddlySaver Java applet.
There are still some issues with Safari:
* Permalinks with Unicode characters in them (like [[this one|http://avm.free.fr/tidlipo.html#AdaptationFran%C3%A7aise]]) don't work properly
* When using Safari 6.0 on OSX "Mountain Lion", TiddlySaver.jar does not get loaded properly. To work around this, go to "preferences / advanced" and check "Show Develop menu in menu bar", then mark "Disable local file restrictions"
SafeMode can be selected by putting {{{#start:safe}}} (see StartupParameters) on the end of the TiddlyWiki URL. It stops TiddlyWiki from executing any [[Plugins]], modifying shadow tiddlers, or reading/writing cookies. It can be useful for tracking down problems caused by rogue [[Plugins]].
The SaveBackups option in the InterfaceOptions determines if the internal backup mechanism will create a backup each time the ~TiddlyWiki is saved.
If no [[saver method|Setting up saving]] is configured, no backup file will be created. Using the manual download saving method will not overwrite the ~TiddlyWiki file in place unless the user chooses the overwrite the existing ~TiddlyWiki file.
Many saver methods have their own way of creating automatic backups. In addition, the operating system or server where the ~TiddlyWiki file is stored may also provide file backup protection.
Note: Do not use File -> Save As or Save Page As from the browser menu to create backups, otherwise this can lead to SaveUnpredictabilities.
If you've followed the appropriate [[Downloading]] guidelines, then you can save your changes as you go along. (AutoSave makes this easy).
It's important to save changes using ~TiddlyWiki's built in saving functionality (rather than the browser's 'Save As' function - [[here's why|SaveUnpredictabilities]]). Your local version of ~TiddlyWiki will have a button on the right hand side that says 'save changes' - that's the button you'll need to use.
It's worthwhile configuring your backup settings. You can edit the AdvancedOptions to decide when backups are made and where they're saved.
If you're still experiencing problems, the following links will help:
* General guidance on [[Firefox]], InternetExplorer, [[Opera]], or [[Safari]]
* If you're using InternetExplorer on Windows you might run into XP ServicePack2Problems or VistaIssues
* Other details about [[Browsers]]
Using the following creates a save changes button
{{{
<<saveChanges>>
}}}
Displays as:
<<saveChanges>>
The button label can also be changed and a tooltip added:
{{{
<<saveChanges [label] [tip]>>
}}}
Displays as:
<<saveChanges [label] [tip]>>
This causes a blank, template TiddlyWiki to be saved alongside your file when you SaveChanges. It's intended to help people who are distributing TiddlyWikiAdaptations, and isn't needed when you're an end-user of TiddlyWiki.
The template TiddlyWiki is called 'empty.html'.
Saves any pending edits to the current tiddler, and switches it to the default view. It is used with the ToolbarMacro like this:
{{{
<<toolbar saveTiddler>>
}}}
Several people have reported problems with reusing TiddlyWiki when they have used the File/Save command of their browser to save it. The issue is that some browsers (notably [[Firefox]]) don't save the text of the HTML file exactly as it appears on the server, but rather save a snapshot of the current state of the page. In the case of a highly dynamic page like TiddlyWiki, this leads to all sorts of peculiarness...
TiddlyWiki now displays a warning if it thinks that it has been saved wrongly.
The default version of ~TiddlyWiki includes basic search functionality. When a search term is entered, all tiddlers that contain this term are opened, with the search term highlighted wherever it appears.
However, using the [[plugin architecture|Plugins]] of ~TiddlyWiki, the [[community|Help and Support]] has written a number of search plugins which can be installed on your local ~TiddlyWiki files easily. The most popular search plugins are:
* Frederik Dohr's SimpleSearchPlugin (which this site is using) – shows the search results as a simple list of tiddlers instead of opening them;
* Udo Borkowski's [[YourSearchPlugin|https://tiddlywiki.abego-software.de/#YourSearchPlugin]] – opens the search results in a dropdown showing the context of the search term match, adds search filters, results ranking, and much more;
* Eric Shulman's [[SearchOptionsPlugin|https://tiddlytools.com/Classic/#SearchOptionsPlugin]] – a highly configurable plugin that produces a list of tiddler titles with options for advanced searches.
Search fields can be created using:
{{{
<<search>>
}}}
Displays as:
<<search>>
A default search term can also be added:
{{{
<<search [term]>>
}}}
Displays as:
<<search [term]>>
One of the neatest features of TiddlyWiki is that it is entirely self-contained in a single HTML file - even including graphics like the GradientMacro. The file contains the actual hypertext document, and the ~JavaScript, ~CascadingStyleSheets and HTML necessary to both view and edit it. 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.
Out of the box, ~TiddlyWiki doesn't have a Server Side back end. In many applications that's a great strength because it means that you can work with ~TiddlyWiki without having to be connected to the Internet or, because it's SelfContained, installing any software.
In other applications, a ~ServerSide can be very useful, particularly if you want to edit a ~TiddlyWiki while it's online, or you need lots of people to be able to edit a ~TiddlyWiki at the same time. The development [[Community]] has come up with several ~ServerSide implementations that are suitable for a range of applications, listed under HostedOptions.
Internet Explorer Windows XP ~SP2 seems to have a magical ability to keep track of html files that have been downloaded from the internet and saved on an NTFS drive. By storing additional data in an [[alternate data stream|http://www.microsoft.com/technet/sysinternals/FileAndDisk/Streams.mspx]], it manages to keep them in the 'Internet' zone regardless of attempts to rename or modify the file. But, in order to be able to SaveChanges, TiddlyWiki needs to run in the 'My Computer' zone.
The solution is to right-click on the TiddlyWiki html file and choose //Properties//. If the file is blocked, you'll see an 'Unblock' button on the resulting property sheet that removes the protection and allows the file to open in the 'My Computer' zone. Then open the file in Internet Explorer - it might put up its information bar asking you whether you want to run it. You need to 'Allow blocked content' to let TiddlyWiki do its stuff.
<<<
If you find yourself running into the information bar frequently, you can disable it by visiting the "Options" dialog and, on the "Advanced" tab make sure that "Allow active content to run in files on My Computer" is checked.
Alternatively, you can rename the file to {{{*.hta}}} which has the added bonus of automatically granting all necessary save permissions.
<<<
This is all a bit frustrating. An easy alternative is to use [[Firefox]], which seems to do the trick on all platforms.
Since version 2.8.1, ~TiddlyWiki has a fallback saver. If no saver method is configured, pressing "save changes" will display a download dialog. The browser may prompt for the location to save the file. Select the existing version of the file to replace it. This method works on most major browsers, but does not provide an ideal user experience as it requires manual intervention for each save. Below are various tools that remove this routine from saving.
!Another native saver
[[ContinuousSavingPlugin|https://github.com/YakovL/TiddlyWiki_ContinuousSavingPlugin/]] allows to reduce the manual steps of saving to just one file picking per session. However, it has a limited browser support (currently, desktop Chrome, Chromium-based browsers, and Edge; see more details in the plugin repository). Presumably, it will be included in the future versions of TW.
!Browser Plugins
Plugins are simple to install and provide smooth user experience, but they are also platform- and browser-specific to some extent. Mobile browsers don't support them.
|extension|author|supported browsers|comments|
|[[Timimi|https://ibnishak.github.io/Timimi/#Installing Timimi]]|Riz|Firefox|Saves ~TiddlyWiki in any folder, other files (backups, snapshots, etc). Requires to install a platform-specific co-app (uses native messaging ~APIs).|
|[[savetiddlers|https://github.com/buggyj/savetiddlers]]|buggyj|Firefox, Chrome, and some Chromium-based browsers like Opera|Requires the ~TiddlyWiki file to be in a subfolder within the Downloads folder.|
|[[file-backups|https://github.com/pmario/file-backups]]|pmario|Firefox; presumably any browser supporting web-extensions|Requires the ~TiddlyWiki file to be in the Downloads folder. The [[internal backup mechanism|SaveBackups]] must be off.|
!Standalone applications
Desktop applications provide automatic saving and are not browser dependent. The disadvantage is they don't offer tabs for browsing and require your ~TiddlyWiki file to be a inside a specific folder. Current ones are based on [[NW.js|https://nwjs.io/]], which means they run at least on macOS, Windows, and Linux.
|[[TiddlyDesktop|https://github.com/Jermolene/TiddlyDesktop]]|An app by Jeremy Ruston.|
|[[nwTWcSaver|https://github.com/nwOkido/nwTWcSaver]]|Minimalistic approach by Okido. Requires adding a saver plugin into TW.|
!Serverside applications
These methods for automatic saving are somewhat advanced, but allow for placing ~TiddlyWiki on a server (local or remote) and generally work with any browser.
|server|language|author|comment|
|[[MainTiddlyServer|https://yakovl.github.io/MainTiddlyServer/]] |PHP |Yakov Litvin |suitable for both local and remote usage|
|[[tiddly-node-saver|https://github.com/fallwest/tiddly-node-saver]]|node.js|James Westfall|for local usage, with enhanced load/save file capabilities|
|[[TiddlyWeb|http://tiddlyweb.com/]] |Python |~UnaMesa, Osmosoft and, Peermore Ltd.|advanced model with multiple users, access control etc|
!Mobile
All of solutions above should work in most desktop ~OSs like Windows, Mac or other Unix family OS (Linux, Ubuntu, etc). While some may work on mobile devices, applications written for the respective platform are usually simpler to setup and have better performance.
|platform|app| download links |comment|
|Android|Tiddloid| {{icon{[img[Tiddloid in GitHub releases|https://cdn.simpleicons.org/github][https://github.com/donmor/Tiddloid/releases]] [img[Tiddloid on F-Droid|https://cdn.simpleicons.org/fdroid/black][https://f-droid.org/en/packages/top.donmor.tiddloid/]]}}} |presumably the best [[open source|https://github.com/donmor/Tiddloid/]] solution for the moment|
|~|Quinoid| {{icon{[img[Quinoid in GitHub releases|https://cdn.simpleicons.org/github][https://github.com/Marxsal/Quinoid01/releases]]}}} |a less mature [[open source|https://github.com/Marxsal/Quinoid01]] app|
|~|~AndTidWiki| {{icon{[img[AndTidWiki on Google Play|https://cdn.simpleicons.org/googleplay][https://play.google.com/store/apps/details?id=de.mgsimon.android.andtidwiki]]}}} |a closed source app (the first to support TW on Android)|
|~|[[MainTiddlyServer|https://yakovl.github.io/MainTiddlyServer/]] + ~AWebServer| {{icon{[img[AWebServer on Google Play|https://cdn.simpleicons.org/googleplay][https://play.google.com/store/apps/details?id=com.sylkat.apache]]}}} |MTS works with some PHP servers on Android; the best server option may change with time|
|iOS|Quine| {{icon{[img[Quine on AppStore|https://cdn.simpleicons.org/appstore/black][https://apps.apple.com/us/app/quine/id1450128957]]}}} |a paid closed source app by Chris Hunt, works with local storage, Dropbox, and iCloud. Requires iOS 12+.|
!Hosted Options
Also, you can store your TW(s) on a server, for example:
* [[Tiddlyhost|https://tiddlyhost.com/]], a free hosting service for ~TiddlyWiki
* (This list should be expanded, you can suggest edits by clicking "suggest edits" and following the instructions)
* (See also HostedOptions, but some of them are outdated)
ShadowTiddlers are special tiddlers that have default values that take over if they are undefined or deleted. For example, PageTemplate and StyleSheetColors are both shadow tiddlers.
ShadowTiddlers make it harder to render a TiddlyWiki inoperative by accidentally deleting something important. You can see a list of shadow tiddlers in the Shadowed tab under the More tab in the right hand column. When you create a tiddler with the same title you override the underlying shadow tiddler.
----
<<list shadowed>>
[[ColorPalette|ColorPalette shadows]]
[[DefaultTiddlers|DefaultTiddlers shadows]]
[[EditTemplate|EditTemplate shadows]]
[[GettingStarted|GettingStarted shadows]]
[[MainMenu|MainMenu shadows]]
[[PageTemplate|PageTemplate shadows]]
[[PluginManager|PluginManager shadows]]
[[SideBarOptions|SideBarOptions shadows]]
[[SiteSubtitle|SiteSubtitle shadows]]
[[SiteTitle|SiteTitle shadows]]
[[StyleSheet|StyleSheet shadows]]
[[TabAll|TabAll shadows]]
[[TabMoreMissing|TabMoreMissing shadows]]
[[TabMoreOrphans|TabMoreOrphans shadows]]
[[TabMoreShadowed|TabMoreShadowed shadows]]
[[TabTimeline|TabTimeline shadows]]
[[ViewTemplate|ViewTemplate shadows]]
[[WindowTitle|WindowTitle shadows]]
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">>
This tiddler contains the commands that produce the buttons contained in the slider above the timeline on the right.
In ~TiddlySpace they are displayed on the right hand side of the menu bar.
By default it is set to:
{{{
<<closeAll>><<permaview>><<newTiddler>>
}}}
You can edit it to include anything else you want.
/***
|Name |SimpleSearchPlugin|
|Description |displays search results as a simple list of matching tiddlers|
|Author |Yakov Litvin|
|Original Authors|FND|
|Version |0.4.2|
|Status |stable|
|Source |https://github.com/YakovL/TiddlyWiki_Extensions/blob/master/FND/SimpleSearchPlugin.js|
|Original Source |http://devpad.tiddlyspot.com/#SimpleSearchPlugin|
|License |[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|Keywords |search|
!Revision History
!!v0.2.0 (2008-08-18)
* initial release
!!v0.3.0 (2008-08-19)
* added Open All button (renders Classic Search option obsolete)
* sorting by relevance (title matches before content matches)
!!v0.4.0 (2008-08-26)
* added tag matching
!!v0.4.2 (2022-12-02, forked by Yakov Litvin)
* added recalculating styles on ColorPalette change (including dark mode)
!To Do
* tag matching optional
* animations for container creation and removal
* when clicking on search results, do not scroll to the respective tiddler (optional)
* use template for search results
!Code
***/
//{{{
if(!version.extensions.SimpleSearchPlugin) { //# ensure that the plugin is only installed once
version.extensions.SimpleSearchPlugin = { installed: true };
if(!config.extensions) { config.extensions = {}; }
config.extensions.SimpleSearchPlugin = {
heading: "Search Results",
containerId: "searchResults",
btnCloseLabel: "close",
btnCloseTooltip: "dismiss search results",
btnCloseId: "search_close",
btnOpenLabel: "Open all",
btnOpenTooltip: "open all search results",
btnOpenId: "search_open",
displayResults: function(matches, query) {
story.refreshAllTiddlers(true); // update highlighting within story tiddlers
var el = document.getElementById(this.containerId);
query = '"""' + query + '"""'; // prevent WikiLinks
if(el) {
removeChildren(el);
} else { //# fallback: use displayArea as parent
var container = document.getElementById("displayArea");
el = document.createElement("div");
el.id = this.containerId;
el = container.insertBefore(el, container.firstChild);
}
var msg = "!" + this.heading + "\n";
if(matches.length > 0) {
msg += "''" + config.macros.search.successMsg.format([matches.length.toString(), query]) + ":''\n";
this.results = [];
for(var i = 0 ; i < matches.length; i++) {
this.results.push(matches[i].title);
msg += "* [[" + matches[i].title + "]]\n";
}
} else {
msg += "''" + config.macros.search.failureMsg.format([query]) + "''"; // XXX: do not use bold here!?
}
createTiddlyButton(el, this.btnCloseLabel, this.btnCloseTooltip, config.extensions.SimpleSearchPlugin.closeResults, "button", this.btnCloseId);
wikify(msg, el);
if(matches.length > 0) { // XXX: redundant!?
createTiddlyButton(el, this.btnOpenLabel, this.btnOpenTooltip, config.extensions.SimpleSearchPlugin.openAll, "button", this.btnOpenId);
}
},
closeResults: function() {
var el = document.getElementById(config.extensions.SimpleSearchPlugin.containerId);
removeNode(el);
config.extensions.SimpleSearchPlugin.results = null;
highlightHack = null;
},
openAll: function(ev) {
story.displayTiddlers(null, config.extensions.SimpleSearchPlugin.results);
return false;
}
};
config.shadowTiddlers.StyleSheetSimpleSearch = "/*{{{*/\n" +
"#" + config.extensions.SimpleSearchPlugin.containerId + " {\n" +
"\toverflow: auto;\n" +
"\tpadding: 5px 1em 10px;\n" +
"\tbackground-color: [[ColorPalette::TertiaryPale]];\n" +
"}\n\n" +
"#" + config.extensions.SimpleSearchPlugin.containerId + " h1 {\n" +
"\tmargin-top: 0;\n" +
"\tborder: none;\n" +
"}\n\n" +
"#" + config.extensions.SimpleSearchPlugin.containerId + " ul {\n" +
"\tmargin: 0.5em;\n" +
"\tpadding-left: 1.5em;\n" +
"}\n\n" +
"#" + config.extensions.SimpleSearchPlugin.containerId + " .button {\n" +
"\tdisplay: block;\n" +
"\tborder-color: [[ColorPalette::TertiaryDark]];\n" +
"\tpadding: 5px;\n" +
"\tbackground-color: [[ColorPalette::TertiaryLight]];\n" +
"}\n\n" +
"#" + config.extensions.SimpleSearchPlugin.containerId + " .button:hover {\n" +
"\tborder-color: [[ColorPalette::SecondaryMid]];\n" +
"\tbackground-color: [[ColorPalette::SecondaryLight]];\n" +
"}\n\n" +
"#" + config.extensions.SimpleSearchPlugin.btnCloseId + " {\n" +
"\tfloat: right;\n" +
"\tmargin: -5px -1em 5px 5px;\n" +
"}\n\n" +
"#" + config.extensions.SimpleSearchPlugin.btnOpenId + " {\n" +
"\tfloat: left;\n" +
"\tmargin-top: 5px;\n" +
"}\n" +
"/*}}}*/";
store.addNotification("StyleSheetSimpleSearch", refreshStyles);
store.addNotification("ColorPalette", function(smth, doc) {
refreshStyles("StyleSheetSimpleSearch", doc);
});
// override Story.search()
Story.prototype.search = function(text, useCaseSensitive, useRegExp) {
highlightHack = new RegExp(useRegExp ? text : text.escapeRegExp(), useCaseSensitive ? "mg" : "img");
var matches = store.search(highlightHack, null, "excludeSearch");
var q = useRegExp ? "/" : "'";
config.extensions.SimpleSearchPlugin.displayResults(matches, q + text + q);
};
// override TiddlyWiki.search() to sort by relevance
TiddlyWiki.prototype.search = function(searchRegExp, sortField, excludeTag, match) {
var candidates = this.reverseLookup("tags", excludeTag, !!match);
var primary = [];
var secondary = [];
var tertiary = [];
for(var t = 0; t < candidates.length; t++) {
if(candidates[t].title.search(searchRegExp) != -1) {
primary.push(candidates[t]);
} else if(candidates[t].tags.join(" ").search(searchRegExp) != -1) {
secondary.push(candidates[t]);
} else if(candidates[t].text.search(searchRegExp) != -1) {
tertiary.push(candidates[t]);
}
}
var results = primary.concat(secondary).concat(tertiary);
if(sortField) {
results.sort(function(a, b) {
return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);
});
}
return results;
};
} //# end of "install only once"
//}}}
a reusable non-linear personal web notebook
In the SiteSubtitle tiddler you can define the subtitle of your ~TiddlyWiki (seen under the main title)
In ~TiddlySpace by default it is set as
{{{
a TiddlySpace
}}}
You can set it to anything you want, such as:
{{{
documentation on the shadow tiddlers
}}}
In the SiteSubtitle tiddler you can define the subtitle of your tiddlywiki (seen under the main title)
In ~TiddlySpace by default it is set as
{{{
a TiddlySpace
}}}
You can set it to anything you want, such as:
{{{
documentation on the shadow tiddlers
}}}
In the SiteTitle tiddler you can define the title of your TiddlyWiki. When you first create a TiddlyWiki it defaults to
{{{
TiddlyWiki
}}}
However you can edit it to display anything that you choose.
https://classic.tiddlywiki.com/
The slider macro provides a button to toggle the visibility of entire tiddlers, slices, or sections of text by using [[transclusion|Transclusion]]. <<slider "" [[slider macro##hidden]] "Example" "click me to learn more">>
!Usage
{{{
<<slider chkUniqueCookieName tiddler label tooltip>>
}}}
|{{{cookie}}} |unique cookie name starting with {{{chk}}} to track the toggle state; the state is reapplied when the tiddler is reopened. Omit this (use {{{""}}} instead of a name) to make the slider not remember its state.|
|{{{tiddler}}}|a reference to a tiddler-title, section or slice to be content of the slider (see [[tiddler macro]])|
|{{{label}}} |title text of the slider|
|{{{tooltip}}}|tooltip text of the slider|
!Examples and tricks
The slider macro is used to toggle the visibility of the ~OptionsPanel in [[SideBarOptions|SideBarOptions shadows]].
{{{
<<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">>
}}}
You can also use a slider to toggle the visibility of [[hidden text|Basic Formatting]].
{{{
<<slider chkHiddenText [[slider macro##hidden]] "hidden title" "Click to show hidden text...">>
}}}
<<slider chkHiddenText [[slider macro##hidden]] "hidden title" "Click to show hidden text...">>
See also the [[NestedSliderPlugin|https://tiddlytools.com/Classic/#NestedSlidersPluginInfo]] adding an extra wikitext syntax to write slider panels.
/%
!hidden
You've just opened a slider! Click again to close
!end%/
TiddlyWiki defines a small number of SpecialTags that are used to indicate that tiddlers should be treated differently in some way:
* ''excludeSearch'': excludes a tiddler from search results
* ''excludeLists'': excludes a tiddler from the lists in the sidebar tabs
* ''systemConfig'': marks tiddlers that contain [[JavaScript|http://en.wikipedia.org/wiki/JavaScript]] that should be executed once TiddlyWiki has loaded
* ''excludeMissing'': excludes a tiddler from the processing that generates the MissingTiddlers list. Use it when you have a tiddler that contains links to missing tiddlers and you don't want those missing links to appear in the MissingTiddlers list
~TiddlyWiki uses several "special tiddlers" to perform a number of essential functions as follows:
* [[Configuration]] tiddlers configure the layout of the page, including the MainMenu, the SiteTitle, the SiteSubtitle and other features.
* A tiddler called DefaultTiddlers is used to list the tiddlers that are shown at startup.
* MoreTab, MissingTiddlers, OrphanTiddlers
TiddlyWiki obtains its StartupParameters from the //location// portion of it's URL (the bit after the '#'). At it's simplest, the StartupParameters can list the names of the tiddlers to be opened when the TiddlyWiki is opened:
{{{
https://classic.tiddlywiki.com/#HelloThere JeremyRuston
}}}
In fact, that usage is equivalent to:
{{{
https://classic.tiddlywiki.com/#open:HelloThere open:JeremyRuston
}}}
The complete list of commands is:
|!Command |!Description |!Example |
|open:title |Opens the tiddler with the specified title |https://classic.tiddlywiki.com/#open:HelloThere |
|start:safe |Switches to SafeMode |https://classic.tiddlywiki.com/#start:safe |
|search:text |Performs a search for the specified text |https://classic.tiddlywiki.com/#search:jeremy |
|tag:text |Displays tiddlers tagged with the specified tag |https://classic.tiddlywiki.com/#tag:news |
|newTiddler:title |Opens a new tiddler with the specified title in edit mode |https://classic.tiddlywiki.com/#newTiddler:"This is a new tiddler" |
|newJournal:titleFormat |Opens a new tiddler with the specified [[Date Format String|Date Formats]] |https://classic.tiddlywiki.com/#newJournal:"YYYY MMM DD" |
See the details of the underlying ParameterParser for more details.
/***
This fixes a problem with the tabs slider
***/
/*{{{*/
#sidebarTabs .button {
margin: 0em 0.2em;
padding: 0.2em 0.3em;
display: block;
}
/*}}}*/
/***
This is a sample style definition to demonstrate [[CustomCssClass|CSS Formatting]] formatting
***/
/*{{{*/
.wrappingClass {
color: #666; background: #bbb;
}
/*}}}*/
/***
Prettyify
***/
/*{{{*/
body {
font-size: 0.92em;
margin-bottom: 4em;
}
.tiddler .viewer {
font-size: 1.1em;
}
.downloadButton {
display: inline-block;
padding: 0.5em 1em;
border-radius: .5em;
border: none;
text-align: center;
font-size: 1.3em;
font-weight: bold;
color: [[ColorPalette::Background]];
background-color: [[ColorPalette::QuaternaryMid]];
}
.downloadButton:hover {
background-color: [[ColorPalette::QuaternaryDark]];
}
.downloadButton:active {
transform: scale(.95);
}
.downloadButton:focus {
outline: none;
box-shadow: 0 0 0 1px [[ColorPalette::QuaternaryDark]];
}
.icon img {
max-height: 24px;
}
/*}}}*/
The StyleSheet tiddler allows you to customise the look and feel of your TiddlyWiki using CSS
You can put simple one line tweaks in, like:
{{{
.mainMenu { color: red; }
}}}
Or you can put in full ~StyleSheets, like that seen in TiddlySpace in the StyleSheetTiddlySpace
{{{
/*{{{*/
[[StyleSheetTiddlySpace]]
/*}}}*/
}}}
/***
|Description |Makes contributing to docs of TiddlyWiki Classic easier: changes label of the "view" toolbar command to "suggest changes" and once a user clicks it, shows an annotation in the tiddler that guides them how to contribute|
|Author |Yakov Litvin|
|Version |1.0.0|
|License |MIT|
|Overwrites |{{{config.macros.annotations.handler}}}|
***/
//{{{
var repoBaseUrl = "https://github.com/TiddlyWiki/TiddlyWiki";
var repoContentUrl = repoBaseUrl + "/tree/master/content";
var getRepoContentTiddlerUrl = function(title) {
return repoBaseUrl + "/blob/master/content/" +
encodeURIComponent( encodeURIComponent(title) ) + ".tid";
};
var getContributeAnnotation = function(title) {
return "Willing to contribute? If you are familiar with ~GitHub, " +
"you can open this tiddler [[there|"+ getRepoContentTiddlerUrl(title) +"]], "+
"edit it and create a pull request (see also \"Contributing\" in [[Documentation]]). "+
"If this link to the tiddler source is broken, please find it "+
"in [[the list|"+ repoContentUrl +"]]. "+
"If you are not familiar with ~GitHub but want to contribute, please "+
"take a look at the [[instructions|Improving documentation via GitHub]].";
};
store.forEachTiddler(function(title, tiddler) {
var contributeAnnotation = getContributeAnnotation(title);
config.annotations[title] = config.annotations[title] ?
config.annotations[title] + "\n\n" + contributeAnnotation :
contributeAnnotation;
});
// replace .format with .replace to avoid removing %2520 etc from annotation
config.macros.annotations.handler = function(place, macroName, params, wikifier, paramString, tiddler) {
var title = tiddler ? tiddler.title : null;
var annotation = title ? config.annotations[title] : null;
if(!annotation) return;
var text = annotation.replace('%0', title);
wikify(text, createTiddlyElement(place, "div", null, "annotation"), null, tiddler);
};
config.commands.editTiddler.readOnlyText = "suggest changes";
//}}}
Wiki markup rules can be suppressed for any given section of text by enclosing it in 3 ''double'' quotes:
{{{
"""//WikiWord//"""
}}}
Displays as:
"""//WikiWord//"""
WikiWords can also be suppressed by prefixing the WikiWord with ''~'':
{{{
~WikiWord
}}}
Displays as:
~WikiWord
!!Also See
[[Code formatting]]
Tiddlers tagged {{{systemServer}}} wrap up all the connection details of a particular server so that they can be accessed quickly.
A list of available {{{systemServer}}} tiddlers is presented at the start of the ImportTiddlers macro. Selecting one of them pre-selects the relevant fields in the wizard. After a successful import operation, ImportTiddlers also offers the opportunity to automatically create a {{{systemServer}}} tiddler with the details of the server that was used. {{{systemServer}}} tiddlers are also used by the [[syncing]] command.
Here's an example {{{systemServer}}} tiddler:
<<<
|''Description:''|My example server|
|''Type:''|mediawiki|
|''URL:''|http://www.myexampleserver.org/x/|
|''Workspace:''|Main|
|''~TiddlerFilter:''|[tags[important unpluggable]]|
<<<
The fields are as follows:
|!Field |!Description |!Status |
|Description |Brief description of the server |Optional |
|Type |Type of server connection eg {{{file}}} or {{{mediawiki}}} |Optional - defaults to {{{file}}} |
|URL |Host URL of the server |Mandatory |
|Workspace |Name of the workspace |Optional |
|TiddlerFilter |Specifies which tiddlers are to be imported |Optional |
The TabAll tiddler contains a command to list all of the tiddler in your TiddlyWiki.
{{{
<<list all>>
}}}
In TiddlyWiki this list appears as default in the {{{All}}} tab on the right-hand menu.
!Simple Tables
{{{
|North West|North|North East|
|West|Here|East|
|South West|South|South East|
}}}
Displays as:
|North West|North|North East|
|West|Here|East|
|South West|South|South East|
!Cell Formatting
*Insert a space before cell content to right justify cell
*Insert a space after cell content to left justify cell
*Insert spaces before and after cell content to centre justify cell
*Insert an exclamation mark ({{{!}}}) as the first non-space character of a cell to turn it into a header cell
For example:
{{{
|!First column|!Second column|!Third column|
|left | centre | right|
}}}
Displays as:
|!First column|!Second column|!Third column|
|left | centre | right|
!Table Headers and Footers
* Mark a table row as a header by adding an 'h' to the end
* Mark a table row as a footer by adding an 'f' to the end
For example:
{{{
|North West|North|North East|h
|West|Here|East|
|South West|South|South East|f
}}}
Displays as:
|North West|North|North East|h
|West|Here|East|
|South West|South|South East|f
!Table Caption
A caption can be added above or below a table by adding a special row marked with a 'c':
{{{
|A caption above the table|c
|North West|North|North East|h
|West|Here|East|
|South West|South|South East|f
}}}
{{{
|North West|North|North East|h
|West|Here|East|
|South West|South|South East|f
|A caption below the table|c
}}}
Displays as:
|A caption above the table|c
|North West|North|North East|h
|West|Here|East|
|South West|South|South East|f
|North West|North|North East|h
|West|Here|East|
|South West|South|South East|f
|A caption below the table|c
!Mergine Table Cells
A cell can be merged horizontally with the cell to its right by giving it the text {{{>}}}:
{{{
|North West|North|North East|
|>|>|West and Here and East|
|South West|South|South East|
}}}
Displays as:
|North West|North|North East|
|>|>|West and Here and East|
|South West|South|South East|
A cell can be merged vertically with the cell in the row above by giving it the text {{{~}}}:
{{{
|Westerly|North|North East|
|~|Here|East|
|~|South|South East|
}}}
Displays as:
|Westerly|North|North East|
|~|Here|East|
|~|South|South East|
!Table CSS Formatting
A CSS class can be added to an entire table by adding a special row tagged with a 'k':
{{{
|myClass|k
|North West|North|North East|
|West|Here|East|
|South West|South|South East|
}}}
CSS properties can be added to a table cell by preceding the cell content with CSS name/value pairs. There are two alternative forms of syntax:
{{{
|color:red; North West|opacity:0.5;North|North East|
|color(green):West|Here|East|
|South West|South|South East|
}}}
Displays as:
|color:red; North West|opacity:0.5;North|North East|
|color(green):West|Here|East|
|South West|South|South East|
!Alternating Rows
TiddlyWiki automatically assigns the classes {{{oddRow}}} and {{{evenRow}}} to table rows {{{<TR>}}} elements. These can then be styled via the StyleSheet:
{{{
.viewer tr.oddRow { background-color: #fff; }
.viewer tr.evenRow { background-color: #ffc; }
}}}
The TabMoreMissing tiddler contains a command to list all of the tiddlers that have links to them but are undefined.
{{{
<<list missing>>
}}}
In TiddlyWiki this list appears as default in the {{{Missing}}} tab on the right-hand menu.
The TabMoreOrphans tiddler contains a command that lists all the tiddlers that are not linked to from any other tidder.
{{{
<<list orphans>>
}}}
In TiddlyWiki this list appears as default in the {{{Orphans}}} tab on the right-hand menu.
The TabMoreShadowed tiddler contains a command that displays a list of all tiddlers shadowed with default content in them
{{{
<<list shadowed>>
}}}
In TiddlyWiki this list appears as default in the {{{Shadows}}} tab on the right-hand menu.
The tab macro lets you create tab interfaces such as the one used for the timeline in the sidebar.
You use it as follows:
{{{
<<tabs theCookieName
nameOfFirstTab "HoverValueOfFirstTab" TiddlerToShowInTab(or content)
nameOfSecondTab "HoverValueOfSecondTab" TiddlerToShowInTab(or content)
...
>>
}}}
''theCookieName'' is used to store the name of the tab you currently have open. It does this so that when you return the tiddler will still be displaying the last tab you had selected.
Example use of the tab macro:
{{{
<<tabs txtFavourite
tags "First tab" "tags macro"
tag "Second tab" "tag macro"
>>
}}}
The TabTimeline tiddler contains a command to list in reverse chronological the tiddlers in your TiddlyWiki
{{{
<<timeline>>
}}}
In TiddlyWiki this list appears as default in the {{{Recent}}} tab on the right-hand menu.
The tag macro generates a button with the named [[tag]] which when clicked provides a drop-down list of [[tiddlers]] tagged with the given tag along with an option to open all of the tagged tiddlers.
{{{
<<tag tagName [label] [tooltip]>>
}}}
For example
{{{
<<tag macro>>
}}}
Which displays
<<tag macro>>
The tagging macro lists all the tiddlers that have a given tag. You set the tag you are looking for as the first parameter. E.g. to look for all tiddlers tagged with ''transclude'' you need to do the following:
{{{
<<tagging transclude>>
}}}
Displays as:
<<tagging transclude>>
This macro also accepts a 2nd parameter which allows you to define a separator.
{{{
<<tagging transclude sep:____>> e.g. <<tagging transclude sep:---------->>
}}}
Displays as:
<<tagging transclude sep:---------->>
You can categorise a tiddler by assigning it with one or more special keywords called tags.
Tiddlers which have been assigned tags can be accessed using the tagging menu that appears at the top right of each tiddler (when in read mode). For instance, this tiddler is tagged with "features", "terminology" and "gettingstarted". If you click on these tag names in the tagging menu, you get access to all the other tiddlers that have been given the same tag.
You can see a whole list of tags by looking in the [[SideBarTabs]], and selecting the Tags tab.
This site uses the standard convention that the names of tags start with a lower case letter, and tiddlers with an upper case letter, but this is not actually enforced.
Tags can be tiddlers themselves, with their own tags, so you can have hierarchies of tiddlers. This is a surprisingly useful and powerful technique has been dubbed ~TagglyTagging by the [[Community]].
To generate a list of [[tags]] applied to the current [[tiddler]]:
{{{
<<tags [tiddler]>>
}}}
Note this will not display any tags that are themselves tagged excludeLists.
For instance if there is a tiddler called "foo" tagged excludeLists and the tags macro is run on a tiddler with the tag foo, this tag will not be displayed.
A 'tiddler' is the name given to a unit of MicroContent in TiddlyWiki.
Tiddlers are pervasive in TiddlyWiki. The MainMenu is defined by a tiddler, plugins are delivered in tiddlers, there are special StyleSheet tiddlers, and so on.
Other systems have analogous concepts with more prosaic names: like "items", "entries", "entities". Even though "tiddler" is a vaguely preposterous name it at least has the virtue of being confusingly distinctive rather than confusingly generic.
The tiddler macro allows you to [[transclude|Tranclusion]] the text of other tidders, or sections of other tiddlers, into your current tiddler.
!!Basic Usage
The basic usage is:
{{{
<<tiddler tiddlerToTransclude>>
}}}
This displays as:
<<<
<<tiddler tiddlerToTransclude>>
<<<
Have a look at the actual [[tiddlerToTransclude]] tiddler.
!!Transcluding Sections and Slices
Instead of transcluding an entire tiddler, you can also transclude individual [[slices|Tiddler Slices]] or [[sections|Tiddler Sections]]:
{{{
<<tiddler [[Title::sliceLabel]]>>
<<tiddler [[Title##sectionHeading]]>>
}}}
!!Parameterised Transclusion
Using the {{{with:}}} parameter, placeholders in the transcluded content can be replaced with a desired value. For example:
{{{
<<tiddler anotherTiddlerToTransclude with:"Jim" "Oz">>
}}}
Which displays as:
<<<
<<tiddler anotherTiddlerToTransclude with:"Jim" "Oz">>
<<<
Have a look at the actual [[anotherTiddlerToTransclude]].
To hide text within a tiddler so that it is not displayed you can wrap it in {{{/%}}} and {{{%/}}}. It can be a useful trick for hiding drafts or annotating complex markup. Edit this tiddler to see an example.
/%This text is not displayed
until you try to edit %/
TiddlerSlicing allows you to use special notation to pull out a chunk of specially marked text from within a tiddler. Each slice has a name and a value which can be specified anywhere within a tiddler in any of these formats:
{{{
theName: textSlice
|theName:| textSlice |
|theName| textSlice |
}}}
The name may contain any of the characters "a-ZA-Z_0-9", and may also be decorated with {{{''}}} or {{{//}}} markers for ''bold'' and //italic// formatting that are ignored. For example:
{{{
|''theName:''| textSlice |
}}}
Slices can be then be referenced by qualifying the parent tiddler name with the symbols "::" and the name of the slice. For example:
{{{
ColorPalette::PrimaryLight
}}}
TiddlerSlicing doesn't work eveywhere; at this point it is mainly intended to support the ColorPalette and similar usages.
Finally, here's an example of some more complex slice formatting:
{{{
version: 1.2.3.4
Author: Joe Brown
''Credits:'' ~ASmith ~BBrown ~CCalony
//~SeeAlso:// The rise and fall of the M-perium
|!Name|!Value|
|Name:|TextSlice Tester|
|URL:|http:\\sample.com\TestSliced |
|''Type:''| Plugin |
|//Source//| http:\\sample.com\TestSliced\src\text.js |
}}}
The slices defined in that example are:
|version|1.2.3.4|
|Author|Joe Brown|
|Credits|~ASmith ~BBrown ~CCalony|
|~SeeAlso|The rise and fall of the M-perium|
|Name|TextSlice Tester|
|URL|http:\\sample.com\TestSliced|
|Type|Plugin|
|Source|http:\\sample.com\TestSliced\src\text.js|
This text has been transcluded from another tidder.
[[Bookmarklets|http://en.wikipedia.org/wiki/Bookmarklet]] can be useful for TiddlyWiki hackers. They are browser bookmarks that contain embedded ~JavaScript that can reach into the currently loaded TiddlyWiki page to manipulate them and extract data.
Drag these links to your bookmark/favourites bar, or right click on them and choose "add to bookmarks" or "add to favourites":
* [[Scrub shadow tiddlers|javascript:(function(){if(window.version&&window.version.title=='TiddlyWiki'){for(var s in config.shadowTiddlers){store.removeTiddler(s);}refreshDisplay();}})()]] - deletes any overridden shadow tiddlers, reverting them to their default values. Handy when you’ve gone mad with PageTemplate customisations and your ~TiddlyWiki document won’t display properly
* [[Scrub tiddler fields|javascript:(function(){if(window.version&&window.version.title=='TiddlyWiki'){store.forEachTiddler(function(title,tiddler){tiddler.fields={};});refreshDisplay();}})()]] - all the extended fields from a ~TiddlyWiki document, including that pesky “changecount” field
* [[Rescue raw TiddlyWiki content|javascript:(function(){if(window.version&&window.version.title=='TiddlyWiki'){var w=window.open();w.document.open();w.document.write('<html><body><pre>');w.document.write(store.allTiddlersAsHtml().htmlEncode());w.document.write('</pre></body></html>');w.document.close();}})()]] - opens a new window containing the raw content of a ~TiddlyWiki. Handy when you’ve inadvertently been editing an online version of TiddlyWiki that isn’t letting you save changes in the usual way
* See also [[Bookmarklets on TiddlyTools|https://tiddlytools.com/Classic/#InstantBookmarklets]]
If you're creating your own bookmarklets, this [[editor|http://subsimple.com/bookmarklets/jsbuilder.htm]] and these [[tips|http://subsimple.com/bookmarklets/tips.asp]] are useful resources.
TiddlyFox is an extension for Mozilla Firefox that enables TiddlyWiki documents loaded from a {{{file:///}}} URI to save changes to themselves.
The latest version of TiddlyFox can be installed from:
https://github.com/TiddlyWiki/TiddlyFox/raw/master/tiddlyfox.xpi
You can also install TiddlyFox from Mozilla's official addon library, but note that this version typically lags behind the latest release.
https://addons.mozilla.org/en-US/firefox/addon/tiddlyfox/
The ~TiddlySaver Java applet allowed ~TiddlyWiki to save changes locally (from a file:// URL) in most of the browsers. As Java applets support deminished and maintaining the applet and its signing got more and more difficult, it was decided to put it aside (see [[Setting up saving]] for the recommended savers).
!!!Historical details
~TiddlySaver.jar was signed by [[UnaMesa Association|UnaMesa]]. The ~UnaMesa Association certificate was signed by the ''Thawte Code Signing CA'' intermediate certificate which was chained to the ''Thawte Premium Server CA'' root certificate. One needed to trust this certificate Chain to be able to use the applet.
Thanks to Andrew Gregory for the original TiddlySaver code, and ~BidiX for arranging all the certificate magic.
|''URL:''|https://web.archive.org/web/20140127010925/http://tiddlystyles.com:80/|
|''URL:''|https://tiddlytools.com/Classic/|
|''Description:''|Small Tools for Big Ideas!|
|''Author:''|EricShulman|
~TiddlyWiki is a complete [[wiki|WikiWikiWeb]] in a single HTML file. It contains the entire text of the wiki, and all the ~JavaScript, CSS and HTML machinery to be able to display it, and let you edit it or search it - without needing a server. Of course, there are also some useful ServerSide adaptations out there.
Unlike most wikis, TiddlyWiki isn't about group collaboration; it is a wiki in the sense of elevating linking be a part of the punctuation of writing. You can easily publish a TiddlyWiki you have created by placing the single file on a web server (for instance the homepage hosting provided by many ISPs). If you need full group collaboration features, there are several HostedOptions to choose from.
~TiddlyWiki was originally created by JeremyRuston and is now a thriving [[open source|OpenSourceLicense]] project with a busy [[Community]] of independent developers.
~TiddlyWiki relies on loading and saving files in some of its functionality, but as loading and saving files got more and more restricted for security reasons, such functionality may work differently with different browsers and savers.
!!!Upgrading
See HowToUpgrade. Starting from TW 2.10.0, TW itself helps you with upgrading, providing instructions if something doesn't work and making sure your data is safe.
!!!Known Problems with Importing in ~TiddlyWiki
* It is not possible to import from ~TiddlyWiki's on servers which are not [[CORS|http://en.wikipedia.org/wiki/Cross-Origin_Resource_Sharing]] enabled. Although many popular sites, such as [[TiddlyTools|https://tiddlytools.com/Classic/]], are currently CORS enabled, some are not. Fortunately this is fixable - webmasters can enable CORS on their sites by following the instructions [[here|http://enable-cors.org]] and if a website is not CORS enabled you can e-mail the owner to tell them the problem.
* Some browsers will only allow you to import from other TiddlyWikis in the same directory as your ~TiddlyWiki. If you use Chrome you can enable this by modifying the Chrome shortcut to include the following parameter
{{{
--allow-file-access-from-files
}}}
* In Opera you can enable this by entering the following into your address bar and ticking the checkbox.
{{{
opera:config#UserPrefs|AllowFileXMLHttpRequest
}}}
* Note some browsers, do not support import / upgrade in any form.
"~TiddlyWiki5" is a complete rewrite of ~TiddlyWiki to take advantage of ~HTML5 and node.js. It was completed late 2013 and is maintained on ~GitHub at https://github.com/Jermolene/TiddlyWiki5
You can find more details at https://tiddlywiki.com
Before TiddlyWiki supported [[Plugins]], several independent developers created their own extended adaptations to support new features. These can be considered forks of the original core code, and won't necessarily be based on the latest version. For that reason, the trend more recently has been for developers to release new features as [[Plugins]] that can be readily mixed and matched and upgraded to the latest version.
Here's a list of known adaptations - note that many of these are quite old, and the links may be dead (all working as at 10 July 2008):
* Bram Chen's [[PrinceTiddlyWiki|http://ptw.sourceforge.net/]]
* Jacques Turbé's [[TidliPo|http://avm.free.fr/tidlipo.html]] (in French)
* Jároli József's [[MagyarTiddlyWiki|http://innen.hu/MagyarTiddlyWiki]] (in Hungarian)
* Yoshimov's [[EncryptedTiddlyWiki|http://wiki.yoshimov.com/?page=EncryptedTiddlyWiki]] (in Japanese)
* Nathan Bower's [[GTDTiddlyWiki|http://shared.snapgrid.com/gtd_tiddlywiki.html]]
* Jonny ~LeRoy's [[TiddlyTagWiki|http://www.digitaldimsum.co.uk/tiddlywiki/]]
* Christian Hauck's [[CompleXimple InDeed|http://www.christianhauck.net/html/14300.html]]
* Tim Cuthbertson and Matt Giuca's [[TiddlyWikiCSS|http://codestar.lidonet.net/misc/tiddlywikicss.html]]
* Patrick Curry and Gabriel Jeffrey's [[PhpTiddlyWiki|http://www.patrickcurry.com/tiddly/]]
* Henrik Aasted Sorensen's [[server side adaptation|http://aasted.org/wiki]]
* [[KamiWiki|http://rakusai.org/kamiwiki/]]
* Kevem Buangga's [[TiddlyWikiClone|http://www.kevembuangga.com/hwk/hailiwiki.htm]]
* Andre Nho's [[StickWiki|http://stickwiki.sourceforge.net/]]
* [[MessageVault|http://www.kokogiak.com/gedankengang/2007/03/introducing-message-vault.html]], a personal password store built on some ~TiddlyWiki technology
There's also some TiddlyWikiTools that extend ~TiddlyWiki.
~TiddlyWiki has been used as the basis of a few experiments in hypertext fiction.
*"[[Bibliotheca Caelestis. Tiddlywikiroman|http://bc.etkbooks.com/opac/]]" from Hartmut Abendschein
*"[[Die, Vampire! Die!|http://www.davidvanwert.com/wiki/dievampiredie.html]]" from David Van Wert
*"[[Rose|http://www.emacswiki.org/alex/rose.html]]" from Alex Schroeder
To create a chronological list of recent edits:
{{{
<<timeline field maxlength dateformat template:title groupTemplate:title filter:filter>>
}}}
All the parameters are optional:
* ''field'' determines which field to use as the basis for the list. It is usually {{{modified}}} or {{{created}}};
* ''maxlength'' is an integer that limits the maximum number of tiddlers to include in the list;
* ''dateformat'' is a [[date format string|Date Formats]] that determines the format of the dates;
* ''template'' names the tiddler to use as the template for list entries,
** the default template is {{{<<view title link>>}}} to cause the display of the tiddler title as a link to the tiddler;
* ''groupTemplate'' names the tiddler to use as the template for grouping entries in the list,
** the default groupTemplate is {{{<<view %0 date '%1'>>}}}, where {{{%0}}} is the name of the field being displayed and {{{%1}}} is the ''dateformat'' selected in the third argument;
* ''filter'' is a [[filter|Filters]] that defines the tiddlers that appear in the list.
For example:
{{{
<<timeline created 5>>>
}}}
displays as:
<<timeline created 5>>
{{{
<<timeline modified 5>>
}}}
displays as:
<<timeline modified 5>>
The date macro will display the current date and time:
{{{
<<today>>
}}}
Displays as:
<<today>>
This macro accepts one parameter - a date format. Such as:
{{{
<<today DD/MM/YYYY>>
}}}
Displays as:
<<today DD/MM/YYYY>>
Read more about [[Date Formats]]
If your press the command key on the Mac or the control key on the PC while clicking on a link to a tiddler, the tiddler will be opened as usual if it isn't already open, but if //is// open, it will be closed. It makes a handy way to review links without having to move the mouse around to re-close tiddlers.
You can make this behaviour the default under AdvancedOptions (you can override back to the normal behaviour with the same command/control key).
A row of ToolbarButtons appears to the right of a tiddler title when the mouse is hovered over it. The buttons are:
* ''close'' - close the current tiddler
* ''edit'' - edit the current tiddler
* ''fields'' - show the custom fields attached to the current tiddler
* ''syncing'' - shows the server synchronisation status of the current tiddler
* ''jump'' - jump straight to another open tiddler
* ''permalink'' - puts a link direct to the current tiddler into the address bar
* ''references'' - displays all the tiddlers that link to the current tiddler
* ''done'' - save changes to a tiddler being editted
* ''cancel'' - cancel changes to a tiddler being editted
* ''delete'' - delete the current tiddler
The shadow tiddler ToolbarCommands allows these commands to customised and reordered.
~TiddlyWiki is available in around 20 languages.
Translations are packaged as [[plugins|InstallingPlugins]] which are stored at https://github.com/TiddlyWiki/translations
The ~TiddlyWiki community have created several tutorials and guides. Here are some of the most popular ones:
* Dave Gifford's [[TiddlyWiki for the Rest of Us|http://www.giffmex.org/twfortherestofus.html]]
* Morris Gray's [[TW Help - TiddlyWiki help file for beginners|http://twhelp.tiddlyspot.com]]
* Julie Starr's [[Tiddler Toddler|http://tiddlertoddler.tiddlyspot.com/]], documenting the learning curve from a beginner's perspective
* Screencasts from [[Phil Whitehouse|http://youtu.be/ezNScBd7_h4]] and [[Jim Ventola|https://web.archive.org/web/20120712052002/http://faculty.massasoit.mass.edu/jventola/videocasts/tidhelp2/tidhelp2.html]]
And also localized ones:
* [[Dutch usermanual|http://www.ton-van-rooijen.nl/TW/TWhandleiding.html]] by Ton van Rooijen
[[UnaMesa|http://www.unamesa.org/]] is a non-profit organisation that owns and holds the IPR for TiddlyWiki in trust for the public.
This is a simple macro that outputs the version of TiddlyWiki that is being used.
{{{
<<version>>
}}}
Displays as:
<<version>>
The view macro is a powerful macro that allows you to access fields on a given tiddler and format them.
The first parameter is the field to access (note tags does not work).
The second parameter defines a [[view type|view macro types]] which defines how the value of that field should be rendered.
{{{
<<view title link>>
}}}
renders the link of the current tiddler i.e. <<view title link>>
!Text
Renders the field exactly how it is stored.
For example
{{{
<<view modified text>>
<<view title text>>
}}}
gives:
* <<view modified text>>
* <<view title text>>
!Link
Renders the value of the field as a link
{{{
<<view title link>>
}}}
gives
* <<view title link>>
!Date
Applicable to the modified and created fields. Note a further parameter - a date format can be used.
{{{
<<view created date>>
<<view modified date "YYYY">>
}}}
gives:
* <<view created date>>
* <<view modified date "YYYY">>
See [[Date Formats]] for possible date format strings.
!Wikified
Treats the string as wikitext.
e.g.
{{{
<<view customfield wikified>>
}}}
An optional third parameter can be used to transform the text before it is wikified. For example:
{{{
<<view customfield wikified "//$1//"
}}}
The result of this example would be to make the field display in italics.
!TiddlySpace specific
See [[TiddlySpace View Types]]
This tiddler contains the mark up to display tiddlers. You can change the mark up to create a custom view of a tiddler.
By default it contains the following markup:
{{{
<div class='toolbar'
macro='toolbar [[ToolbarCommands::ViewToolbar]] icons:yes height:16 width:16 more:popup'>
</div>
<div class='heading'>
<span class='spaceSiteIcon'
macro='tiddlerOrigin label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
</span>
<span class="titleBar">
<div class='title' macro='view title text'></div>
<div class="subtitle" macro='viewRevisions page:5'>
last modified on
<span macro="view modified date"></span>
</div>
</span>
<span class='followPlaceHolder' macro='followTiddlers'></span>
<span class='modifierIcon'
macro='view modifier SiteIcon label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
</span>
<div class='tagClear'></div>
</div>
<div class='content'>
<div class='viewer' macro='view text wikified'></div>
</div>
<div class='tagInfo'>
<div class='tidTags' macro='tags'></div>
<div class='tagging' macro='tagging'></div>
</div>
}}}
TiddlyWiki works fine under Internet Explorer on Windows Vista, although you may run into the blocking problem described in ServicePack2Problems.
Under Vista, TiddlyWiki will not save changes correctly if you are viewing the TiddlyWiki file in Vista's file preview pane.
|''URL:''|https://yakovl.github.io/VisualTW2/VisualTW2.html|
|''Author:''|Pascal|
The [[release 2.10.2|https://github.com/TiddlyWiki/TiddlyWiki/releases/tag/v2.10.2]] improves various UI bits, fixes permalink nuances, extends consistent behavior of saving, class syntax, and more. Here's the summary of changes:
Behavior improvements:
* Supports async saving of RSS;
* Wiki syntax now supports classes with dashes (<html><code>{{class-name{...}}}</code></html>).
UI updates (see the [[visual summary|https://github.com/TiddlyWiki/TiddlyWikiClassic/pull/312#issuecomment-2543065605]]):
* Tags blocks now have non-transparent background (and don't interfere with headers/tabs);
* Tables now also have non-transparent background, reducing interference when they overflow the container;
* Lists in sidebar and messages got more space between items (and group multiline ones visually);
* Editor inputs and textareas got better paddings.
Fixes:
* Permalink's {{{getUrl}}} should work correctly even if {{{location.href}}} has no hash;
* When saving failed, the error message was not displayed;
* (hotfix, backported to 2.10.1) {{{build_external_core.js}}} should point to jQuery in {{{node_modules}}}.
Hackability:
* Since {{{saveRss}}} now supports async saving, it is compatible with new saving methods.
Infrastructure:
* Introduced bump-version script ({{{npm run bump-version}}}) for easier releasing.
[[Lingo updates|https://github.com/TiddlyWiki/translations/blob/master/Core%20lingo%20history.md]] (for translations)
Docs updates include clarifying/updating InstallingPlugins, [[Customisation]], [[Importing Tiddlers]], [[Plugins]], [[TiddlyWiki Browser Compatibility]], [[Mathematics]], SpecialTiddlers, [[Editing]], various links, and mentioning ~ContinuousSavingPlugin.
The full changelog is available [[on github|https://github.com/TiddlyWiki/TiddlyWikiClassic/pull/312#issuecomment-2541417355]].
<<slider "" [[WhatsNew##2.10.1]] "Release 2.10.1">>
<<slider "" [[WhatsNew##2.10.0]] "Release 2.10.0">>
<<slider "" [[WhatsNew##2.9.4]] "Release 2.9.4">>
<<slider "" [[WhatsNew##2.9.3]] "Release 2.9.3">>
!!!Upgrading
See the updated HowToUpgrade instructions.
/%
!2.10.1
The [[release 2.10.1|https://github.com/TiddlyWiki/TiddlyWiki/releases/tag/v2.10.1]] introduces default options, fixes saving backups, updates some UI bits, including a more instructive ~GettingStarted shadow, improves permalink buttons, and more. Here's the summary of changes:
Behavior improvements:
* Default option values are no longer stored in cookies;
* Permalink buttons support context menus (to copy url/open in a new tab/...).
UI updates (see the [[visual summary|https://github.com/TiddlyWiki/TiddlyWiki/pull/299#issuecomment-1914724537]]):
* Colors of inputs are now based on ColorPalette (Background, Foreground);
* Ugrade wizard now looks better (on mobile devices in the first place, when using with a proper {{{viewport}}} tag):
** Symmetrical margin for backstage panels (avoid viewport overflow);
** Shorter and clearer title and subtitle;
** The upgrade url is now shown without the https:// bit;
** Borders of wizard buttons are now symmetric (and look better in the dark mode);
* ~GettingStarted shadow is now clearer and more instructive, has a link to quickly find custom savers;
* Tagging, tags blocks now use thick borders instead of solid background color;
* Preventing multiword tab labels from getting multiline in some cases.
Fixes:
* Native backups saving broken in 2.10.0 works again.
Hackability:
* {{{tw.options.define(name, defaultValue, description)}}} is now available for plugins;
* {{{tw.io.getOriginalLocalPath}}} is now available to use and decorate (used in the core);
* {{{saveMain}}} always passes {{{original}}} to the {{{callback}}};
* {{{saveEmpty}}} can be called without {{{posDiv}}} (recalcs if it's not passed) and handles problematic {{{original}}}.
Infrastructure:
* jQuery is now a dependency defined by package.json (forced updating 1.8.3 → 1.9.1);
* removed autotests of a deprecated module (Crypto) duplicating those of direct usage (Encoding).
[[Lingo updates|https://github.com/TiddlyWiki/translations/blob/master/Core%20lingo%20history.md]] (for translations)
Docs updates include added steps of [[releasing|https://github.com/TiddlyWiki/TiddlyWiki/blob/master/build/README.md#releasing-and-updating-the-site]], replacing Tiddlyspot with Tiddlyhost, minor links and styles updates, removing mentions of the (long gone) Wii browser, and the update of the ~GettingStarted shadow mentioned above.
Acknowledgements for contributions: to Pengju Yan, Simon Baird.
The full changelog is available [[on github|https://github.com/TiddlyWiki/TiddlyWiki/pull/299#issuecomment-1914697675]].
!2.10.0
The [[release 2.10.0|https://github.com/TiddlyWiki/TiddlyWiki/releases/edit/v2.10.0]] supports fully async saving, makes upgrading safe, adds reusable icon(s), improves UI (tabs and more), and fixes some issues. Also, there are new docs to help contributing. Here's the summary of changes:
Behavior improvements:
* Upgrading wizard is now more instructive and prevents losing content when trying to upgrade with some savers;
* {{{<<version>>}}} now also shows the number of a "nightly" build.
UI updates (see the [[visual summary|https://github.com/TiddlyWiki/TiddlyWiki/pull/294#issuecomment-1868458899]] below the changelog):
* Tabs now use common background (instead of gray), don't "sink" into the content and are not broken into 2 lines;
* Remove an excessive link in GettingStarted;
* Search button now looks the same as other buttons in the sidebar;
* Nice toggle backstage button's padding;
* Wizard status now supports html (links) and looks nicely when multiline;
* Added bottom padding to tiddlers.
Fixes:
* Make {{{Array.prototype.find}}} fall back to the native implementation if a predicate is provided;
* {{{Story.prototype.setTiddlerField}}} failed for tags (affected ~IntelliTaggerPlugin);
* Checkboxes in the Disabled column of {{{<<plugins>>}}} should show correct state;
* Don't overwrite {{{Array.prototype.indexOf}}} if it's defined.
Hackability:
* ''Introduces fully async saving'' (disabled by default: unset {{{chkPreventAsyncSaving}}} to enable):
** new general method {{{tw.io.saveFile}}} (use it over the global {{{saveFile}}}), similar to {{{tw.io.loadFile}}};
** {{{saveMain}}} now supports {{{callback}}} (tries async saving if it is passed and {{{chkPreventAsyncSaving}}} is unset);
** new method {{{tw.io.saveMainAndReport}}} separates the whole "load original, update, and save" thing, so may be a better target of decorating/overriding than {{{saveChanges}}} in some plugins/savers.
* Icons (the close icon) are now stored in {{{tw.assets.icons}}} and are reusable.
Deprecated: {{{Array}}}'s {{{.setItem}}}, Java IO (only {{{javaSaveFile}}} and {{{javaLoadFile}}} are left, returning {{{null}}}).
Infrastructure:
* updates of some autotests, removed legacy reporter;
* fix: freeze ~TW5 version used for building (versions 5.2.2 and above break things) in package.json.
[[Lingo updates|https://github.com/TiddlyWiki/translations/blob/master/Core%20lingo%20history.md]] (for translations)
Docs updates include repairing links in [[Examples]] and TutorialsAndGuides and adding the Volvo page and Dutch usermanual there, more compact and accurate [[Setting up saving]] and related tiddlers ([[Advanced download options]], details for some browsers), up-to-date instructions for updating (both inside TW and in HowToUpgrade here), rewrite of [[slider macro]], mentions of plugins introducing additional [[filters|Filters]], updates of HelloThere and TiddlyWiki5, and updates of DarkModePlugin (prevent unwanted exit confirmations) and SimpleSearchPlugin.
Dev docs updates include several new articles about [[using git and GitHub|./dev/docs_from_TiddlyWikiDev.tiddlyspace.com.html#%5B%5BUsing%20git%20and%20GitHub%5D%5D]] and contributing, new 'Releasing and updating the site' section in the [[build readme|https://github.com/TiddlyWiki/TiddlyWiki/blob/master/build/README.md]], clean up of DeveloperDocumentation, updating links, and also various updates of the [[dev space|./dev/docs_from_TiddlyWikiDev.tiddlyspace.com.html]] for its further editing.
Acknowledgements for contributions: to Okido, Mark.
The full changelog is available [[on github|https://github.com/TiddlyWiki/TiddlyWiki/pull/294#issuecomment-1868458899]].
!2.9.4
The [[release 2.9.4|https://github.com/TiddlyWiki/TiddlyWiki/releases/edit/v2.9.4]] continues modernizing ~TiddlyWiki appearence and its infrastructure. Here's the summary of changes:
Behavior improvements:
* introduce async loading into saving (disabled by default: unset {{{chkPreventAsyncSaving}}} to enable)
** [[reportedly|https://groups.google.com/g/tiddlywikiclassic/c/X4Ip2RW9bNo/m/TlcCP032AAAJ]], it also improves performance of saving in some cases
* add async loading into upgrading, stage 2 ({{{upgradeFrom}}})
Appearence modernizing:
* update styles of tables, popups (better paddings, colors, font sizes etc)
* reduce page header height
* various other minor updates, see visual summary [[here|https://github.com/TiddlyWiki/TiddlyWiki/pull/284#issuecomment-1544536323]]
Fixes:
* saving a tiddler from story when renaming to an existing one shouldn't result in 2 tiddlers ([[#146|https://github.com/TiddlyWiki/TiddlyWiki/issues/146]])
* {{{store.saveTiddler}}} should rename tiddler when {{{newTitle}}} is provided
* {{{store.saveTiddler}}} should allow falsy {{{newTitle}}} (meaning "don't update")
* upgrading should start correctly (was broken in 2.9.3)
Hackability:
* introduce {{{tw.io.xhrLoadFile}}}, {{{tw.io.loadFile}}}, extend {{{loadFile}}}, {{{loadOriginal}}} to support async loading (when the second param, {{{callback}}}, is passed)
* extract end of saving main (messages of success/failure) into {{{tw.io.onSaveMainFail}}} and {{{tw.io.onSaveMainSuccess}}}
** //warning:// savers like Timimi (async ones that don't "call back") call these //before// saving and give false positive behavior (as it was previously)
* turn {{{onStartUpgrade}}} into a {{{config.macros.upgrade}}} method
[[Summary|https://github.com/TiddlyWiki/TiddlyWiki/pull/284#issuecomment-1544337558]] of changes that affect lingo (translations), backward compatibility (tiny details, presumably of no importance), and deprecations.
Infrastructure:
* fix: make build tools work when project path has spaces
* clean up some duplicated/unused autotests
* more linter rules, including for tests and building scripts
This release finishes the "first wave" of codestyle updates which involved almost the whole core and, supposedly, made some of its parts much clearer. Some of them are now covered with ~ESLint rules to keep the codestyle consistend, {{{npm run lint}}} shows no errors. Still, linting rules are work in progress.
Docs updates include added [[Filters]] description, DarkModePlugin, adjustments in [[PeriodicTable]] and [[Tables Formatting]] (showcasing new table styles), [[PHP server recommendation|Setting up saving]] for Android 10+, and others. These are small updates; much more yet to come.
The full changelog is available [[on github|https://github.com/TiddlyWiki/TiddlyWiki/pull/284#issuecomment-1540492980]].
!2.9.3
The [[release 2.9.3|https://github.com/TiddlyWiki/TiddlyWiki/releases/edit/v2.9.3]] starts the process of modernizing ~TiddlyWiki appearence and its infrastructure. Here's the summary of changes:
Behavior improvements:
* add href to prettyLinks to enable open in new tab and context menu
* fix ctrl+tab inserting tab instead switching browser tabs when {{{chkInsertTabs}}} is enabled
Appearence modernizing, more helpful messages:
* increase line height in editor (improve readability)
* code blocks: remove border, margin-left, fix code font size
* annotations: remove borders, adjust paddings, margins
* messageArea: remove border, add shadow; fix close message icon positioning for IE
* tagged/tagging blocks on tiddler hover: hide borders
* popups: improve paddings, remove border, add shadow
* fix paddings in tags chooser when there are no tags to display
* add sans-serif fallback to the main font
* update "saved snapshot" error message with a more helpful link
* make annotation of SystemSettings more helpful
Fixes:
* more flexible version detection and make sure (fix) any previous TW will detect version of the new core
* revert of {{{messageArea}}} class and {{{.messageArea}}} selectors in CSS to restore backward compatibility
Infrastructure:
* introduce SuggestChangesPlugin, adapt docs for easier contributing to docs
* added CD for quick and easy updating the site (also started, but not finished not finished: CI/CD for quicker releasing new versions)
* introduce new build tools (run with npm), move them and docs into the main repository
* introduce commit prefixes ({{{docs:}}}, {{{codestyle:}}}, {{{refactor:}}}, {{{fix:}}}, {{{infra:}}}, {{{feature:}}}), usage of the {{{dev}}} branch
* update recipes and their folder structure, hide old unused ones
* fix tests: typo in test/js/Version.js; fix encoding conversion, paths in Windows in loading/saving
* introduce linter and first codestyle rules
Docs got multiple improvements (special thanks to Mark Kerrigan for multiple inputs and also congratulations to Reto Stauss for his first commits). There's much more to do, but with the new infrastructure, the process has much less friction.
There's also many codestyle and refactoring updates and more upcoming.
Overall, this release creates a more solid ground for future improvements.
The full changelog is available [[on github|https://github.com/TiddlyWiki/TiddlyWiki/pull/274#issuecomment-1166461319]].
!%/
Putting ~TiddlyWiki on a USB stick lets you carry around a self contained notebook that you can update wherever there's a computer, whether it's a Mac, Linux or a PC.
To be even more independent you can [[install FireFox on the drive|http://portableapps.com/apps/internet/firefox_portable]] as well!
[[Basic|Basic Formatting]]
[[CSS|CSS Formatting]]
[[Code|Code Formatting]]
[[HTML Entities|HTML Entities Formatting]]
[[HTML|HTML Formatting]]
[[Headings|Headings Formatting]]
[[Horizontal Rules|Horizontal Rule Formatting]]
[[Images|Image Formatting]]
[[Line Breaks|Line Break Formatting]]
[[Links|Link Formatting]]
[[Lists|List Formatting]]
[[Quotations|Quotations Formatting]]
[[Suppressing|Suppressing Formatting]]
[[Tables|Tables Formatting]]
A wiki (derived from the Hawaiian word for "fast") is a popular way of building collaborative websites. It's based on the two ideas of allowing users to easily edit any page and the use of special formatting to create links between pages. See Wikipedia for [[more details|http://en.wikipedia.org/wiki/Wiki]].
~TiddlyWiki is fundamentally different from a conventional Wiki because it is not based on separate, entire pages of content, but rather items of MicroContent referred to as [[Tiddlers|Tiddler]] that live together on the same page.
Out of the box, ~TiddlyWiki is also different because it doesn't support public editing - or indeed any persistent editing when viewed over the web. However, there are ServerSide editions, TiddlyWikiAdaptations and [[Plugins]] that provide these features in a wide range of different configurations.
A WikiWord is a word composed of a bunch of other words slammed together with each of their first letters capitalised. WikiWord notation in a conventional WikiWikiWeb is used to name individual pages while TiddlyWiki uses WikiWord titles for smaller chunks of MicroContent. Referring to a page with a WikiWord automatically creates a link to it. Clicking on a link jumps to that page or, if it doesn't exist, to an editor to create it. It's also easy to have NonWikiWordLinks, and there's a WikiWordEscape for situations where you don't want a WikiWord to be interpreted as a link.
In this tiddler you put the text you wish to be displayed as the title of the page in the browser.
By default it is set to:
{{{
<<tiddler SiteTitle>> - <<tiddler SiteSubtitle>>
}}}
which could display something like:
{{{
shadowtiddlers - a tiddlywiki
}}}
You can change this at any time. For example:
{{{
Shadow Tiddlers Documentation | TiddlyWiki.com
}}}
I'm hoping that after using TiddlyWiki for a while a new WritingStyle will emerge that is appropriate for this medium. Jakob Neilsen wrote an article about [[writing styles|http://www.useit.com/alertbox/980906.html]] for MicroContent back in 1998 that still seems surprisingly relevant.