Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
<<importTiddlers>>
<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

Your username for signing your edits. Write it as a [[WikiWord]] (eg [[JoeBloggs]])

<<option txtUserName>>
<<option chkSaveBackups>> [[SaveBackups]]
<<option chkAutoSave>> [[AutoSave]]
<<option chkRegExpSearch>> [[RegExpSearch]]
<<option chkCaseSensitiveSearch>> [[CaseSensitiveSearch]]
<<option chkAnimate>> [[EnableAnimations]]

----
Also see [[AdvancedOptions]]
<!--{{{-->
<div class='header' role='banner' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' role='navigation' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' role='navigation' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' role='complementary' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea' role='main'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}

a {color:[[ColorPalette::PrimaryMid]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}

h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}

.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}

.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}

.tabSelected {color:[[ColorPalette::PrimaryDark]];
	background:[[ColorPalette::TertiaryPale]];
	border-left:1px solid [[ColorPalette::TertiaryLight]];
	border-top:1px solid [[ColorPalette::TertiaryLight]];
	border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}

#sidebar {}
#sidebarOptions input {border:1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}

.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
	border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
	border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
	border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}

.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}

#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}

.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}

.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}

.tiddler .defaultCommand {font-weight:bold;}

.shadow .title {color:[[ColorPalette::TertiaryDark]];}

.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}

.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}

.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}

.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}

.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}

.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}

.imageLink, #displayArea .imageLink {background:transparent;}

.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}

.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}

.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}

.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}

.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}

.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:alpha(opacity=60);}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}

body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}

h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}

.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}

/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}

#mainMenu .tiddlyLinkExisting,
	#mainMenu .tiddlyLinkNonExisting,
	#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left:0; top:0;}

.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}

#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}

#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

.wizard {padding:0.1em 1em 0 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0; margin:0.4em 0 0.2em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0 0; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0;}
.wizardFooter .status {padding:0 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em;}

#messageArea {position:fixed; top:2em; right:0; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em;}
#messageArea a {text-decoration:underline;}

.tiddlerPopupButton {padding:0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em; margin:0;}

.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}

.tabset {padding:1em 0 0 0.5em;}
.tab {margin:0 0 0 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}

#contentWrapper {display:block;}
#splashScreen {display:none;}

#displayArea {margin:1em 17em 0 14em;}

.toolbar {text-align:right; font-size:.9em;}

.tiddler {padding:1em 1em 0;}

.missing .viewer,.missing .title {font-style:italic;}

.title {font-size:1.6em; font-weight:bold;}

.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}

.tiddler .button {padding:0.2em 0.4em;}

.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}

.footer {font-size:.9em;}
.footer li {display:inline;}

.annotation {padding:0.5em; margin:0.5em;}

* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0 0.25em; padding:0 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0 3px 0 3px;}

.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}

.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0; font-size:.9em;}
.editorFooter .button {padding-top:0; padding-bottom:0;}

.fieldsetFix {border:0; padding:0; margin:1px 0px;}

.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}

* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='toolbar' role='navigation' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
|details|k
|''URL''|http://www.TiddlyTools.com/#SwitchThemePluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-01|
|''Version''|5.4.1|
|''CoreVersion''|2.3|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SwitchThemePlugin|
!Summary
Select alternative TiddlyWiki template/stylesheet 'themes' from a droplist
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SwitchThemePluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SwitchThemePluginInfo
The author of the [[SharedTiddlersPlugin|SharedTiddlersPlugin...]] and some others
* no central repository is established yet
* if you have any problems with Yakov's plugins, try to get some help in the [[Google group|https://groups.google.com/forum/#!forum/tiddlywiki]] or mail directly: """Yakov.A.Litvin@gmail.com"""
|details|k
|''URL''|http://tobibeer.tiddlyspace.com/#Filtr|
|''Author''|[[Tobias Beer]]|
|''Version''|1.0.4|
|''Released''|2010-10-08|
|''Requires''|2.5.2|
|''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/FiltrPlugin.min.js|
! Summary
Provides interactive tiddler filtering by date range, tags or modifers.
! Examples
; [[Filtr@tobibeer|http://tobibeer.tiddlyspace.com/#Filtr]]
:» The info tiddler provides an interactive example
! Preview
[img[http://img.tiddlyspace.com/FiltrPlugin_1]]

! Details
This plugin allows extensive parameterization, using templates and customization. It can come in handy when you have loads of tiddlers you wish to narrow down.

Here's how it works...
*click on a button to set it as a filter
*clicking on a {{{tag}}} or {{{user}}} filters by it
**clicking it again reenables all  {{{tags}}} or {{{users}}}
*clicking on a {{{year}}} will select all months unless you do a {{{CTRL+CLICK}}}
**with {{{SHIFT+CLICK}}} you can select a month- or year range
**you can also do a {{{SHIFT+CTRL+CLICK}}}
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
|details|k
|''URL''|http://www.TiddlyTools.com/#MatchTagsPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-10-28|
|''Version''|2.0.6|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#MatchTagsPlugin|
!Summary
'tag matching' with full boolean expressions (AND, OR, NOT, and nested parentheses)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#MatchTagsPluginInfo]]
:see the author's info tiddler for examples
!Details
This plugin extends the {{{[tag[tagname]]}}} macro parameter syntax used by the TiddlyWiki core {{{<<list>>}}} macro so that, instead of a simple tagname value, you can specify a complex combination of tagname values using a //boolean expression// containing AND, OR, and NOT operators, enclosed in nested parentheses if needed.
{{{
<<list filter "[tag[expression]]">>
}}}
In addition, the plugin defines a new macro, {{{<<matchTags ...>>}}} that can be used instead of the core {{{<<list>>}}} macro to output a list of matching tiddlers //using a custom 'item format' and 'separator'//.  You can also use this macro to create a command link that displays the matching tiddlers within a popup list, similar to the standard {{{<<tag tagName>>}}} macro, but matching a combination of tag values rather than a single tag value.
{{{
<<matchTags inline "format" "separator" sort:fieldname tag expression>>
<<matchTags popup "label:..." "prompt:..." sort:fieldname tag expression>>
<<matchTags report TiddlerName "format" "separator" sort:fieldname tag expression>>
<<matchTags panel  Tiddlername "format" "separator" sort:fieldname tag expression>>
}}}
;inline, report, panel, popup
:keywords that indicate the type of output that the macro should produce{{x{
;inline (default)
:displays a list of matching tiddlers embedded directly in tiddler content
;popup
:embeds a command button that, when clicked, lists matching tiddlers in a ~TiddlyWiki popup display
;report
:generates a list of matching tiddler in a separate [[MatchingTiddlers]] report tiddler
;panel
:displays an interactive form for generating a [[MatchingTiddlers]] report
}}}
;format
:the wiki-syntax for rendering list items
:The following //substitution markers// can be used to insert tiddler-specific information for each matched tiddler
:* {{{%0}}} - title
:* {{{%1}}} - modifier (author)
:* {{{%2}}} - modified (date of last change)
:* {{{%3}}} - text (all tiddler content)
:* {{{%4}}} - firstline (tiddler content up to the first newline)
:* {{{%5}}} - description (tiddler slice or section content named "description" or "Description")
:* {{{%6}}} - tags (space-separated, bracketed list)
;separator
:the wiki-syntax to use //between// each matching title
:e.g., ", " creates a comma-separated list, while "\n" displays one tiddler per line
;sort:fieldname (optional)
:the sort order for the resulting list of tiddlers.
:You can specify any tiddler field name (standard or custom-defined).
:Standard tiddler fieldnames include: //title, created, modified, modifier//.
:If not specified, tiddlers are sorted by title.
:You can prefix the fieldname with "+" or "-" to indicate ascending or descending order, respectively.
;tag expression
:the remaining parameter(s) are joined together to define the boolean expression to be matched.

When using the ''popup'' option, there are two additional (and optional) parameters you can specify:
;label: (optional)
:indicates the text for the popup command link
:by default displays the specified tag expression itself
;prompt: (optional)
:the mouseover 'tooltip' for the popup command link
{{annotation{
You can apply custom CSS styles (e.g., font size) to the popup by adding a rule for ".matchTags .popup" to your [[StyleSheet]].
}}}
When using the ''report'' or ''panel'' option, an additional parameter may be provided:
;~TiddlerName
:the target tiddler into which the output will be generated (default: [[MatchingTiddlers]])

''Notes''
*a tag expression can use any combination of text operators
** ''AND'', ''OR'', ''NOT'' (or their equivalent javascript operators: ''&&'', ''||'', ''!''), contained in nested parentheses as needed
*operators should be delimited by spaces or parentheses
*before matching, leading/trailing spaces are automatically trimmed and multiple spaces are reduced to single spaces.
*tag values containing embedded spaces do //not// have to be enclosed in {{{[[...]]}}}
*tag values that contain boolean operators as ''literal text'' (e.g., {{{"foo and bar"}}} or {{{"foo && bar"}}} cannot be used within a compound boolean expression, but //can// be matched if specified by themselves, without any other tag values or operators
*to match tiddlers that are untagged, use "-" as a special tag value within the expression
*match "wildcard" tags  by using //regular expression// (i.e., "text pattern") syntax within a tag value, e.g. {{{[Tt]agvalue.*}}}

''Examples''
;display a popup list:
:{{{<<matchTags popup sample OR (settings AND systemConfig)>>}}}
;display a popup list with custom label
:{{{<<matchTags popup "label:samples and settings" sample OR (settings AND systemConfig)>>}}}
;display a popup list of untagged tiddlers
:{{{<<matchTags popup ->>}}}
;generate a report using interactive form control panel
:{{{<<matchTags panel "MatchingTiddlers" "[[%0]]" "\n" sample OR (settings AND systemConfig)>>}}}
;comma-separated list
:{{{<<matchTags "[[%0]]" ", " sample OR (settings AND systemConfig)>>}}}
;numbered list (sorted by modification date, most recent first)
:{{{<<matchTags "#[[%0]] (%2)<br>^^%5^^" "\n" sort:-modified sample OR (settings AND systemConfig)>>}}}
;bullet-item list (using the TiddlyWiki core {{{<<list filter ...>>}}} macro)
:{{{<<list filter "[tag[sample OR (settings AND systemConfig)]]">>}}}
{{annotation{
When using the core {{{<<list>>}}} macro, you should always enclose the entire tag filter parameter within quotes)
}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#ShowSimilarTiddlers|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-30|
|''Version''|2.0.0|
|''CoreVersion''||
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ShowSimilarTiddlers|
!Summary
list tiddlers, by number of shared tags
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ShowSimilarTiddlers]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ShowSimilarTiddlers
<<tag Themes>>allow you to work with TiddlyWiki in different layouts and designs. There are different ways to achieve that end...

For more information, see [[themes|http://tiddlywiki.org#Themes]] on [[TiddlyWiki.org]].

[[Click here|Themes]] for the full reference of [[theme categories|Themes]].
|details|k
|''URL''|http://www.TiddlyTools.com/#ToggleTiddlerTags|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-25|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ToggleTiddlerTags|
!Summary
command link to show/hide tiddler tags display in all tiddlers at once
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ToggleTiddlerTags]]
: see the author's info tiddler for examples
!Details
Use in the tiddler content as...
{{{
<<tiddler ToggleTiddlerTags>>
<<tiddler ToggleTiddlerTags with: label>>
}}}
or, in the ViewTemplate:
{{{
<span class='toolbar' macro='tiddler ToggleTiddlerTags'></span>
	OR, if TiddlyTools' CoreTweaks for ticket #610 is installed:
<span class='toolbar' macro='toolbar ... ToggleTiddlerTags...'></span>
}}}
or, in the ToolbarCommands (with [[CoreTweaks...]] #610 installed):
{{{
| ViewToolbar| ... ToggleTiddlerTags... |
| EditToolbar| ... ToggleTiddlerTags... |
}}}
If the author is only known by his alias, use the [[Author Template]], otherwise use...
{{{
<<tiddler TemplateAlias with: "Author Name">>
}}}
!Alias Template Preview
For [[TiddlyTools]]...
><<tiddler TemplateAlias with: "Eric Shulman">>
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
|details|k
|''URL''|http://www.TiddlyTools.com/#UndoPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-09-12|
|''Version''|0.2.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#UndoPlugin|
!Summary
undo/redo changes to tiddlers
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#UndoPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#UndoPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#NestedSlidersPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-11-16|
|''Version''|2.4.9|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#NestedSlidersPlugin|
!Summary
show content in nest-able sliding/floating panels, without creating separate tiddlers for each panel's content
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#NestedSlidersPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#NestedSlidersPluginInfo
|details|k
|''URL''|http://themes.tiddlywiki.com/kubrick.html|
! Summary
Similar to K2Blog, this theme comes with a large blueish centered header, silverish tiddlers with a nice gradient against a gray page background and blue and redish highlights. The MainMenu is above the [[sidebar|SideBarTabs]] to the right.
! Preview
[img[[img[http://img.tiddlyspace.com/Kubrick][http://themes.tiddlywiki.com/kubrick.html]]
<<tag [[Serverside]] Apps>>for hosting and managing TiddlyWiki online...
|details|k
|''URL''|http://www.TiddlyTools.com/#TagCloudPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-07-19|
|''Version''|1.7.0|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#TagCloudPlugin|
!Summary
Present a tag cloud using proportional font display.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TagCloudPlugin]]
:see the author's info tiddler for examples
!Preview
[img[http://img.tiddlyspace.com/TagCloudPlugin_TiddlyTools_1]]
!Details
''Usage''
{{{
<<cloud type action:... limit:... tag tag tag ...>>
<<cloud type action:... limit:... +TiddlerName>>
<<cloud type action:... limit:... -TiddlerName>>
<<cloud type action:... limit:... =tagvalue>>
}}}
;type (keyword)
:one of...{{x{
;tags (default)
:displays a cloud of tags, based on frequency of use
;links
:displays a cloud of tiddlers, based on number of links //from// each tiddler
;references
:displays a cloud of tiddlers, based on number of links //to// each tiddler
}}}
;action
:can have the following values...{{x{
;popup (default)
:clicking a cloud item shows a popup with links to related tiddlers
;goto
:clicking a cloud item immediately opens the tiddler corresponding to that item
}}}
;limit:N (optional)
:restricts the cloud display to only show the N most popular tags/links
;tag tag tag...
:or ''title title title'' when ''links'' or ''references'' is used
:shows all tags/links in the document //except// for those listed as macro parameters
;+~TiddlerName
:show only tags/links read from a space-separated, bracketed list stored in a separate tiddler
;-~TiddlerName
:show all tags/links //except// those read from a space-separated, bracketed list stored in a separate tiddler
;=tagvalue
://only when type=''tags''//
:shows only tags that are themselves tagged with the indicated tag value (i.e., ~TagglyTagging usage)
{{annotation{
''Note'' : For backwards compatibility you can also use the {{{<<tagCloud>>}}} macro in place of {{{<<cloud>>}}}.
}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#DragScrollPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-12-08|
|''Version''|1.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#DragScrollPlugin|
!Summary
use ~SHIFT-DRAG to scroll the browser window
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#DragScrollPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#DragScrollPlugin
Instead of being listed by their actual name, e.g. "Theme Name", the name is converted to ''~CamelCase'' and ends with three dots; e.g. [[ThemeName...|Theme]].
|details|k
|''URL''|http://www.TiddlyTools.com/#ToggleTiddlerTitles|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-11-30|
|''Version''|2.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ToggleTiddlerTitles|
!Summary
command link to show/hide tiddler title display in all tiddlers at once
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ToggleTiddlerTitles]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ToggleTiddlerTitles
|details|k
|''URL''|http://untagged.tiddlyspace.com|
|''Author''|Tobias Beer|
|''Version''|1.0.0|
|''Released''|2013-09-23|
|''Requires''|2.5.2|
|''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/UntaggedPlugin.min.js|
|''Readable Source''|https://github.com/tobibeer/TiddlyWikiPlugins/blob/master/plugins/UntaggedPlugin.js|
! Summary
» provides an """<<untagged>>""" macro
» adds an untagged button to the tags tab, i.e. the """<<alltags>>""" macro
» allows to hide empty tags / tagging
» allows to conditionally hide tags / tagging
» allows to hide tags from visitors on readOnly
! Examples
; [[untagged space|http://untagged.tiddlyspace.com]]
:» the @untagged space documents and demonstrates all features
! Preview
[img[http://img.tiddlyspace.com/UntaggedPlugin_1][http://untagged.tiddlyspace.com]]
! Details
* adds an untagged button to the tags tab, i.e. the ''"""<<alltags>>"""'' macro
* hides tags or tagging when either is empty using opions that can be turned off
* hides tags when the tiddler is tagged ''no-tags'', hides tagging when tagged ''no-tagging''
* provides the ''"""<<untagged>>"""'' macro
** can be used for [[a custom tab listing all untagged tiddlers|SideBarTabs]]
* hides certain tags from visitors in readOnly mode

For more information, visit the @untagged space.
<<tiddler Icon with: TabPlugins>><<tag Plugins>>are a core feature of TiddlyWiki and...
* in this listing entail all of [[plugins|Plugin]], [[macros|Macro]], [[scripts|Script]] or [[transclusions|Transclusion]]
* are optional modules extending the functionality of TiddlyWiki containing JavaScript 
* are mostly tagged <<tag systemConfig>> which TiddlyWiki interprets as //"""Run my code on startup!"""//
* typically provide macros or functions later triggered, e.g. called when a tidder is displayed
* are mostly written by third-party developers and released under an open-source license
>''Note:'' [[scripts|Script]] and [[transclusions|Transclusion]] do not need to be tagged with <<tag systemConfig>>!

For more information, see [[plugins|http://tiddlywiki.org#Plugins]], [[macros|http://tiddlywiki.org#Macros]], [[scripts|http://tiddlywiki.org#Scripts]], [[transclusions|http://tiddlywiki.org#Transclusion]] on [[TiddlyWiki.org]].

[[Click here|Plugins]] for the full reference of [[plugin categories|Plugins]].

{{noTitle{<<tagging>>}}}<<listfiltr>>
|details|k
|''URL''|http://www.TiddlyTools.com/#FoldOtherTiddlers|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-01-12|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#FoldOtherTiddlers|
!Summary
fold all other tiddlers when a tiddler is viewed
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#FoldOtherTiddlers]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#FoldOtherTiddlers
|details|k
|''URL''|http://white.tiddlyspace.com|
|''Author''|Tobias Beer|
|''Version''|0.8.6|
|''Released''|2013-11-06|
|''Requires''|2.6.2|
|''Source''|http://white.tiddlyspace.com|
! Summary
A theme mimicking http://five.tiddlywiki.com.
! Examples
; [[tobibeer space|http://tobibeer.tiddlyspace.com]]
: the space of the plugin author
; [[tobibeer's plugin documentation spaces|http://tobibeer.tiddlyspace.com#Plugins]]
: used by Tobias Beer for individual plugin documentation spaces, e.g.
:* @ListFiltr, @Untagged, @Findr, @Slidr, @TagFiltr, @RenameTiddlers, etc...
! Preview
[img[http://img.tiddlyspace.com/White-Theme]]
! Details
This theme provides the basic look and feel of TiddlyWiki5 while running on TiddlyWiki version <= <<version>>.

It comes with a mostly white appearance on a slightly silverish page background with mostly blue or grey highlights for links, tables, tabs, etc... and uses box-shadows and gradients to provide a more modern appeal.

The SiteTitle and SiteSubtitle as well as the search box are put in the sidebar leaving more room to the main content area.
!Installation
To get started with [[White-Theme]]...
#simply include the @White space
#removing the @system-theme space
#moving any custom styles from StyleSheet into StyleSheetSpace

|details|k
|''URL''|http://tiddlywiki.abego-software.de|
|''Author''|[[Udo Borowski (Abego)]]|
|''Version''|2.1.6|
|''Released''|2012-04-19|
|''Requires''|2.1|
|''Source''|http://tiddlywiki.abego-software.de/#YourSearchPlugin|
! Summary
Search your TiddlyWiki with advanced search features such as result lists, tiddler preview, result ranking, search filters, combined searches and many more.
! Examples
; [[Your Search Help|http://tiddlywiki.abego-software.de/#%5B%5BYourSearch%20Help%5D%5D]]
:» the authors page provides lots of examples and extensive help documentation
! Preview
[img[http://img.tiddlyspace.com/YourSearchPlugin_1]]
! Details
With [[YourSearchPlugin...]] you get all of...
; Field Search
: Restrict your search to certain fields of a tiddler, e.g only search the tags, titles or custom fields. You may search a word in more than one field or exclude fields from search.
;Boolean Search
:The Boolean Search is useful when searching for multiple words, e.g.
:*all words must exist
:*at least one word must exist	
:*a word must not exist
;'Exact Word' Search
:By default a search result all matches that 'contain' the searched text. To only find matches that contain 'exactly the word' prefix your search with an equals sign.
;~CaseSensitiveSearch and ~RegExpSearch
:These standard search options are fully supported by [[YourSearch|YourSearchPlugin...]].
;JavaScript Expression Filtering
:If you are familiar with JavaScript programming and know some TiddlyWiki internals you may also use JavaScript expression for the search, e.g. to return all tiddler modified after July 4th, 2005.
;Combined Search
:You can combine the various search options.
;Access Keys
:You can use access keys (also called "shortcut" keys) for the most frequently used operations. For quick reference these shortcuts are also mentioned in the tooltip for the various buttons etc.
Loads of handy plugins for tagging and navigation and nice themes like K2Blog...
» http://tiddlywiki.squize.org
|details|k
|''URL''|http://www.TiddlyTools.com/#DatePluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-04-23|
|''Version''|2.7.3|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#DatePlugin|
!Summary
formatted dates plus popup menu with 'journal' link, changes and (optional) reminders
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#DatePluginInfo]]
:see the author's info tiddler for examples
!Details
This plugin provides a general approach to displaying formatted dates and/or links and popups that permit easy navigation and management of tiddlers based on their creation/modification dates.

This plugin displays formatted dates, for the specified year, month, day using number values or mathematical expressions such as (Y+1) or (D+30).  Optionally, you can create a link to a 'dated tiddler' for quick blogging or create a popup menu that includes the dated tiddler link plus links to tiddlers that were created/changed on that date, or are tagged with that date and, if the [[ReminderMacros|http://remindermacros.tiddlyspot.com/]] plugin is installed, any pending reminders for next month.  There is also a public API, so other plugins can embed a variety of formatted date output, links, and/or popup menus.
|details|k
|''URL''|http://www.TiddlyTools.com/#CheckboxToggleTag|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-16|
|''Version''|1.3.6|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#CheckboxToggleTag|
!Summary
toggle between two tag values using an HTML checkbox (no plugins)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#CheckboxToggleTag]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#CheckboxToggleTag
|details|k
|''URL''|http://tiddlywiki.squize.org#ToggleSideBarMacro|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-24|
|''Version''|1.0|
|''CoreVersion''||
|''Requires''|~TW2.x|
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#ToggleSideBarMacro|
!Summary
Provides a button for toggling visibility of the SideBar. You can choose whether the SideBar should initially be hidden or displayed.

!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#ToggleSideBarMacro]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#ToggleSideBarMacro

{{{
<script>var

what = "systemConfig",
tags = "Plugin zzUnsorted [[Eric Shulman]]",

tids=store.getTaggedTiddlers(what),
out, i, u, ui, t, ti, tid,out='';

for(t=0;t<tids.length;t++){
  tid = tids[t];
  ti = tid.title,
  i = ti + 'Info',
  ui = store.getTiddlerSlice(ti,'Documentation'),
  u = store.getTiddlerSlice(ti,'Source'),
  a = store.getTiddlerSlice(ti,'Author');
  if(!a)continue;
  ui = ui?ui:u;
  out += "\n" + ti + '...|' + tags;
  out += "\n|details|k";
  out += "\n|''URL''|" + ui + "|";
  out += "\n|''Author''|[[Eric Shulman]]|";
  out += "\n|''Released''|" + (tid.modified).formatString('YYYY-0MM-0DD') + "|";
  out += "\n|''Version''|" + (store.getTiddlerSlice(ti,'Version')||'') + "|";
  out += "\n|''CoreVersion''|" + (store.getTiddlerSlice(ti,'CoreVersion')||'') + "|";
  out += "\n|''Requires''|" + (store.getTiddlerSlice(ti,'Requires')||'') + "|";
  out += "\n|''Type''|" + (store.getTiddlerSlice(ti,'Type')||'') + "|";
  out += "\n|''Tags''|" + tags + "|";
  out += "\n|''Source''|" + u + "|";
  out += "\n!Summary\n" + store.getTiddlerSlice(ti,'Description');
  out += "\n!Examples\n; [[plugin info tiddler|" + ui + "]]\n:» see the author's info tiddler for examples";
  out += "\n!Details\nNone yet. Please review...\n" + ui;
  out += "\n----";
}

wikify('<html><textarea rows=20 cols=60>'+out+'</textarea></html>', place);
</script>
}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#TableOfContentsPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-04-10|
|''Version''|2.4.3|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#TableOfContentsPlugin|
!Summary
replace the standard tabbed contents list with a scrolling listbox
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TableOfContentsPluginInfo]]
: see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#TableOfContentsPluginInfo
/***
|''Name''|RevisionsCommandPlugin|
|''Description''|provides access to tiddler revisions|
|''Author''|FND|
|''Contributors''|Martin Budden|
|''Version''|0.3.3|
|''Status''|@@beta@@|
|''Source''|http://svn.tiddlywiki.org/Trunk/association/plugins/RevisionsCommandPlugin.js|
|''CodeRepository''|http://svn.tiddlywiki.org/Trunk/association/plugins/|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.6.0|
|''Keywords''|serverSide|
!Usage
Extend [[ToolbarCommands]] with {{{revisions}}}.
!Revision History
!!v0.1 (2009-07-23)
* initial release (renamed from experimental ServerCommandsPlugin)
!!v0.2 (2010-03-04)
* suppressed wikification in diff view
!!v0.3 (2010-04-07)
* restored wikification in diff view
* added link to side-by-side diff view
!To Do
* strip server.* fields from revision tiddlers
* resolve naming conflicts
* i18n, l10n
* code sanitizing
* documentation
!Code
***/
//{{{
(function($) {

jQuery.twStylesheet(".diff { white-space: pre, font-family: monospace }",
	{ id: "diff" });

var cmd = config.commands.revisions = {
	type: "popup",
	hideShadow: true,
	text: "revisions",
	tooltip: "display tiddler revisions",
	revTooltip: "", // TODO: populate dynamically?
	loadLabel: "loading...",
	loadTooltip: "loading revision list",
	selectLabel: "select",
	selectTooltip: "select revision for comparison",
	selectedLabel: "selected",
	compareLabel: "compare",
	linkLabel: "side-by-side view",
	revSuffix: " [rev. #%0]",
	diffSuffix: " [diff: #%0 #%1]",
	dateFormat: "YYYY-0MM-0DD 0hh:0mm",
	listError: "revisions could not be retrieved",

	handlePopup: function(popup, title) {
		title = this.stripSuffix("rev", title);
		title = this.stripSuffix("diff", title);
		var tiddler = store.getTiddler(title);
		var type = _getField("server.type", tiddler);
		var adaptor = new config.adaptors[type]();
		var limit = null; // TODO: customizable
		var context = {
			host: _getField("server.host", tiddler),
			workspace: _getField("server.workspace", tiddler)
		};
		var loading = createTiddlyButton(popup, cmd.loadLabel, cmd.loadTooltip);
		var params = { popup: popup, loading: loading, origin: title };
		adaptor.getTiddlerRevisionList(title, limit, context, params, this.displayRevisions);
	},

	displayRevisions: function(context, userParams) {
		removeNode(userParams.loading);
		if(context.status) {
			var callback = function(ev) {
				var e = ev || window.event;
				var revision = resolveTarget(e).getAttribute("revision");
				context.adaptor.getTiddlerRevision(tiddler.title, revision, context,
					userParams, cmd.displayTiddlerRevision);
			};
			var table = createTiddlyElement(userParams.popup, "table");
			for(var i = 0; i < context.revisions.length; i++) {
				var tiddler = context.revisions[i];
				var row = createTiddlyElement(table, "tr");
				var timestamp = tiddler.modified.formatString(cmd.dateFormat);
				var revision = tiddler.fields["server.page.revision"];
				var cell = createTiddlyElement(row, "td");
				createTiddlyButton(cell, timestamp, cmd.revTooltip, callback, null,
					null, null, { revision: revision });
				cell = createTiddlyElement(row, "td", null, null, tiddler.modifier);
				cell = createTiddlyElement(row, "td");
				createTiddlyButton(cell, cmd.selectLabel, cmd.selectTooltip,
					cmd.revisionSelected, null, null, null,
					{ index:i, revision: revision, col: 2 });
				cmd.context = context; // XXX: unsafe (singleton)!?
			}
		} else {
			$("<li />").text(cmd.listError).appendTo(userParams.popup);
		}
	},

	revisionSelected: function(ev) {
		var e = ev || window.event;
		e.cancelBubble = true;
		if(e.stopPropagation) {
			e.stopPropagation();
		}
		var n = resolveTarget(e);
		var index = n.getAttribute("index");
		var col = n.getAttribute("col");
		while(!index || !col) {
			n = n.parentNode;
			index = n.getAttribute("index");
			col = n.getAttribute("col");
		}
		cmd.revision = n.getAttribute("revision");
		var table = n.parentNode.parentNode.parentNode;
		var rows = table.childNodes;
		for(var i = 0; i < rows.length; i++) {
			var c = rows[i].childNodes[col].firstChild;
			if(i == index) {
				if(c.textContent) {
					c.textContent = cmd.selectedLabel;
				} else {
					c.text = cmd.selectedLabel;
				}
			} else {
				if(c.textContent) {
					c.textContent = cmd.compareLabel;
				} else {
					c.text = cmd.compareLabel;
				}
				c.onclick = cmd.compareSelected;
			}
		}
	},

	compareSelected: function(ev) {
		var e = ev || window.event;
		var n = resolveTarget(e);
		var context = cmd.context;
		context.rev1 = n.getAttribute("revision");
		context.rev2 = cmd.revision;
		context.tiddler = context.revisions[n.getAttribute("index")];
		context.format = "unified";
		context.adaptor.getTiddlerDiff(context.tiddler.title, context,
			context.userParams, cmd.displayTiddlerDiffs);
	},

	displayTiddlerDiffs: function(context, userParams) {
		var tiddler = context.tiddler;
		tiddler.title += cmd.diffSuffix.format([context.rev1, context.rev2]);
		tiddler.text = "{{diff{\n" + context.diff + "\n}}}";
		tiddler.tags = ["diff"];
		tiddler.fields.doNotSave = "true"; // XXX: correct?
		if(!store.getTiddler(tiddler.title)) {
			store.addTiddler(tiddler);
		}
		var src = story.getTiddler(userParams.origin);
		var tiddlerEl = story.displayTiddler(src, tiddler);
		var uri = context.uri.replace("format=unified", "format=horizontal");
		var link = $('<a target="_blank" />').attr("href", uri).text(cmd.linkLabel);
		$(".viewer", tiddlerEl).prepend(link);
	},

	displayTiddlerRevision: function(context, userParams) {
		var tiddler = context.tiddler;
		tiddler.title += cmd.revSuffix.format([tiddler.fields["server.page.revision"]]);
		tiddler.fields.doNotSave = "true"; // XXX: correct?
		if(!store.getTiddler(tiddler.title)) {
			store.addTiddler(tiddler);
		}
		var src = story.getTiddler(userParams.origin);
		story.displayTiddler(src, tiddler);
	},

	stripSuffix: function(type, title) {
		var str = cmd[type + "Suffix"];
		var i = str.indexOf("%0");
		i = title.indexOf(str.substr(0, i));
		if(i != -1) {
			title = title.substr(0, i);
		}
		return title;
	}
};

var _getField = function(name, tiddler) {
	return tiddler.fields[name] || config.defaultCustomFields[name];
};

})(jQuery);
//}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#ReplaceTiddlerTitle|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-24|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ReplaceTiddlerTitle|
!Summary
replace tiddler's title text with other content - may include wiki syntax
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ReplaceTiddlerTitle]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ReplaceTiddlerTitle
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
|details|k
|''URL''|http://www.TiddlyTools.com/#ExportTiddlersPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-02-14|
|''Version''|2.9.6|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ExportTiddlersPlugin|
!Summary
interactively select/export tiddlers to a separate file
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ExportTiddlersPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ExportTiddlersPluginInfo
|details|k
|''URL''|http://mptw.tiddlyspot.com/#SelectThemePlugin|
|''Author''|[[Simon Baird]]|
|''Released''|2011-06-27|
|''Version''|1.0.1a|
|''CoreVersion''||
|''Source''|http://mptw.tiddlyspot.com/#SelectThemePlugin|
!Summary
Lets you easily switch theme and ColorPalette.
!Examples
; [[plugin info tiddler|http://mptw.tiddlyspot.com/#SelectThemePlugin]]
:» see the author's info tiddler for examples
!Details
* borrows largely from [[ThemeSwitcherPlugin|http://www.martinswiki.com/#ThemeSwitcherPlugin]] by Martin Budden
* the theme is cookie based but you can set a default by setting {{{config.options.txtTheme}}} in a [[zzConfig|http://tiddlywiki.org#zzConfig]]
* the palette is __not__ cookie based, it actually overwrites your ColorPalette tiddler when you select a palette

''Usage''
;{{{<<selectTheme>>}}}
:renders a dropdown to select from available themes, i.e. tiddlers tagged <<tag systemTheme>>
;{{{<<selectPalette>>}}}
:renders a dropdown to select from available [[ColorPalettes|ColorPalette]], i.e. tiddlers tagged <<tag systemPalette>>
;{{{<<applyTheme>>}}}
:applies the current tiddler as a theme
;{{{<<applyPalette>>}}}
:applies the current tiddler as the ColorPalette
;{{{<<applyTheme themeTiddler>>}}}
:applies themeTiddler as a theme
;{{{<<applyPalette paletteTiddler>>}}}
:applies paletteTiddler as the ColorPalette
|details|k
|''URL''|http://mptw.tiddlyspot.com/#PrettyDatesPlugin|
|''Author''|[[Simon Baird]]|
|''Released''|2013-06-17|
|''Version''|1.0a|
|''CoreVersion''|2.2|
|''Source''|http://mptw.tiddlyspot.com/#PrettyDatesPlugin|
!Summary
Provides a new [[date format|http://tiddlywiki.org/#DateFormats]] ('pppp') that displays times such as ''2 days ago''.
!Examples
; [[plugin info tiddler|http://mptw.tiddlyspot.com/#PrettyDatesPlugin]]
:see the tiddler subtitles in [[MPTW|http://mptw.tiddlyspot.com/#PrettyDatesPlugin]] for an example
!Details
To alter the displayed text, alter the plugin.

Inspired by http://ejohn.org/files/pretty.js
|details|k
|''URL''|http://www.TiddlyTools.com/#CookieSaverPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-08-05|
|''Version''|1.1.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#CookieSaverPlugin|
!Summary
automatically save TiddlyWiki cookie options to ~CookieJar tiddler for portable settings
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#CookieSaverPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#CookieSaverPlugin
/***
|''Name''|BinaryTiddlersPlugin|
|''Description''|renders base64-encoded binary tiddlers as images or links|
|''Author''|FND|
|''Version''|0.3.2|
|''Status''|@@beta@@|
|''Source''|http://svn.tiddlywiki.org/Trunk/association/plugins/BinaryTiddlersPlugin.js|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.5|
!Code
***/
//{{{
(function($) {

"use strict";

var ctfield = "server.content-type";

var plugin = config.extensions.BinaryTiddlersPlugin = {
	isWikiText: function(tiddler) {
		var ctype = tiddler.fields[ctfield];
		if(ctype) {
			if (ctype === 'text/x-tiddlywiki') {
				return true;
			}
			return !this.isBinary(tiddler) && !this.isTextual(ctype);
		} else {
			return true;
		}
	},
	// NB: pseudo-binaries are considered non-binary here
	isBinary: function(tiddler) {
		var ctype = tiddler.fields[ctfield];
		return ctype ? !this.isTextual(ctype) : false;
	},
	isTextual: function(ctype) {
		return ctype.indexOf("text/") === 0
			|| this.endsWith(ctype, "+xml")
			|| ctype === 'application/json'
			|| ctype === 'application/javascript';
	},
	endsWith: function(str, suffix) {
		return str.length >= suffix.length &&
			str.substr(str.length - suffix.length) === suffix;
	},
	isLink: function(tiddler) {
		return this.isBinary(tiddler) && tiddler.text.indexOf("<html>") !== -1;
	}
};

// Disable edit for linked tiddlers (for now)
// This will be changed to a GET then PUT
config.commands.editTiddler.isEnabled = function(tiddler) {
    var existingTest = config.commands.editTiddler.isEnabled;
    if (existingTest) {
        return existingTest && !plugin.isLink(tiddler);
    } else {
        return !plugin.isLink(tiddler);
    }
};

// hijack text viewer to add special handling for binary tiddlers
var _view = config.macros.view.views.wikified;
config.macros.view.views.wikified = function(value, place, params, wikifier,
		paramString, tiddler) {
	var ctype = tiddler.fields["server.content-type"];
	if(params[0] === "text" && ctype && ctype !== 'text/x-tiddlywiki' &&
			!tiddler.tags.contains("systemConfig") && !plugin.isLink(tiddler)) {
		var el;
		if(plugin.isBinary(tiddler)) {
			var uri = "data:%0;base64,%1".format([ctype, tiddler.text]); // TODO: fallback for legacy browsers
			if(ctype.indexOf("image/") === 0) {
				el = $("<img />").attr("alt", tiddler.title).attr("src", uri);
			} else {
				el = $("<a />").attr("href", uri).text(tiddler.title);
			}
		} else {
			el = $("<pre />").text(tiddler.text);
		}
		el.appendTo(place);
	} else {
		_view.apply(this, arguments);
	}
};

// hijack edit macro to disable editing of binary tiddlers' body
var _editHandler = config.macros.edit.handler;
config.macros.edit.handler = function(place, macroName, params, wikifier,
		paramString, tiddler) {
	if(params[0] === "text" && plugin.isBinary(tiddler)) {
		return false;
	} else {
		_editHandler.apply(this, arguments);
	}
};

// hijack autoLinkWikiWords to ignore binary tiddlers
var _autoLink = Tiddler.prototype.autoLinkWikiWords;
Tiddler.prototype.autoLinkWikiWords = function() {
	return plugin.isWikiText(this) ? _autoLink.apply(this, arguments) : false;
};

}(jQuery));
//}}}
Unless you're delighted with the default theme you can make some quick changes by generating a new random color palette, hit this button to cycle through some alternatives.

<<RandomColorPaletteButton saturation_pale:0.67 saturation_light:0.53
saturation_mid:0.43 saturation_dark:0.06 pale:0.99 light:0.85 mid:0.5 dark:0.31>>

You can also change the look and feel completely by installing a new theme. To do this, find one you like in the @themes space, note down the name, and include it in this space by going to the space menu. You can reach the space menu by clicking on the blue and pink circle at the top-right of the page and chooshing "THIS SPACE". Here are a few to check out:
* @pip
* @caspian-ii
* @basalt
* @simplicity
* @cheesecake
* @jelly-doughnut

(//Note that if you are using a custom TiddlySpace install, these themes may not be present.//)
''Show [[Disqus|http://disqus.com]] comments for """%0"""'' /%

<<discuss count [[%0]]>> COUNT ALWAYS SHOWS 0?!?

%/ {{discuss_img{[>img[/editTiddler]]}}}
|details|k
|''URL''|http://themes.tiddlywiki.com/blackicity.html|
! Summary
A simple b/w theme with a horizontal MainMenu and neither of SiteTitle or SiteSubtitle being displayed.
! Preview
[img[[img[http://img.tiddlyspace.com/Blackicity][http://themes.tiddlywiki.com/blackicity.html]]
/***
|''Name''|SlidrPlugin|
|''Description''|shows a tiddler timeline using sliders|
|''Documentation''|http://slidr.tiddlyspace.com|
|''Author''|Tobias Beer|
|''Version''|1.1.0 2013-09-27|
|''CoreVersion''|2.6.5|
|''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/SlidrPlugin.min.js|
|''License''|[[Creative Commons Attribution-Share Alike 3.0|http://creativecommons.org/licenses/by-sa/3.0/]]|
{{{
<<slidr>>
}}}
<<slidr>>
***/
// /%
(function(e){config.macros.slidr={defaults:{txtSliderTooltip:"Click to show tiddlers in '%0'. CTRL+Click to expand / collapse all.",errDate:"%0 is not a valid start or end date!",lblTiddler1:"tiddler",lblTiddler2:"tiddlers",minGroup:7,openOnLoad:false,level:"month",field:"-modified",exclude:"excludeLists",noDblClick:true,fmtYear:"YYYY",fmtMonth:"MMM, YYYY",fmtDay:"0DD. mmm, YYYY",fmtDate:"0hh:0mm",fmtDateFull:"0DD. mmm, YYYY",fmtSlider:"{{slidr_title{%0}}}{{slidr_count{%1}}}",fmtTiddler:"\n{{slidr_entry{ {{slidr_date{%1}}}"+"{{slidr_tid{[[%0]]}}}"+"{{slidr_tags{%2}}} }}}",fmtTag:"<<tag [[%0]]>>",fmtTagTitle:"<<tag [[%0]]>>",fmtCount:"(%0 %1)"},handler:function(t,n,r,i,s,o){var u,a,l,c,h,p,d,v,m,g,y=[],b,w=[],E=config.messages,S,x,T,N,C,k,L,A,O,M,_,D,P,H,B=this.defaults,j=s.parseParams("anon",null,true),F=store.getTiddlerText(getParam(j,"config","")),I=F?F.parseParams("anon",null,true):j,q=I[0]["anon"]&&I[0]["anon"].contains("tags")?[]:undefined;year=parseInt(getParam(I,"year")),month=parseInt(getParam(I,"month")),day=parseInt(getParam(I,"day")),d=getParam(I,"start"),a=getParam(I,"end"),p=getParam(I,"level",q?"":B.level),ex=getParam(I,"exclude",B.exclude).readBracketedList(),f=getParam(I,"field",B.field),keep=getParam(I,"keep","").readBracketedList(),filter=getParam(I,"filter",""),format=getParam(I,"format",B.fmtTiddler),template=getParam(I,"template",""),px={open:getParam(I,"open",B.openOnLoad),year:year,month:month,day:day,fmtDate:B.fmtDate,fmtDateUser:getParam(I,"dateformat"),fmtDateFull:getParam(I,"dateformat.full",B.fmtDateFull),fmtYear:getParam(I,"format.year",B.fmtYear),fmtMonth:getParam(I,"format.month",B.fmtMonth),fmtDay:getParam(I,"format.day",B.fmtDay),min:getParam(I,"min",B.minGroup),ex:ex,hideTags:getParam(I,"hideTags","").readBracketedList()},desc=f.substr(0,1)=="-",last=function(e,t){var n=e[e.length-1],r=[t,[]];if(!n||t!=n[0]){e.push(r);n=e[e.length-1]}return n[1]};if(template){template=store.getTiddlerText(template);if(template)format=template}px.fmtTiddler=format;c=a?!this.isValidDate(a):false;if(c||(d?!this.isValidDate(d):false)){createTiddlyError(t,E.macroError.format(["slidr"]),E.macroErrorDetails.format(["slidr",B.errDate.format([c?a:d])]));return}d=d?Date.convertFromYYYYMMDDHHMM(d):d;a=a?Date.convertFromYYYYMMDDHHMM(a):a;p=p.toLowerCase();p=p.substr(p.length-1)=="s"?p.substr(0,p.length-1):p;px.level=p;h=desc||f.substr(0,1)=="+"?f.substr(1):f;if(filter){y=store.sortTiddlers(store.filterTiddlers(filter),f)}else{y=store.getTiddlers(h);if(desc)y.reverse()}for(v=0;v<y.length;v++){g=y[v];b=g.tags?g.tags:[];if(!(keep.contains(g.title)||b.containsAny(keep))&&(ex.contains(g.title)||b.containsAny(ex)))continue;ti=g.title;u=g[h]||g.fields[h];if(!u.getMonth)u=Date.convertFromYYYYMMDDHHMM(u);S=u.getYear()+1900;x=u.getMonth()+1;T=u.getDate()+1;N=S==year;C=x==month;k=T==day;L=!year&&!month&&!day;M=year&&!month&&!day;P=year&&month&&!day;H=year&&month&&day;A=!year&&month&&!day;O=!year&&!month&&day;D=year&&!month&&day;_=!year&&month&&day;if((!d||d&&u>=d)&&(!a||a&&u<=a)&&(L||M&&N||A&&C||O&&k||P&&N&&C||_&&C&&k||D&&N&&k||H&&N&&C&&k)){m=last(last(last(w,S),x),T);m.push({title:ti,date:u,tags:g.tags})}if(q){e.each(b,function(e,t){if(keep.contains(t)||!ex.contains(t)&&!px.hideTags.contains(t))q.pushUnique(t)})}}px["yrs"]=w;t=createTiddlyElement(t,"div",null,"slidr");e('<div class="slidr_clear"/>').insertAfter(e(t));e(t).data("params",px);if(B.noDblClick)e(t).dblclick(function(){return false});what=day?"day":month?"month":year?"year":"";if(q)q.sort(function(e,t){return e.toLowerCase().localeCompare(t.toLowerCase())});this.renderSliders(t,what,year,month,day,q)},renderSliders:function(t,n,r,i,s,o){var u,a,f=[],l,c=config.macros.slidr,h=[],p=[],d=[],v=e(t).closest(".slidr").data("params"),m=v.yrs,g=function(e,t,n,r,i){f.push({title:e,year:t,month:n,day:r,tids:i})};if(o){e.each(o,function(e,t){l=c.getTids(v,m,v.level?true:false,t);u=typeof l=="object";if(u&&l.length||l>0)g(t,null,null,null,l)})}else{e.each(m,function(t,o){yK=o[0];yV=o[1];if(!n||n=="year"){if(!n||!r||yK==r)g(c.formatDate(yK,"11","11",v.fmtYear),yK,isNaN(i)?null:i,isNaN(s)?null:s,c.getTids(v,yV,v.level=="year"?false:true))}else{e.each(yV,function(t,o){mK=o[0];mV=o[1];if(n=="month"){if((!i||mK==i)&&(!r||yK==r)){g(c.formatDate(yK,mK,"11",v.fmtMonth),yK,mK,isNaN(s)?null:s,c.getTids(v,mV,v.level=="month"?false:true))}}else{e.each(mV,function(e,t){dK=t[0];dV=t[1];if((!s||mK==s)&&(!r||yK==r)&&(!i||mK==i)){g(c.formatDate(yK,mK,dK,v.fmtDay),yK,mK,dK,c.getTids(v,dV))}})}})}})}for(a=0;a<f.length;a++){this.createSlider(t,f[a],n,v.open)}},createSlider:function(t,n,r,i){var s=!n.year;def=config.macros.slidr.defaults,count=parseInt(n.tids)?n.tids:n.tids.length,$s=e(createTiddlyElement(t,"a",null,"button slidr_button",null,{title:def.txtSliderTooltip.format([n.title]),year:n.year,month:n.month,day:n.day})).data("tiddlers",n.tids).click(this.click);if(s)$s.attr("tag",n.title);wikify(def.fmtSlider.format([(s?def.fmtTagTitle:"%0").format([n.title]),def.fmtCount.format([count,count>1?def.lblTiddler2:def.lblTiddler1])]),$s[0]);if(i)$s.click()},click:function(t){var n="",r,i,s,o=config.macros.slidr,u=t||window.event,a=e(resolveTarget(u)).closest(".slidr_button"),f=a.attr("tag"),l=a.closest(".slidr"),c=l.data("params"),h=a.next(),p=parseInt(a.attr("year")),d=parseInt(a.attr("month")),v=parseInt(a.attr("day")),m=v?"tids":d?"day":p?"month":"",g=a.data("tiddlers"),y=typeof g=="object",b=a.text(),w=u.ctrlKey,E=w&&(!a.is(".slidr_open")||!a.parent().is(".slidr")&&e(".slidr_button",l).not(".slidr_open").length>0);if(h.hasClass("slidr_list")){if(h.is(":hidden")){h.slideDown();a.addClass("slidr_open")}else if(!E){h.find(".slidr_list").slideUp().prev().removeClass("slidr_open");h.slideUp();a.removeClass("slidr_open")}}else{s=e('<div class="slidr_list'+(y?" slidr_tids":"")+'"/>').insertAfter(a)[0];if(y){e.each(g,function(e,t){var r=new Date(t.date),i="";t.tags.map(function(e){if(f!=e&&!c.ex.contains(e)&&!c.hideTags.contains(e))i+=o.defaults.fmtTag.format([e])});n+=c.fmtTiddler.format([t.title,r.formatString(c.fmtDateUser?c.fmtDateUser:v&&c.level=="day"?c.fmtDate:c.fmtDateFull),i])});wikify(n.substr(0,1)=="\n"?n.substr(1):n,s)}else{o.renderSliders(s,m,p,d,v)}e(s).slideDown();a.addClass("slidr_open")}if(w){i=c.open=="true";c.open=E;e((!E?" > ":"")+".slidr_button",l).each(function(t){var n=e(this),r=n.hasClass("slidr_open");if(E&&!r||!E&&r){n.click()}});c.open=i?"true":"false"}},getTids:function(t,n,r,i){var s=0,o=[],u=function(t,n){if(typeof n[0]=="number"){e.each(n[1],function(e,t){u(e,t)})}else{if(!i||n.tags.contains(i)){s++;o.push(n)}}};e.each(n,function(e,t){u(e,t)});return!r||s<t.min?o:s},formatDate:function(e,t,n,r){return Date.convertFromYYYYMMDDHHMM(String.zeroPad(e,4)+String.zeroPad(t,2)+String.zeroPad(n,2)+"1111").formatString(r)},isValidDate:function(e){var t=/(\d{4})(\d{2})(\d{2})$/.exec(e),n=function(e,t,n){return t>0&&t<13&&e>0&&e<32768&&n>0&&n<=(new Date(e,t,0)).getDate()};return t&&n(t[1],t[2],t[3])}};config.shadowTiddlers["StyleSheetSlidr"]="/*{{{*/\n%0\n/*}}}*/".format([store.getTiddlerText("SlidrPlugin##CSS")]);store.addNotification("StyleSheetSlidr",refreshStyles)})(jQuery)
/*
!CSS
.slidr{
    clear:left;
    width:90%;
}
.slidr_button,
.viewer .slidr_button{
    width:100%;
    display:block;
    cursor:pointer;
    margin:0;
    padding:0;
    clear:left;
}
.viewer .slidr_button .button{
    border-color:transparent;
    background:transparent;
}
.viewer .slidr_button:hover .button{
    color:[[ColorPalette::SecondaryPale]];
    background:[[ColorPalette::SecondaryDark]];
}
.viewer .slidr_button .button:hover{
    color:[[ColorPalette::Background]];
    background:[[ColorPalette::SecondaryDark]];
}
.viewer .slidr_title{
    padding-left:7px;
}
.viewer .slidr_list .slidr_title{
    padding-left:14px;
}
.viewer .slidr_list .slidr_list .slidr_title{
    padding-left:21px;
}
.slidr_entry:hover,
.slidr_list .slidr_list .slidr_open{
    background:[[ColorPalette::TertiaryPale]];
}
.slidr_open{
    background:[[ColorPalette::SecondaryLight]];
}
.slidr_list .slidr_open{
    background:[[ColorPalette::SecondaryPale]];
}
.slidr_list{
    width:100%;
    display:block;
    display:none;
}
.slidr_list ul,
.slidr_list li{
    margin:0;
    padding:0;
    list-style-type:none;
}
.slidr_clear{
    height:1px;
    clear:both;
}
.slidr_tid,
.slidr_tags,
.slidr_date,
.slidr_entry{
    float:left;
    display:block;
}
.slidr_entry{
    width:100%;
    padding:1px;
}
.slidr_tid{
    margin-left:7px;
}
.slidr_tags{
    float:right;
    text-align:right;
    min-width:300px;
    max-width:50%;
    margin-left:7px;
}
.viewer .slidr_tags .button {
    margin-right:0;
    display:inline-block;
}
.slidr_count{
    float:right;
    margin:0 7px 0 2em;
}
.slidr_tids {
    padding:1px 0;
}
!END
*/
// %/
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
   xmlns:xlink="http://www.w3.org/1999/xlink"
   version="1.1"
   width="14pt"
   height="14pt"
   viewBox="918 510 14 14"
   id="svg3070">
  <metadata
     id="metadata3089">
    <rdf:RDF>
      <cc:Work
         rdf:about="">
        <dc:format>image/svg+xml</dc:format>
        <dc:type
           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
        <dc:title></dc:title>
      </cc:Work>
    </rdf:RDF>
  </metadata>
  <defs
     id="defs3072">
    <radialGradient
       cx="0"
       cy="0"
       r="1"
       id="Gradient"
       gradientUnits="userSpaceOnUse">
      <stop
         id="stop3075"
         style="stop-color:#ffffff;stop-opacity:1"
         offset="0" />
      <stop
         id="stop3077"
         style="stop-color:#2b2b2b;stop-opacity:1"
         offset="1" />
    </radialGradient>
    <radialGradient
       id="Obj_Gradient"
       xlink:href="#Gradient"
       gradientTransform="matrix(11.473944,0,0,11.473944,922.3752,513.7837)" />
  </defs>
  <g
     id="g3080"
     style="fill:none;stroke:none">
    <g
       id="g3082">
      <path
         d="m 929.6952,512.9018 c -2.5384,-2.53843 -6.654,-2.53843 -9.1924,0 -2.5384,2.5384 -2.5384,6.654 0,9.19238 2.5384,2.53839 6.654,2.53839 9.1924,0 2.5384,-2.53838 2.5384,-6.65398 0,-9.19238 m -4.5962,2.8407 2.07733,-2.07734 1.75547,1.75549 -2.0773,2.07735 2.0773,2.07732 -1.75547,1.75548 -2.07733,-2.07732 -2.07733,2.07732 -1.75547,-1.75548 2.0773,-2.07732 -2.0773,-2.07735 1.75547,-1.75549 z"
         id="path3084"
         style="fill:url(#Obj_Gradient)" />
      <path
         d="m 927.61447,515.38354 a 4.51205,4.2590378 0 1 1 -9.0241,0 4.51205,4.2590378 0 1 1 9.0241,0 z"
         transform="matrix(1.0218069,0,0,1.0462046,-18.063694,-21.648443)"
         id="path2394"
         style="fill:#000000;fill-opacity:0;fill-rule:evenodd;stroke:none;stroke-width:5;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
    </g>
  </g>
</svg>
|details|k
|''URL''|http://www.TiddlyTools.com/#TextAreaPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-10-28|
|''Version''|2.3.0|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#TextAreaPlugin|
!Summary
Adds Find/Again keyboard search, autosize, and 'stretch bar' resize for textarea controls
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TextAreaPluginInfo]]
:see the author's info tiddler for examples
!Details
When installed, this plugin automatically adds Find/Again keyboard search and autosize ('fit to content') handling to the tiddler editor's text area input.  It also provides macros that can add 'stretch bars' that allow you to interactively resize to the text area as well as other rendered elements, including: tiddlers, iframes, listboxes, sliders, tabs, and general 'CSS wrapper' containing elements.

When in the tiddler editor's text area you can use keyboard shortcuts ''find text'' and ''find again'' or "search-and-replace", e.g.:
;~CTRL-F
:to find/select the desired text
;''~CTRL-C''
:to paste in the replacement
;''~CTRL-G''
:to find/select the next matching text
The ''autosize'' toolbar command is automatically added to the default shadow EditTemplate, and toggles the tiddler editor textarea height between default fixed-height and "fit the current contents".  When autosized, the text area height will change automatically to match the current number of lines contained in the tiddler source definition.

If desired, you can manually ''add the 'autosizeEditor' toolbar command to the editor toolbar:''
{{{
// add command keyword to end of {{{EditToolbar}}} slice definition in [[ToolbarCommands]]:
|EditToolbar| ... autosizeEditor|
}}}
Alternatively, you can ''enable autosize by default:'' by invoking the 'autosizeEditor' macro, directly from the EditTemplate:
{{{
// add to the end of the EditTemplate:
<span macro='autosizeEditor'></span>
}}}

To ''add a stretch bar below the editor text area:'', invoke the 'resizeEditor' macro, directly from the EditTemplate:
{{{
// add to the end of the EditTemplate 
<span macro='resizeEditor'></span>
}}}

To ''add a stretch bar to another element type'', embed the appropriate {{{<<resize...>>}}} macro in your tiddler content, immediately following the desired element (or at the end of the tiddler):
{{{
<<resizeTiddler>> - add a stretch bar to the containing tiddler
<<resizeFrame>> - add a stretch bar to all IFRAMEs in the current tiddler
<<resizeListbox>> - add a stretch bar to all listboxes in the current tiddler
<<resizeHere>> - add a stretch bar to the current containing element (i.e., a slider or tab panel)
}}}
>{{smaller{Note: you can also invoke these macros directly from the ViewTemplate or EditTemplate:
{{{
<span macro='resizeTiddler'></span> or
<span macro='resizeFrame'></span> or
<span macro='resizeListbox'></span> or
}}}
}}}
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
|details|k
|''URL''|http://www.TiddlyTools.com/#TwitterTabs|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-18|
|''Version''|2.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#TwitterTabs|
!Summary
Find recent tweets by keyword or username and show results in tabs
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TwitterTabs]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#TwitterTabs
|details|k
|''URL''|http://www.TiddlyTools.com/#ShowDocumentInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-28|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ShowDocumentInfo|
!Summary
show TiddlyWiki version, document timestamp, and plugin info
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ShowDocumentInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ShowDocumentInfo
|details|k
|''URL''|http://www.giffmex.org/twfortherestofus.html|
|''Author''|[[David Gifford|Dave Gifford]]|
|''Date''|2007-03-07|
! Summary
A simple, entry-level tutorial for non-programmers and comprehensive walkthrough gently introducing you to the world of TiddlyWiki.
! Preview
[img[http://img.tiddlyspace.com/TiddlyWikiForTheRestOfUs_by_Giffmex][http://www.giffmex.org/twfortherestofus.html]]
There are a lot of interesting people using ~TiddlySpace that you might like to keep track of and interact with. There are a number of ways of doing this.

If you see a number in the speech bubble in one of your tiddlers, it means that someone is writing about the same thing as you. You can find out what they're saying by clicking on it. Likewise, if you see something interesting in someone else's space, you can respond to it and write up your own thoughts on the subject by clicking "Reply to this tiddler".

Additionally, if you find anyone interesting, or you find an interesting looking space and you'd like to know when it's changed, you can "follow" that space. To do this, simply create a tiddler with the title: {{{@space-name}}} and tag it {{{follow}}}. If you want, you can store some notes about that space in the body of the tiddler.

If you then want to know what happening, simply [[include|How do I include/exclude spaces?]]@docs the @tivity space and then visit your activity stream at [[/activity|/activity]], or just visit the @tapas space directly.

!Not sure who to follow?
Here's a few suggestions:
* @fnd
* @cdent
* @pmario
* @bengillies
* @dickon
Osmosoft is a small team of developers at [[BT|http://bt.com]] who primarily make web based collaboration tools developed for BT, its customers and independent organisations. Osmosoft has long been a professional framework to drive all of TiddlyWiki, TiddlyWeb, and TiddlySpace.
/*{{{*/
body {
	font-size: 1em;
	font-family: helvetica, arial, sans-serif;
	background-color: #fff;
	color: [[ColorPalette::Foreground]];
}

body ul { margin: 0; }

#popup {
	background-color: [[ColorPalette::TertiaryPale]];
}

#popup.confirmationPopup, .followList {
	font-size: 0.8em;
	padding: 1em;
	border: solid 1px [[ColorPalette::SecondaryMid]];
	background-color: [[ColorPalette::SecondaryPale]];
}

.followList .listTitle {
	text-decoration: underline;
}

#popup .followTiddlersList a {
	display: inline;
	padding: 0;
}

#popup li a {
	color: [[ColorPalette::PrimaryMid]];
	font-weight: bold;
}

#popup li a:hover {
	color: [[ColorPalette::PrimaryPale]];
	background: [[ColorPalette::PrimaryMid]];
}

#popup li.listTitle {
	border-bottom: 1px solid #000;
	font-weight: bold;
	margin-bottom: 10px;
}

#popup.followList {
	margin-left: 50px;
	margin-top: -30px;
}

.followTiddlersList .label {
	display: block;
	left: 10px;
	top: 0px;
	line-height: 16px;
	position: relative;
}

#popup .followTiddlersList .siteIcon{
	height: auto;
}

#popup .followTiddlersList li{
	clear: both;
	display: block;
	height: 48px;
	margin-bottom: 8px;
	position: relative;
}

#popup .followTiddlersList a{
	display: inline;
}

#displayArea {
	margin: 0;
	top: 0px;
	left: 0px;
	width: 100%;
	position: relative;
}

.revisionCloak {
	position: absolute;
	position: fixed !important;
	height: 100%;
	width: 100%;
	top: 0;
	left: 0;
	border: 0;
	margin: 0;
	padding: 0;
	opacity: 0.5;
	filter: alpha(opacity=50);
	background-color: #000;
}

/* *** Header *** */
.header {
	position: relative;
	background-color: [[ColorPalette::PrimaryMid]];
	_width: 100%; /* ie 6 demands */
}

.headerForeground {
	background-color: [[ColorPalette::PrimaryMid]];
	float: left;
	margin: 24px 16px 0px 72px;
	padding: 0;
	position: relative;
	top: 0;
	_width: 70%; /*ie6: needed for the background to actually be transparent*/
	_background-color: transparent; /*ie6: needed to show the search box*/
}

.clearFloat {
	clear: both;
}

#contentWrapper {
	position: relative;
	padding-top: 1px;
	top: -1px;
}

#tiddlerDisplay {
	_position: relative; /* ie 6*/
}

.siteTitle {
	clear: both;
	display: block;
	font-size: 32px;
	font-weight: bold;
	line-height: 32px;
}

.siteSubtitle {
	display: block;
	font-size: 14px;
	height: 16px;
	margin-bottom: 8px;
}

#sidebarSearch {
	padding: 0;
	position: absolute;
	right: 80px;
	top: 8px;
	width: 176px;
}

#sidebarSearch .txtOptionInput {
	width: 100%;
	margin-top: 5px;
	_color: #bbb; /* ie6 danger */
}

#sidebarSearch .txtOptionInput:focus {
	color: #000;
}

#sidebarSearch .searchButton {
	display: none;
}

/* *** Menu Bar *** */

#mainMenu {
	position: static;
	text-align: left;
	margin-left: 72px;
	float: left;
	width: auto;
	padding: 0;
	font-size: 1em;
	line-height: normal;
}

#mainMenu a {
	color: #fff;
	padding: 8px;
	font-size: 0.9em;
	margin-right: 16px;
}

#mainMenu a:hover {
	background-color: [[ColorPalette::PrimaryMid]];
	color: [[ColorPalette::Background]]
}

#sidebarOptions {
	margin-right: 72px;
	float: right;
	font-size: 1.1em;
	line-height: 1.6em;
	min-height: 1em;
	padding-top: 0;
}

#sidebarOptions a {
	margin-right: 8px;
}

.confirmationPopup .button,
#sidebarOptions .button {
	cursor: pointer;
	line-height: 1.4em;
	text-align: center;
	margin-right: 8px;
	margin-left:-2px;
}

.confirmationPopup .button {
	font-size: 0.9em;
	padding: 2px;
}

#sidebarOptions .button {
	font-size: 0.7em;
	float: left;
	width: 80px;
	padding: 0px;
        color: #fff;
}

.confirmationPopup a.button,
#sidebarOptions a {
	border: none;
	margin: 0 0.2em;
	padding: 0.6em 0.25em;
	display: inline;
	color: #666;
}

.confirmationPopup a.button:hover,
#sidebarOptions a:hover {
	color: #000;
}

.confirmationPopup a.button:active,
#sidebarOptions a:active {
	border: solid 1px [[ColorPalette::PrimaryMid]];
	background-color: #fff;
	background: -webkit-gradient( linear, left bottom, left top, color-stop(0.1,rgb(200,200,200)), color-stop(1, rgb(100,100,100)));
	background: -moz-linear-gradient(center bottom , rgb(200,200,200) 10%,rgb(100,100,100) 100%) repeat scroll 0 0 transparent;
}
/* *** Sidebar *** */

#sidebar .wizard table {
	margin: 0px;
}

.tabContents .listTitle:first-child {
	margin-top: 0px;
}

#menuBar {
	background: [[ColorPalette::PrimaryLight]];
	left: 0;
	right: 0;
	position: relative;
	margin: 0;
	padding: 0.5em 0 0.5em 0;
	min-height: 1em;
	overflow: hidden;
	_width: 100%; /* for ie 6 */
}

#sidebarOptions a.button:hover {
	color: [[ColorPalette::PrimaryPale]];
    background: [[ColorPalette::PrimaryMid]];
}

#tiddlerDisplay, #searchResults {
	margin: 16px 448px 0 72px;
}

#sidebarTabs {
	position: absolute;
	right: 72px;
	width: 352px;
	top: 0;
}

#sidebarTabs .tabsetWrapper .tabset {
	width: 87px;
	border-top: 1px solid [[ColorPalette::PrimaryPale]];
	border-left: 1px solid [[ColorPalette::PrimaryPale]];
	border-bottom: 1px solid [[ColorPalette::PrimaryPale]];
	height: auto;
	float: left;
	word-wrap: break-word;
	top: 0;
	padding: 0;
}

#sidebarTabs .tabsetWrapper .tabContents {
	background-color: [[ColorPalette::PrimaryPale]];
	border: 3px solid [[ColorPalette::PrimaryMid]];
	width: 242px;
	_width: 238px;
	left: -3px;
	_left: -5px;
	position: relative;
	min-height: 34em;
	padding: 8px;
	font-size: 0.8em;
}

/* ---- Side style --- */

#sidebarTabs .tabsetWrapper .tabset .tab {
	font-size: 0.9em;
	padding: 0.7em 8px 0.5em;
	color: #fff;
	background: [[ColorPalette::PrimaryLight]];
	border: none;
	line-height: 16px;
	position: relative;
	display: block;
	margin: 0;
}

#sidebarTabs .tabsetWrapper .tabset .tabSelected {
	color: [[ColorPalette::PrimaryMid]];
	background: [[ColorPalette::PrimaryPale]];
	border-top: 3px solid [[ColorPalette::PrimaryMid]];
	border-bottom: 3px solid [[ColorPalette::PrimaryMid]];
	border-left: 3px solid [[ColorPalette::PrimaryMid]];
	z-index: 10;
	margin-top: -1px;
	font-weight: bold;
}

#sidebarTabs .tabContents li {
	border: none;
	margin-left: 0;
	word-wrap: break-word;
}

.tabContents .timeline {
	background: [[ColorPalette::PrimaryPale]];
	margin-bottom: 8px;
}

#sidebarTabs .timeline li.listTitle {
	color: #132E43;
	margin-left: 8px 0;
	padding: 0.3em 0.11em;
	font-size: 1em;
	border-bottom: none;
}

#sidebarTabs .tabContents li a {
	display: block;
	text-align: left;
	margin: 0 0 1px 0;
	padding: 0.3em 1em;
	background: [[ColorPalette::PrimaryPale]];
}

#sidebarTabs .tabsetWrapper .tabset a:hover,
#sidebarTabs .tabContents li a:hover {
	color: [[ColorPalette::PrimaryPale]];
	background: [[ColorPalette::PrimaryMid]];
}

/* Activity Stream */
#sidebarTabs .tabContents .activityStream .feedItem a {
	display: inline-block;
	padding: 0;
	background: none;
}

/* ---- Tagging box --- */
.tagInfo {
	border: 1px solid #cccccc;
	padding: 10px 15px;
	-moz-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
	box-shadow: 0 2px 2px rgba(0,0,0,0.2);
	color: [[ColorPalette::TertiaryMid]];
	background: -moz-linear-gradient(100% 100% 90deg, #f4f4f4, #e5e5e5);
	background: -webkit-gradient(linear, left top, right top, from(#e5e5e5), to(#f4f4f4));
	margin-top: 1em;
	font-size: 13px;
	margin: 0 0 0 56px;
}

.tagInfo ul {
	list-style: none;
	padding-left: 2.2em;
}

.tagInfo ul li {
	display: inline;
}

.tagInfo ul li.listTitle,
.tagInfo .tagging ul li.listTitle {
	color: [[ColorPalette::PrimaryMid]];
	font-size: 13px;
}

.tagInfo ul li a {
	border: none;
}

.tagInfo .tagging ul li {
	float: none;
	display: inline-block;
}

.tagInfo .tagging {
	padding: 0;
}

.viewRevision .toolbar {
	right: 48px;
	top: 8px;
}

.viewRevision .toolbar svg {
	width: 32px;
	height: 32px;
}

/* --- IE hacks from lattice --- */

/* ie hacks */
* html #menuBar {
	margin-bottom: 8px;
}
.toolbar .svgIconText {
	*display: inline;
}

div.tiddler .toolbar a {
	cursor: pointer;
	float: left\9;
	display: inline\9;
}

* html .toolbar {
	right: 8px;
}
* html .followButton a {
	margin-top: 0px;
	margin-right: 8px;
}
* html #tiddlerDisplay {
	margin-top: 0px;
}

/* for printing purposes */
@media print {
	#mainMenu,
	#sidebar,
	#messageArea,
	.toolbar,
	#backstageButton,
	#backstageArea,
	#sidebarTabs,
	#sidebarSearch .txtOptionInput,
	#sidebarOptions {
		display: none !important;
	}
	#displayArea {
		margin: 1em 1em 0em;
	}
	noscript {
		display:none; /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
	}
	#tiddlerDisplay {
		margin: 16px 16px;
	}
}

@media all and (max-width: 960px){
	#tiddlerDisplay,
	#searchResults {
		margin: 16px 366px 0 16px;
	}

	#mainMenu {
		margin-left: 16px;
	}

	.headerForeground {
		margin-left: 16px;
	}

	#sidebarSearch {
		right: 16px;
	}

	#sidebarOptions {
		margin-right: 16px;
	}

	#sidebarTabs {
		right: 16px;
		width: 326px;
	}

	#sidebarTabs .tabsetWrapper .tabset {
		font-size: 0.9em;
		width: 77px;
	}

	#sidebarTabs .tabsetWrapper .tabContents {
		width: 226px;
		_width: 222px;
	}

	#sidebarTabs .tabContents li a {
		font-size: 0.9em;
	}
}
/*}}}*/
[[StyleSheetTiddler]]
While [[TiddlyWiki.org|http://TiddlyWiki.org]] gives you plenty information on TiddlyWiki features and its internal workings, as well providing ~FAQs and troubleshooting, the ''Customize'' space is all about the things you can do with TiddlyWiki once you are hooked, providing you loads of references around TiddlyWiki in terms of how to use and extend it.

This space was developped by Tobias Beer and provides curated listings of things essential for exploring the TiddlyVerse. What this means is that the tidbits that this reference is made up of do not come automatically from other sources. In other words, it is contributors and authors like you and I who maintain it. Care to contribute?
!Under The Hood
Now, how does the Customize space work?
!!!1 » Categories
For starters, it's got main categories...
;Plugins
:of differnt types, e.g. plugins, macros, transclusions, scripts (, perhaps fet, too?)
;Themes
:for both TiddlyWiki and TiddlySpace, as well as in the sense of "templates", i.e. those containing plugins
;Apps
:meaning any application that leverages tiddlers, not just the little tools, but also TiddlyWeb & TiddlySpace, GieWiki, GTD flavours, Twine, etc...
;References
:for blog articles, how-tos, faq, tutorials, implementations, etc...
;Authors
:the contributors that actually provided all that stuff
;Featured
:a category for you know what
!!!2 » Sub Categories
Then there are Sub Categories to the first four of the above which subdivide the big list of all things under a category into (hopefully) meaningful compartments.
!!!3 » Entries
Eventually, there are entries, e.g. plugins which are tagged both Plugin as well as with the applicable Plugin Category / Categories... as well as with the Author.
!!!4 » Plugins & Includes
Some features included / implemented in this space...

{{list{
;http://icontabs.tiddlyspace.com
:IconTabsPlugin for the main sections
;http://listfiltrplugin.tiddlyspace.com
:Tabs use ListFiltrPlugin to allow a visitor to easily filter the corresponding list quickly
;http://getplugin.tiddlyspace.com
:renders those Category Listings that are filterable via ListFiltrPlugin
:and also Entry Icons to quickly show what type of entry or category you're looking at
;http://untaggedplugin.tiddlyspace.com
:to hide empty tags and tagging boxes
;http://singlepagehistoryplugin.tiddlyspace.com
:a new SinglePageHistoryPlugin
:us the history buttons in SideBarOptions (top-right)
;http://discuss.tiddlyspace.com
:the all new DiscussPlugin makes [[Disqus|http://disqus.com]] directly available within your TiddlyWiki powered TiddlySpace
;http://tagsearch.tiddlyspot.com
:for easy tagging and tag based navigation have a look at tag button {{x{<<toolbar tagSearch>>}}} in the tiddler toolbar
;http://coloredlinks.tiddlyspot.com
:ColoredLinksPlugin used to color category tiddlers and those directly tagging to them
;http://linkify.tiddlyspot.com
:LinkifyPlugin to automagically link words to the corresponding tiddlers
:it only seems "too much"
:* I find it rather cool to find related stuff just by means of text
:* if a reference is wrong or uttler pointless, it should be changed, of course
;http://img.tiddlyspace.com
:an external space where all preview images for entres are stored so that they're not all loaded with the space
;http://simplesearchplugin.tiddlyspace.com
:of course
;TiddlySpaceScan — from @system-plugins
:to fetch information from [[plugin|TiddlySpace Plugin Scan]] and [[theme|TiddlySpace Theme Scan]] spaces on TiddlySpace
:uses TsScanSanitize to make the entries display just text.
}}}<<listfiltr>>@Customize was first announced on [[2013-08-30 in the TiddlyWiki discussion groups|https://groups.google.com/forum/?fromgroups=#!topic/tiddlywiki/PLMyfwLJ65k]].
/***
|''Name''|UntaggedPlugin|
|''Author''|[[Tobias Beer|http://tobibeer.tiddlyspace.com]]|
|''Description''|provides an """<<untagged>>""" macro<br>adds an untagged button to the tags tab<br>allows to hide (empty) tags / tagging|
|''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/UntaggedPlugin.min.js|
|''Documentation''|http://untagged.tiddlyspace.com|
|''Version''|1.0.8 (2013-10-08)|
|''~CoreVersion''|2.5.2|
|''License''|Creative Commons 3.0|
<<option chkShowUntagged>> chkShowUntagged
<<option chkShowUntaggedShadows>> chkShowUntaggedShadows
<<option chkHideEmptyTags>> chkHideEmptyTags
<<option chkHideEmptyTagging>> chkHideEmptyTagging
***/
// /%
(function(e){var t=config.options;["chkShowUntagged","chkShowUntaggedShadows-","chkHideEmptyTags","chkHideEmptyTagging"].map(function(e){e=e.split("-");if(undefined==t[e[0]])t[e[0]]=!e[1]});merge(config.views.wikified.tag,{untaggedButton:"untagged (%0)",untaggedTooltip:"Show untagged tiddlers...",untaggedListTitle:"Untagged tiddlers:",untaggedNone:"There are no untagged tiddlers...",openUntagged:"Open '%0'"});var n=config.views.wikified.tag;var r=config.macros.untagged={selectorTags:".tagged, .tidTags, .infoTags",selectorTagging:".tagging, .infoTagging",noTagsWhenTagged:"no-tags",noTaggingWhenTagged:"no-tagging",untaggedTiddler:"untagged",hideTags:"excludeLists excludeMissing excludePublisher excludeSearch no-tags no-tagging noLinkify",hideTagsReadOnly:"systemConfig",handler:function(e,t,n,i,s,o){r.refresh(e,s)},refresh:function(i,s){var o,u=[],a,f=s.parseParams("anon",null,true),l=f[0]["anon"]||[],c=l.contains("list"),h=e(i).attr("macroName")=="untagged",p=e(i),d=h?p.parent()[0]:i;if(h)p.hide();store.getTiddlers("title").map(function(e){if(!t.chkShowUntaggedShadows&&config.shadowTiddlers[e.title])return true;if(!e.tags||!e.tags.length)u.push(e)});o=e(c?createTiddlyElement(d,"ul"):createTiddlyButton(d,n.untaggedButton.format([u.length]),n.untaggedTooltip,r.showList,"tiddlyLink untagged")).data("tids",u).attr({tiddlyLink:r.untaggedTiddler?r.untaggedTiddler:"",refresh:"macro",macroName:"untagged",params:s});if(c)r.showList(null,o[0]);else if(l.contains("alltags")){o.appendTo(e("<li/>").appendTo(o.prev()))}if(h){o.insertAfter(p);p.remove()}},showList:function(i,s){var o,u=i||window.event,a=e(s?s:this).data("tids"),f=s?s:Popup.create(this),l=e(f);l.addClass("taggedTiddlerList untaggedTiddlerList");if(a.length>0){if(s){createTiddlyElement(f,"li",null,"listTitle",n.untaggedListTitle)}else if(!t.chkSinglePageMode){createTiddlyButton(createTiddlyElement(f,"li"),n.openAllText.format([n.untaggedButton]),n.untaggedTooltip,r.openAll);createTiddlyElement(createTiddlyElement(f,"li",null,"listBreak"),"div")}a.map(function(e){createTiddlyLink(createTiddlyElement(f,"li"),e.title,true)});if(r.untaggedTiddler&&!s){createTiddlyElement(createTiddlyElement(f,"li",null,"listBreak"),"div");o=createTiddlyLink(createTiddlyElement(f,"li"),r.untaggedTiddler,false);createTiddlyText(o,n.openUntagged.format([r.untaggedTiddler]))}}else{createTiddlyElement(f,"li",null,"disabled",n.untaggedNone)}l.data("tids",a);if(!s){Popup.show();u.cancelBubble=true;if(u.stopPropagation)u.stopPropagation();return false}},openAll:function(){story.displayTiddlers(this,e(this).closest(".taggedTiddlerList").data("tids"));return false},hide:function(n,i){var s=r.hideTags;hideR=r.hideTagsReadOnly;if(s||hideR){s=s.readBracketedList();hideR=hideR.readBracketedList();e(".button, .tiddlyLink",n).each(function(){var t=e(this),n=t.attr("tag");if(s.contains(n)||readOnly&&hideR.contains(n)){t.hide();t=t.parent();if(t.is("li")&&t.children().length<2)t.hide()}});if(t["chkHideEmpty"+i]&&!e(".button, .tiddlyLink",n).filter(":visible").length){n.remove()}}}};config.shadowTiddlers.StyleSheetUntagged="/*{{{*/\n"+".untagged {color:[[ColorPalette::TertiaryDark]];}\n"+"/*}}}*/";store.addNotification("StyleSheetUntagged",refreshStyles);config.macros.allTags.handlerUNTAGGED=config.macros.allTags.handler;config.macros.allTags.handler=function(n,i,s){config.macros.allTags.handlerUNTAGGED.apply(this,arguments);r.hide(e(n).last());if(t.chkShowUntagged){wikify("<<untagged alltags>>",n)}};config.macros.tags.handlerUNTAGGED=config.macros.tags.handler;config.macros.tags.handler=function(t,n,i,s,o,u){config.macros.tags.handlerUNTAGGED.apply(this,arguments);r.hide(e(t).last(),"Tags")};Story.prototype.displayTiddlerUNTAGGED=Story.prototype.displayTiddler;Story.prototype.displayTiddler=function(n,i,s,o,u,a,f,l){var c=Story.prototype.displayTiddlerUNTAGGED.apply(this,arguments),h=i instanceof Tiddler?i.title:i,p=store.getTiddler(h);if(p&&p.tags&&p.tags.containsAny(r.noTagsWhenTagged.readBracketedList())||t.chkHideEmptyTags&&e(r.selectorTags,c).find("a:visible").length==0){e(r.selectorTags,c).hide()}if(p&&p.tags&&p.tags.containsAny(r.noTaggingWhenTagged.readBracketedList())||t.chkHideEmptyTagging&&e(r.selectorTagging,c).find("a:visible").length==0){e(r.selectorTagging,c).hide()}return c}})(jQuery)
// %/
|details|k
|''URL''|http://white-fixed.tiddlyspace.com|
|''Author''|Tobias Beer|
|''Version''|0.8.6|
|''Released''|2013-11-06|
|''Requires''|2.6.2|
|''Source''|http://white-fixed.tiddlyspace.com|
! Summary
A theme mimicking http://five.tiddlywiki.com with a header and sidebar with scrolling being restricted to the displayArea only.
! Examples
; [[theme space|http://white-fixed.tiddlyspace.com/#SiteInfo%20StyleSheet]]
: the theme space provides a working demo
! Preview
[img[http://img.tiddlyspace.com/White-Fixed-Theme][http://white-fixed.tiddlyspace.com/#SiteInfo%20StyleSheet]]
! Details
This theme is a variant of [[White-Theme]] providing the basic look and feel of TiddlyWiki5 while running on TiddlyWiki version <= <<version>>. To notice the difference to [[White-Theme]], open a few tiddlers until the display starts scrolling.

It comes with a mostly white appearance on a slightly silverish page background with mostly blue or grey highlights for links, tables, tabs, etc... and uses box-shadows and gradients to provide a more modern appeal.

The SiteTitle and SiteSubtitle as well as the search box are put in the sidebar leaving more room to the main content area.
!Installation
To get started with [[White-Fixed-Theme]]...
#simply include the @White-Fixed space
#removing the @system-theme space
#moving any custom styles from StyleSheet into StyleSheetSpace
<<tag Navigation Plugins>>enhancing the ways of navigating a TiddlyWiki via menus, dropdowns, trees, bread crumbs, etc...
<<get ##SUMMARY plain>>/%
!SUMMARY
<<tag "TiddlyWiki Templates" Themes>>that are too complex to be put into a single theme tiddler for which certain plugins are essential may come as full blown templates for you to start with...
!END%/
<html><iframe class="disqus" src="/$1"></html>
|details|k
|''URL''|http://themes.tiddlywiki.com/mineraltheme.html|
! Summary
A fantastic theme from [[Bauwe Bijl]] with a centered layout, nice buttons with blue and red background gradients, silverish tiddlers on a white background, a haorizontal MainMenu and a powerful ''Toolbox''.
! Preview
[img[[img[http://img.tiddlyspace.com/Mineral][http://themes.tiddlywiki.com/mineraltheme.html]]
|details|k
|''URL''|http://mptw.tiddlyspot.com/#SaveCloseTiddlerPlugin|
|''Author''|[[Simon Baird]]|
|''Released''|2013-06-17|
|''Version''|3.0a|
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Simon Baird]]|
|''Source''|http://mptw.tiddlyspot.com/#SaveCloseTiddlerPlugin|
!Summary
Provides two extra toolbar commands, saveCloseTiddler and cancelCloseTiddler
!Examples
; [[plugin info tiddler|http://mptw.tiddlyspot.com/#SaveCloseTiddlerPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://mptw.tiddlyspot.com/#SaveCloseTiddlerPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#AnimationEffectsSampler|
|''Author''|[[Eric Shulman]]|
|''Released''|2007-12-18|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''|AnimationEffectsPlugin, StyleSheetShortcuts, CloseOtherTiddlers, RefreshTiddler, ReplaceTiddlerTitle|
|''Type''|sample|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#AnimationEffectsSampler|
!Summary
demonstrates techniques for animating wiki-formatted content
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#AnimationEffectsSampler]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#AnimationEffectsSampler
<<tag "$1" Contributions>>by [[$1]]...

<<tiddler "$1">>
{{{
Short author summary...
* http://website.or.repository.com
}}}
Do not forget to tag the Author with <<tag Author>>!
|details|k
|''URL''|http://www.TiddlyTools.com/#ConfirmExitPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-09-06|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ConfirmExitPlugin|
!Summary
extra safety when exiting with unsaved changes
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ConfirmExitPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ConfirmExitPlugin
|details|k
|''URL''|http://tiddlywiki.bidix.info/#UploadDoc|
|''Author''|[[BidiX]]|
|''Version''|4.1.4|
|''Released''|2008-08-11|
|''Requires''|2.3.0 & store.php|
|''Source''|http://tiddlywiki.bidix.info/#UploadPlugin|
! Summary
Save a TiddlyWiki to the web as you do on TiddlySpot.
! Examples
; TiddlySpot
:» a core element to the architecture of TiddlySpot is UploadPlugin
! Preview
[img[http://img.tiddlyspace.com/UploadPlugin_1][http://tiddlywiki.bidix.info/#UploadDoc]]
! Details
UploadPlugin and ''store.php'' extend TiddlyWiki with @@upload@@ and @@save to web@@ commands.

* UploadPlugin uses Username and Password from ''~UploadOptions'' stored in cookies to authenticate itself to ''store.php'' or ''store.cgi''.
* UploadPlugin requires ''~PasswordOptionPlugin''.
* When TiddlyWiki is viewed @@from local disk@@ {{{<<upload ...>>}}} displays as //upload// and after saving to disk, uploads the wiki to a website.
*If the TiddlyWiki is viewed @@from a website@@ {{{<<upload ...>>}}} display as //save to web// and saves to the same website.
*If //~GenerateAnRssFeed// in AdvancedOptions is set an rss feed is uploaded as well.
*If a backup diretory is specified and if a file already exists in the upload directory with the same ame, the file is moved to the backup directory and renamed with a timestamp. When //~UploadLog// is activated, every upload action is logged in it.

For more information and installation instructions, see...
» http://tiddlywiki.bidix.info/#UploadDoc
|details|k
|''URL''|http://tiddlywiki.squize.org#NavigationMacro|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-20|
|''Version''|0.3 |
|''CoreVersion''|>2.08|
|''Source''|http://tiddlywiki.squize.org#NavigationMacro|
!Summary
Creates ''Prev'' and ''Next'' buttons on tiddlers, to cycle through tiddlers in order.
{{annotation{
A more powerful alternative is [[PagrPlugin...]].
}}}
!Examples
; [[author's site|http://tiddlywiki.squize.org/#AccordionMenuPlugin]]
:see the author's site for examples
!Preview
[img[http://img.tiddlyspace.com/NavigationMacro_1][http://tiddlywiki.squize.org#NavigationMacro]]
!Details
*You can create next and previous buttons to navigate through your journals, or the tiddlers of a tutorial.
*You can exclude certain tiddlers, or navigate through tiddlers with a specific tag only.
*The tiddlers can be sorted by modified or created.
*Needs to be added to the ViewTemplate
*Buttons are updated dynamically and are hidden if there is no next or previous tiddler.

{{{<<navigation sort exclude tag labelPrevious labelNext >>}}}
;sort
:''created'' (default) or ''modified''
;exlcude
:a tag to exclude
;tag
:the tag to navigate through
;labelPrevious
:label for the previous button
;labelNext
:label for the next button

ViewTemplate
To use it in the ViewTemplate add something like...
{{{
<div class='viewer'>
    <span macro='view text wikified'></span>
    <span macro='navigation "" "" plugin'></span>
</div>
}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#HideTiddlerSubtitle|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-25|
|''Version''|2.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#HideTiddlerSubtitle|
!Summary
hide a tiddler's subtitle (date and author)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#HideTiddlerSubtitle]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#HideTiddlerSubtitle
|details|k
|''URL''|http://www.TiddlyTools.com/#ToggleSiteMenu|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-25|
|''Version''|1.0.0|
|''CoreVersion''|2.5|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ToggleSiteMenu|
!Summary
show/hide horizontal SiteMenu using checkbox or double-click on background
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ToggleSiteMenu]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ToggleSiteMenu
|details|k
|''URL''|http://tiddlywiki.abego-software.de/#%5B%5BIncludePlugin%20Documentation%5D%5D|
|''Author''|[[Udo Borowski]]|
|''Released''|2012-10-01|
|''Version''|1.0.1 (2007-04-30)|
|''CoreVersion''|2.1.3|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Udo Borowski]]|
|''Source''|http://tiddlywiki.abego-software.de/#IncludePlugin|
!Summary
„Include“ other ~TiddlyWikis in your „main“ TiddlyWiki, link to included tiddlers, view them in your „main“ TiddlyWiki (without opening another TiddlyWiki). Even „search“ looks for included tiddlers. A great way to share tiddlers, to speed up "save changes" and to keep your ~TiddlyWikis small.

While the plugin is no longer in active development, there's a successor called [[SharedTiddlersPlugin|SharedTiddlersPlugin...]].
!Examples
; [[plugin info tiddler|http://tiddlywiki.abego-software.de/#%5B%5BIncludePlugin%20Documentation%5D%5D]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.abego-software.de/#%5B%5BIncludePlugin%20Documentation%5D%5D
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
|details|k
|''URL''|http://www.TiddlyTools.com/#SetPopupsHeight|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-03-14|
|''Version''|2.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SetPopupsHeight|
!Summary
use CSS to set a scrolling, fixed or percentage height for popups (e.g. tags display)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SetPopupsHeight]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SetPopupsHeight
{{noTitle{<<tagging>>}}}
|details|k
|''URL''|http://visualtw.ouvaton.org/VisualTW.html#SyncFromSourcePlugin|
|''Author''|[[Pascal Collin]]|
|''Released''|2008-01-05|
|''Version''|1.0.0|
|''CoreVersion''|2.2.0|
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Pascal Collin]]|
|''Source''|http://visualtw.ouvaton.org/VisualTW.html#SyncFromSourcePlugin|
!Summary
Synchronizes plugins from their original source (issued from plugin info) instead of imported url. So, plugins can be imported from any existing tiddlywiki and still be synchronized with their original source.
!Examples
; [[plugin info tiddler|http://visualtw.ouvaton.org/VisualTW.html#SyncFromSourcePlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://visualtw.ouvaton.org/VisualTW.html#SyncFromSourcePlugin
|details|k
|''URL''|http://xn--mns-ula.dk/sky/apps/files_sharing/get.php?token=45ea57138089eeb535e36cee53b8831076041bf5|
|''Author''|[[Måns Mårtensson]]|
|''Version''|2013-10-17|
|''Released''|2013-10-17|
|''Requires''|2.5.2|
|''Source''|http://my.bopland.org/licks|
|''Discussion''|https://groups.google.com/d/msg/tiddlywiki/nh5vMpPeEvg/qhAxfCTUhlYJ|
! Summary
Writing, editing and publishing musical notes in TW* made easy.
! Examples
; [[demo implementation by Måns|http://xn--mns-ula.dk/sky/apps/files_sharing/get.php?token=45ea57138089eeb535e36cee53b8831076041bf5]]
: in this wiki Måns briefly introduces in how to use the bopland.org renderer to turn musical notation into licks and tabs
; http://my.bopland.org/licks
: the js libary being leveraged
! Preview
[img[http://img.tiddlyspace.com/Bopland.org][http://xn--mns-ula.dk/sky/apps/files_sharing/get.php?token=45ea57138089eeb535e36cee53b8831076041bf5]]
! Details
How to get started...
1) Add...
{{{
<script src="http://my.bopland.org/render.js"></script>
}}}
to your MarkupPostHead tiddler, save & reload.

2) Create a template tiddler for transclusion, e.g. "bop" giving a div the ''bopland'' class...
{{{
<html>
<div class=bopland>
$1
</div>
</html> 
}}}
3) To render musical notes, use it like this...
{{{
<<tiddler bop with:"
Your musical code here
">>
}}}
|details|k
|''URL''|http://tiddlywiki.squize.org#DropDownMenuPlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2007-04-11|
|''Version''|2.1|
|''CoreVersion''|2.2.5|
|''Source''|http://tiddlywiki.squize.org#DropDownMenuPlugin|
!Summary
Create dropdown menus from unordered lists.
!Preview
[img[http://img.tiddlyspace.com/DropDownMenuPlugin_1][http://tiddlywiki.squize.org#DropDownMenuDemo]]
!Examples
; [[demo on Lewcid|http://tiddlywiki.squize.org#DropDownMenuDemo]]
:» provides demos for horizontal and vertical dropdown menus
; [[Amsterdam Wiki by Ton Gerner|http://dl.dropboxusercontent.com/u/2638511/Amsterdam_1822-2009.html]]
:» sliverish horizontal dropdown menu
!Details
* supports only single level of drop-downs (as anything more usually provides a poor user experience)
* very light weight, about 1.5kb of JavaScript and 4kb of CSS
* comes with two built in css 'themes', the default horizontal and vertical

''usage''
*create a two-level unordered list using wiki syntax, and place {{{<<dropMenu>>}}} on the line after it
* to create a vertical menu use {{{<<dropMenu vertical>>}}} instead
* to assign custom classes to the list, just pass them as parameters to the macro
** {{{<<dropMenu className1 className2 className3>>}}}

''"""customize"""''
To customize the appearance of the menu, you can either add a custom class as described above or, you can edit the CSS via the ''~StyleSheetDropDownMenu'' shadow tiddler.
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
{{{
<<tag [[<Category Name>]] References>>about foo bar baz...
}}}
Do not forget to tag the new [[reference category|References]] with <<tag References>>!
Welcome to this [[curated listing|Contribute]] for [[plugins|Plugin]], [[apps|App]], [[themes|Theme]] and [[references|Reference]] for TiddlyWiki.

{{homeboxes noTitle{
{{box{
<<tiddler Icon with: TabAuthors>><<tag Author "Authors ▽">>
[[& Contributors|Author]]
<<tagging Author>>
<<tiddler Icon with: TabAuthors>><<tag Alias "Author Aliases">>
<<tagging Alias>>
}}}{{box{
<<tiddler Icon with: TabPlugins>><<tag Plugin "Plugins ▽">>
[[Plugin Categories|Plugins]]
<<tagging Plugins>>
<<tiddler Icon with: TabThemes>><<tag Theme "Themes ▽">>
[[Theme Categories|Themes]]
<<tagging Themes>>
}}}{{box{
<<tiddler Icon with: TabMacros>><<tag App "Apps ▽">>
[[App Categories|Apps]]
<<tagging Apps>>
<<tiddler Icon with: TabFollowing>><<tag Reference "References ▽">>
[[Reference Categories|References]]
<<tagging References>>
}}}{{box{
<<tiddler Icon with: TabStarred>><<tag Featured "Featured ▽">>
<<tagging Featured>>
}}}
}}}{{tagClear{
 
}}}
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
{{title{[[Already a member and ready to go? Start Here!|Start Here!]]}}}

@@display:block;padding:1em;background:#fee;border:1px solid #f66; The [[advanced sidebar|Sidebar]] below is only visible to members of this space.
Quick-links: <<tag config>> | <<tag Template templates>> | <<tag Tabs tabs>> | <<tag Icon icons>>@@<<tabs
	txtMainTab
	"Shadows" "Shadowed tiddlers" TabMoreShadowed
	"Config" "Tiddlers tagged [[config]]..." Sidebar##CONFIG
	"Spaces" "Tiddlers grouped by space" [[TiddlySpaceTabs##Spaces]]
	"Orphans" "Orphaned tiddlers" TabMoreOrphans
	"Missing" "Missing tiddlers" TabMoreMissing
	"Public" "All public tiddlers" [[TiddlySpaceTabs##Public]]
	"Private" "All private tiddlers" [[TiddlySpaceTabs##Private]]
	 icons: ''
>>/%
!CONFIG
<<tagging config>>
!END%/
Chris is the driving force behind TiddlyWeb and the server side of things to TiddlySpace...
» http://tiddlyweb.com
» http://tiddlyweb.tiddlyspace.com
» http://cdent.tiddlyspace.com
» http://tiddlyspace.com
|details|k
|''URL''|http://visualtw.ouvaton.org/VisualTW.html#FieldsEditorPlugin|
|''Author''|[[Pascal Collin]]|
|''Released''|2008-01-04|
|''Version''|1.0.2|
|''CoreVersion''|2.2.0|
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Pascal Collin]]|
|''Source''|http://visualtw.ouvaton.org/VisualTW.html#FieldsEditorPlugin|
!Summary
//create//, //edit//, //view// and //delete// commands in toolbar {{{<<toolbar fields>>}}}.
!Examples
; [[plugin info tiddler|http://visualtw.ouvaton.org/VisualTW.html#FieldsEditorPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://visualtw.ouvaton.org/VisualTW.html#FieldsEditorPlugin
<!--{{{-->
<div class='tagInfo infoTags' macro="hideWhenTagged no-tags">
	<div class='tidTags' macro='tags'></div>
</div>
<div class='toolbar'
	macro='toolbar [[ToolbarCommands::ViewToolbar]] icons:yes height:36 width:36 more:popup'>
</div>
<div class='heading'>
	<span class="titleBar">
	    <div class="titleIcon" macro='get $ GetIcon##Filters'></div>
		<div class="titleText">
			<div class='title' macro='view title text'></div>
			<span class="subtitle" macro='viewRevisions page:5'>
			last modified on
				<span macro="view modified date"></span>
				<span macro='view modifier SiteIcon spaceLink:yes label:yes height:16 width:16'>by&nbsp;</span>
			</span>
		</div>
	</span>
	<div class='tagClear'></div>
</div>
<div class='content'>
	<div class='viewer' macro='view text wikified'></div>
</div>
<div class='viewer listing' macro='get config:true refItem:"##Summary" '></div>

<!-- div macro='discuss template:DiscussSliderTemplate'></div -->
<!--
<div class='tagInfo'>
	<div class='tidTags' macro='tags'></div>
	<div class='tagging' macro='tagging'></div>
</div>
-->
<!--}}}-->
/***
|Name|GotoPlugin|
|Source|http://www.TiddlyTools.com/#GotoPlugin|
|Documentation|http://www.TiddlyTools.com/#GotoPluginInfo|
|Version|1.9.2|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|view any tiddler by entering it's title - displays list of possible matches|
''View a tiddler by typing its title and pressing //enter//.''  As you type, a list of possible matches is displayed.  You can scroll-and-click (or use arrows+enter) to select/view a tiddler, or press escape to close the listbox to resume typing.  When the listbox is not displayed, pressing //escape// clears the current input.
!!!Documentation
>see [[GotoPluginInfo]]
!!!Configuration
<<<
*Match titles only after {{twochar{<<option txtIncrementalSearchMin>>}}} or more characters are entered.<br>Use down-arrow to start matching with shorter input.  //Note: This option value is also set/used by [[SearchOptionsPlugin]]//.
*To set the maximum height of the listbox, you can create a tiddler tagged with <<tag systemConfig>>, containing:
//{{{
config.macros.gotoTiddler.listMaxSize=10;  // change this number
//}}}
<<<
!!!Revisions
<<<
2009.05.22 [1.9.2] use reverseLookup() for IncludePlugin
|please see [[GotoPluginInfo]] for additional revision details|
2006.05.05 [0.0.0] started
<<<
!!!Code
***/
//{{{
version.extensions.GotoPlugin= {major: 1, minor: 9, revision: 2, date: new Date(2009,5,22)};

// automatically tweak shadow SideBarOptions to add <<gotoTiddler>> macro above <<search>>
config.shadowTiddlers.SideBarOptions=config.shadowTiddlers.SideBarOptions.replace(/<<search>>/,"{{button{goto}}}\n<<gotoTiddler>><<search>>");

if (config.options.txtIncrementalSearchMin===undefined) config.options.txtIncrementalSearchMin=3;

config.macros.gotoTiddler= { 
	listMaxSize: 10,
	listHeading: 'Found %0 matching title%1...',
	searchItem: "Search for '%0'...",
	handler:
	function(place,macroName,params,wikifier,paramString,tiddler) {
		var quiet	=params.contains("quiet");
		var showlist	=params.contains("showlist");
		var search	=params.contains("search");
		params = paramString.parseParams("anon",null,true,false,false);
		var instyle	=getParam(params,"inputstyle","");
		var liststyle	=getParam(params,"liststyle","");
		var filter	=getParam(params,"filter","");
		var html=this.html;
		var keyevent=window.event?"onkeydown":"onkeypress"; // IE event fixup for ESC handling
		html=html.replace(/%keyevent%/g,keyevent);
		html=html.replace(/%search%/g,search);
		html=html.replace(/%quiet%/g,quiet);
		html=html.replace(/%showlist%/g,showlist);
		html=html.replace(/%display%/g,showlist?'block':'none');
		html=html.replace(/%position%/g,showlist?'static':'absolute');
		html=html.replace(/%instyle%/g,instyle);
		html=html.replace(/%liststyle%/g,liststyle);
		html=html.replace(/%filter%/g,filter);
		if (config.browser.isIE) html=this.IEtableFixup.format([html]);
		var span=createTiddlyElement(place,'span');
		span.innerHTML=html; var form=span.getElementsByTagName("form")[0];
		if (showlist) this.fillList(form.list,'',filter,search,0);
	},
	html:
	'<form onsubmit="return false" style="display:inline;margin:0;padding:0">\
		<input name=gotoTiddler type=text autocomplete="off" accesskey="G" style="%instyle%"\
			title="Enter title text... ENTER=goto, SHIFT-ENTER=search for text, DOWN=select from list"\
			onfocus="this.select(); this.setAttribute(\'accesskey\',\'G\');"\
			%keyevent%="return config.macros.gotoTiddler.inputEscKeyHandler(event,this,this.form.list,%search%,%showlist%);"\
			onkeyup="return config.macros.gotoTiddler.inputKeyHandler(event,this,%quiet%,%search%,%showlist%);">\
		<select name=list style="display:%display%;position:%position%;%liststyle%"\
			onchange="if (!this.selectedIndex) this.selectedIndex=1;"\
			onblur="this.style.display=%showlist%?\'block\':\'none\';"\
			%keyevent%="return config.macros.gotoTiddler.selectKeyHandler(event,this,this.form.gotoTiddler,%showlist%);"\
			onclick="return config.macros.gotoTiddler.processItem(this.value,this.form.gotoTiddler,this,%showlist%);">\
		</select><input name="filter" type="hidden" value="%filter%">\
	</form>',
	IEtableFixup:
	"<table style='width:100%;display:inline;padding:0;margin:0;border:0;'>\
		<tr style='padding:0;margin:0;border:0;'><td style='padding:0;margin:0;border:0;'>\
		%0</td></tr></table>",
	getItems:
	function(list,val,filter) {
		if (!list.cache || !list.cache.length || val.length<=config.options.txtIncrementalSearchMin) {
			// starting new search, fetch and cache list of tiddlers/shadows/tags
			list.cache=new Array();
			if (filter.length) {
				var fn=store.getMatchingTiddlers||store.getTaggedTiddlers;
				var tiddlers=store.sortTiddlers(fn.apply(store,[filter]),'title');
			} else 
				var tiddlers=store.reverseLookup('tags','excludeLists');
			for(var t=0; t<tiddlers.length; t++) list.cache.push(tiddlers[t].title);
			if (!filter.length) {
				for (var t in config.shadowTiddlers) list.cache.pushUnique(t);
				var tags=store.getTags();
				for(var t=0; t<tags.length; t++) list.cache.pushUnique(tags[t][0]);
			}
		}
		var found = [];
		var match=val.toLowerCase();
		for(var i=0; i<list.cache.length; i++)
			if (list.cache[i].toLowerCase().indexOf(match)!=-1) found.push(list.cache[i]);
		return found;
	},
	getItemSuffix:
	function(t) {
		if (store.tiddlerExists(t)) return "";  // tiddler
		if (store.isShadowTiddler(t)) return " (shadow)"; // shadow
		return " (tag)"; // tag 
	},
	fillList:
	function(list,val,filter,search,key) {
		if (list.style.display=="none") return; // not visible... do nothing!
		var indent='\xa0\xa0\xa0';
		var found = this.getItems(list,val,filter); // find matching items...
		found.sort(); // alpha by title
		while (list.length > 0) list.options[0]=null; // clear list
		var hdr=this.listHeading.format([found.length,found.length==1?"":"s"]);
		list.options[0]=new Option(hdr,"",false,false);
		for (var t=0; t<found.length; t++) list.options[list.length]=
			new Option(indent+found[t]+this.getItemSuffix(found[t]),found[t],false,false);
		if (search)
			list.options[list.length]=new Option(this.searchItem.format([val]),"*",false,false);
		list.size=(list.length<this.listMaxSize?list.length:this.listMaxSize); // resize list...
		list.selectedIndex=key==38?list.length-1:key==40?1:0;
	},
	keyProcessed:
	function(ev) { // utility function
		ev.cancelBubble=true; // IE4+
		try{event.keyCode=0;}catch(e){}; // IE5
		if (window.event) ev.returnValue=false; // IE6
		if (ev.preventDefault) ev.preventDefault(); // moz/opera/konqueror
		if (ev.stopPropagation) ev.stopPropagation(); // all
		return false;
	},
	inputEscKeyHandler:
	function(event,here,list,search,showlist) {
		if (event.keyCode==27) {
			if (showlist) { // clear input, reset list
				here.value=here.defaultValue;
				this.fillList(list,'',here.form.filter.value,search,0);
			}
			else if (list.style.display=="none") // clear input
				here.value=here.defaultValue;
			else list.style.display="none"; // hide list
			return this.keyProcessed(event);
		}
		return true; // key bubbles up
	},
	inputKeyHandler:
	function(event,here,quiet,search,showlist) {
		var key=event.keyCode;
		var list=here.form.list;
		var filter=here.form.filter;
		// non-printing chars bubble up, except for a few:
		if (key<48) switch(key) {
			// backspace=8, enter=13, space=32, up=38, down=40, delete=46
			case 8: case 13: case 32: case 38: case 40: case 46: break; default: return true;
		}
		// blank input... if down/enter... fall through (list all)... else, and hide or reset list
		if (!here.value.length && !(key==40 || key==13)) {
			if (showlist) this.fillList(here.form.list,'',here.form.filter.value,search,0);
			else list.style.display="none";
			return this.keyProcessed(event);
		}
		// hide list if quiet, or below input minimum (and not showlist)
		list.style.display=(!showlist&&(quiet||here.value.length<config.options.txtIncrementalSearchMin))?'none':'block';
		// non-blank input... enter=show/create tiddler, SHIFT-enter=search for text
		if (key==13 && here.value.length) return this.processItem(event.shiftKey?'*':here.value,here,list,showlist);
		// up or down key, or enter with blank input... shows and moves to list...
		if (key==38 || key==40 || key==13) { list.style.display="block"; list.focus(); }
		this.fillList(list,here.value,filter.value,search,key);
		return true; // key bubbles up
	},
	selectKeyHandler:
	function(event,list,editfield,showlist) {
		if (event.keyCode==27) // escape... hide list, move to edit field
			{ editfield.focus(); list.style.display=showlist?'block':'none'; return this.keyProcessed(event); }
		if (event.keyCode==13 && list.value.length) // enter... view selected item
			{ this.processItem(list.value,editfield,list,showlist); return this.keyProcessed(event); }
		return true; // key bubbles up
	},
	processItem:
	function(title,here,list,showlist) {
		if (!title.length) return;
		list.style.display=showlist?'block':'none';
		if (title=="*")	{ story.search(here.value); return false; } // do full-text search
		if (!showlist) here.value=title;
		story.displayTiddler(null,title); // show selected tiddler
		return false;
	}
}
//}}}
<<tag [[Multimedia]] Apps>> or applike TiddlyWiki's for artists, musictians or simply people who enjoy collecting sound, video and imagery...
[[Home]]|[[Authors|Author]]|[[Plugins]]|[[Apps]]|[[Themes]]|[[References]]|[[Contribute]]|[[About|About @Customize]]
<<tiddler TemplateAlias with: "Eric Shulman">>
<<tag Slideshows Plugins>>allowing to produce slideshow-type presentations in TiddlyWiki...
|details|k
|''URL''|http://www.TiddlyTools.com/#TiddlerIconsPluginConfig|
|''Author''|[[Eric Shulman]]|
|''Released''|2007-08-02|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''|TiddlerIconsPlugin|
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#TiddlerIconsPluginConfig|
!Summary
configure additional icons for TiddlerIconsPlugin, based on containing tiddler's tags
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TiddlerIconsPluginConfig]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#TiddlerIconsPluginConfig
|details|k
|''URL''|http://tiddlywiki.abego-software.de/#SyncFileTiddlerPlugin|
|''Author''|[[Udo Borowski]]|
|''Released''|2012-04-16|
|''Version''|1.0.0 (2012-04-16)|
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Udo Borowski]]|
|''Source''|http://tiddlywiki.abego-software.de/#SyncFileTiddlerPlugin|
!Summary
Automatically synchronizes the text of a tiddler with the content of an associated text file.
!Examples
; [[plugin info tiddler|http://tiddlywiki.abego-software.de/#SyncFileTiddlerPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.abego-software.de/#SyncFileTiddlerPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#CloseOtherTiddlers|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-25|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#CloseOtherTiddlers|
!Summary
close all other tiddlers when a specific tiddler is viewed
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#CloseOtherTiddlers]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#CloseOtherTiddlers
Looking for real <<tag Author authors>>? To create a new entry for one use the [[Author Template]].
|details|k
|''URL''|http://www.TiddlyTools.com/#PasteUpPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2012-01-30|
|''Version''|1.3.2|
|''CoreVersion''|2.5|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#PasteUpPlugin|
!Summary
position/size embedded content with edit-in-place popup editor
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#PasteUpPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#PasteUpPlugin
/***
|''Name''|TiddlySpaceFilters|
|''Description''|provide TiddlySpace-specific filter extensions|
|''Author''|Jon Robson|
|''Version''|0.6.1|
|''Status''|@@beta@@|
|''CoreVersion''|2.6.2|
|''Requires''|TiddlySpaceConfig|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
!Usage
{{{
<<tsList Private>>
<<tsList Public>>
<<tsList Draft>>
}}}
!Code
***/
//{{{
(function($) {

var tiddlyspace = config.extensions.tiddlyspace;
var privateBag = tiddlyspace.getCurrentBag("private");
var publicBag = tiddlyspace.getCurrentBag("public");

config.filterHelpers = {
	is: {
		"private": function(tiddler) {
			var bag = tiddler.fields["server.bag"];
			return bag == privateBag;
		},
		"public": function(tiddler) {
			var bag = tiddler.fields["server.bag"];
			return bag == publicBag;
		},
		draft: function(tiddler) {
			var fields = tiddler.fields;
			var bag = fields["server.bag"];
			return (privateBag == bag && fields["publish.name"]) ? true : false;
		},
		local: function(tiddler) {
			return config.filterHelpers.is["public"](tiddler) ||
				config.filterHelpers.is["private"](tiddler);
		},
		unsynced: function(tiddler) {
			return tiddler ? tiddler.isTouched() : false;
		}
	}
};

config.filters.is = function(results, match) {
	var candidates = store.getTiddlers("title");
	var type = match[3];
	for (var i = 0; i < candidates.length; i++) {
		var tiddler = candidates[i];
		var helper = config.filterHelpers.is[type];
		if(helper && helper(tiddler)) {
			results.pushUnique(tiddler);
		}
	}
	return results;
};

})(jQuery);
//}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#ExternalTiddlersPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-04-27|
|''Version''|1.3.3|
|''CoreVersion''|2.1|
|''Requires''|TemporaryTiddlersPlugin, SectionLinksPlugin (optional, recommended)|
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ExternalTiddlersPlugin|
!Summary
retrieve and wikify content from external files or remote URLs
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ExternalTiddlersPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ExternalTiddlersPluginInfo
|details|k
|''URL''|http://mptw.tiddlyspot.com/#NewHerePlugin|
|''Author''|[[Simon Baird]]|
|''Released''|2013-06-17|
|''Version''|3.0a|
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Simon Baird]]|
|''Source''|http://mptw.tiddlyspot.com/#NewHerePlugin|
!Summary
Creates the new here and new journal macros
!Examples
; [[plugin info tiddler|http://mptw.tiddlyspot.com/#NewHerePlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://mptw.tiddlyspot.com/#NewHerePlugin
<<tag [[Authoring & Presentation]] Apps>>for word processing, printable documents, output focused layouts...
Worked with Osmosoft and the TiddlySpace team to make the TiddlyWorld go round...
» http://ben.tiddlyspace.com
Enhancing TiddlySpace along the way...
http://jon.tiddlyspace.com
|details|k
|''URL''|http://themes.tiddlywiki.com/k2ws.html|
! Summary
A variant of K2Blog optimized for widescreen. <<tiddler K2Blog##Summary>>
! Preview
[img[[img[http://img.tiddlyspace.com/K2WS][http://themes.tiddlywiki.com/k2ws.html]]
|details|k
|''URL''|http://www.TiddlyTools.com/#QuickEditToolbar|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-12-27|
|''Version''|2.4.4|
|''CoreVersion''|2.2|
|''Requires''|[[QuickEditPlugin...]]|
|''Source''|http://www.TiddlyTools.com/#QuickEditToolbar|
!Summary
format/insert TiddlyWiki content using toolbar buttons
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#QuickEditToolbar]]
:see the author's info tiddler for a demo
!Preview
[img[http://img.tiddlyspace.com/QuickEditToolbar_1]]
!Details
To get started, install [[QuickEditPlugin...]] (runtime support functions)
;add the toolbar to [[EditTemplate]]:
:{{{<div macro='tiddler QuickEditToolbar with: show'></div>}}}
;show
:(optional) forces the toolbar to always be displayed or,
:omit keyword and use the ''chkShowQuickEdit'' option

[[Selected QuickEdit buttons|QuickEditPackage...]] can also be added individually to the tiddler toolbar by adding references directly in [[EditTemplate]]:
:{{{<span class='toolbar' macro='tiddler QuickEdit_...'></span>}}}

See [[QuickEditPackage|http://www.TiddlyTools.com/#QuickEditPackage]] for additional installation options.
/***
|''Name''|IconTabsPlugin|
|''Description''|extends the tabs macro to replace tabnames with icons|
|''Documentation''|http://icontabs.tiddlyspace.com|
|''Author''|Tobias Beer|
|''Version''|1.0.3|
|''CoreVersion''|2.6.1|
|''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/IconTabsPlugin.min.js|
|''License''|[[Creative Commons Attribution-Share Alike 3.0|http://creativecommons.org/licenses/by-sa/3.0/]]|
/%***/
(function(e){config.macros.tabs.handler_IconTabsPlugin=config.macros.tabs.handler;config.macros.tabs.IconTabsConfig={defaultPath:"%0.gif",defaultWrapperClass:"iconTabs",defaultIconClass:"tabIcon",hSpace:"20px",vSpace:"20px"};config.macros.tabs.handler=function(t,n,r,i,s,o){var u=[],a,f,l,c,h=0,p,d,v,m=this.IconTabsConfig;while(h<r.length){p=r[h];if(p.indexOf("--")==0){if(readOnly){d=p.substr(2).toLowerCase();r.splice(h,d=="hspace"||d=="vspace"?1:3);continue}else{r[h]=p=p.substr(2)}}d=p.toLowerCase();if(d=="hspace"||d=="vspace"){a=d=="hspace";r.splice(h,1);c=r[h];if(c)u.push(c.replace(/^\-{2}/,""));continue}h++}f=r.indexOf("icons:");if(f>0){l=r.splice(f);l.shift();s="[["+r.join("]] [[")+"]]"}config.macros.tabs.handler_IconTabsPlugin.apply(this,arguments);if(f>0){var v=l[0],g=l[1],y=l[2],b=e(t.lastChild);if(!v)v=m.defaultPath;b.addClass(m.defaultWrapperClass+(g?" "+g:""))}e(".tab",b).each(function(){var t,n=e(this),r=n.text().trim(),i=n.attr("content").replace(/\#\#/,"__").replace(/\:\:/,"__");if(f>0){t=store.getTiddlerText(v.format([i])+"##data");t=t?t:store.getTiddlerText(v.format([i])+"##file");t=t?t:store.getTiddlerText(v.format([i])+"##url");n.html('<img src="'+(t?t:v.format([i]))+'" class="'+m.defaultIconClass+(r?" icon"+r.trim().replace(/(\s|\W)/mg,"_"):"")+'"/>')}if(u.contains(r)){n.css("margin-"+(a?"left":"top"),y?y:a?m.hSpace:m.vSpace)}})};config.shadowTiddlers["StyleSheetIconTabs"]="/*{{{*/\n"+".tabIcon {\n"+"   width:28px;\n"+"   height:28px;\n"+"   margin:3px 3px 0 3px;\n"+"}\n"+".iconTabs {\n"+"   margin-top:10px;\n"+"}\n"+".iconTabs .iconTabs {\n"+"   margin:3px;\n"+"}\n"+".iconTabs .tabset{\n"+"   padding:0;\n"+"}\n"+".iconTabs .tab {\n"+"   outline: 0;\n"+"   margin: 0;\n"+"   padding: 22px 0 1px 0;\n"+"   border: 1px solid transparent;\n"+"}\n"+".iconTabs .tabUnselected {\n"+"   background: transparent;\n"+"}\n"+".iconTabs .tabSelected,\n"+".iconTabs .tabSelected:hover,\n"+".iconTabs .tabUnselected:hover {\n"+"   background: [[ColorPalette::TertiaryPale]];\n"+"   border: 1px solid [[ColorPalette::TertiaryLight]];\n"+"   border-bottom-color: transparent;\n"+"}\n"+".iconTabs .spacer {\n"+"   margin-left: 20px;\n"+"}\n"+"/*}}}*/";store.addNotification("StyleSheetIconTabs",refreshStyles)})(jQuery)
//%/
|details|k
|''URL''|http://www.giffmex.org/braintags.html|
|''Author''|[[Dave Gifford]]|
|''Version''|v.1.3.0|
|''Released''|2013-04-26|
|''Requires''|runs on version 2.7.1|
|''Source''|http://www.giffmex.org/braintagsempty.html|
! Summary
Braintags is a successor of NoteStorm, a note-taking flavor of TiddlyWiki allowing you to easily create indexed notes.
! Examples
; [[the authors site|http://www.giffmex.org/braintags.html#%5B%5BHow%20to%20use%20braintags%5D%5D]]
:» just poke around at the authors site and play with it or [[right click and save an empty version|http://www.giffmex.org/braintagsempty.html]] of it and play with it
! Preview
[img[http://img.tiddlyspace.com/BrainTags_1][http://www.giffmex.org/braintags.html#%5B%5BHow%20to%20use%20braintags%5D%5D]]
! Details
After [[downloading braintags|http://www.giffmex.org/braintags.html#%5B%5BDownload%20braintags%5D%5D]] and opening your copy, there are two ways you can add your content:
#''Top down:'' If you want to start by creating a topic or a project and adding notes to it, just create a new index (it will appear in the menu to the left), add an appropriate title, and click 'done'. Then use the 'new note' button at the top of the index to create notes for that topic.
#''Bottom up:'' If you want to start by creating a note then figuring out what topics it falls under, just click 'new note' (it will appear in the menu to the left), add your content in the big bottom window, and replace the 'Unsorted' tag with topical tags in the middle window. Then click 'done'.
Want to get excited about note-taking in a new and easier way? Take a moment to read [[The advantages of using braintags|http://www.giffmex.org/braintags.html#%5B%5BThe%20advantages%20of%20using%20braintags%5D%5D]]
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
|details|k
|''URL''|http://www.TiddlyTools.com/#TagGridPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-04-21|
|''Version''|1.7.0|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#TagGridPlugin|
!Summary
Generate a cross-referenced grid of tiddlers, based on tag values.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TagGridPluginInfo]]
:see the author's info tiddler for examples
!Preview
[img[http://img.tiddlyspace.com/TagGridPlugin_1]]
!Details
Specify which tags should be used for the columns and rows of the grid to ''see a particular cross-section'' of your document, or use //all// tags to ''get an instant 'birds-eye' overview of your entire document''.

Each grid cell contains a label with the number of tiddlers in that grid cell.  Click the number to ''show a popup of cross-indexed tiddler titles''.  Grid cells with no matching tiddlers contain a "-" (dash) that can be clicked to ''create new tiddlers automatically pre-tagged with that cell's combination of tags.''

To keep the grid display from getting very wide, the grid tags used as column headings are not initially displayed.  ''Click directly above the column to show/hide that heading'', or toggle all column headings at once by clicking the {{{>>>}}} symbol in the upper-left corner of the grid display.  Clicking a displayed row/column tag heading opens the tiddler whose title is that tag name.
<<tag "Demos & Showcases" References>>that show you how TiddlyWiki is just perfect for trying out new things and showing them off to the world...
<<tag Markup Plugins>>enhancing the [[markup|http://tiddlywiki.org#Markup]] and text formatting capabilities of TiddlyWiki providing new ways for presentation.
<<tag Websites References>>for personal, project or business websites running on TiddlyWiki...
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
|details|k
|''Name''|~FromPlaceToPlacePlugin|
|''URL''|http://yakovl.bplaced.net/TW/FPTP.html|
|''Author''|[[Yakov Litvin]]|
|''Released''|2013-10-25|
|''Version''|1.2.0|
|''CoreVersion''|2.5.0|
|''Source''|http://yakovl.bplaced.net/TW/FPTP.html#FromPlaceToPlacePlugin|
|''Licence''|[[BSD-like open source license|http://yakovl.bplaced.net/TW/FPTP.html#%5B%5BYakov%20Litvin%20Public%20Licence%5D%5D]]|
! Summary
Introduces key + click combinations to avoid flooding with opened tiddlers/pages. For instance, shift + click can be used with internal links so that the tiddler with the link gets closed and the link target tiddler is opened.

! Examples
See the [[intro tiddler|http://yakovl.bplaced.net/TW/FPTP.html#%5B%5BIntroduction%20to%20FromPlaceToPlacePlugin%5D%5D]] in the repository, as well as the [[plugin+docs tiddler|http://yakovl.bplaced.net/TW/FPTP.html#FromPlaceToPlacePlugin]].

! Details
Plugin allows to deal with both internal and external links, for each one the "meta" key is set separately. "Meta" keys can be {{{alt}}}, {{{shift}}} or {{{ctrl}}}. For installation details, see the [[plugin+docs tiddler|http://yakovl.bplaced.net/TW/FPTP.html#FromPlaceToPlacePlugin]].
|details|k
|''URL''|http://www.TiddlyTools.com/#FoldHeadingsPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-12-01|
|''Version''|1.1.2|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#FoldHeadingsPlugin|
!Summary
automatically turn headings into slider-like panels that can be folded/unfolded with a single click
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#FoldHeadingsPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#FoldHeadingsPlugin
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
|details|k
|''URL''|http://www.TiddlyTools.com/#SaveTiddlerToFilePlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-02-14|
|''Version''|1.1.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SaveTiddlerToFilePlugin|
!Summary
toolbar command to save tiddler source definition to an external text file
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SaveTiddlerToFilePlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SaveTiddlerToFilePlugin
/***
|''Name''|TiddlySpaceRevisionView|
|''Description''|Show tiddler revisions in a stack of cards view|
|''Author''|BenGillies|
|''Version''|0.2.0|
|''Status''|beta|
|''Source''|http://github.com/TiddlySpace/tiddlyspace|
|''CodeRepository''|http://github.com/TiddlySpace/tiddlyspace|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.6.0|
|''Requires''|TiddlyWebAdaptor|
!Usage
The viewRevisions macro can be attached to any element, which should be passed
in as a parameter.

For example:

&lt;&lt;viewRevisions page:10 link:"<<view modified date>>"&gt;&gt;

would show the revisions "stack of cards" view, 10 at a time, when the modified
date is clicked.
!Code
***/
//{{{
(function($) {

var me = config.macros.viewRevisions = {
	revisionTemplate: "RevisionTemplate",
	revSuffix: " [rev. #%0]", // text to append to each tiddler title
	defaultPageSize: 5, // default number of revisions to show
	defaultLinkText: "View Revisions", // when there's nothing else to use
	offsetTop: 30, // in px
	offsetLeft: 10, // in px
	shiftDownDelay: 50, // in ms
	visibleSlideAmount: 20, // amount of revisions to show on left hand edge after sliding
	zIndex: 100, // default z-index
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		params = paramString.parseParams(null, null, true)[0];
		var tiddlerElem = story.findContainingTiddler(place);

		var revButton;
		var pageSize = parseInt(params.page[0], 10) || me.defaultPageSize;
		var linkObj = params.link ? params.link[0] || me.defaultLinkText : false;
		if(linkObj) {
			revButton = $('<span class="button openRevisions" />')
				.appendTo(place);
			wikify(linkObj, revButton[0], null, tiddler);
		} else {
			revButton = place;
		}

		$(revButton).click(function() {
			if (!$(tiddlerElem).hasClass("revisions")) {
				me.showRevisions(tiddlerElem, tiddler, pageSize);
			} else {
				me.closeRevisions(tiddlerElem);
			}
		});
	},

	// initialisation for revision view
	showRevisions: function(tiddlerElem, tiddler, pageSize) {
		var context = {
			host: tiddler.fields["server.host"],
			workspace: tiddler.fields["server.workspace"]
		};
		$(tiddlerElem).addClass("revisions").attr("revName", tiddler.title);
		// ensure toolbar commands deactivate RevisionsView
		$("a", ".toolbar", tiddlerElem).each(function(index, btn) {
			var _onclick = btn.onclick;
			btn.onclick = function(e) {
				me.closeRevisions(tiddlerElem);
				_onclick.apply(this, arguments);
			};
		});
		// ensure default action deactivates RevisionsView
		var _ondblclick = tiddlerElem.ondblclick;
		tiddlerElem.ondblclick = function(e) {
			me.closeRevisions(tiddlerElem);
			_ondblclick.apply(this, arguments);
		};
		var type = tiddler.fields["server.type"];
		var adaptor = new config.adaptors[type]();
		var userParams = {
			tiddlerElem: tiddlerElem,
			pageSize: pageSize,
			title: tiddler.title
		};
		me.createCloak(tiddlerElem);
		adaptor.getTiddlerRevisionList(tiddler.title, null, context, userParams,
				function(context, userParams) {
					// strip the current revision
					context.revisions.shift();
					me.expandStack(context, userParams);
				});
	},

	// fetch the actual revision and put it in the tiddler div
	showRevision: function(place, revision, callback) {
		var context = {
			host: revision.fields["server.host"],
			workspace: revision.fields["server.workspace"]
		};
		var userParams = {
			revElem: place
		};
		var type = revision.fields["server.type"];
		var adaptor = new config.adaptors[type]();
		var revNo = revision.fields["server.page.revision"];
		adaptor.getTiddlerRevision(revision.title, revNo, context, userParams,
			function(context, userParams) {
				var tiddler = context.tiddler;
				tiddler.title += me.revSuffix
					.format([$(place).attr("revision")]);
				tiddler.fields.doNotSave = true;
				if (store.getTiddler(tiddler.title)) {
					store.deleteTiddler(tiddler.title);
				}
				store.addTiddler(tiddler);

				//now, populate the existing div
				var revElem = userParams.revElem;
				$(revElem).attr("id", story.tiddlerId(tiddler.title));
				$(revElem).attr("refresh", "tiddler");
				var getTemplate = function() {
					var themeName = config.options.txtTheme;
					if (themeName) {
						return store.getTiddlerSlice(themeName,
							me.revisionTemplate) || me.revisionTemplate ||
							"ViewTemplate";
					} else {
						return (store.getTiddler(me.revisionTemplate)) ?
							me.revisionTemplate : "ViewTemplate";
					}
				};
				var template = getTemplate();
				story.refreshTiddler(tiddler.title, template, true);
				callback(tiddler);
			});
	},

	createCloak: function(promoteElem) {
		var el = $(promoteElem);
		// cache styles for resetting later
		el.data({
			top: el.css("top"),
			left: el.css("left"),
			zIndex: el.css("z-index")
		});

		$('<div class="revisionCloak" />').css("z-index", me.zIndex)
			.click(function() {
				me.closeRevisions(promoteElem);
			})
			.appendTo(document.body);

		el.css("z-index", me.zIndex + 1);
	},

	// clean up, removing all evidence of revision view
	closeRevisions: function(promoteElem) {
		var el = $(promoteElem);
		// revert the original tiddler back to its previous state
		el.removeAttr("revName").removeClass("revisions").css({
			top: el.data("top"),
			left: el.data("left"),
			zIndex: el.data("zIndex")
		});

		// remove any revisions still in the store
		var revisions = $(".revisions");
		revisions.each(function(index, revision) {
			var revAttributes = revision.attributes;
			if ((revAttributes.revname) &&
					(revAttributes.revision)) {
				var revName = revAttributes.revname.value;
				var revNo = revAttributes.revision.value;
				var title = revName + me.revSuffix.format([revNo]);

				if (store.getTiddler(title)) {
					store.deleteTiddler(title);
				}
			}
		});

		// delete the previous revisions
		revisions.remove();

		// remove the cloak
		$(".revisionCloak").remove();
	},

	// calback from getting list of revisions
	expandStack: function(context, userParams) {
		var pageSize = userParams.pageSize;

		var from = userParams.from || 0;
		var tiddlerElem = userParams.tiddlerElem;

		userParams.defaultHeight = $(tiddlerElem).height();
		userParams.defaultWidth = $(tiddlerElem).width();
		if (from < context.revisions.length) {
			me.displayNextRevision(tiddlerElem, userParams, context, from,
				from + pageSize - 1);
		}
	},

	// place the next div above and behind the previous one
	displayNextRevision: function(tiddlerElem, userParams, context, from, to) {
		var revision = context.revisions[from];
		var callback = function() {
			var revText = revBtn.getRevisionText(tiddlerElem, revision);
			tiddlerElem = me.createRevisionObject(tiddlerElem, context,
				userParams, revText);
			$(tiddlerElem)
				.attr("revision", (context.revisions.length - from));
			if ((from < to) && ((from + 1) < context.revisions.length)){
				me.displayNextRevision(tiddlerElem, userParams, context,
					from + 1, to);
			} else if ((context.revisions.length - 1) > to) {
				me.showMoreButton(tiddlerElem, context, userParams, to + 1);
			}
		};
		me.shiftVisibleDown(userParams.title, callback);
	},

	createRevisionObject: function(tiddlerElem, context, userParams, text) {
		var newPosition = me.calculatePosition(tiddlerElem, context);
		return $('<div class="revisions tiddler" />')
			.css({
				position: "absolute",
				top: newPosition.top,
				left: newPosition.left,
				"z-index": me.zIndex + 1,
				height: userParams.defaultHeight,
				width: userParams.defaultWidth
			})
			.attr("revName", userParams.title)
			.append(text)
			.insertBefore(tiddlerElem);
	},

	// move the already present revisions down by 1 to fit the next one in
	shiftVisibleDown: function(title, callback) {
		var revisions = $("[revName='%0'].revisions".format([title]));
		var revisionCount = revisions.length;

		$(revisions).animate({top: "+=" + me.offsetTop},
				me.shiftDownDelay, function() {
					revisionCount -= 1;
					if ((callback) && (!revisionCount)) {
						callback();
					}
				});
	},

	// where we put the new revision
	calculatePosition: function(elem, context) {
		var offset = $(elem).offset();
		var currentPosition = $(elem).position();
		var newPosition = {
			top: currentPosition.top - me.offsetTop
		};
		if ((context.restrictLeft) ||
				((offset.left - me.offsetLeft) <
				$("#contentWrapper").offset().left)) {
			newPosition.left = $(elem).position().left;
			context.restrictLeft = true;
		} else {
			newPosition.left = currentPosition.left - me.offsetLeft;
		}
		return newPosition;
	},

	// equivalent of displayNextRevision, but for the more button
	showMoreButton: function(tiddlerElem, context, userParams, moreIndex) {
		userParams.from = moreIndex + 1;
		me.shiftVisibleDown(userParams.title, function() {
			var btn = me.createRevisionObject(tiddlerElem, context, userParams,
				"");

			var more = createTiddlyButton(btn[0], "more...", "show more revisions",
				function() {
					if ($(".viewRevision").length) {
						return;
					}
					userParams.tiddlerElem = btn[0];
					$(btn).text("")
						.append(revBtn
							.getRevisionText(btn[0], context.revisions[moreIndex]))
						.attr("revision", context.revisions.length - moreIndex);
					me.expandStack(context, userParams);
				});
			$(more).css("float", "right");
		});
	},

	stripRevFromTitle: function(revisionTitle) {
		return revisionTitle.split(/ ?\[rev\. #[0-9]+\]$/)[0];
	},

	onClickRevision: function(revElem, revision, callback) {
		// don't do anything if we are still loading
		if ($(".revisions").hasClass("loading")) {
			return null;
		}

		var origTitle = me.stripRevFromTitle(revision.title);
		if ($(revElem).hasClass("viewRevision")) {
			$(".revisions").addClass("loading");
			me.slideIn(revElem, revision, origTitle, function() {
				store.deleteTiddler(revision.title);
				revision.title = origTitle;
				$(revElem).text("").append(revBtn.getRevisionText(revElem,
						revision))
					.removeAttr("tags").removeAttr("tiddler")
					.removeAttr("refresh").removeAttr("template")
					.removeAttr("id");
				$(".revisions").removeClass("loading");
				if (callback) {
					callback();
				}
			});
			$(revElem).removeAttr("prevPos").removeClass("viewRevision");
		} else {
			var viewRevision = function() {
				var prevPos = $(revElem).position().left;
				$(revElem).addClass("viewRevision").attr("prevPos", prevPos);
				$(".revisions").addClass("loading");
				me.showRevision(revElem, revision, function(rev) {
					me.slideOut(revElem, rev, origTitle, function() {
						$(".revisions").removeClass("loading");
					});
				});
			};
			// make sure another revision isn't already out
			if ($(".viewRevision").length) {
				var newRevElem = $(".viewRevision")[0];
				var newRevision = store.getTiddler($(newRevElem)
					.attr("tiddler"));
				me.onClickRevision(newRevElem, newRevision, viewRevision);
			} else {
				viewRevision();
			}
		}
	},

	slideOut: function(revElem, revision, title, callback) {
		var leftMostPos = $("[revName='%0'].revisions".format([title]))
			.offset().left;
		var width = $(revElem).width();
		var originalLeftPos = $(story.getTiddler(title))
			.position().left;

		var slideAmount = leftMostPos + width - me.visibleSlideAmount;
		$("[revName='%0'].revisions:not(.viewRevision)".format([title]))
			.animate({left: "-=" + slideAmount}, 1000);
		$(revElem)
			.attr("baseHeight", $(revElem).css("height"))
			.css("height", "auto")
			.animate({left: originalLeftPos}, 1000, callback);
	},

	slideIn: function(revElem, revision, title, callback) {
		var slideAmount = $(revElem).offset().left -
			$(story.getTiddler(title)).offset().left;
		var origRevPos = $(revElem).attr("prevPos");

		$("[revName='%0'].revisions:not(.viewRevision)".format([title]))
			.animate({left: "+=" + slideAmount}, 1000);
		$(revElem).animate({left: origRevPos}, 1000, function() {
			$(revElem)
				.css("height", $(revElem).attr("baseHeight"))
				.removeAttr("baseHeight");
			callback();
		});
	}
};

var revBtn;
config.macros.slideRevision = revBtn = {
	btnText: "created by %0 at %1 on %2",
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		var btn = revBtn.getRevisionText(place, tiddler);
		$(place).append(btn);
	},

	getRevisionText: function(place, revision) {
		var text = revBtn.btnText.format([revision.modifier,
			revision.modified.formatString("0hh:0mm"),
			revision.modified.formatString("0DD MMM YYYY")]);
		var btn = $('<a href="javascript:;" class="button revButton" />')
			.text(text)
			.click(function() {
				var revElem = story.findContainingTiddler(this);
				me.onClickRevision(revElem, revision);
			});
		return btn;
	}
};

})(jQuery);
//}}}
/***
|''Name''|GetPlugin|
|''Author''|[[Tobias Beer|http://tobibeer.tiddlyspace.com]]|
|''Description''|fetch and output a (list of) tiddler, section, slice or field using a predefined or custom format|
|''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/GetPlugin.min.js|
|''Documentation''|http://get.tiddlyspace.com|
|''Version''|1.2.3 2013-11-07|
|''~CoreVersion''|2.6.2|
|''License''|Creative Commons 3.0|
/%***/
(function(e){var t=config.macros.get={config:"GetPluginConfig",dict:{errFunction:"Function undefined!",errFunctionInfo:"config.macros.get.get%0 is not a valid function!",errConfig:"Config not found!",errConfigInfo:"Config '%0' either does not exist or does not have a 'Tags' section!",defaultCategory:"Tiddler",tipSlider:"toggle '%0'",tipTab:"show '%0'"},identifiers:{filter:"$",fuzzy:"~",tiddler:"!"},template:{fuzzy:"%0",tiddler:"![[%1]]\n%0",section:"!%3 / [[%1]]\n%0",slice:";%3\n:%0",field:";%3\n:%0",tiddlerList:"!![[%1]]\n%0",sectionList:"!![[%1]]\n%0",sliceList:";[[%1]]\n:%0",fieldList:";[[%1]]\n:%0",tiddlerTable:"|[[%1]]|<<tiddler [[%4]]>>|",sectionTable:"|[[%1]]|<<tiddler [[%4]]>>|",sliceTable:"|[[%1]]|<<tiddler [[%4]]>>|",fieldTable:"|[[%1]]|%0|\n",tiddlerTableHead:"| !%0 | !Text |h\n",sectionTableHead:"| !%0 | !%1 |h\n",sliceTableHead:"| !%0 | !%1 |h\n",fieldTableHead:"| !%0 | !%1 |h\n",fmtSliders:'<<slider "%0" "%1" "%2" "%3">>',fmtTabs:'<<tabs "%0" %1>>',tableClass:"getTable",dateFormat:"0DD.0MM.YYYY"},handler:function(n,r,i,s,o,u){if(!o)return;var a,f,l,c="",h,p,d,v,m,g,y=story.findContainingTiddler(n),b=u&&u.tags?u.tags:[],w=o.parseParams("anon",null,true),E=getParam(w,"config",false),S=getParam(w,"filter"),x=i.contains("listfiltr"),T=i[0];if(t.identifiers.fuzzy==T){var N=true;i.shift()}title=u?u.title:y?y.getAttribute("tiddler"):"";if(t.identifiers.tiddler==T){var C=true;i.shift()}if(t.identifiers.filter==T){e(store.getTiddlerText(i[1]).split("\n")).each(function(){var t=this.split("|");e(store.filterTiddlers(t[0])).each(function(){if(title==this.title)c=t[1];return!c});return!c});if(!c)return}else if(E){refItem=getParam(w,"refItem",t.identifiers.tiddler);refTag=getParam(w,"refTag",t.identifiers.tiddler);E=E=="true"?t.config:E;d=store.getTiddlerText(E+"##Tags");if(!d){createTiddlyError(n,t.dict.errConfig,t.dict.errConfigInfo.format([E]))}else{d=d.split("\n");v=store.getTiddlerText(E+"##Template");for(y=0;y<d.length;y++){h=d[y];if([""," ","/","{"].contains(h.substr(0,1)))continue;h=d[y].split("|");f=e.trim(h[h.length>2?2:h.length-1]).parseParams("anon",null,true);if(u.title==h[h.length==1?0:1]&&(h.length==1||h[1]!="")&&refTag!="false")l=1;else if(b.contains(h[0])&&(h.length==1||h[0]!="")&&refItem!="false")l=2;if(l){wikify('<<tiddler "'+E+'##Template" with: "'+(l==1?getParam(f,"refTag",refTag):getParam(f,"refItem",refItem))+'" "'+u.title+'"'+">>",n);return}}}return}var k=0,L="",A=[],O,M,_="",D,P,H,B,j=e(n),F=j.attr("macroName")=="get",I=t[getParam(w,"exec","getValues")],q=getParam(w,"format",""),R=store.getTiddlerText(getParam(w,"template","")),U=i.contains("plain"),z=getParam(w,"sliders",i.contains("sliders")),W=getParam(w,"tabs",i.contains("tabs")),v=z?"Sliders":W?"Tabs":i.contains("table")?"Table":i.contains("list")||S?"List":"",X=v.toLowerCase(),V=["sliders","tabs"].contains(X),g=C?"":i[0],$=config.filters.get.delimiterRegExp.exec(c?"":g),J=$?$[2]:"",K=$?$[3]:"",Q=J=="##"?"section":J=="::"?"slice":J=="??"?"field":"tiddler",G=getParam(w,"valueprefix",""),Y=getParam(w,"prefix",""),Z=getParam(w,"suffix",""),et=getParam(w,"category",t.dict.defaultCategory),tt=getParam(w,"header",X!="table"?"":"|"+t.template.tableClass+" "+t.template.tableClass+Q.toUpperCase()+"|k\n"+t.template[Q+"TableHead"].format([et,K])),nt=getParam(w,"footer",""),rt=getParam(w,"separator","\n"),it=V?(new Date).formatString("YYYY0MM0DD0hh0mm0ss")+Math.random().toString().substr(6):"";if(!c){title=N||!g?title:$?$[1]?$[1]:title:g;if(V){O=t.template["fmt"+(X=="tabs"?"Tabs":"Sliders")]}else{O=U?"%0":q?q:R?R:t.template[N?"fuzzy":J=="##"?"section"+v:J=="::"?"slice"+v:J=="??"?"field"+v:"tiddler"+v]}if(I){H=I.call(t,o,N?g:(X?"":title)+J+K,title,Q,K,X,N)}else{createTiddlyError(n,t.dict.errFunction,t.dict.errFunctionInfo.format([get]));return false}do{k++;A.push(L);L=getParam(w,"$"+k,null)}while(L!=null);for(D=0;D<H.length;D++){M=H[D][0];P=G+H[D][1];P=P.indexOf("***/\n")!=0?P:P.substr(5);for(k=1;k<A.length;k++){P=P.replace(new RegExp("\\$"+k,"mg"),A[k])}B=(X?M:"")+g;O=O.replace(/\\n/mg,"\n");if(X=="tabs"){_+=" [[%0]] [[%1]] [[%2]]".format([M,t.dict.tipTab.format([B]),B])}else{c+=(Y+(X=="sliders"?C&&title==M?"":O.format(["chk"+("string"==typeof z?z:it)+M.replace(/(?!\w)[\x00-\xC0]/mg,"_"),B,M,t.dict.tipSlider.format([B])]):O.format([P,M,Q,K,B,et]))+Z).replace(/\$count/mg,String.zeroPad(D+1,H.length.toString().length))+(X&&D<H.length-1?rt:"")}}}if(X=="tabs"){c=(Y+O.format(["txt"+("string"==typeof W?W:it),_])+Z).replace(/\$count/mg,H.length)}c=(tt?tt:"")+c+(nt?nt:"");if(!F){j=e("<span />");j.appendTo(n);n=j[0];j.attr({refresh:"macro",macroName:"get",params:o})}wikify((x?"{{lf_get{\n%0\n}}}<<listfiltr>>":"%0").format([e.trim(c)]),n)},refresh:function(n,r){e(n).empty();t.handler(n,"get",r.readMacroParams(),null,r)},getValues:function(e,n,r,i,s,o,u){var a,f,l,c,h,p=[],d=e.parseParams("getval",null,true),v=getParam(d,"filter",null),m=u?config.macros.ns:false,c=o?v?store.filterTiddlers(v):store.getTiddlers("title"):[{title:r}];if(u)o="";if(m){m=m?m.defaults.separator:"";l=r+m+n;m=store.getTiddlerText(l);if(m){p.push([l,m]);r=store.getTiddler(l);i="tiddler";u=null}}if(!m){for(f=0;f<c.length;f++){h=undefined;l=c[f].title;if(u||i=="field"){h=store.getValue(l,u?n:s);if(u&&h)i="field"}if(!h){if(u){h=store.getTiddlerText(l+"::"+n);if(h)i="slice";if(!h){h=store.getTiddlerText(l+"##"+n);if(h)i="section"}if(!h){h=store.getTiddlerText(n);if(h){i="tiddler"}}}else{h=store.getTiddlerText((o?l:"")+n)}}a=h&&h.length==12?Date.convertFromYYYYMMDDHHMM(h):undefined;if(a&&!isNaN(a.getMonth))h=a.formatString(t.template.dateFormat);if(h){p.push([l,h])}}}return p}};config.filters.get=function(e,t){var n=t.index==0,r=config.filters.get.delimiterRegExp.exec(t[3]),i=r?r[1]:t[3],s=r?r[2]:"",o=r?r[3]:"",u=n?store.getTiddlers("title"):e.slice();e=[];u.map(function(t){if(i&&i==t.title||!i&&(s=="??"&&store.getValue(t.title,o)||store.getTiddlerText(t.title+s+o)))e.pushUnique(t)});return e};config.filters.get.delimiterRegExp=/(.*)?(\#\#|::|\?\?)(.*)/})(jQuery)
//%/
|details|k
|''URL''|http://themes.tiddlywiki.com/monkymind.html|
! Summary
A simplicitc white theme with a horizontal MainMenu, blue highlights and no SiteTitle or SiteSubtitle.
! Preview
[img[[img[http://img.tiddlyspace.com/MonkyMind][http://themes.tiddlywiki.com/monkymind.html]]
[[StyleSheetTiddlySpace]]
/*{{{*/

#displayArea {
    min-width: 800px;
}

#sidebarSearch {
right: 10px;
width: 250px;
font-size: 0.8em;
color: white;
}

#sidebarSearch .txtOptionInput {
width: 140px;
}

#mainMenu {
color:[[ColorPalette::Background]];
}

#mainMenu ul { list-style-type: none; }

.heading {
top: 15px;
margin-bottom:20px;
z-index: 0;
clear: both;
}

div.toolbar{
z-index: 1;
top: 16px;
right: 0;
}

.toolbar svg {
height: 24px;
width: 24px;
}

.tiddler .heading .title {
border-bottom: 0;
}

.tiddler .titleText,
.tiddler .titleIcon{
    float:left;
}

.tiddler .titleText {
    margin-left:5px;
}

#mainMenu .button {
border: 1px solid transparent;
}

h1, h2, h3 {
	margin-top: 0.7em;
}
.info_source {
	margin-left: 56px;
}

.tiddler .viewer {
	margin:0;
}
.viewer .tagcloudTag {
	border:none;
	background:#ddf;
        line-height:1.2em;
}

.viewer .tagcloudTag:hover{
        background:#ccf;
}

.viewer pre {
        font-size:1em;
}

.viewer .annotation pre {
	background-color:[[ColorPalette::TertiaryPale]];
}

.viewer .table100 {
	width: 100%;
}

.viewer table,
table.twtable {
	margin: 0.8em 0;
}

.viewer .error td,
.twtable .error td {
	background-color: #fcc;
}


.viewer td, .viewer tr,
.twtable td, .twtable tr {
	vertical-align:top;
	background: white;
}

.inlineList li {
	margin-right: 10px;
	display: inline-block;
}

.right {
	float:right;
	margin:0 1em 10px 10px;
}

.justifyright {
	text-align: right;
}

.justifyfull {
	text-align: justify;
}

.serialized{
	margin:1em 1em 1em 0;
}

#searchResults #findr-buttons .button {
	background:white;
	float:right;
	margin: 2.3em 0 0 0;
	padding: 0.1em 0.5em;
}

#menuBar {
	padding: 0.3em 0;
}

#mainMenu a {
	padding: 5px 10px;
	font-size: 0.9em;
	margin: 0;
	line-height: 1em;
	display: inline-block;
}

#sidebarOptions {
margin-right: 52px;
width: 350px;
}

#sidebarOptions .tiddlyLink,
#sidebarOptions .button {
	font-size: 0.7em;
	font-weight:normal;
	float: right;
	padding: 5px 20px;
	color: #fff;
	display:inline;
	cursor: pointer;
	line-height: 1em;
	text-align: center;
	margin: 0 !important;
	display: block;
	width:auto;
	border:1px solid transparent;
}

#sidebarOptions .tiddlyLink:hover,
#sidebarOptions .tiddlyLink:active{
	color: #fff;
	border:1px solid transparent;
}

.annotation {
	display:block;
	margin:0.5em 0 0 0;
	background-color:[[ColorPalette::PrimaryPale]];
	border:none;
}

#tiddlerDisplay, #searchResults {
margin: 16px 350px 0 72px;
}

#sidebarTabs {
right: 16px;
width: 312px;
}

#sidebarTabs .tabsetWrapper .tabset {
width: 40px;
}
#sidebarTabs .tabsetWrapper .tabset .tab {
padding: 2px;
}

#sidebarTabs .tabsetWrapper .tabset .tabSelected {
padding-left:2px;
border-left-width:0;
border-bottom--width:2px;
border-color: [[ColorPalette::PrimaryLight]];
}

#sidebarTabs .tabsetWrapper .tabContents {
	border-color: [[ColorPalette::PrimaryLight]];
}

.tiddler {
	border-top-color: [[ColorPalette::PrimaryLight]];
}

.tiddler:hover {
	border-top-color: [[ColorPalette::PrimaryMid]];
}

#messageArea .button{
	
color:[[ColorPalette::Background]];
	background:transparent;
	text-decoration:none;
}

#messageArea .button:hover{
	text-decoration:underline;
}

.viewer blockquote {
	border-left: 1px solid[[ColorPalette::PrimaryMid]];
	background-color:[[ColorPalette::TertiaryPale]];
	line-height: 1.5em;
	padding-left: 0.5em;
	margin: 0.5em;
}

#messageArea {
	top: 0 !important;
	left: 30%;
	width: 30%;
}

.viewer table, table.twtable {
	border:1px solid [[ColorPalette::TertiaryLight]] !important;
}
.viewer th, .viewer thead td, .twtable th, .twtable thead td, .twtable thead tr.evenrow td{
	background:[[ColorPalette::SecondaryPale]];
	border:1px solid [[ColorPalette::TertiaryLight]] !important;
	font-weight:bold;color:[[ColorPalette::Foreground]];
}
.viewer td, .viewer tr, .twtable td, .twtable tr {
	border:1px solid [[ColorPalette::TertiaryLight]] !important;
}
.viewer tr.evenRow td, .twtable tr.oddrow td {
	background:[[ColorPalette::TertiaryPale]];
}
.viewer th .linkified .tiddlyLink {
	font-weight: bold;
	color:[[ColorPalette::PrimaryMid]];
}
.viewer th .linkified .tiddlyLink:hover {
	color:[[ColorPalette::PrimaryLight]];
}

.highlight,
.marked {
	background:[[ColorPalette::SecondaryPale]];
}

.tiddlyLink:hover .highlight,
.tiddlyLink:hover .marked {
	background:[[ColorPalette::PrimaryLight]];
}

.alert{
	color:red;
}

.viewer .listWrapper li {
	margin-top:1px;
	background:[[ColorPalette::TertiaryPale]];
	list-style-type:none;
	padding:0;
}
.viewer .listWrapper li .tiddlyLink {
	display:block;
	padding:0 4px;
}
.viewer .listWrapper li.listTitle {
	background:transparent;
}

.viewer a.bookmarklet,
.viewer span.bookmarklet {
	color:#6A6;
	font-weight:bold;
}

.viewer a.bookmarklet:hover,
.viewer span.bookmarklet:hover {
	color:#393;
	font-weight:bold;
	background:none;
}

.viewer ul.timeline li.listTitle {
	margin-left: 0;
}

.viewer ul.timeline li.listLink {
	margin-left: 1em;
	list-style-type:none;
	color:[[ColorPalette::TertiaryMid]];
}

.viewer .noTitle li.listTitle{
	display:none;
}

.fancyTimeline .listTitle{
	margin-top:5px;
	font-size:1.2em;
	color:[[ColorPalette::PrimaryLight]];
}

.source {
	float:right;
	margin-right:1em;
}

dd{
	margin-left: 1em;
}

.tiddlerCustomFields input {
	width:300px;
}

.tiddlerCustomFields .fieldName {
	width:100px;
}

.editSpaceSiteIcon .originButton img, .editSpaceSiteIcon .originButton svg {
	margin: 0;
}

.editorHeading {
	top: 16px;
}

.heading .editor input {
	padding-left:3px;
}

.tiddler .editor {
	padding: 0px;
}

.tiddler .titleBar{
	margin:0px;
}

.tiddler .heading .title {
	font-size:24px;
	line-height:24px;
}

.tiddler .infoTags .coloredLink,
.infoTags ul li a {
border-color:#ccc;
border-width:1px;
border-style:solid;
padding: 1px 3px !important;
}

.tiddler .infoTags .coloredLink:hover,
.infoTags ul li a:hover {
background:transparent !important;
border-color:transparent !important;
}

.infoTags {
max-width:70%;
margin:0;
float: left;
padding: 0 5px 3px 5px;
}

.infoTags ul {
padding-left:0;
}

.infoTags ul li {
display:inline-block;
margin-top:3px;
}

.infoTags .listTitle {
padding: 5px 5px 3px 5px;
}

.noTitle .listTitle {
display:none;
}

.tiddler .originButton div {
	display:inline;
}

.originButton img,
.originButton svg {
	vertical-align: -5%;
	margin-right: 3px;
}

.originButton .roundelLabel {
	margin-right:5px;
}

.siteIcon .label {
	padding: 0;
	color:[[ColorPalette::TertiaryMid]];
}

.tiddler .subtitle:hover {
	font-weight:normal;
	color:[[ColorPalette::TertiaryMid]];
}

.titleBar .siteIcon,
.titleBar .label {
	display:inline !important;
}

.titleBar a {
	color:[[ColorPalette::TertiaryLight]];
}

.titleBar a:hover {
	background:transparent;
	color:[[ColorPalette::PrimaryLight]];
}

.titleBar .siteIcon img {
	display:none;
}

.tiddler .titleBar span .button,
.tiddler .titleBar span .button:hover {
	border:0;
	padding:0;
	margin:0;
}

.tiddler .titleBar span a,
.tiddler .titleBar span .button, {
	font-style:normal;
	color: [[ColorPalette::PrimaryMid]] !important;
}

.tiddler .titleBar span a:hover,
.tiddler .titleBar span .button:hover {
	font-style:normal;
	color: [[ColorPalette::PrimaryLight]] !important;
}

.noTitle .listTitle{
display:none;
}

#sidebarSearch{
margin-top: 1em;
}

.tiddler img {
width:auto;
max-width:100%;
}

.preview_frame {
width:100%;
border: 1px solid [[ColorPalette::TertiaryPale]];
height:600px;
}

.itemlist .lf-list{
margin-top:1em;
}

.itemlist .lf-list > span > ul {
padding:0;
margin:0;
}

.itemlist .lf-list > span > ul > li{
list-style-type:none;
padding:0;
margin:0;
}

.lf-not: {
background:transparent;
}

.item,
.item.lf-not{
display:block;
margin-bottom:1em;
padding:1em 1em 0 1em;
background:[[ColorPalette::TertiaryPale]];
}

.item:hover{
background:[[ColorPalette::SecondaryPale]];
}

.itemtitle,
.itemsummary{
display:block;
margin:0;
}

.itemsummary{
padding:1em;
}

#sidebarSearch select{
z-index:99;
}

.coloredLink{
border:1px solid transparent;
}

.tiddler .coloredLink.tiddlyLink{
padding:0 3px !important;
margin:0 -3px !important;
}

a.coloredLink:hover,
#popup li a.coloredLink:hover,
#sidebarTabs .tabContents li a.coloredLink:hover{
color:[[ColorPalette::TertiaryDark]];
}

.homeboxes .box{
float:left;
min-width:150px;
margin: 0 5px 1em 0;
padding:0 10px 10px 0;
}

.homeboxes .box ul,
.homeboxes .box li{
list-style-type:none;
margin:0;
padding:0;
}

.homeboxes .box ul{
margin:5px 0 0 0;
}

.homeboxes .box li{
margin:0 0 0 5px;
}

.homeboxes .box li:before
{
color:#999;
content:"» ";
}

.viewer .homeboxes a{
font-size:0.9em;
}

.viewer .homeboxes a.button{
margin:0;
}

.listing.lf-found {
background: #FFF6F6;
padding-bottom: 1em;
}

.tiddler .icon{
width:16px;
vertical-align:-3px;
}

.tiddler .iconTable img{
width: 64px;
}

.tiddler .rightImg img{
margin:5px 0 10px 1em;
}

.disqus {
width:100%;
height:300px;
overflow:auto;
}

.tiddler .tiddlerIcon a,
.tiddler .tiddlerIcon .coloredLink{
background:none !important;
padding:0 !important;
border:0 !important;
}

.tiddler .tiddlerIcon img{
width: 36px;
float: left;
clear:left;
margin: 2px 7px 0 0;
}

.btn-history-none,
.popup .btn-history-current{
color:#ccf !important;
cursor:default !important;
}

.viewer .tsList > .scanResults > ul,
.viewer .tsList > .scanResults > ul> li{
margin:0;
padding:0;
}

.tsBox{
clear:both;
display:block;
padding-top: 1em;
}

.spaceName.lf-found{
margin:0.5em 0;
}

.tsIcon{
float:left;
margin-right:10px;
width:50px;
text-align:right;
}

.tsLink{
float:left;
}

.tsInfo{
display:block;
clear:both;
padding:1em;
background:[[ColorPalette::TertiaryPale]];
}

.tsBox:hover .sinfo{
background:[[ColorPalette::SecondaryPale]];
}

.item .lf-not {
background:transparent !important;
color:#999;
}

.viewer .linkified.lf-not {
  -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";   /* IE 8 */
  filter: alpha(opacity=50); /* IE 5-7 */
  -moz-opacity: 0.5;   /* Netscape */
  -khtml-opacity: 0.5;  /* Safari 1.x */
  opacity: 0.5;   /* Good browsers */
}

.linkified .highlight:hover{
  color: white;
}

.lf-preserve br {
  display:block !important;
}

.viewer .tsList .scanResults > ul{
margin:0;
padding:0;
}

.discuss_button a{
    color:[[ColorPalette::Foreground]] !important;
}

.discuss_button a:hover{
&nbsp; &nbsp; color:[[ColorPalette::SecondaryDark]] !important;
&nbsp; &nbsp; background-color: [[ColorPalette::SecondaryPale]] !important;
}

.discuss_button{
    padding:1em 3% 1em 3% !important;
    width:94% !important;
}

.discuss_img img{
    width:32px;
}

dd:before{
    content:"» "
}

.hide{
    visibility:hidden;
}

.itemlist .lf-list > ul,
.itemlist .lf-list > ul > li{
list-style-type:none;
margin:0;
padding-left:0;
}
/*}}}*/
|details|k
|''URL''|http://www.TiddlyTools.com/#ConfirmSavePlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-03-15|
|''Version''|1.1.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ConfirmSavePlugin|
!Summary
if tiddlers are being edited, or there are no unsaved changes, ask before saving
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ConfirmSavePlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ConfirmSavePlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#FramedLinksPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-11-15|
|''Version''|1.1.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#FramedLinksPlugin|
!Summary
clicking an external link opens an IFRAME following the link instead of opening a new tab/window
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#FramedLinksPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#FramedLinksPlugin
<html><iframe src="$1" class="preview_frame"></html>
|details|k
|''URL''|http://www.minormania.com/tiddlylock/tiddlylock.html|
|''Author''|	Richard Hobbis|
|''Version''|1.2|
|''Released''|2010-07-06|
|''Requires''|tw core version / plugin dependencies|
|''Source''|http://repository.com/#SomePlugin|
! Summary
Automatically locks and unlocks the TiddlyWiki as required, allowing multiple users to edit the TiddlyWiki without fear of overwriting other users' changes.
! Examples
! Details
{{annotation{
Doesn't work with newer browsers due to recent __browser__ restrictions for write access to the local filesystem...
https://groups.google.com/d/msg/tiddlywiki/osA8ZEb7UNo/CeOfnMYWyecJ
}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#ShowTabsForTags|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-28|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ShowTabsForTags|
!Summary
generate a tabbed display for tiddlers with a specified set of tags
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ShowTabsForTags]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ShowTabsForTags
|details|k
|''URL''|http://tiddlywiki.squize.org#OpenTiddlersMacro|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2007-01-03|
|''Version''|0.2 |
|''CoreVersion''||
|''Requires''|~TW2.08+|
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#OpenTiddlersMacro|
!Summary
*Allows creation of tiddlyLinks that open multiple tiddlers.
*Also useful for creating links to shadowTiddlers, which if normally created are not in bold.

!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#OpenTiddlersMacro]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#OpenTiddlersMacro
|details|k
|''URL''|http://www.TiddlyTools.com/#TiddlerIconsPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-10-02|
|''Version''|2.1.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#TiddlerIconsPlugin|
!Summary
display icons next to tiddler title, based on tiddler's attributes (tags, fields, slices, etc)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TiddlerIconsPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#TiddlerIconsPlugin
|details|k
|''URL''|http://tiddlywiki.squize.org#TableSortingPlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2008-01-25|
|''Version''|2.02|
|''CoreVersion''|2.2.3|
|''Source''|http://tiddlywiki.squize.org#TableSortingPlugin|
!Summary
Dynamically sort tables by clicking on column headers
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#TableSortingPlugin]]
:see the author's info tiddler for a demo
!Preview
[img[http://img.tiddlyspace.com/TableSortingPlugin_1][http://tiddlywiki.squize.org#TableSortingPlugin]]
!Details
;your table needs a header row
:{{{|h}}} denotes a header row 
:{{{|Name|Phone Number|Address|h}}}
;give your table the class 'sortable'
:{{{|k}}} denotes a class name being assigned to the table
<html><pre>
|sortable|k
|Name|Phone Number|Address|h
</pre></html>
;disallow sorting by a column
:place {{{<<nosort>>}}} in it's header
;automatically sort a table by a column
:place {{{<<autosort>>}}} in the header for that column
;to sort automatically but in reverse order
:use {{{<<autosort reverse>>}}}
<<tag Media Plugins>>that facilitate working with audio, video, and images, e.g. by integrating with webservices offering them...
Javascript is the scripted programing language all modern browsers speak and thus allow for a major chunk of dynamic features to the modern internet experience.

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
|details|k
|''URL''|http://tiddlywiki.squize.org#SplashScreenPlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-20|
|''Version''|0.21 |
|''CoreVersion''||
|''Requires''|~TW2.08+|
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#SplashScreenPlugin|
!Summary
Provides a simple splash screen that is visible while the TW is loading.

!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#SplashScreenPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#SplashScreenPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#MiniBrowserPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-02-09|
|''Version''|1.5.3|
|''CoreVersion''|2.2|
|''Requires''|PlayerPlugin (optional, recommended)|
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#MiniBrowserPlugin|
!Summary
embedded browser-in-browser with favorites lists and media support
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#MiniBrowserPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#MiniBrowserPluginInfo
R0lGODlhAQEBAYIAMTRmrJS23HSezOzy/DxqtMza7Iyu1Pz+/CwAAAAAAQEBAQID/kiw3P4wykmrvTjrzbv/iyKMZGmeaKqubOu+cCzPdG3f44LvfO//wKCwpRsaj8ikcqkqMp/QqHRaclKv2KxWZt16v2BqN0wum3/js3rNZqXb8Lj6La/btfS7fs/M8/+AQH6BhIU0g4aJik0Ai46PRI2Qk5Q5kpWYi4iZnHKbnaBrn6GkZKOlqFunqaxil62wpq+xtKqztbiuubtXq7y/O77Aw4e3xMdoxsjLOMLMzyfO0NMC0tTP1tfL2drH3N3D3+C/4uO75ea46Om06+yw7u+s8fKo9PWk9/ig+vuc/f4wAQxIaSBBSAYPOkqoUBHDhoYeQiQkcSKgihb5YMyo/mcjRzseP3pSJlIdyZLtTqKEp3LlvJYu7cGMmW8mTX42b/7LqVMgz54FfwJFKHTowqJGHSJNGnEpU4pOn16MKlUj1aodr2IFqXXrSK84wXYKKRYK2bJ9uqKdo3atmbNukcCNa2QuXSF27wpqq9dL3r49/gIOxncwFsGGbSBOXIwxVMeBFkOGIXmyi8qW3RTOvAQz5xSeP0fbLPpI6NIkTqOuRnp1ENWoYZd+GKC27du4c+vezbu379/AgwsfTpy4gSgPBxxYzry58+fQo0ufTr269evYs2vPXgB5axTKt4sfT768+fPku5v9fiI8+vfw48ufv1z9k+T08+vfz7+5/v20UbjX34AEFsiddwEaqOCCDDL3X2fsmSBggxRWON+DSuBn4YYcnodhEhp2KOKI130oV4QlTEjiiizWhyAUKrYoY4cmmoYiCTHOqCOFNdZ14wg57iikgT0OEeKQSCpYJF4/ChBkklDSt+RrTT4Z5ZXvTblXglh2KeWLT1jp5ZjaaZkMl2SmWZ6ZPhyp5psHrocmnHRax2ZgVdapZ3V38uDmnoA6CCYTYgb6Zp+EzWlooIg2k+eiizZ6w5+Q1impYo9WCuilNVCq6aGDLlHop1hy2hiMpO5p6gyepjrmqlxk6iqocqI6K5ywxtDqrVfmSpmsvL4aqhKjBrujry/Q/lbcssw26+yz0Dp7XK2usSGbaNd+li1n22bWrWXfThYuZOM6Vi5j5yaWrmHrDtYuYO/2Fa9e895VL133xpWvW/uu1S9a/5YVsFgDg1WwVwdvlTBWC1fVsFQPPxUxUxMnVbFRFw+VMVAb99SxTh/fFDJNI8dUsksnr5QySiuX1LJIL38UM0czZ1SzRTdPlDNEOzfUs0I/HxQ0QUMHVLQ/R++TND5L19O0PE+/EzU7U6dTtTlXj5M1OFt307U2X18TNjVjT1M2NGdj02S1na7NNqtuv61r3HInS3fdkeD91t16M9K3LH+HkTYzg2/Dd+AmFI6M4t4cjnhqjj/OmuS2NlCOR+SPM06M5uFgjjjnwIBOjueBi86L6eeQ/jfqubBukuVZuF6L7CmBYPvtuOeu++68925BAgA7
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="450 366 38 57"
width="30" height="30">
	<g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1">
		<g>
			<path d="M 452.1094 421.2422 L 450 421.2422 L 450 423 L 487.9688 423 L 487.9688 421.2422 L 485.8595 421.2422 
			L 485.8595 377.29688 L 487.9688 377.29688 L 487.9688 375.53906 L 485.8595 375.53906 
			C 485.8595 375.53906 481.12463 371.59341 473.02023 370.52802 C 472.6824 368.9689 471.72098 366.75 468.9844 366.75 
			C 466.24783 366.75 465.28638 368.9689 464.94864 370.52802 
			C 456.84418 371.59341 452.1094 375.53906 452.1094 375.53906 L 450 375.53906 L 450 377.29688 L 452.1094 377.29688 
			Z M 467.12247 370.32086 L 467.12247 370.32086 C 467.3805 369.42395 467.90762 368.50781 468.9844 368.50781 
			C 470.0612 368.50781 470.5883 369.42395 470.84634 370.32086 
			C 470.24136 370.2848 469.62054 370.26562 468.9844 370.26562 
			C 468.34827 370.26562 467.72748 370.2848 467.12247 370.32086 Z M 454.21875 420.92804 L 454.21875 420.92804 
			C 455.46762 420.42087 456.32816 419.35281 456.32816 418.11716 L 456.32816 377.29688 L 458.4375 377.29688 
			L 458.4375 421.2422 L 454.21875 421.2422 Z M 460.5469 420.92804 L 460.5469 420.92804 
			C 461.79578 420.42087 462.65625 419.35281 462.65625 418.11716 L 462.65625 377.29688 L 464.76566 377.29688 
			L 464.76566 421.2422 L 460.5469 421.2422 Z M 466.87503 420.92804 L 466.87503 420.92804 
			C 468.1239 420.42087 468.9844 419.35281 468.9844 418.11716 L 468.9844 377.29688 L 471.09378 377.29688 
			L 471.09378 421.2422 L 466.87503 421.2422 Z M 473.2032 420.92804 L 473.2032 420.92804 
			C 474.45203 420.42087 475.31256 419.35281 475.31256 418.11716 L 475.31256 377.29688 L 477.4219 377.29688 
			L 477.4219 421.2422 L 473.2032 421.2422 Z M 479.5313 420.92804 L 479.5313 420.92804 
			C 480.78018 420.42087 481.64066 419.35281 481.64066 418.11716 L 481.64066 377.29688 L 483.75006 377.29688 
			L 483.75006 421.2422 L 479.5313 421.2422 Z" fill="black" class="glyph"/>
		</g>
	</g>
</svg>
|details|k
|''URL''|http://www.TiddlyTools.com/#CompareTiddlersPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-07-26|
|''Version''|1.1.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#CompareTiddlersPlugin|
!Summary
show color-coded differences between two selected tiddlers
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#CompareTiddlersPlugin]]
:» see the author's info tiddler for examples
! Preview
[img[http://img.tiddlyspace.com/CompareTiddlersPlugin_1][http://www.TiddlyTools.com/#CompareTiddlersPlugin]]
!Details
None yet. Please review...
http://www.TiddlyTools.com/#CompareTiddlersPlugin
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
/***
|''Name''|TiddlyWebConfig|
|''Description''|configuration settings for TiddlyWebWiki|
|''Author''|FND|
|''Version''|1.3.2|
|''Status''|stable|
|''Source''|http://svn.tiddlywiki.org/Trunk/association/plugins/TiddlyWebConfig.js|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''Requires''|TiddlyWebAdaptor ServerSideSavingPlugin|
|''Keywords''|serverSide TiddlyWeb|
!Code
***/
//{{{
(function($) {

if(!config.extensions.ServerSideSavingPlugin) {
	throw "Missing dependency: ServerSideSavingPlugin";
}
if(!config.adaptors.tiddlyweb) {
	throw "Missing dependency: TiddlyWebAdaptor";
}

if(window.location.protocol != "file:") {
	config.options.chkAutoSave = true;
}

var adaptor = tiddler.getAdaptor();
var recipe = tiddler.fields["server.recipe"];
var workspace = recipe ? "recipes/" + recipe : "bags/common";

var plugin = config.extensions.tiddlyweb = {
	host: tiddler.fields["server.host"].replace(/\/$/, ""),
	username: null,
	status: {},

	getStatus: null, // assigned later
	getUserInfo: function(callback) {
		this.getStatus(function(status) {
			callback({
				name: plugin.username,
				anon: plugin.username ? plugin.username == "GUEST" : true
			});
		});
	},
	hasPermission: function(type, tiddler) {
		var perms = tiddler.fields["server.permissions"];
		if(perms) {
			return perms.split(", ").contains(type);
		} else {
			return true;
		}
	}
};

config.defaultCustomFields = {
	"server.type": tiddler.getServerType(),
	"server.host": plugin.host,
	"server.workspace": workspace
};

// modify toolbar commands

config.shadowTiddlers.ToolbarCommands = config.shadowTiddlers.ToolbarCommands.
	replace("syncing ", "revisions syncing ");

config.commands.saveTiddler.isEnabled = function(tiddler) {
	return plugin.hasPermission("write", tiddler) && !tiddler.isReadOnly();
};

config.commands.deleteTiddler.isEnabled = function(tiddler) {
	return !readOnly && plugin.hasPermission("delete", tiddler);
};

// hijack option macro to disable username editing
var _optionMacro = config.macros.option.handler;
config.macros.option.handler = function(place, macroName, params, wikifier,
		paramString) {
	if(params[0] == "txtUserName") {
		params[0] = "options." + params[0];
		var self = this;
		var args = arguments;
		args[0] = $("<span />").appendTo(place)[0];
		plugin.getUserInfo(function(user) {
			config.macros.message.handler.apply(self, args);
		});
	} else {
		_optionMacro.apply(this, arguments);
	}
};

// hijack isReadOnly to take into account permissions and content type
var _isReadOnly = Tiddler.prototype.isReadOnly;
Tiddler.prototype.isReadOnly = function() {
	return _isReadOnly.apply(this, arguments) ||
		!plugin.hasPermission("write", this);
};

var getStatus = function(callback) {
	if(plugin.status.version) {
		callback(plugin.status);
	} else {
		var self = getStatus;
		if(self.pending) {
			if(callback) {
				self.queue.push(callback);
			}
		} else {
			self.pending = true;
			self.queue = callback ? [callback] : [];
			var _callback = function(context, userParams) {
				var status = context.serverStatus || {};
				for(var key in status) {
					if(key == "username") {
						plugin.username = status[key];
						config.macros.option.propagateOption("txtUserName",
							"value", plugin.username, "input");
					} else {
						plugin.status[key] = status[key];
					}
				}
				for(var i = 0; i < self.queue.length; i++) {
					self.queue[i](plugin.status);
				}
				delete self.queue;
				delete self.pending;
			};
			adaptor.getStatus({ host: plugin.host }, null, _callback);
		}
	}
};
(plugin.getStatus = getStatus)(); // XXX: hacky (arcane combo of assignment plus execution)

})(jQuery);
//}}}
{{{
|details|k
|''URL''|http://url.to.theme.specific.documentation.org|
|''Author''|[Firstname Lastname (Alias)|
|''Version''|theme version|
|''Released''|YYYY-0MM-0DD|
|''Requires''|tw core version / plugin dependencies|
|''Source''|http://url.to.theme.com/download.html#SomeTheme|
! Summary
A few short words on the theme in terms of key features and benefits.
! Examples
; [[external link to example]]
: some info on what's special about this example
; [[http://example.tiddlyspace.com]]
: do not demonstrate here!
! Preview
[img[http://img.tiddlyspace.com/ThemeName]]
! Details
Use cases and how it works.
}}}
!Guidelines
; Naming Conventions
: <<tiddler ThemeName...>>
; Tagging Conventions
: Tag a [[listed theme|Theme]]...
:* always with <<tag Theme>>
:* with the Author using [[Firstname Lastname]] — see  <<tag Author>>
:* with [[Outdated]] if it no longer works with the current core release
:* with any corresponding<<tag Themes "theme category">>, should __not__ be multiple
{{annotation{Please, do not arbitrarily create new categories. Discuss first.}}}
!Theme Template Preview
|details|k
|''URL''|http://url.to.theme.specific.documentation.org|
|''Author''|[Firstname Lastname (Alias)|
|''Version''|theme version|
|''Released''|~YYYY-0MM-0DD |
|''Requires''|tw core version / plugin dependencies|
|''Source''|http://url.to.theme.com/download.html#SomeTheme|
! Summary
A few short words on the theme in terms of key features and benefits.
! Examples
; [[external link to example]]
: some info on what's special about this example
; [[http://example.tiddlyspace.com]]
: do not demonstrate here!
! Preview
[img[http://img.tiddlyspace.com/ThemeName]]
! Details
Use cases and how it works.
<<tiddler TemplateAlias with: "Dave Gifford">>
|details|k
|''URL''|http://www.TiddlyTools.com/#SlideshowTimer|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-30|
|''Version''|2.0.0|
|''CoreVersion''||
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SlideshowTimer|
!Summary
slideshow countdown timer closes current tiddler and opens another one in its place
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SlideshowTimer]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SlideshowTimer
Otherwise hidden tiddlers for configuration...
{{noTitle{<<tagging>>}}}<<listfiltr>>
|details|k
|''URL''|http://tiddlywiki.squize.org#FontSizePlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-27|
|''Version''|1.0|
|''CoreVersion''||
|''Requires''|~TW2.x|
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#FontSizePlugin|
!Summary
Resize tiddler text on the fly. The text size is remembered between sessions by use of a cookie.
You can customize the maximum and minimum allowed sizes.
(only affects tiddler content text, not any other text)

Also, you can load a TW file with a font-size specified in the url.
Eg: http://tw.lewcid.org/#font:110

!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#FontSizePlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#FontSizePlugin
<<tag Macro Macros>>provide dynamic functions in TiddlyWiki which itself provides a number of [[core macros|http://tiddlywiki.org#CoreMacros]] — many more are provided by third-party plugins.

Macros are executed when the tiddler containing the macro call is rendered. To use a macro, simply add it in your wikitext using the following markup:
{{{<<macroName [parameters]>>}}}

For more information see [[macros @ tiddlywiki.org|http://tiddlywiki.org/#Macros]].

{{noTitle{<<tagging>>}}}<<listfiltr>>
|details|k
|''URL''|http://www.TiddlyTools.com/#ShowAge|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-23|
|''Version''|1.0.0|
|''CoreVersion''||
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ShowAge|
!Summary
show elapsed years/months/days between two dates
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ShowAge]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ShowAge
The names people chose...{{noTitle{<<tagging>>}}}
...and also [[a neat plugin|AliasPlugin...]] by [[Eric Shulman]]
<<tag Quotes>>of people speaking about TiddlyWiki...
|details|k
|''URL''|[[TiddlyWiki Hanout #14|https://plus.google.com/109308865556494599029/posts/3xxC82WkbB8]]|
|''Author''|[[Eric Shulman]]|
|''Date''|2013-09-25|
! Summary
I think of tiddlywiki in a number of ways....
*it's a documentation tool
*its a database (sort of)
*it's an ad-hoc query (discovery) system
Own it like a document, use it like a website.
//{{{
config.options.txtFadeTimer = 5000; // 5 seconds 

var displayMessageFADEOUT=displayMessage;
displayMessage=function(text,linkText)
{
	displayMessageFADEOUT.apply(this, arguments);
	ti=config.options.txtFadeTimer;
	if(ti>0)setTimeout(clearMessage,ti); 
}
//}}}
|details|k
|''URL''|http://tiddlywiki.squize.org#MenuEditPlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-20|
|''Version''|0.2|
|''CoreVersion''||
|''Requires''|~TW2.x|
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#MenuEditPlugin|
!Summary
Adds 'doubleclick to edit source' to the MainMenu, SideBarOptions, and SideBarTabs

!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#MenuEditPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#MenuEditPlugin
|details|k
|''URL''|http://tiddlywiki.squize.org#writeItMacro|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-19|
|''Source''|http://tiddlywiki.squize.org#writeItMacro|
!Summary
{{annotation{
Instead of writeItMacro, use the core {{{<<tiddler macro>>}}} with [[evaluated parameters|http://tiddlywiki.org/#%5B%5BEvaluated%20Parameters%5D%5D]].
}}}
Much like @evalify, this is a very simple macro that evaluates the first given parameter and wikifies the output accordingly. Also ships with a function called ''getTiddlyWikiDir'' to identify the working directory.
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#writeItMacro]]
:» see the author's info tiddler for examples
!Details
[[Markup examples...|http://tiddlywiki.squize.org#writeItMacro]]
{{{
<<writeIt {{
    '[[Current TW Directory|' +
    getTiddlyWikiDir() +
    ']]'
}}>>
}}}

{{{
<<writeIt {{
    'TW Last modified: ' + 
    (new Date(document.lastModified)).formatString("DD/MM/YYYY")
}}>>
}}}
|details|k
|''URL''|http://tiddlywiki.squize.org#IconMacro|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-12-20|
|''Version''||
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#IconMacro|
!Summary
undefined
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#IconMacro]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#IconMacro
/***
|''Name''|DiscussPlugin|
|''Author''|[[Tobias Beer|http://tobibeer.tiddlyspace.com]]|
|''Description''|outputs the (modified) html representation with disqus in an iframe for a tiddler on TiddlySpace|
|''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/DiscussPlugin.min.js|
|''Documentation''|http://discuss.tiddlyspace.com|
|''Version''|0.9.3 (2013-09-06)|
|''~CoreVersion''|2.5.2|
|''Requires''|TiddlySpace / TiddlyWeb|
|''License''|Creative Commons 3.0|
***/
// /%
(function(e){config.macros.discuss={config:{always:false,tplSlider:'Show comments for \'\'"""%0"""\'\'  """//""" <<discuss count [[%0]]>>',tipSlider:"Click to show comments for %0...",url:"",header:"{{discuss_header{\nLeave a comment at tiddler [[%0]]...\n}}}",css:{width:"100%",height:"400px",border:"0",marginTop:"1em"}},handler:function(t,n,r,i,s,o){var u,a,f,l=this.config,c=o?o.title:"",h=s.parseParams("anon",null,true),p=getParam(h,"always",l.always),d=store.getTiddlerText(getParam(h,"template",""));if(r[0]=="count"){this.count(r[1],t);return}if(!c||!store.getTiddler(c))return;a=e('<div class="discuss_panel"/>').attr({url:getParam(h,"url",l.url)+"/"+encodeURIComponent(c),title:c}).css("marginTop","1em").appendTo(e(t));if(p){wikify(l.header.format([c]),a[0]);this.render(a[0])}else{u=e("<div/></div>").attr({"class":"button discuss_button",title:l.tipSlider.format([c])}).css({cursor:"pointer",padding:"0.5em 1%",width:"98%"}).appendTo(a).click(this.show);wikify((d?d:l.tplSlider).format([c]),u[0])}},render:function(t,n){var r=config.macros.discuss.config,i=e(t).closest(".discuss_panel");e("<iframe/>").hide().css(r.css).attr({src:i.attr("url")}).appendTo(i).slideDown()},show:function(t){console.log("click");var n=e(this),r=e(resolveTarget(t||window.event));if(!r.is(".discuss_button, .discuss_count")&&r.is("a"))return true;config.macros.discuss.render(n[0],true);n.remove();return false},count:function(t,n){config.extensions.tiddlyweb.getStatus(function(){var r,i=config.extensions.tiddlyspace.currentSpace.name,s=config.extensions.tiddlyspace.getHost(config.extensions.tiddlyweb.status.server_host,i);e("<a/>").attr({"class":"discuss_count","data-disqus-identifier":t,href:s+"/"+encodeURIComponent(t)+"#disqus_thread"}).appendTo(n);r=document.createElement("script");r.async=true;r.type="text/javascript";r.src="http://"+i+"-tiddlyspace.disqus.com/count.js";console.log(r);(document.getElementsByTagName("HEAD")[0]||document.getElementsByTagName("BODY")[0]).appendChild(r)})}}})(jQuery)
// %/
Created a bunch of formatters and adapters to other wikis...
» [[martinswiki.com @ web.archive.org|http://web.archive.org/web/20130613115146/http://martinswiki.com]]
|details|k
|''URL''|http://themes.tiddlywiki.com/haemoglobin.html|
! Summary
A light theme with red, blood-thirsty highlights and a horizontal MainMenu.
! Preview
[img[[img[http://img.tiddlyspace.com/Haemoglobin][http://themes.tiddlywiki.com/haemoglobin.html]]
|details|k
|''URL''|http://www.TiddlyTools.com/#PasteUpHelperPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2012-01-30|
|''Version''|1.1|
|''CoreVersion''|2.5|
|''Requires''|EditSectionPlugin, PasteUpPlugin|
|''Type''|template|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#PasteUpHelperPlugin|
!Summary
enhanced popup editor template used by PasteUpHelperPlugin
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#PasteUpHelperPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#PasteUpHelperPlugin
!Summary
Created by [[Dave Gifford]], TiddlyVault guides you through markup and plugins...
» http://tiddlyvault.tiddlyspot.com
!Details
<<tiddler iframe with: "http://tiddlyvault.tiddlyspot.com">>
|details|k
|''URL''|http://www.TiddlyTools.com/#HideTiddlerToolbar|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-03-19|
|''Version''|2.0.2|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#HideTiddlerToolbar|
!Summary
hide a tiddler's toolbar (menu commands)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#HideTiddlerToolbar]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#HideTiddlerToolbar
<<tag Transclusion Transclusions>>can be used generate program-driven output, embedded in specific tiddler content (like an inline script or a plugin-defined macro).

Transclusions are invoked by using the following syntax...
{{{<<tiddler TiddlerName with: param param param ...>>}}}

The 'param' values are automatically inserted in place of any 'substitution markers' ("$1" through "$9") that are embedded in the transcluded content.  This allows you to use the transclusion as if it was a macro function: passing in parameter values and generating enhanced output in response.

For more information see [[transclusion @ tiddlywiki.org|http://tiddlywiki.org/#Transclusion]].

{{noTitle{<<tagging>>}}}<<listfiltr>>
|details|k
|''URL''|http://www.TiddlyTools.com/#MicroCalc|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-27|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#MicroCalc|
!Summary
simple calculator using javascript eval() function
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#MicroCalc]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#MicroCalc
|details|k
|''URL''|http://www.TiddlyTools.com/#ShowPlugins|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-11|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ShowPlugins|
!Summary
generates a report of all installed plugins in a ~PluginInfo shadow tiddler
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ShowPlugins]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ShowPlugins
A number of [[plugin|Plugins]] and [[app|Apps]] [[authors|Author]] have significantly increased the capabilities of TiddlyWiki over the years. Click on any name in the list below to get to a reference of their plugins in this space.
A [[SiteIcon|SiteIcon tiddler]]@glossary helps provide some identity to your space.  Ideally it'd be a square and a minimum of 48*48 pixels size.  You can upload your site icon using the uploader below.

<<binaryUploadPublic title:SiteIcon>>
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
|details|k
|''URL''|http://tiddlywiki.squize.org#HoverMenuPlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-12-20|
|''Version''|1.11|
|''CoreVersion''||
|''Requires''|~TW2.x|
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#HoverMenuPlugin|
!Summary
Provides a hovering menu on the edge of the screen for commonly used commands, that scrolls with the page.

!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#HoverMenuPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#HoverMenuPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#OpenAllTiddlers|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-26|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#OpenAllTiddlers|
!Summary
create a link to open ALL tiddlers in the document
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#OpenAllTiddlers]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#OpenAllTiddlers
|details|k
|''URL''|http://www.TiddlyTools.com/#CheckboxPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-01-09|
|''Version''|2.4.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Source''|http://www.TiddlyTools.com/#CheckboxPlugin|
!Summary
Add checkboxes to your tiddler content
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#CheckboxPluginInfo]]
:» see the author's info tiddler for examples
!Details
This plugin extends the TiddlyWiki syntax to allow definition of checkboxes that can be embedded directly in tiddler content. Checkbox states are preserved by either...
* setting/removing tags on specified tiddlers
* setting custom field values on specified tiddlers
* saving to a locally-stored cookie ID
* automatically modifying the tiddler content (deprecated)
When an ID is assigned to the checkbox, it enables direct programmatic access to the checkbox DOM element, as well as creating an entry in TiddlyWiki's config.options[ID] internal data. In addition to tracking the checkbox state, you can also specify custom javascript for programmatic initialization and onClick event handling for any checkbox, so you can provide specialized side-effects in response to state changes.
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
/***
<<importer>>
***/
//{{{
(function($){

//define get macro
config.macros.importer = {
  //the macro handler
  handler: function (place, macroName, params, wikifier, paramString, tiddler) {
    createTiddlyButton(place,'Now!','Click to import now',this.importer,'button');
  },
  importer: function (){
    var nju, old, out = '', t, ti, tid,txt,tgs,
      tids = store.getTiddlerText('Import').split('----');

    for(t = 0; t < Math.min(3000, tids.length); t++){
      tid = $.trim(tids[t]);
      if(!tid)continue;
      firstRow = tid.substr(0, tid.indexOf('\n')).split('|');
      ti=firstRow[0];
      tgs=(firstRow[1] || '').readBracketedList();
      old = store.getTiddler(ti);
      if(old){
        out += '\n* [[' + ti + ']]';
      } else {
        txt = tid.substr( tid.indexOf('\n') + 1);
        nju = new Tiddler(ti);
        nju.title = ti;
        nju.text = txt;
        nju.tags = tgs;
        nju.modifier = 'tobibeer';
        nju.modified = new Date();
        nju.fields = merge({}, config.defaultCustomFields);
        
        console.log(tids);
        console.log(nju);

        console.log('Now, trying to save '+ ti);
        nju = store.saveTiddler(nju);

        console.log('Yay, it finally worked! :o)');

        autoSaveChanges(null, [nju]);
      }
    }
    if(out){
      wikify('\n\nThe following tiddlers already existed...' + out , $('<div/>').insertAfter($(this))[0] );
    }
  }
}
})(jQuery);
//}}}
Useful tools like [[SimpleSearchPlugin...]] or a table of contents plugin...
» http://devpad.tiddlyspot.com
|details|k
|''URL''|http://tiddlywiki.abego-software.de/#%5B%5BAutoRefreshPlugin%20Documentation%5D%5D|
|''Author''|[[Udo Borowski]]|
|''Released''|2008-06-05|
|''Version''|1.0.1 (2007-01-20)|
|''CoreVersion''|2.1.3|
|''Source''|http://tiddlywiki.abego-software.de/#AutoRefreshPlugin|
!Summary
A tiddler containing the {{{<<autoRefresh...>>}}} macro is automatically refreshed (re-painted) whenever a tiddler changes.
!Examples
; [[plugin info tiddler|http://tiddlywiki.abego-software.de/#%5B%5BAutoRefreshPlugin%20Documentation%5D%5D]]
:» see the author's info tiddler for examples — or details below
!Details
Add this macro to a tiddler when its content depends on another tiddlers, e.g. when using [[ForEachTiddlerPlugin...]] or [[PartTiddlerPlugin...]].

''Usage''
{{{
<<autoRefresh [observeTiddler: tiddler ...]>>
}}}
{{{observeTiddler}}}
» (optional) when specified the refresh will only happen when one of the tiddlers specified is changed.
» when no "observerTiddler" is specified every tiddler change triggers a repaint / refresh

''Example: Keep forEachTiddler List up-to-date''
{{{
<<forEachTiddler where 'tiddler.title.startsWith("function")'>>
<<autoRefresh>>
}}}
The tiddler lists all tiddlers that start with "function" using the [[ForEachTiddlerPlugin...]]. Adding the {{{<<autoRefresh>>}}} macro, the list is automatically updated whenever a tiddler is changed (e.g. when a new "function..." tiddler is added or an existing one is deleted).

''Example: Always display most recent part content''
Assume the tiddler ''Example'' has this content...
{{{
!Topics
<<tiddler Summary/Topics>>
!Authors
<<tiddler Summary/Authors>>
<<autoRefresh observeTiddler: Summary>>
}}}
Thus, ''Example'' displays the text of the two parts ''Topics'' and ''Authors'' of the tiddler ''Summary'' using [[PartTiddlerPlugin...]]. To ensure that always the latest content of these parts is displayed, i.e. even when the ''Summary'' changes after ''Example'' is loaded, add {{{<<autoRefresh observeTiddler: Summary>>}}} to the tiddler.
|details|k
|''URL''|http://www.TiddlyTools.com/#AdvancedOptionsPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-07-24|
|''Version''|1.2.0|
|''CoreVersion''|2.3|
|''Requires''||
|''Type''|plugin|
|''Source''|http://www.TiddlyTools.com/#AdvancedOptionsPlugin|
!Summary
automatically add plugin-defined options to the [[AdvancedOptions]] shadow tiddler
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#AdvancedOptionsPlugin]]
: see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#AdvancedOptionsPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-12-15|
|''Version''|1.9.6|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
!Summary
Insert Javascript executable code directly into your tiddler content.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#InlineJavascriptPluginInfo
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
	<title>Account</title>
	<link href="/bags/common/tiddlers/profile.css" type='text/css' rel='stylesheet' >
	<link href="/bags/common/tiddlers/admin.css" type='text/css' rel='stylesheet' >
	<link href="/bags/common/tiddlers/jquery-ui.custom.css" type='text/css' rel='stylesheet' >
</head>
<body>

<div id="container">
	<div class="main section">
		<a class="app" href="/">home</a>
		<div class="left">
		<div id="siteiconArea">
		<h2>User Icon</h2>
		<div>
			<img id="siteicon" class="siteicon">
			<form id="upload" method="POST" enctype="multipart/form-data">
				<input type="hidden" name="title" value="SiteIcon" />
				<input type="hidden" name="tags" value="excludeLists">
				<input type="hidden" name="csrf_token" class="csrf" />
				<input type="file" name="file" accept="image/*" />
				<input type="submit" value="upload" />
			</form>
			<div id="dropzone">Drop file here
				<img class="notloading" src="/bags/common/tiddlers/ajax-loader.gif" alt="submitting SiteIcon" />
			</div>
		</div>
		</div>
		<h2>Find Space</h2>
		<form class="spaceSearch">
			<input class="inputBox" type="text" placeholder="find space" />
			<a href="http://docs.tiddlyspace.com/What%20is%20a%20Space%3F" class="help"
				title="What is a space?">What is a space?</a>
			<button>view all</button>
		</form>
		<div class='list-container'>
			You are a member of the following spaces:
			<ul class='ts-space-search'>
			</ul>
		</div>
		<h2>Create New Space</h2>
		<form class="ts-spaces">
			<input class="inputBox" type="text" name="spacename" placeholder="space name"><span class="hostSuffix">.tiddlyspace.com</span>
			<input type="submit" value="Create Space" />
		</form>
		</div>
		<div class="right">
		<h2>Change Password</h2>
		<form class="ts-password">
			<input class="inputBox" placeholder="existing password" type="password" name="password">
			<input class="inputBox" placeholder="new password" type="password" name="new_password">
			<input class="inputBox" placeholder="new password"	type="password" name="new_password_confirm">
			<input type="submit" value="Change password">
		</form>
		<h2>OpenID</h2>
		<h3>Why OpenID?</h3>
		<a href="http://openid.net/"><img src="/bags/common/tiddlers/openid.png" alt="openid" ></a><br />
		Use just one username and password across hundreds of OpenID-enabled sites.<br />
		It's an open standard.<br />
		<a href="http://openid.net/what/">learn more</a>
		<ul class="ts-identities"></ul>
		<form class="ts-openid" target="_top">
			<div>
				Add an openid:
			</div>
			<input class="inputBox" type="text" name="openid" placeholder="your openid" />
			<input type="submit" value="Register" />
			<a href="http://openid.net/get-an-openid/" class="help"
			title="What is an open id?">What is an open id?</a>
		</form>
		</div>
		<div class="clear"></div>
	</div>
</div>
<script src="/bags/common/tiddlers/backstage.js"></script>
<script src='/bags/common/tiddlers/jquery.js'></script>
<script src='/bags/tiddlyspace/tiddlers/chrjs'></script>
<script src='/bags/common/tiddlers/chrjs.space'></script>
<script src='/bags/common/tiddlers/chrjs.users'></script>
<script src='/bags/common/tiddlers/chrjs.identities'></script>
<script src="/bags/common/tiddlers/jquery-ui.custom.js"></script>
<script src='/bags/common/tiddlers/jquery-form.js'></script>
<script src="/bags/common/tiddlers/siteiconupload.js"></script>
<script src='/bags/common/tiddlers/ts.js'></script>
<script src="/status.js"></script>
<script type="text/javascript">
/*
 * jQuery UI Autocomplete HTML Extension
 *
 * Copyright 2010, Scott González (http://scottgonzalez.com)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 *
 * http://github.com/scottgonzalez/jquery-ui-extensions
 */
(function( $ ) {

var proto = $.ui.autocomplete.prototype,
	initSource = proto._initSource;

function filter( array, term ) {
	var matcher = new RegExp( $.ui.autocomplete.escapeRegex(term), "i" );
	return $.grep( array, function(value) {
		return matcher.test( $( "<div>" ).html( value.label || value.value || value ).text() );
	});
}

$.extend( proto, {
	_initSource: function() {
		if ( this.options.html && $.isArray(this.options.source) ) {
			this.source = function( request, response ) {
				response( filter( this.options.source, request.term ) );
			};
		} else {
			initSource.call( this );
		}
	},

	_renderItem: function( ul, item) {
		return $( "<li></li>" )
			.data( "item.autocomplete", item )
			.append( $( "<a></a>" )[ this.options.html ? "html" : "text" ]( item.label ) )
			.appendTo( ul );
	}
});

})( jQuery );

/***
_accounts application specific javascript
***/
var link;
ts.init(function(ts) {
	if(ts.user.anon) { // redirect to homepage when user not logged in
		window.location = ts.getHost();
	} else if(ts.user.name === ts.currentSpace){
		initSiteIconUpload(ts.user.name);
	} else {
		link = $("<a />").attr("href", ts.getHost(ts.user.name) + "/_account").text("Change User Icon");
		$("#siteiconArea div").empty().append(link);
	}
	$(".hostSuffix").text("." + ts.getHost("").split("//")[1]);
	ts.getSpaces(function(spaces) {
		$("<div class='info' />").text("You have " + spaces.length + " spaces.").insertBefore($(".spaceSearch")[0]);
		$("form.spaceSearch input").autocomplete({
			html: true,
			source: function(req, response) {
				ts.getSpaces(function(spaces) {
					var selected = [];
					for(var i = 0; i < spaces.length; i++) {
						var space = spaces[i];
						if(space.name.indexOf(req.term) > -1) {
							var host = ts.getHost(space.name) ;
							var img = host + "/SiteIcon";
							selected.push({
								value: space.name,
								label: '<a href="' + host + '" target="_parent" class="autocompleteLink"><img src="' + img + '" style="height:24px;width:auto;max-height:24px;max-width:24px;"/>' + space.name + '</a>'
							});
						}
					}
					response(selected);
				});
			},
			select: function(event, ui) {
				window.top.location = ts.getHost(ui.item.value);
			}
		});

		var $ul = $('.ts-space-search');
		$.each(spaces, function(i, space) {
			$ul.append($('<li/>').html($('<a/>').attr('href', space.uri)
				.text(space.name)));
		});

		$('form.spaceSearch button').click(function(ev) {
			$('.list-container').slideToggle('fast');
			ev.preventDefault();
			return false;
		});
	});
});

if(window != window.top) {
	$("html").addClass("iframeMode");
	$("a").live("click",function(ev) {
		$(ev.target).attr("target", "_parent");
	});
}
</script>
<!--[if lt IE 8]>
<script type="text/javascript" src="/bags/common/tiddlers/json2.js"></script>
<![endif]-->
</body>
</html>
|details|k
|''URL''|http://tiddlywiki.squize.org#TabEditPlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-19|
|''Version''|0.32|
|''CoreVersion''|2.0|
|''Source''|http://tiddlywiki.squize.org#TabEditPlugin|
!Summary
Makes editing of tabs easier.
!Examples
; [[SideBarTabs @Lewcid|http://tiddlywiki.squize.org/#SideBarTabs]]
:» try it out at the SideBarTabs tiddler on Lewcid
!Details
* double click a tab to edit the source tiddler
* double click outside the tabset to edit the containing tiddler
|details|k
|''URL''|http://www.TiddlyTools.com/#ThumbThing|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-12|
|''Version''|1.2.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ThumbThing|
!Summary
display a scaled 'thumbnail' image with popup for full-sized image
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ThumbThing]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ThumbThing
ColorPalette
StyleSheet
SiteSubtitle
GettingStarted
SiteTitle
MainMenu
SiteIcon
DefaultTiddlers
ViewTemplate
PageTemplate
SideBarOptions
EditTemplate
SiteInfo
SideBarTabs
ToolbarCommands
!Summary
Developed by [[Simon Baird]], TiddlySpot has been a reliable platform to edit and host TiddlyWiki online for a long time...
 » http://tiddlyspot.com
/***
|''Name''|TiddlySpaceRevertRevision|
|''Description''|Revert to a previous revision|
|''Author''|BenGillies|
|''Version''|0.1|
|''Status''|unstable|
|''Source''|http://github.com/TiddlySpace/tiddlyspace|
|''CodeRepository''|http://github.com/TiddlySpace/tiddlyspace|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.6.0|
|''Requires''|TiddlyWebAdaptor TiddlySpaceRevisionView|
!Usage
Add a control button to revert to a particular revision.

The button must be called from within a revision, as generated by TiddlySpaceRevisionView
!Code
***/
//{{{
(function($) {

config.commands.revert = {
	text: "revert",
	tooltip: "make this revision the current one",
	handler: function(ev, src, title) {
		var revElem = story.getTiddler(title);
		var tidToRevert = store.getTiddler($(revElem).attr("revName"));

		var revision = store.getTiddler(title);
		if ((revision) && (tidToRevert)) {
			tidToRevert.text = revision.text;
			var newFields = merge({}, revision.fields);
			for (var fieldName in newFields) {
				if (fieldName.substr(0, 7) === "server.") {
					delete newFields[fieldName];
				}
			}
			merge(tidToRevert.fields, newFields);
			tidToRevert.tags = merge([], revision.tags);
			tidToRevert.fields.changecount = 1;
			delete tidToRevert.fields.doNotSave;

			store.saveTiddler(tidToRevert.title, tidToRevert.title,
				tidToRevert.text, null, null, tidToRevert.tags,
				tidToRevert.fields, false, tidToRevert.created, tidToRevert.creator);

			autoSaveChanges(true);
		}
	}
};

})(jQuery);
//}}}
|details|k
|''URL''|http://tiddlywiki.squize.org#AccordionMenuPlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2007-11-05|
|''Version''|2.0|
|''CoreVersion''|2.2.5|
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#AccordionMenuPlugin|
!Summary
Turn an unordered list into an accordion style menu
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#AccordionMenuPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#AccordionMenuPlugin
<<tag [[Mobile]] Apps>>for use on mobile devices running Android or IOS on iPhone and iPads or other tablets...
<<tag [[Dates & Calendars]] Plugins>>that are all about listing tiddlers grouped, sorted or filtered by date or showing calendar views...
The title and subtitle of your space are visible to visitors and are also displayed in your browser's tabs. Click on the SiteTitle and SiteSubtitle tiddler links below to make changes.
* [[SiteTitle]]
* [[SiteSubtitle]]
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
|details|k
|''URL''|http://www.broowaha.com/articles/7671/a-personal-knowledgebase-solution-tiddlywiki-and-dropbox|
|''Author''|~CSBMonkey|
|''Date''|2010-08-28|
! Summary
This article describes a solution for an electronic personal knowledgbase that is portable between locations and platforms.
! Preview
[img[http://img.tiddlyspace.com/TiddlyWikiAndDropBox_BrooWhaa][http://goo.gl/EdDPjr]]
|details|k
|''URL''|http://www.TiddlyTools.com/#QuickEditPackage|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-02-14|
|''Version''|2.4.4|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#QuickEditPlugin|
!Summary
Support functions for ''~QuickEditPackage'', e.g. utility functions, toolbar commands, stylesheets
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#QuickEditPackage]]
:see the author's info tiddler for examples
!Details
This package provides a toolbar of interactive 'power tools' that you can use while editing a tiddler to quickly insert TiddlyWiki tiddler links, images, macros, etc. or common formatting sequences directly into tiddler content, as well as perform other functions (such as find/replace, sort, split, convert, etc.) that can be used to modify the current tiddler's source content in a variety of ways.
{{{
<<tiddler QuickEditToolbar with: show>>
}}}
Individual ~QuickEdit buttons are defined in separate tiddlers (e.g., [[QuickEdit_replace|http://www.TiddlyTools.com]]) that have also been //transcluded// into a single toolbar definition named [[QuickEditToolbar|http://www.TiddlyTools.com/#QuickEditToolbar]].

You can edit this definition to add, remove, or rearrange the toolbar buttons to best suit your needs, and then embed the [[QuickEditToolbar|http://www.TiddlyTools.com/#QuickEditToolbar]] tiddler into your document's [[EditTemplate]], like this:
{{{
<div macro='tiddler QuickEditToolbar'></div>
}}}
Next, in order to support some of the formatting 'shortcuts' provided by the toolbar, add a reference to the shortcuts CSS class definitions in your [[StyleSheet]]:
{{{
[[StyleSheetShortcuts]]
}}}
By default, the ~QuickEdit toolbar is hidden until you enable it by using the ''toggleQuickEdit'' command, which you can add to the ~EditToolbar definition in [[ToolbarCommands]]:
{{{
|EditToolbar|... toggleQuickEdit ...|
}}}
You can also toggle the ~QuickEdit toolbar display via a single checkbox option that can be added to [[SideBarOptions]] (or any other desired location):
{{{
<<option chkShowQuickEdit>> show QuickEdit toolbar
}}}
Note: You can 'hard-code' the ''chkShowQuickEdit'' setting, so that the toolbar will be //initially// displayed, by creating a tiddler (e.g., ~ConfigTweaks), tagged with <<tag systemConfig>>, containing:
{{{
config.options.chkShowQuickEdit=true;
}}}
Alternatively, if you want the toolbar to //always// be displayed, regardless of the option setting, you can add a special keyword, ''show'', to the [[EditTemplate]] syntax, like this:
{{{
<div macro='tiddler QuickEditToolbar with: show'></div>
}}}
/***
|''Name''|TiddlySpaceViewTypes|
|''Version''|0.6.0|
|''Status''|@@beta@@|
|''Description''|Provides TiddlySpace specific view types|
|''Author''|Jon Robson|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpaceViewTypes.js|
|''Requires''|TiddlySpaceConfig TiddlySpaceTiddlerIconsPlugin|
!Usage
Provides replyLink, spaceLink and SiteIcon view types.
!!SiteIcon view parameters
* labelPrefix / labelSuffix : prefix or suffix the label with additional text. eg. labelPrefix:'modified by '
* spaceLink: if set to "yes" will make any avatars link to the corresponding space. {{{<<originMacro spaceLink:yes>>}}}

!Code
***/
//{{{
(function($) {

var tiddlyspace = config.extensions.tiddlyspace;
var originMacro = config.macros.tiddlerOrigin;
var tweb = config.extensions.tiddlyweb;

config.macros.view.replyLink = {
	locale: {
		label: "Reply to this tiddler"
	}
};

var _replyButtons = [];
var _replyInitialised, _replyScriptLoaded;
config.macros.view.views.replyLink = function(value, place, params, wikifier,
		paramString, tiddler) {
	var valueField = params[0];
	var imported;
	if(valueField == "title") { // special casing for imported tiddlers
		var localTitle = tiddler.title;
		var serverTitle = tiddler.fields["server.title"];
		if(serverTitle && localTitle != serverTitle) {
			value = serverTitle ? serverTitle : localTitle;
			imported = true;
		}
	} else {
		title = tiddler[valueField] ? tiddler[valueField] : tiddler.fields[valueField];
	}
	var args = paramString.parseParams("anon")[0];
	var label = (args.label) ? args.label : config.macros.view.replyLink.locale.label;
	var space;
	if(tiddler) {
		var bag = tiddler.fields["server.bag"];
		space = tiddlyspace.resolveSpaceName(bag);
	}
	var container = $('<span class="replyLink" />').appendTo(place)[0];

	tweb.getUserInfo(function(user) {
		if ((!user.anon) && ((space && user.name != space &&
				user.name != tiddlyspace.currentSpace.name) || imported)) {
			var link = $("<a />")
				.text(config.macros.view.replyLink.locale.label)
				.appendTo(container)[0];

			if(typeof(createReplyButton) === "undefined") {
				_replyButtons.push(link);
			}
			if(_replyInitialised) {
				createReplyButton(link);
			} else if(!_replyScriptLoaded) {
				_replyScriptLoaded = true;
				$.getScript("/bags/common/tiddlers/_reply-button.js",
					function() {
						_replyInitialised = true;
						for(var i = 0; i < _replyButtons.length; i++) {
							createReplyButton(_replyButtons[i]);
						}
						_replyButtons = [];
					});
			}
		}
	});

};

config.macros.view.views.spaceLink = function(value, place, params, wikifier,
		paramString, tiddler) {
		var spaceName = tiddlyspace.resolveSpaceName(value);
		var isBag = params[0] == "server.bag" && value === spaceName ? true : false;
		var args = paramString.parseParams("anon")[0];
		var titleField = args.anon[2];
		var labelField = args.labelField ? args.labelField[0] : false;
		var label;
		if(labelField) {
			label = tiddler[labelField] ? tiddler[labelField] : tiddler.fields[labelField];
		} else {
			label = args.label ? args.label[0] : false;
		}
		var title = tiddler[titleField] ? tiddler[titleField] : tiddler.fields[titleField];

		var link = createSpaceLink(place, spaceName, title, label, isBag);
		if(args.external && args.external[0] == "no") {
			$(link).click(function(ev) {
				var el = $(ev.target);
				var title = el.attr("tiddler");
				var bag = el.attr("bag");
				var space = el.attr("tiddlyspace");
				bag = space ? space + "_public" : bag;
				if(title && bag) {
					ev.preventDefault();
					tiddlyspace.displayServerTiddler(el[0], title,
						"bags/" + bag);
				}
				return false;
			});
		}
};

config.macros.view.views.SiteIcon = function(value, place, params, wikifier,
		paramString, tiddler) {
	var options = originMacro.getOptions(paramString);
	if(!tiddler || value == "None") { // some core tiddlers lack modifier
		value = false;
	}
	var field = params[0];
	if(field == "server.bag") {
		options.notSpace = !originMacro._isSpace(value);
	}
	tiddlyspace.renderAvatar(place, value, options);
};

})(jQuery);
//}}}
[[Home]]
|details|k
|''URL''|http://www.TiddlyTools.com/#AutoTaggerPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-06-30|
|''Version''|1.8.0|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#AutoTaggerPlugin|
!Summary
Tag tiddlers with date, author, etc. and/or scan the tiddler for any tags that are embedded in the content.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#AutoTaggerPluginInfo]]
:» see the author's info tiddler for examples
!Details
Whenever you //create a new tiddler//, ~AutoTagger can add various tags for you:
* original author
* creation date
* default tag(s) (pre-loaded into tiddler editor)
* default tag(s) (when saving tiddlers that are not otherwise tagged)
Whenever you //edit an existing tiddler//, ~AutoTagger can add various tags for you:
* most recent author
* modification date
* default tag(s) (when saving tiddlers that are not otherwise tagged)
If you enter ''//auto//'' as a tiddler tag value, ~AutoTagger ''scans the tiddler content'' (including title) for text that matches any existing tags, and ''automatically adds any embedded tags that it finds''.

You can also create a tiddler that defines a set of ''~AutoTaggerAliases'' to ''replace a single tag with one or more alternative tags''.  The alias definitions use this format:
{{{
aliastag=tag1 tag2 tag3...
aliastag=tag4 tag5 tag6...
etc.
}}}
Notes:
* After the new tags have been added to the tiddler, they are treated just as if you had entered them by hand and can be edited to make any changes you want.
* As long as the "auto" tag is still present on a tiddler, ~AutoTagger will re-scan that tiddler's content each time it is edited.  If you DO edit the generated tags, you can remove the "auto" tag from the tiddler to prevent it from being re-scanned when you press 'done' to finish editing.  If you have set the "auto" tag on a tiddler, and then add several tags to your document, those tags will ''not'' be automatically added to the tiddler until you actually edit that tiddler and press 'done' to trigger an ~AutoTagger scan.  The special-purpose ''"systemConfig" tag is never added automatically, even if matched in the tiddler content'', since this tag should be added manually to ensure it is always used appropriately.
*@@display:inline;Normally, aliases are removed and replaced by the indicated alternatives defined in the ''~AutoTaggerAliases'' configuration.  To retain an original alias tag (in addition to it's substitutes), include it in it's set of substitutes, like this:
{{{
aliastag=aliasgtag tag1 tag2 tag3...
}}}
@@
*@@display:inline;Alias definitions are processed in the order they occur in ''~AutoTaggerAliases''. If a given alias definition includes another alias that occurs after it in the configuration, the second alias will be replaced when it's definition is processed.
{{{
aliastag=tag1 anotheraliastag tag2...
anotheraliastag=tag3 tag4...
}}}
which results in: {{{tag1 tag2 tag3 tag4}}}
@@
<!--{{{-->
<div macro='slideRevision'></div>
<div class='heading'>
	<span class="titleBar">
		<div class='title' macro='view title text'></div>
	</span>
	<div class='toolbar'
		macro='toolbar [[ToolbarCommands::RevisionToolbar]] icons:yes height:48 width:48 more:popup'>
	</div>
	<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>
<!--}}}-->
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
|details|k
|''URL''|http://www.TiddlyTools.com/#MultiSelectSampleScript|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-01-16|
|''Version''|0.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|script|
|''Tags''|Plugin Review Script zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#MultiSelectSampleScript|
!Summary
demonstrates handling for multi-select listboxes
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#MultiSelectSampleScript]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#MultiSelectSampleScript
|details|k
|''URL''|http://tiddlywiki.squize.org#RSSHack|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2007-10-18|
|''Version''||
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#RSSHack|
!Summary
undefined
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#RSSHack]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#RSSHack
<<tag "Articles & Reviews" References>>around the web where people write lauding or critical appraisals over TiddlyWiki...
/***
|''Name''|TiddlySpaceBackstage|
|''Version''|0.8.0|
|''Description''|Provides a TiddlySpace version of the backstage and a homeLink macro|
|''Status''|@@beta@@|
|''Contributors''|Jon Lister, Jon Robson, Colm Britton|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpaceBackstage.js|
|''Requires''|TiddlySpaceConfig ImageMacroPlugin TiddlySpaceViewTypes|
!StyleSheet
.tiddler .error.annotation .button{
	display: inline-block;
}

#backstageArea {
	z-index: 49;
	color: white;
	background-color: black;
	background: -webkit-gradient(linear,left bottom,left top,color-stop(0, #222),color-stop(0.5, #333),color-stop(1, #555));
	background: -moz-linear-gradient(center bottom,#222 0%, #333 50%, #555 100%);
	filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#ff555555, endColorstr=#ff222222);
	-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#ff555555, endColorstr=#ff222222)";
	height: 25px;
	padding: 0;
}

#backstageButton {
	overflow: hidden;
}

#backstageButton #backstageShow,
#backstageButton #backstageHide {
	margin: 0px;
	padding: 0px;
}

#backstageButton #backstageShow:hover,
#backstageButton #backstageHide:hover {
	background: none;
	color: none;
}

#backstageButton img,
#backstageButton svg {
	width: 24px;
	height: 24px;
}

#messageArea {
	top: 50px;
}

#backstageToolbar {
	position: relative;
}

#backstageArea a {
	padding: 0px;
	margin-left: 0px;
	color: white;
	background: none;
}

#backstageArea a:hover {
	background-color: white;
}

#backstage ol,
#backstage ul {
	padding: auto;
}

#backstageButton a {
	margin: 0;
}

.backstagePanelBody ul {
	padding: 5px;
	margin: 5px;
}

#backstage #backstagePanel {
	margin-left: 5%;
	padding: 0em;
	margin-right: 5%;
}

#backstageToolbar a {
	position: relative;
}

#backstageArea a.backstageSelTab,
#backstageToolbar .backstageTask {
	line-height: 25px;
	color: #767676;
}

.backstageTask .externalImage,
.backstageTask .image {
	display: inline;
}

#backstageToolbar a span {
	z-index: 2;
}

a.backstageTask {
	display: inline;
        margin-left: 1em !important;
}

.backstagePanelBody .button {
	display: inline-block;
	margin-right: 10px;
}

.backstagePanelBody {
	margin: 0 0 0 0.6em;
	padding: 0.4em 0.5em 1px 0.5em;
}

#backstage table {
	margin: auto;
}

#backstage .wizard table {
	border: 0px;
	margin: 0;
}

#backstage div  li.listLink {
	border: 0px;
	width: 78%;
	font-size: 0.7em;
}

#backstage div li.listTitle {
	font-weight: bold;
	text-decoration: underline;
	font-size: 1em;
	background: #ccc;
	width: 100%;
}

#backstage fieldset {
	border: solid 1px [[ColorPalette::Background]];
}

#backstage .viewer table,#backstage table.twtable {
	border: 0px;
}

#backstageToolbar img {
	padding: 0;
}

#backstage .wizard,
#backstage .wizardFooter {
	background: none;
}

.viewer td, .viewer tr, .twtable td, .twtable tr {
	border: 1px solid #eee;
}

#backstage .inlineList ul li {
	background-color: [[ColorPalette::Background]];
	border: solid 1px [[ColorPalette::TertiaryMid]];
	display: block;
	float: left;
	list-style: none;
	margin-right: 1em;
	padding: 0.5em;
}

.backstageClear, .inlineList form {
	clear: both;
	display: block;
	margin-top: 3em;
}

.tiddlyspaceMenu {
	text-align: center;
}

span.chunkyButton {
	display: inline-block;
	padding: 0;
	margin: 0;
	border: solid 2px #000;
	background-color: #04b;
}

span.chunkyButton a.button, span.chunkyButton a:active.button {
	white-space: nowrap;
	font-weight: bold;
	font-size: 1.8em;
	color: #fff;
	text-align: center;
	padding: 0.5em 0.5em;
	margin: 0;
	border-style: none;
	display: block;
}

span.chunkyButton:hover {
	background-color: #014;
}

span.chunkyButton a.button:hover {
	border-style: none;
	background: none;
	color: #fff;
}

#backstage .unpluggedSpaceTab .wizard,
.unpluggedSpaceTab .wizard {
	background: white;
	border: 2px solid #CCC;
	padding: 5px;
}

.syncKey .keyItem {
	border: 1px solid black;
	display: inline-block;
	margin: 0.2em;
	padding: 0.1em 0.1em 0.1em 0.1em;
}

.keyHeading {
	font-size: 2em;
	font-weight: bold;
	margin: 0.4em 0em -0.2em;
}

.unpluggedSpaceTab .putToServer,
.unpluggedSpaceTab .notChanged {
	display: none;
}

.tiddlyspaceMenu ul {
	margin: 0;
	padding: 0;
}

.tiddlyspaceMenu ul li {
	list-style: none;
}

.unsyncedChanges .unsyncedList {
	display: block;
}

.unsyncedList {
	display: none;
}
!Code
***/
//{{{
(function ($) {
    var name = "StyleSheet" + tiddler.title;
    config.shadowTiddlers[name] = "/*{{{*/\n%0\n/*}}}*/".
        format(store.getTiddlerText(tiddler.title + "##StyleSheet")); // this accesses the StyleSheet section of the current tiddler (the plugin that contains it)
    store.addNotification(name, refreshStyles);

    if (!config.extensions.tiddlyweb.status.tiddlyspace_version) { // unplugged
        config.extensions.tiddlyweb.status.tiddlyspace_version = "<unknown>";
        config.extensions.tiddlyweb.status.server_host = {
            url:config.extensions.tiddlyweb.host }; // TiddlySpaceLinkPlugin expects this
    }
    var disabled_tasks_for_nonmembers = ["tiddlers", "plugins", "batch", "sync"];

    var tweb = config.extensions.tiddlyweb;
    var tiddlyspace = config.extensions.tiddlyspace;
    var currentSpace = tiddlyspace.currentSpace.name;
    var imageMacro = config.macros.image;

    if (config.options.chkBackstage === undefined) {
        config.options.chkBackstage = false;
    }

// Set up Backstage
    config.tasks = {};
    config.tasks.status = {
        text:"status",
        tooltip:"TiddlySpace Info",
        content:"<<tiddler Backstage##Menu>>"
    };
    config.tasks.tiddlers = {
        text:"tiddlers",
        tooltip:"tiddlers control panel",
        content:"<<tiddler Backstage##BackstageTiddlers>>"
    };
    config.tasks.plugins = {
        text:"plugins",
        tooltip:"Manage installed plugins",
        content:"<<tiddler Backstage##Plugins>>"
    };
    config.tasks.batch = {
        text:"batch",
        tooltip:"Batch manage public/private tiddlers",
        content:"<<tiddler Backstage##BatchOps>>"
    };
    config.tasks.tweaks = {
        text:"tweaks",
        tooltip:"Tweak TiddlyWiki behaviors",
        content:"<<tiddler Backstage##Tweaks>>"
    };
    config.tasks.exportTiddlers = {
        text:"import/export",
        tooltip:"Import/export tiddlers from/to a TiddlyWiki",
        content:"<<tiddler Backstage##ImportExport>>"
    };
    config.tasks.sync = {
        text:"sync",
        tooltip:"Check Sync status",
        content:"<<tiddler Backstage##SpaceUnplugged>>"
    };

    if (window.location.protocol === "file:") {
        config.unplugged = true;
    }

    config.backstageTasks = ["status", "tiddlers", "plugins",
        "batch", "tweaks", "exportTiddlers", "sync"];

    config.messages.backstage.prompt = "";
// initialize state
    var _show = backstage.show;
    backstage.show = function () {
        // selectively hide backstage tasks and tabs based on user status
        var tasks = $("#backstageToolbar .backstageTask").show();
        var bs = backstage.tiddlyspace;
        if (!config.unplugged) {
            tweb.getUserInfo(function (user) {
                if (user.anon) {
                    jQuery.each(disabled_tasks_for_nonmembers, function (i, task) {
                        var taskIndex = config.backstageTasks.indexOf(task);
                        if (taskIndex !== -1) {
                            config.backstageTasks.splice(taskIndex, 1);
                        }
                    });
                    config.messages.memberStatus = bs.locale.loggedout;
                } else {
                    config.messages.memberStatus = readOnly ?
                        bs.locale.nonmember : bs.locale.member;
                }
            });
        } else {
            config.messages.memberStatus = bs.locale.unplugged;
        }

        // display backstage
        return _show.apply(this, arguments);
    };
    if (readOnly) {
        jQuery.each(disabled_tasks_for_nonmembers, function (i, task) {
            var taskIndex = config.backstageTasks.indexOf(task);
            if (taskIndex !== -1) {
                config.backstageTasks.splice(taskIndex, 1);
            }
        });
    }

    var tasks = config.tasks;
    var commonUrl = "/bags/common/tiddlers/%0";

    backstage.tiddlyspace = {
        locale:{
            member:"You are a member of this space.",
            nonmember:"You are not a member of this space.",
            loggedout:"You are currently logged out of TiddlySpace.",
            unplugged:"You are unplugged."
        },
        showButton:function () {
            var showBtn = $("#backstageShow")[0];
            var altText = $(showBtn).text();
            $(showBtn).empty();
            imageMacro.renderImage(showBtn, "backstage.svg",
                { altImage:commonUrl.format("backstage.png"), alt:altText});
        },
        hideButton:function () {
            var hideBtn = $("#backstageHide")[0];
            var altText = $(hideBtn).text();
            $(hideBtn).empty();
            imageMacro.renderImage(hideBtn, "close.svg",
                { altImage:commonUrl.format("close.png"), alt:altText, width:24, height:24 });
        }
    };

    var _init = backstage.init;
    backstage.init = function () {
        _init.apply(this, arguments);
        var init = function (user) {
            var bs = backstage.tiddlyspace;
            bs.showButton();
            bs.hideButton();
        };
        tweb.getUserInfo(init);
    };

    var home = config.macros.homeLink = {
        locale:{
            linkText:"your home space"
        },
        handler:function (place) {
            var container = $("<span />").appendTo(place)[0];
            tweb.getUserInfo(function (user) {
                if (!user.anon && user.name !== currentSpace) {
                    createSpaceLink(container, user.name, null, home.locale.linkText);
                }
            });
        }
    };

    config.macros.exportSpace = {
        handler:function (place, macroName, params) {
            var filename = params[0] ||
                "/tiddlers.wiki?download=%0.html".format(currentSpace);
            $('<a class="button">download</a>').// XXX: i18n
                attr("href", filename).appendTo(place);
        }
    };

}(jQuery));
//}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#AutoRefresh|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-28|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#AutoRefresh|
!Summary
set/clear tiddler refresh flags to force/prevent re-rendering when changes occur
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#AutoRefresh]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#AutoRefresh
|details|k
|''URL''|http://www.TiddlyTools.com/#RunTiddlerPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-09-02|
|''Version''|1.2.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#RunTiddlerPlugin|
!Summary
command to invoke tiddler content as if tagged with systemConfig (i.e., a plugin)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#RunTiddlerPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#RunTiddlerPlugin
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
|details|k
|''URL''|http://www.TiddlyTools.com/#QuoteOfTheDayPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-03-22|
|''Version''|1.4.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#QuoteOfTheDayPlugin|
!Summary
Display a randomly selected "quote of the day" from a list defined in a separate tiddler
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#QuoteOfTheDayPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#QuoteOfTheDayPluginInfo
TiddlySpot is programmed in ruby by Simon Baird, also inventor of [[taggly tagging|http://mptw.tiddlyspot.com]] and author of the almighty ''mGSD'' (formerly ''Monkey GTD'') and ''MPTW'' (Monkey Pirate TiddlyWiki)...
» http://tiddlyspot.com
» http://mgsd.tiddlyspot.com
» http://mptw.tiddlyspot.com
|details|k
|''URL''|http://tiddlywiki.squize.org#TiddlerWithEditPlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-19|
|''Version''|0.2|
|''CoreVersion''||
|''Requires''|~TW2.x|
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#TiddlerWithEditPlugin|
!Summary
Adds 'doubleclick to edit source' capabilites to the core {{{<<tiddler>>}}} macro.

!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#TiddlerWithEditPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#TiddlerWithEditPlugin
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
/***
|''Name''|ImageMacroPlugin|
|''Version''|0.9.4|
|''Description''|Allows the rendering of svg images in a TiddlyWiki|
|''Author''|Osmosoft|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''Notes''|Currently only works in modern browsers (not IE)|
|''Requires''|BinaryTiddlersPlugin|
!Usage
{{{<<image SVG>>}}} will render the text of the tiddler with title SVG as an SVG image (but not in ie where it will fail silently)
!!Parameters
width/height: specify width/height parameters
link: make the image link to a given location
tiddlyLink: link to a tiddler

!Notes
Binary tiddlers in TiddlyWeb when passed through the wikifier will be shown as images.
eg. {{{<<view text wikified>>}}} on a binary tiddler will show the image.
{{{<<view fieldname image>>}}}
will render the value of the tiddler field 'fieldname' as an image. This field can contain a tid
{{{<<image SiteIcon>>}}}
will create an image tag where the tiddler has content type beginning image and not ending +xml
will attempt to create svg object in other scenarios
{{{<<image /photos/x.jpg>>}}}
will create an image tag with src /photos/x.jpg as long as there is not a tiddler called /photos/x.jpg in 
which case it will render that tiddler as an image. Note for the case of svg files it will attempt to render as an svg if possible via the image
tag. It doesn't embed the svg in the dom for security reasons as svg code can contain javascript.
!Code
***/
//{{{
(function($) {

var macro = config.macros.image = {
	shim: "/bags/common/tiddlers/shim",
	ieVersion: config.browser.isIE ? parseInt(config.browser.ieVersion[1], 10) : false,
	svgns: "http://www.w3.org/2000/svg",
	xlinkns: "http://www.w3.org/1999/xlink", 
	svgAvailable: document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure", "1.1"),
	_fixPrefix: 1,
	_external_cache: {},
	_image_tag_cache: {},
	_image_dimensions: {},
	locale: {
		badImage: "This image cannot be displayed."
	},
	handler: function(place, macroName, params, wikifier, paramString, tiddler){
		var imageSource = params[0];
		// collect named arguments
		var args = macro.getArguments(paramString, params);
		this.renderImage(place, imageSource, args);
	},
	init: function() {
		var startupImages = store.getTaggedTiddlers("systemImage");
		var place = $("<div />").attr("id", "systemImageArea").appendTo("body").hide()[0];
		for(var i = 0; i < startupImages.length; i++) {
			var image = startupImages[i];
			macro.renderImage(place, image.title, { idPrefix: "" });
		}
		var data = new Image();
		data.onload = function() {
			// note ie 8 only supports data uris up to 32k so cannot be relied on
			macro.supportsDataUris = this.width != 1 || this.height != 1 ? false : true;
			macro.supportsDataUris = macro.ieVersion && macro.ieVersion < 9 ? false : macro.supportsDataUris;
		};
		data.onerror = data.onload;
		data.src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";
	},
	refreshImage: function(src) {
		var elements = macro._image_tag_cache[src] ? macro._image_tag_cache[src] : [];
		if(macro._image_dimensions[src]) {
			macro._image_dimensions[src] = false;
		}
		for(var i = 0; i < elements.length; i++) {
			var el = $(elements[i]);
			var newSrc = "%0?nocache=%1".format(src, Math.random());
			el.attr("src", newSrc); // force reload
		}
	},
	isBinaryImageType: function(contentType) {
		return (contentType && contentType.indexOf("image") === 0 &&
			contentType.indexOf("+xml") != contentType.length - 4) ? true : false;
	},
	isImageTiddler: function(tiddler) {
		return macro.isSVGTiddler(tiddler) || macro.isBinaryImageTiddler(tiddler);
	},
	isSVGTiddler: function(tiddler) {
		var type = tiddler ? tiddler.fields['server.content-type'] : false;
		return type == "image/svg+xml";
	},
	isBinaryImageTiddler: function(tiddler) {
		return macro.isBinaryImageType(tiddler.fields['server.content-type']);
	},
	renderImage: function(place, imageSource, options) {
		var imageTiddler = store.getTiddler(imageSource);
		var container;
		var classes = ["image"];
		if(options.link) {
			classes = classes.concat(["imageLink", "externalLink"]);
			container = $("<a />").attr("href", options.link).appendTo(place)[0];
		} else if(options.tiddlyLink) {
			classes.push("imageLink");
			container = createTiddlyLink(place, options.tiddlyLink, false);
		} else {
			container = $("<span />").appendTo(place)[0];
		}
		$(container).addClass(classes.join(" "));

		options = options ? options : {};
		if(imageTiddler && macro.isBinaryImageTiddler(imageTiddler)) { // handle the case where we have an image url
			return macro._renderBinaryImageTiddler(container, imageTiddler, options);
		} else if(imageTiddler){ // handle the case where we have a tiddler
			return macro._renderSVGTiddler(container, imageTiddler, options);
		} else { // we have a string representing a url
			return macro._renderBinaryImageUrl(container, imageSource, options);
		}
	},
	_renderAlternateText: function(container, options) {
		var img;
		var src = options.src || "";
		if(options.width && options.height) {
			img = $("<img />").attr("src", src).addClass("svgImageText").attr("width", options.width).
				attr("height", options.height).appendTo(container);
		}
		var alt = options.alt;
		if(img && alt) {
			img.attr("alt", alt).attr("title", alt);
		} else if(alt) {
			$(container).addClass("svgImageText").text(alt);
		}
		macro._image_tag_cache[src] = img;
	},
	_renderSVGTiddler: function(place, tiddler, options) {
		if(!options) {
			options = {};
		}
		merge(options, { tiddler: tiddler, fix: true});

		if(macro.svgAvailable) {
			this._importSVG(place, options); // display the svg
		} else if(options.altImage) {
			var image = options.altImage;
			delete options.altImage;
			this._renderBinaryImageUrl(place, image, options);
		} else {
			this._renderAlternateText(place, options); // instead of showing the image show the alternate text.
		}
	},
	_renderBinaryImageTiddler: function(place, tiddler, options) {
		var resourceURI;
		var fields = tiddler.fields;
		if(fields["server.type"] == "tiddlyweb") { // construct an accurate url for the resource
			resourceURI = "%0/%1/tiddlers/%2".format(config.defaultCustomFields["server.host"],
				fields["server.workspace"], encodeURI(fields["server.title"]));
		} else { // guess the url for the resource
			resourceURI = tiddler.title;
		}
		var ctype = fields["server.content-type"] || tiddler.type;
		var text = tiddler.text;
		if(macro.supportsDataUris && ctype && text.indexOf("<html") == -1) {
			var uri = "data:%0;base64,%1".format(ctype, text);
			options.src = resourceURI;
			return macro._renderBinaryImageUrl(place, uri, options);
		} else if(options.src) {
			return macro._renderBinaryImageUrl(place, options.src, options);
		} else {
			return macro._renderBinaryImageUrl(place, resourceURI, options);
		}
	},
	_renderImageTag: function(container, src, width, height, options) {
		var img;
		img = $("<img />").appendTo(container);
		if(height) {
			img.attr("height", height);
		}
		if(width) {
			img.attr("width", width);
		}
		if(macro.ieVersion && macro.ieVersion < 7 && macro.shim && options.ie6png) {
			$(img).css({width: userW, height: userH,
					filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='%0', sizingMethod='scale')".format(src)
				}).attr("src", macro.shim);
		} else {
			img.attr("src", src);
		}
		if(!macro._image_tag_cache[options.srcUrl]) {
			macro._image_tag_cache[options.srcUrl] = [];
		}
		img = $(img).addClass(options.imageClass)[0];
		macro._image_tag_cache[options.srcUrl].push(img);
		return img;
	},
	_getDimensions: function(realDimensions, reqDimensions, preserve) {
		var w = realDimensions.width;
		var h = realDimensions.height;
		var reqh = reqDimensions.height;
		var reqw = reqDimensions.width;
		var finalw = w, finalh = h;
		var ratiow = reqw / w, ratioh = reqh / h;
		var scaledw = ratioh * w;
		var scaledh = ratiow * h;
		if(!reqw && reqh) {
			finalw = scaledw;
			finalh = reqh;
		} else if(reqw && !reqh) {
			finalw = reqw;
			finalh = scaledh;
		} else if(reqh && reqw) {
			var preserveWidth = w > h ? true : false;
			if(preserve) {
				if(preserveWidth && scaledh < reqh) {
					finalh = scaledh;
					finalw = reqw;
				} else {
					finalh = reqh;
					finalw = scaledw;
				}
			} else {
				finalw = reqw;
				finalh = reqh;
			}
		}
		return { width: parseInt(finalw, 10), height: parseInt(finalh, 10) };
	},
	_renderBinaryImageUrl: function(container, src, options) {
		var srcUrl = options.src ? options.src : src;
		srcUrl = srcUrl.indexOf("/") === -1 ? "/%0".format(srcUrl) : srcUrl; // for IE. 
		var image_dimensions = macro._image_dimensions[srcUrl];
		var image = new Image(); // due to weird scaling issues where you use just a width or just a height
		var createImageTag = function(dimensions, error) {
			if(error) {
				var altImage = options.altImage;
				if(altImage) {
					delete options.altImage;
					macro._renderBinaryImageUrl(container, altImage, options);
				} else {
					options.src = src;
					macro._renderAlternateText(container, options);
				}
			} else {
				var dim = macro._getDimensions(dimensions, { 
					width: options.width, height: options.height }, options.preserveAspectRatio);
				options.srcUrl = srcUrl;
				macro._renderImageTag(container, src, dim.width, dim.height, options);
			}
		};

		if(!image_dimensions) {
			image.onload = function() {
				var dimensions = { width: image.width, height: image.height};
				macro._image_dimensions[srcUrl] = dimensions;
				createImageTag(dimensions);
			};
			image.onerror = function() {
				createImageTag(null, true);
			};
			image.src = src;
		} else {
			createImageTag(image_dimensions);
		}
	},
	_generateIdPrefix: function(){
		return "twsvgfix_" + (this._fixPrefix++).toString() + "_";
	},
	_fixSVG: function(childNodes, idPrefix) {
		var urlPattern = /url\(\#([^\)]*)\)*/ig;
		var fixes = [
		{ attr: "id", pattern: /^(.*)$/ig },
		{ attr: "href", namespace: macro.xlinkns, pattern: /^#(.*)$/ig }
		];
		var url_fixes = ["filter", "fill", "mask", "stroke", "style"];
		for(var i = 0; i < url_fixes.length; i++) {
			fixes.push({ attr: url_fixes[i], pattern: urlPattern });
		}
		for(var t = 0; t < childNodes.length; t++) {
			var node = childNodes[t];
			for(var a = 0; a < fixes.length; a++) {
				var fix = fixes[a];
				var attr = fix.attr;
				var ns = fix.namespace || "";
				if(node.hasAttributeNS && node.hasAttributeNS(ns, attr)) {
					var v = node.getAttributeNS(ns, attr);
					fix.pattern.lastIndex = 0;
					var match = fix.pattern.exec(v);
					if(match) {
						// Make sure replacement string doesn't contain any single dollar signs
						var toReplace = match[1];
						if(toReplace.indexOf(idPrefix) !== 0 && toReplace.indexOf("twglobal_") !== 0) {
							var replacement = (idPrefix + toReplace).replace("$", "$$$$"); 
							v = v.replace(match[1], replacement);
						}
						node.setAttributeNS(ns, attr,v);
					}
				}
			}
			var children = node.childNodes;
			if(children.length > 0) {
				this._fixSVG(children, idPrefix);
			}
		}
	},
	_importSVG: function(place, options){
		options = options ? options : {};
		var svgDoc, tiddlerText = options.tiddler.text;
		if (window.DOMParser) {
			svgDoc = new DOMParser().parseFromString(tiddlerText, "application/xml").documentElement;
			var idPrefix = options.idPrefix || this._generateIdPrefix();
			this._fixSVG([svgDoc], idPrefix);
			var el = document.importNode(svgDoc, true);
			var svgHolder = document.createElementNS(macro.svgns,"svg");
			var width = options.width;
			var height = options.height;
			if(width || height) {
				if(width && height) { // set view box of containing svg element based on the svg viewbox and width and height.
					var viewBox = el.getAttribute("viewBox");
					var topLeft = "0 0";
					if(viewBox) {
						topLeft = viewBox.replace(/([0-9]*) +([0-9]*) +([0-9]*) +([0-9]*) */gi,"$1 $2");
					}
					svgHolder.setAttributeNS(macro.svgns, "viewBox", "0 0 %0 %1".format(width, height));
				} else {
					if(!width) {
						width = el.getAttribute("width");
					}
					if(!height) {
						height = el.getAttribute("height");
					}
				}
				svgHolder.setAttribute("width", width);
				svgHolder.setAttribute("height", height);

				el.setAttribute("width", "100%");
				el.setAttribute("height", "100%");
				svgHolder.setAttribute("class", "svgImage svgIcon %0".format(options.imageClass || ""));
				svgHolder.appendChild(el);
				place.appendChild(svgHolder);
			}
			else {
				var existing = el.className ? el.className.baseVal : "";
				el.setAttribute("class","svgImage %0".format(existing));
				place.appendChild(el);
			}
			// if a tiddler attribute is set this is read as a link
			$("[tiddler], [tiddlyLink]", place).attr("refresh", "link").click(function(ev) {
				var tiddler = $(ev.target).attr("tiddlyLink");
				if(tiddler) {
					story.displayTiddler(ev.target, tiddler);
				}
			});
		}
	},
	getArguments: function(paramString, params) {
		var args = paramString.parseParams("name", null, true, false, true)[0];
		var options = {};
		for(var id in args) {
			if(true) {
				var p = args[id];
				if(id == "def") {
					options[id] = p;
				} else {
					options[id] = p[0];
				}
			}
		}
		var width = isNaN(params[1]) ? false : parseInt(params[1], 10);
		var height = isNaN(params[2]) ? false : parseInt(params[2], 10);

		options.width = macro.lookupArgument(options, "width", width);
		options.height = macro.lookupArgument(options, "height", height);
		options.preserveAspectRatio = args.preserveAspectRatio && 
			args.preserveAspectRatio[0] == "yes" ? true : false;
		options.tiddlyLink = macro.lookupArgument(options, "tiddlyLink", false);
		options.link = macro.lookupArgument(options, "link", false);
		return options;
	},
	lookupArgument: function(args, id, ifEmpty) {
		return args[id] ? args[id] : ifEmpty;
	}
};

// update views
var _oldwikifiedview = config.macros.view.views.wikified;
// update wikifier to check tiddler type before rendering
merge(config.macros.view.views, {
	wikified: function(value, place, params, wikifier, paramString, tiddler) {
		if(macro.isImageTiddler(tiddler) && params[0] == "text") {
			var newplace = $("<div />").addClass("wikifiedImage").appendTo(place)[0];
			macro.renderImage(newplace, tiddler.title, { alt: macro.locale.badImage });
		} else {
			_oldwikifiedview.apply(this, arguments);
		}
	},
	image: function(value, place, params, wikifier, paramString, tiddler) {
		// a field can point to another tiddler whereas text is the current tiddler.
		var title = params[0] == "text" ? tiddler.title : value;
		var args = macro.getArguments(paramString, params);
		macro.renderImage(place, title, args);
	}
});
config.shadowTiddlers.StyleSheetImageMacro = [".wikifiedImage svg, .wikifiedImage .image { width: 80%; }",
	".svgImageText { background-color:[[ColorPalette::Error]]; color:#ddd; display: inline-block; }",
	"span.svgImageText { display: inline-block; overflow: hidden; }"
].join("");
store.addNotification("StyleSheetImageMacro", refreshStyles);

})(jQuery);
//}}}
|details|k
|''Name''|~ExtraFiltersPlugin|
|''URL''|http://yakovl.bplaced.net/TW/ExtraFilters.html|
|''Author''|[[Yakov Litvin]]|
|''Released''|2013-06-06|
|''Version''|1.2.0|
|''CoreVersion''|2.2.6|
|''Requires''|[[UpToDateFiltersPlugin|http://yakovl.bplaced.net/TW/ExtraFilters.html#UpToDateFiltersPlugin]] necessary only for TW < v2.6.2|
|''Source''|http://yakovl.bplaced.net/TW/ExtraFilters.html#ExtraFiltersPlugin|
|''Licence''|[[BSD-like open source license|http://yakovl.bplaced.net/TW/ExtraFilters.html#%5B%5BYakov%20Litvin%20Public%20Licence%5D%5D]]|
! Summary
~ExtraFiltersPlugin is a collection of custom filters, as of v1.2: {{{all}}}, {{{from}}}; {{{and}}}, {{{not}}}, {{{hasPart}}}, {{{unclassified}}}; {{{sortByText}}}, {{{sort: random}}} (each of them is availabe separately at http://yakovl.bplaced.net/TW/ExtraFilters.html).
! Examples
; [[plugin info tiddler|http://yakovl.bplaced.net/TW/ExtraFilters.html#ExtraFiltersPluginInfo]]
:see the author's info tiddler for examples
! Details
For detailed reference of each filter, see the [[info tiddler|http://yakovl.bplaced.net/TW/ExtraFilters.html#ExtraFiltersPluginInfo]].

{{annotations{
Note: the name "~ExtraFiltersPlugin" is not exclusively used by Yakov: Jon [[uses|http://filters.tiddlyspace.com/#ExtraFiltersPlugin]] it as well (those are more oriented on TiddlySpace).
}}}
/*{{{*/
Background: #fff
Foreground: #003366
PrimaryPale: #e8f1f9
PrimaryLight: #90bfe5
PrimaryMid: #398cd1
PrimaryDark: #091b29
SecondaryPale: #e8f1f9
SecondaryLight: #90bfe5
SecondaryMid: #398cd1
SecondaryDark: #091b29
TertiaryPale: #f9f9f9
TertiaryLight: #aaa
TertiaryMid: #888
TertiaryDark: #222
Error: #f88
ColorPaletteParameters: HSL([248|6], [0.67|0.53|0.43|0.06],[0.31|0.5|0.85|0.99])
/*}}}*/
/%
!Filters
[[Plugin]] [[Plugins]]|<<tiddler GetIcon##Template with: Plugins>>
[[App]] [[Apps]]|<<tiddler GetIcon##Template with: Apps>>
[[Authors]][[Author]]|<<tiddler GetIcon##Template with: Authors>>
[[Theme]][[Themes]][tag[Themes]]|<<tiddler GetIcon##Template with: Themes>>
[[Reference]][[References]]|<<tiddler GetIcon##Template with: References>>
[[Home]]|<<tiddler GetIcon##Named with: Starred Home>>
[[Featured]]|<<tiddler GetIcon##Template with: Featured>>
[[Type]] [tagged[Type]]|<<tiddler GetIcon##Template with: Plugins>>
[[Contribute]]|<<tiddler GetIcon##Named with: Following__Activity Contribute>>
[[About @Customize]]|<<tiddler GetIcon##Named with: Starred Home>>
[tag[Apps]]|<<tiddler GetIcon##Template with: Apps>>
[tag[Plugins]]|<<tiddler GetIcon##Template with: Plugins>>
[tag[Author]]|<<tiddler GetIcon##Template with: Authors>>
[tag[References]]|<<tiddler GetIcon##Template with: References>>
[tag[Featured]]|<<tiddler GetIcon##Template with: Featured>>
[tag[Theme]]|<<tiddler GetIcon##Template with: Themes>>
[tag[App]]|<<tiddler GetIcon##Template with: Apps>>
[tag[Reference]]|<<tiddler GetIcon##Template with: References>>
[tag[Plugin]]|<<tiddler GetIcon##Template with: Plugins>>
[tag[Contribute]]|<<tiddler GetIcon##Named with: Following__Activity Contribute>>
[tag[Template]]|<<tiddler GetIcon##Named with: Following__Activity Contribute>>
!Template
{{tiddlerIcon{[img[/Tab$1.gif][$1]]}}}
!Named
{{tiddlerIcon{[img[/Tab$1.gif][$2]]}}}
!END%/
|details|k
|''URL''|http://www.TiddlyTools.com/#HideTiddlerTitle|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-25|
|''Version''|2.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#HideTiddlerTitle|
!Summary
hide a tiddler's title and subtitle (date and author)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#HideTiddlerTitle]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#HideTiddlerTitle
/***
|''Name''|RenameTiddlersPlugin|
|''Author''|[[Tobias Beer|http://tobibeer.tiddlyspace.com]]|
|''Description''|Allows you to easily rename or delete tiddlers and have tags updated across multiple tiddlers|
|''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/RenameTiddlersPlugin.min.js|
|''Documentation''|http://renametiddlers.tiddlyspace.com|
|''Version''|1.0.0 BETA (2013-10-07)|
|''~CoreVersion''|2.5.2|
|''License''|[[Creative Commons Attribution-Share Alike 3.0|http://creativecommons.org/licenses/by-sa/3.0/]]|
***/
///%
var me=config.renameTiddler={lang:{rename:"Rename tag '%0' to '%1' in %2 tidder(s)?",remove:"Remove tag '%0' from %1 tidder(s)?"},updateTagged:function(e,t,n){var r,i,s,o,u,a,f;store.suspendNotifications();for(r=0;r<n.length;r++){a=n[r];if(t)a.tags.splice(a.tags.indexOf(e),1,t);else a.tags.splice(a.tags.indexOf(e),1);a.modified=new Date}store.resumeNotifications();store.notifyAll();if(config.options.chkAutoSave)autoSaveChanges()},core:{getTaggedTiddlersWritable:function(e,n){var r=[],i=this.getTaggedTiddlers(e);for(t=0;t<i.length;t++){tid=i[t];sp=tid.fields["server.permissions"];tRcp=tid.fields["server.recipe"];sRcp=config.extensions.tiddlyweb?config.extensions.tiddlyweb.status.space.recipe:"";pos=sRcp.indexOf("_private");if(tid.title==e||tid.title==n||!tRcp||sp&&(sp.indexOf("write")<0||pos!=sRcp.length-8||sRcp.substr(0,pos)!=tRcp.substr(0,pos)||tid.doNotSave&&tid.doNotSave()))continue;r.push(tid)}return r},saveTiddlerRENAMETIDDLERS:TiddlyWiki.prototype.saveTiddler,saveTiddler:function(e,t,n,r,i,s,o,u,a,f){var l,c;if(e!=t){var h=(this.getValue(e,"renamed")||"").readBracketedList();if(e!=config.macros.newTiddler.title)h.pushUnique(e);if(h.contains(t))h.splice(h.indexOf(t),1);this.setValue(e,"renamed","[["+(h.length?h.join("]][["):e)+"]]");var p=this.getTaggedTiddlersWritable(e,t);l=p.length;if(p.length){if(confirm(me.lang.rename.format([e,t,l])))me.updateTagged(e,t,p);if(!this.tiddlerExists(e)&&n=="")return null}}return this.saveTiddlerRENAMETIDDLERS(e,t,n,r,i,s,o,u,a,f)},removeTiddlerRENAMETIDDLER:TiddlyWiki.prototype.removeTiddler,removeTiddler:function(e){var t=this.getTaggedTiddlersWritable(e);if(t.length)if(confirm(me.lang.remove.format([e,t.length])))me.updateTagged(e,"",t);return this.removeTiddlerRENAMETIDDLER(e)},getReferringTiddlers:function(e,t,n){var r=(store.getValue(e,"renamed")||"").readBracketedList();r.push(e);if(!this.tiddlersUpdated)this.updateTiddlers();return this.reverseLookup("links",r,true,n)},reverseLookup:function(e,t,n,r){var i=[];this.forEachTiddler(function(r,s){var o=!n;var u;if(["links","tags"].contains(e)){u=s[e]}else{var a=TiddlyWiki.standardFieldAccess[e];if(a){u=[a.get(s)]}else{u=s.fields[e]?[s.fields[e]]:[]}}if(u.containsAny(typeof t=="object"?t:[t])){o=n}if(o)i.push(s)});if(!r)r="title";return this.sortTiddlers(i,r)}},init:function(){merge(TiddlyWiki.prototype,this.core)}};findRenamedTiddler=function(e){var t=false;if(!store.tiddlerExists(e)&&e!=config.macros.newTiddler.title){store.forEachTiddler(function(n){var r=(store.getValue(n,"renamed")||"").readBracketedList();if(r.contains(e)){e=n;t=true;return false}})}return[e,t]};Story.prototype.displayTiddlerRENAME=Story.prototype.displayTiddler;Story.prototype.displayTiddler=function(e,t,n,r,i,s,o,u){t=findRenamedTiddler(t instanceof Tiddler?t.title:t)[0];return Story.prototype.displayTiddlerRENAME.apply(this,arguments)};createTiddlyLinkRENAME=createTiddlyLink;createTiddlyLink=function(e,t,n,r,i,s,o){var u=findRenamedTiddler(jQuery.trim(t));t=u[0];return jQuery(createTiddlyLinkRENAME.apply(this,arguments)).addClass(u[1]?"tiddlyLinkRenamed":"")[0]};getTiddlyLinkInfoRENAME=getTiddlyLinkInfo;getTiddlyLinkInfo=function(e,t){e=findRenamedTiddler(e)[0];return getTiddlyLinkInfoRENAME.apply(this,arguments)};config.paramifiers.open.onstart=function(e){e=findRenamedTiddler(e)[0];if(!readOnly||store.tiddlerExists(e)||store.isShadowTiddler(e))story.displayTiddler("bottom",e,null,false,null)};me.init()
//%/
|details|k
|''URL''|http://themes.tiddlywiki.com/zeldman.html|
! Summary
A clean, light theme with orange highlights and an orange header that has both the SiteTitle and SiteSubtitle right aligned. As in a classical TiddlyWiki, the MainMenu is to the left and the [[sidebar|sideBarTabs]] to the right.
! Preview
[img[[img[http://img.tiddlyspace.com/Zeldman][http://themes.tiddlywiki.com/Zeldman.html]]
|details|k
|''URL''|http://www.TiddlyTools.com/#SetSidebarTabsHeight|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-03-14|
|''Version''|2.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SetSidebarTabsHeight|
!Summary
use CSS to set a fixed, scrolling or percentage height for the sidebar tabs area
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SetSidebarTabsHeight]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SetSidebarTabsHeight
<<tag Plugins "Plugins extensions">>to TiddlyWiki can come as one of the following plugin types...

{{noTitle{<<tagging>>}}}
|details|k
|''URL''|http://themes.tiddlywiki.com/rin.html|
! Summary
This grayish theme comes with a very slim SiteTitle and SiteSubtitle followed by blue gradient image header, and a well organized [[sidebar|SidebarTabs]] and MainMenu to the left.
! Preview
[img[[img[http://img.tiddlyspace.com/Rin][http://themes.tiddlywiki.com/rin.html]]
|details|k
|''URL''|http://www.TiddlyTools.com/#QuickNotePlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-06-07|
|''Version''|2.1.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#QuickNotePlugin|
!Summary
create quick notes using username+timestamp as tiddler titles
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#QuickNotePlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#QuickNotePlugin
Serverside tools and more...
» http://tiddlywiki.bidix.info
|details|k
|''URL''|http://mptw.tiddlyspot.com/#QuickOpenTagPlugin|
|''Author''|[[Simon Baird]]|
|''Released''|2013-06-17|
|''Version''|3.0.1a|
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Simon Baird]]|
|''Source''|http://mptw.tiddlyspot.com/#QuickOpenTagPlugin|
!Summary
Changes tag links to make it easier to open tags as tiddlers
!Examples
; [[plugin info tiddler|http://mptw.tiddlyspot.com/#QuickOpenTagPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://mptw.tiddlyspot.com/#QuickOpenTagPlugin
The author of a comprehensive Tiddly-Compendium at...
: http://twhelp.tiddlyspot.com
(function() {
var getCSRFToken = function(window) {
	// XXX: should not use RegEx - cf.
	// http://www.quirksmode.org/js/cookies.html
	// https://github.com/TiddlySpace/tiddlyspace/commit/5f4adbe009ed4bda3ce39058a3fb07de1420358d
	var regex = /^(?:.*; )?csrf_token=([^(;|$)]*)(?:;|$)/;
	var match = regex.exec(document.cookie);
	var csrf_token = null;
	if (match && (match.length === 2)) {
		csrf_token = match[1];
	}

	return csrf_token;
};

if (typeof config !== 'undefined' && config.extensions &&
		config.extensions.tiddlyspace &&
		config.extensions.tiddlyspace.getCSRFToken === null) {
	config.extensions.tiddlyspace.getCSRFToken = getCSRFToken;
} else {
	window.getCSRFToken = getCSRFToken;
}
})(window);
|details|k
|''URL''|http://tiddlertabs.tiddlyspace.com|
|''Author''|Tobas Beer|
|''Version''|0.9.1 beta|
|''Released''|2012-05-14|
|''Requires''|2.6.2|
|''Source''|http://tiddlertabsplugin.tiddlyspace.com/#TiddlerTabsPlugin|
This plugin lists all tiddlers in tabs via the {{{<<tiddlerTabs>>}}} macro.
! Examples
; [[info space|http://tiddlertabs.tiddlyspace.com]]
: the plugin info space shows numerous examples
! Preview
[img[[img[http://img.tiddlyspace.com/TiddlerTabsPlugin_1][http://tiddlertabs.tiddlyspace.com]]
! Details
[[TiddlerTabsPlugin|TiddlerTabsPlugin...]] only lists tabs for the first letters of tiddler titles that actually exist. You will never click on a tab only to find that it's empty.

You can use the following parameters to configure the output {{{<<tiddlerTabs group:5 sub:2>>}}}.

|!Param|!Description|!Default|
|''group''|Defines how many letters are being grouped into one tab. A letter here means any letter for which there actually are tiddlers. In other words, the first letter from tab 2 is not necessarily the one that follows the last letter from tab 1! | 3 |
|''sub''|The maximum number of columns rendered inside a tab. If there are less items in a tab than the value of {{{sub}}} or the value of the hard coded parameter {{{minSubLength}}}, there will actually be less columns all the way until eventually only one is used.| 3 |
|''name''|If you want to know where your tiddlerTabs end up, define a __unique__ name for your macro call, e.g. {{{<<tiddlerTabs name:All>>}}}. Then you will find a shadow tiddler which goes by the name [[TiddlerTabs_All]]| dynamic |

{{annotation{
This plugin was developed to alleviate the pain of having to construct the required output using [[ForEachTiddlerPlugin...]] as you find in [[this example|http://twhelp.tiddlyspot.com/#AlphaTabs]].
}}}
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
!Tags
Apps
Author
Plugins
|App| refTag:"##Summary"
|Featured| refTag:"##Summary"
|Theme| refTag:"##Summary"
|Themes| refTag:"##SUMMARY"
Themes|
|Reference| refTag:"##Summary"
References
!Template
{{itemlist{<<get "$1" filter:"[tag[$2]]" format:"* {{item{ {{itemtitle{» [[%1]]}}}{{itemsummary{%0
}}} }}}">><<listfiltr>>}}}
|details|k
|''URL''|http://mptw.tiddlyspot.com/#ToggleTagPlugin|
|''Author''|[[Simon Baird]]|
|''Released''|2013-06-17|
|''Version''|3.1.0a|
|''CoreVersion''||
|''Source''|http://mptw.tiddlyspot.com/#ToggleTagPlugin|
!Summary
Makes a checkbox which toggles a tag in a tiddler
!Examples
; [[plugin info tiddler|http://mptw.tiddlyspot.com/#ToggleTagPlugin]]
:see the author's info tiddler for examples
!Details
{{{<<toggleTag }}}//{{{TagName TiddlerName LabelText}}}//{{{>>}}}
;~TagName
:the tag to be toggled, default value "checked"
;~TiddlerName
:the tiddler to toggle the tag in, default value the current tiddler
;~LabelText
:the text (gets wikified) to put next to the check box, default value is '{{{[[TagName]]}}}' or '{{{[[TagName]] [[TiddlerName]]}}}'
If a parameter is '.' then the default will be used.
;~TouchMod flag
:if non empty then touch the tiddlers mod date.
{{annotation{
''Note:'' can set {{{config.toggleTagAlwaysTouchModDate}}} to always touch mod date.
}}}
''Examples''
|Code|Description|Example|h
|{{{<<toggleTag>>}}}|Toggles the default tag (checked) in this tiddler|<html><input type="checkbox" class="chkOptionInput"><a class="tiddlyLink">checked</a></html>|
|{{{<<toggleTag TagName>>}}}|Toggles the TagName tag in this tiddler|<html><input type="checkbox" class="chkOptionInput"><a class="tiddlyLink">TagName</a></html>|
|{{{<<toggleTag TagName TiddlerName>>}}}|Toggles the TagName tag in the TiddlerName tiddler|<html><input type="checkbox" class="chkOptionInput"><a class="tiddlyLink">TagName</a> <a class="tiddlyLink">TiddlerName</a></html>|
|{{{<<toggleTag TagName TiddlerName 'click me'>>}}}|Same but with custom label|<html><input type="checkbox" class="chkOptionInput">click me</html>|
|{{{<<toggleTag . . 'click me'>>}}}|dot means use default value|<html><input type="checkbox" class="chkOptionInput">click me</html>|

'''Notes''
* If ~TiddlerName doesn't exist it will be silently created
* Set label to '-' to specify no label
* See also http://mgtd-alpha.tiddlyspot.com/#ToggleTag2
|details|k
|''URL''|http://visualtw.ouvaton.org|
|''Author''|[[Pascal Collin]]|
|''Version''|1.0.1|
|''Released''|2008-01-04|
|''Requires''|2.1.0|
|''Source''|http://visualtw.ouvaton.org/VisualTW.html#TagsTreePlugin|
! Summary
Displays tags hierachy as a tree of tagged tiddlers that can be used to create dynamic outline navigation.
! Examples
; http://visualtw.ouvaton.org
:» the publishers page showcases the plugin
! Preview
: [img[http://img.tiddlyspace.com/TagsTreePlugin_1]]
! Details
On the publisher's page, try to tag some new tiddler with a tag displayed in the menu and you will see it is automatically added to the menu. You can also check the [[MainMenu|http://visualtw.ouvaton.org#MainMenu]] or look at some tags like [[Plugins|http://visualtw.ouvaton.org#Plugins]].
|details|k
|''URL''|http://docs.tiddlyspace.com|
|''Author''|TiddlySpace|
|''Date''|2013-08-26|
! Summary
The @docs space on TiddlySpace provides detailed information on how to work with and extend TiddlySpace.
! Preview
[img[http://img.tiddlyspace.com/docs.tiddlyspace.com][http://docs.tiddlyspace.com]]
! Details
@Docs provides TiddlySpace documentation.
For news on TiddlySpace visit the @blog space. 

Here's a list of the most important things to consider...
;~WikiText (for editing content)
:» see [[Markup|http://tiddlywiki.org/#Markup]] and [[WikiText|http://tiddlywiki.org/#WikiText]] at [[tiddlywiki.org|http://tiddlywiki.org]]
;Macros
:» [[TiddlySpace Macros...|http://docs.tiddlyspace.com#Macros]]
:» for [[TiddlyWiki Core Macros|http://tiddlywiki.org/#Macro]] see [[TiddlyWiki.org|http://tiddlywiki.org/#Macro]]
;Shadow Tiddlers
:» see [[ShadowTiddler|http://tiddlywiki.org/#ShadowTiddler]] at [[tiddlywiki.org|http://tiddlywiki.org]]
;Additional Resources
:» [[FAQs|http://docs.tiddlyspace.com#FAQs]]
:» Glossary
:» Media
:» Developer Resources
:» User Guides
;Architecture and API
:» TiddlySpace is built on TiddlyWeb
:» TiddlyWeb has a [[documentation|@@tiddlyweb]] space
:» TiddlyWeb has an [[api|HTTP API]]@tiddlyweb you can use
The docs space is collected from the @faq, @macros, @fields, @security and @glossary spaces.
A wide range of applications have been built around TiddlyWiki, some may be [[outdated|Outdated]]. In this context, an app is more than just a little thing, it's literally any application whose architecture leverages TiddlyWiki.

Here's a reference of apps listed in this space...
{{noTitle{<<list filter [tag[Reference]][tag[References]][sort[title]]>>}}}<<listfiltr>>
|details|k
|''URL''|http://tiddlywiki.squize.org#AnnotationsPlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2007-10-18|
|''Version''|2.0|
|''CoreVersion''|2.2.3|
|''Source''|http://tiddlywiki.squize.org#AnnotationsPlugin|
!Summary
Inline annotations for tiddler text.
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#AnnotationsPlugin]]
:» see the author's info tiddler for a demo
!Preview
[img[http://img.tiddlyspace.com/AnnotationsPlugin_1][http://tiddlywiki.squize.org#AnnotationsPlugin]]
!Details
To include the text being annotated, in the popup as a title, put {{{^}}} as the first letter of the annotation text.

''Markup''
* {{{ ((banana(the best fruit in the world))) }}}
** {{{ ((banana(^ the best fruit in the world))) }}}

* {{{((text to annotate(annotation goes here)}}}
** {{{((text to annotate(^annotation goes here)}}}
|details|k
|''URL''|http://mptw.tiddlyspot.com/#TagglyTagging|
|''Author''|[[Simon Baird]]|
|''Released''|2013-06-17|
|''Version''|3.3.2a|
|''CoreVersion''||
|''Source''|http://mptw.tiddlyspot.com/#TagglyTaggingPlugin|
!Summary
tagglyTagging macro is a replacement for the builtin tagging macro in your ViewTemplate
!Examples
; [[TagglyTagging Tutorial|http://mptw.tiddlyspot.com/#%5B%5BTagglyTagging%20Tutorial%5D%5D]]
:walk through a life demo
!Preview
[img[http://img.tiddlyspace.com/TagglyTaggingPlugin_1][http://mptw.tiddlyspot.com/#TagglyTagging]]
!Details
~TagglyTagging (also known as "~TagglyWiki Style Tagging") is set of plugins, templates and styles you can install in your TiddlyWiki that let you use tagging in powerful and useful ways.

''"""What's different about TagglyTagging?"""''
Actually a lot less than there used to be since TiddlyWiki version 2.0! ~TagglyTagging introduced the concept that a tag was a tiddler and vice-versa. Since version 2.0 this concept central to tagging in TiddlyWiki.

''"""Layout Changes"""''
* A tiddler's tags are show ''above'' the tiddlers title (instead of in a right-floated box).
* A tiddler's tagging list is shown ''below'' the tiddlers content (instead of in a left-floated box).

''"""Enhanced "tagging" list"""''
The default TW tagging macro is called "tagging". ~TagglyTagging provides an enhanced version of this called "tagglyTagging". So in the ''~TagglyTaggingViewTemplate'', macro="tagging" is replaced by "macro="tagglyTagging". The {{{<<tagglyTagging>>}}} macro lets you do things like:
* Sort the tagged list ascending or descending by title, modified date or created date
* Format the list in columns
* Hide the tagged list
It also remembers your preference on a per-tiddler basis. 

''"""The "new here" button"""''
The "New Here" button is optional but very useful. It lets you quickly create a new tiddler that is automatically tagged with the tag you're looking at, e.g. if you are looking at Addresses, clicking "new here" creates a new address.

''"""Why use TagglyTagging?"""''
~TagglyTagging lets you better utilise the power of tagging your TiddlyWiki data. 
A brief list of what you can do with ~TagglyTagging:
* Dynamically define the structure of your data.
* Avoid hand maintaining "index" pages of your tiddlers.
* Make all your data easily locatable via your tag heirachy.

Other reasons you should give ~TagglyTagging a try:
* You find you aren't getting a lot of value from tagging your tiddlers in TiddlyWiki.
* You are sometimes annoyed by tag popup menus especially when they are longer than your page.

Sounds good but I'm not feelin' it...
* It is hard to explain without a demonstration. Try the [[TagglyTaggingTutorial|http://mptw.tiddlyspot.com/#TagglyTaggingTutorial]]
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
|details|k
|''URL''|http://themes.tiddlywiki.com/blueberry2.html|
! Summary
Even [[blue'er than purple|Berry2]] with a horizontal MainMenu.
! Preview
[img[[img[http://img.tiddlyspace.com/Blueberry2][http://themes.tiddlywiki.com/blueberry2.html]]
|details|k
|''URL''|http://www.TiddlyTools.com/#MoveablePanelPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-12-25|
|''Version''|3.0.4|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#MoveablePanelPlugin|
!Summary
move/size any tiddler or page element
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#MoveablePanelPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#MoveablePanelPluginInfo
/*{{{*/
merge(config.macros.tagsearch.cfg,{
    toolbar: "search source:'TagSearchConfig##Tags' more:'TagSearchConfig##More' mode:2",
    sidebarOffset: -310,
    newAt:22,
    newAtSingle:50
});

merge(config.extensions.linkify.defaults,{
    linkifyAllTiddlers: true,
    doNotLinkifyInside: 'h1,h2,h3,h4,h5,h6,.header,.noLinkify,#sidebar',
    doNotLinkifySameTiddler: false
});

//keep list items intact on using listfiltr
config.macros.listfiltr.defaultPreserve = '.item, .tsBox';

//don't color tiddler titles
config.extensions.coloredLinks.colorTitles = false;

if(config.macros.discuss) merge(config.macros.discuss.config, {
    always: true,
    tplSlider: 'Show comments for \'\'"""%0"""\'\'...'
});
/*}}}*/
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
<<tag "Science & Education" Plugins>>for lab geeks, researchers and educational instructors, e.g. math, latex, spreadsheets, bibtex, learning, mnemonics, etc...
Please review any <<tag zzUnsorted "unsorted plugins">>— add corresponding<<tag Plugins "plugin categories">>, remove the tag<<tag zzUnsorted>>, and add or review the ''Preview'' and ''Details'' section...
{{noTitle{<<tagging zzUnsorted>>}}}
Entries that need reviewing, especially the ''Preview'' and ''Details'' section...
{{noTitle{<<tagging>>}}}
{{rightImg{[>img[TiddlyWiki.org|http://img.tiddlyspace.com/TiddlyWiki.org_Logo][http://tiddlywiki.org]]}}}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. A well of information can be found in the community powered documentation space.

For more info, see [[Getting Involved]]...
|''URL''|http://tiddlywiki.com|
|''Author''|[[Jeremy Ruston]] [[Eric Shulman]]|
|''Date''|2013-06-24|
!Summary
Yes, you can use TiddlyWiki as it is for many purposes. For references and information on the powerful little wiki invented by [[Jeremy Ruston]] see...
; [[TiddlyWiki.org]]
:comprehensive documentation
;[[TiddlyWiki.com]]
:lot's of references and background
{{{
|details|k
|''URL''|http://where.com/reference.html|
|''Author''|[[Firstname Lastname]]|
|''Date''|<YYYY-0MM-0DD>|
! Summary
A few short words on the reference of key points.
! Preview
[img[http://img.tiddlyspace.com/ReferenceName]]
! Details
Details on the reference, e.g. intentions, motivations, pros & cons.
}}}
!Reference Template Guidelines
; Naming Conventions
: give it the external title
; Tagging Conventions
: Tag a [[listed reference|Reference]]...
:* always with <<tag Reference>>
:* with the Author using [[Firstname Lastname]] — see  <<tag Author>>
:* with any corresponding<<tag References "reference category">>
{{annotation{For creating new <<tag References "reference categories">>, please discuss first.}}}
!Reference Template Preview
{{{
|details|k
|''URL''|http://where.com/reference.html|
|''Author''|[[Firstname Lastname]]|
|''Date''|<~YYYY-0MM-0DD>|
! Summary
A few short words on the reference of key points.
! Preview
[img[http://img.tiddlyspace.com/ReferenceName]]
! Details
Details on the reference, e.g. intentions, motivations, pros & cons.
|details|k
|''URL''|http://tiddlywiki.squize.org/#DropTagsMacroDocumentation|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-20|
|''Version''|0.5 (12-May-2006)|
|''CoreVersion''|~TW2.07|
|''Source''|http://tiddlywiki.squize.org#DropTagsMacro|
!Summary
Provides a drop down list of tags in the current tiddler, a replacement for the core tags macro.
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org/#DropTagsMacroDocumentation]]
:see the author's info tiddler for examples
!Preview
[img[http://img.tiddlyspace.com/DropTagsMacro_1]]
!Details
None yet. Please review...
Recommended to use with either [[TaggerPlugin...]] or [[MonkeyTaggerMacro...]] with ''dropTags'' and ''dropTagging'' in the toolbar.
R0lGODlhAQEBAYIAMTRmrJW33Nrm88DT6fz+/HSezIWs1afD5CwAAAAAAQEBAQID/gi63P4wykmrvTjrzbtvRSiOZGmeaKqubOu+cCzPdB0qdq7vfO//wBUuSCwaj8gkaqhsOp/Q6IgprVqvWBg1y+16pduveEzuhcvotFp1Xrvf6DZ8TsfK6/i88q7v+318f4KDMoGEh4hLAImMjUKLjpGSN5CTlomGl5pwmZueaZ2fomKho6ZZpaeqYJWrrqStrzYBsjuptSUGBLg5t7wiBwQGvzS+xAIEA8Qzxr8EBALLhbHSKwHPwtUvzbgD2AfaLty12NDhLeOv1+XnLOmu3uW07Snvq+XPyvSK+ye6+Lv6mbB3Kh6+eQKnUBOIDKC+hCIIjvoHMCBEShdDBKuY/i2jRFENKz6E+PETx2fRPC6kt+7ksIslNxnkCA7mynYnsaUkeTNcy5wqL848iVBgzEshc47sd3QSxZzPbELcCPVZ0X1NJSWFupReVkdPq1pk2lMaVbEdySYcWrWmWoFoy+3EWpbYz7gv6QpkK9at17rO4so1ChhXWMGE+/FFezXc10RbBXfV9vjQYcFjz1UmdBazVb30ImOeLG3zIM8A5zourA41wLyr6S3G7Jcya1euU/9tdzd3WtvtZnuuXfq2KtGuSf8y3eey73bM9XT2/Tl2OOS5leOKjsc5dc3GR02nXr0a9zrYfWuXdZ4OeY6qibWH0/v9M9jyw38STp04/q/5b9gHH3DS1CdgZsvpJ9OBFflXC4BrpPfeeqtAmIZ3B5qn4CXjMUhAYw9uaImE9lF4ioVoeHhSccsYqCJ+IS7D34EmjoIiGSqeFB97IkbiYo4wvnKjGDMy6GCFPTqSY047ujKkFxgumd8vHS5ZXoy8kKhijZ48yUWUVibIS5VWXilkkpCVqdR/aCKiJlRs4vLjm0Ge2CYhRVrJ5SXcBODnn4AGKuighBZq6KGI+vkmVAIk6uijkEYaqA3ckLnopZhmeimI2yQJpqaghiqqZwLU2akOBmg56qqsrrpnPXda2uqstC56ZAwEzVnrrrwKaOo0PqTa67DEvlcqIHeO/pBnscw2e2sxyY6ga7PUDstpL9GOIGy13DJ7bBBZLdvtuJe+imu2JUxL7rplXsvDY9uyK++i3xqxmbjz5uuZudA2Iau+AAvm7g/MqRvwwRXVm0R08SLsMFdQnPfvwwE/S0R7BlMs78BFzNewxgcr/ASE+ILMrMVHWJixycRyjASKH7PMrcisdFGyzK528eTEOLPqchNeftqzqDRf4WUIqg6NKb8vo7sDz0qriXIUR4uwctQvllG1CDFj/WaTOjvtw81e5za1FVuTcHXZqP1stNg/dM22sb96kbYJZM99EtM106e3fW5zcbc/Sf+dWt1jDI5C3nPz/XYeUBse+BeK/qewttdFv1F5CnIbno8fm6sQudJnxwG3E5ezjLgboa/QOdaZ19E6C4wfXPoas7OQesCT4366FK+DHLseubtQO7mOg/K7FaNv7EjxLwg97/B/QA9D4eMmz/ryWTTfbO94WA/D7sSuXj33WBzfq/bbW6Ix2IeI7wL5xZrfh/wtqD/s7eGjb4XJ8BsE/lzHskkMUAX6Ixb/6HDAFGAPeZJooD9wFkH/RcF74wIfJywIhQeui32mi8TQIiHBdA3NfrLjoBMS2CwQkqGEJFBaAO+nQiXQb1wonAMMRcBCai2wfYyAXSN2WADpIWyINURCD6v1QzUQ0YP6ciHlkmgEIzqM/hE7xKC+NKi8NJVNimFLhN4wQUUi3HBeOfQdIpaYPUTA8G8zZGAZgXDGfKWxi3hiFRtpE785/oBVw6ija+K4QUJYkUEjCV6Z+pjHUPlnj30hhAShSJ5raVE9kvQjDw5JNxUoUkWZHMQlUXM2SBJFgJrcASVdM7lRjgaVp7kU9U4gSLHA8g+1XBMNPmmfOyYulTkwpTx04EqxgLEKB/yaL02Qy4QJYoDNxMcxeembZdoNmDUQJhdXIMwmXvMPVprlLMJ5Pj9wEi3HJJyUQIfNGezRmzJ4Jzv9sEqXQKGZ6RxZO2NwTl1GgZpxmad0jJQ+Bm0TFfu83oEO2gNB5hNo/gl9gYDE2QSAwol4EW3BGeFZBP1Z0w4Zpd17GGoEVz50YSFdAXkoaoV+6gSjeSDfSYFQu4+iLaUpYBxJn6BFjiITpyjIDUu/kDpC/rI7yWkOFG3aNzrcbKdYaJ5PqQZUE2BvqGq42kw7VlUSWHGr/8Re/+oAtamSQVxQdULxksbUNBgMrEAoHlqMak5VpZAO0zLrG4qU1j10lYdV6esbdAVXZLmHSW3tTnroKri/FuBHetWDcBLr1znMRrADpYkOHQsfygqia4wFKRwuU9g68MWzKfsrWzB7iOlENrVwSApWJyLNQrrhKaX9Q8NsuwaqsFYSvtVcV5ExW1msI7eUb+pqMjJSRGQI1w0BeK0pBvBbgjmWuXLErnZPQMTtita74C1Ad8PbVPJid7zm1Wd6tYve9VbWvUGBr1TkyxP61te+icHvW/S7G/7217/gATB0rivg8hZ4Ge09sA4SrODkfuDBEI6whCdM4QpbuAIJAAA7
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="301 225 48 52"
width="30" height="30">
<g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1">
	<g>
		<path d="M 333.00003 234 L 306 258.75003 L 301.5 270 L 312.75 265.50003 L 339.75 240.74998 Z M 337.5 229.50002 
		L 335.24988 231.75008 L 341.99997 238.50003 L 344.24997 236.24995 Z M 342 225.00003 L 339.74988 227.25009 
		L 346.5 234.00005 L 348.75 231.75003 Z M 301.5 273.9719 C 301.5 273.9719 309.59888 277.99927 317.70013 273.97183 
		C 325.80066 269.94437 341.99997 276.65686 341.99997 276.65686 L 341.99997 273.97195 
		C 341.99997 273.97195 325.80014 267.2594 317.70013 271.28687 C 309.6 275.31451 301.5 271.28683 301.5 271.28683 Z" 
		fill="#101010" class="glyph"/>
	</g>
</g>
</svg>
|details|k
|''URL''|http://themes.tiddlywiki.com/flickr.html|
! Summary
This one is modeled after a a great-grand-ancestor of the image hosting and sharing site [[flickr.com|http://flickr.com]] with blue and pink highlights against a white background.
! Preview
[img[[img[http://img.tiddlyspace.com/Flickr][http://themes.tiddlywiki.com/flickr.html]]
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="301 225 48 52"
width="30" height="30">
 <g stroke-opacity="1" fill-opacity="1" stroke="none" stroke-dasharray="none" fill="#000"  transform="matrix(1.2539275,0,0,1.2539275,-84.35669,-61.200181)">
  <g>
  <path class="glyph" d="m332.86,229.58-25.433,27.703,13.625-2.0437-0.99913,13.261,25.296-28.521-12.489-10.4zm0.27249,7.539c2.3029,0,4.1782,1.83,4.1782,4.0874,0,2.2573-1.8753,4.0874-4.1782,4.0874s-4.1328-1.83-4.1328-4.0874c0-2.2573,1.8299-4.0874,4.1328-4.0874z"/>
 </g>
</g>
</svg>
|details|k
|''URL''|http://tiddlywiki.squize.org#MonkeyTaggerMacro|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-20|
|''Version''||
|''CoreVersion''||
|''Source''|http://tiddlywiki.squize.org#MonkeyTaggerMacro|
!Summary
An adaptation of [[TagAdderMacro...]] for monkeyGTD and [[TagglyTaggingPlugin...]] to easily set and unset tags for a tiddler.
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#MonkeyTaggerMacro]]
:see the author's info tiddler for examples
!Details
''Syntax''
{{{
<<monkeyTagger
    source:"source tag"
    label:"custom label"
    logging:true
    anchor:"anchor text" 
    arrow:false
>>
}}}
|!Parameter|!Description|!Default|h
|source|mandatory, the tag tiddler<br>{{{<<monkeyTagger "Project">>}}} or {{{<<monkeyTagger source:"Project">>}}}||
|label|quoted text to use as a customlabel|source tag + arrow|
|arrow|boolean (true or false), add arrow to custom label|true|
|anchor|quoted text to specify where to add logging text<br>none used by default, logging text added to end of tiddler||
|logging|boolean (true or false), enable logging of tags added (for task management)|false|

''Toolbar''
To add ''monkeyTagger'' buttons to the toolbar, modify your ViewTemplate...
{{{
<div class='tagged' macro='monkeyTagger tagToTrack'></div>
}}}
or define your own toolbar class and add as many as you need to create a nice toolbar, e.g.:
{{{
<div class='toolbar' >
    <span class="monkey" macro='monkeyTagger Project'></span>
    <span class="monkey" macro='monkeyTagger Status'></span>
    <span macro='toolbar -closeTiddler closeOthers +editTiddler permalink references jump'></span>
</div>
}}}
|details|k
|''URL''|http://tiddlywiki.squize.org#DropTaggingMacro|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-04-06|
|''Version''|0.1|
|''CoreVersion''|2.0.7|
|''Source''|http://tiddlywiki.squize.org#DropTaggingMacro|
!Summary
Provides a drop down list of tiddlers tagged with the specified tag, a replacement for the core tagging macro.
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#DropTaggingMacro]]
:» see the author's info tiddler for examples
!Details
Use it with either [[TaggerPlugin...]] or [[MonkeyTaggerMacro...]] in the toolbar.

''Usage''
;{{{<<dropTagging>>}}} {{button{"""tagging""" ▾ }}}
:» for tiddlers tagging to the current tiddler
;{{{<<dropTagging 'systemConfig'>>}}} {{button{"""tagging""" ▾ }}}
:» for tiddlers tagged systemConfig
;{{{<<dropTagging 'systemConfig' 'plugins'>>}}} {{button{"""plugins""" ▾ }}}
:» for tiddlers tagged systemConfig but displayed with the custom label ''plugins''
!Summary
A GTD system for TiddlyWiki keeping things flexible and leveraging the power of taggly tagging...
 » http://tbgtd.tiddlyspot.com
!Details
tbGTD is currently available in [[English|http://tbgtd.tiddlyspot.com]] and [[German|http://tbgtd-deutsch.tiddlyspot.com]], both standalone and on TiddlySpot...

<<tiddler iframe with: "http://tbgtd.tiddlyspot.com">>
|!By Modified Date|!By Created Date|h
|<<tiddler Timeline##MODIFIED>>|<<tiddler Timeline##CREATED>>|
/%
!MODIFIED
<<timeline "modified" template:"TEMPLATES##MODIFIER">><<listfiltr>>
!CREATED
<<timeline "created" template:"TEMPLATES##EXCLUDE+LIST">><<listfiltr>>
!END%/
In TiddlyWiki you can use JavaScript <<tag Script scripts>> in various ways. In this context scripts require or use either of...
:» [[InlineJavascriptPlugin...]]
:» [[ForEachTiddlerMacro...]]
:» inline HTML with embedded JavaScript

For more information see [[scripts @ TiddlyWiki.org|http://tiddlywiki.org/#Scripts]].

{{annotation{
The @Customize space does __not__ host actual scripts but only links to them. For uploading and demonstrating scripts, please use the @scripts space.
}}}

{{noTitle{<<tagging>>}}}<<listfiltr>>
<<tag Aggregation Plugins>>analysing, gathering, aggregating tiddler information displaying results in lists, tables, etc...
A highly active resident in the TiddlyWorld providing lots of input on using TiddlySpace and creator of the lovely Mineral theme...
» http://BauweBijl.tiddlyspace.com
!Summary
A rather recent spin-off of mGSD...
» http://thinkcreatesolve.biz/dGSD.html
!Details
<<tiddler iframe with: "http://thinkcreatesolve.biz/dGSD.html">>
|details|k
|''URL''|http://www.TiddlyTools.com/#SectionLinksPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-12-22|
|''Version''|1.4.2|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#SectionLinksPlugin|
!Summary
Allows to use tiddler sections as anchor points and to link to them with internal links. Also provides a table of contents for sections.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SectionLinksPlugin]]
:see the author's info tiddler for examples
!Details
This plugin enhances tiddler links so that they can include section references that ''auto-scroll to the indicated section heading'' within a tiddler (i.e., similar to the 'anchor' behavior provided in HTML by {{{<a name="foo">}}} and {{{<a href="#foo">...</a>}}}).  The {{{<<tiddler>>}}} macro syntax has also be extended to allow section references without a tiddler name, so that transclusion of //hidden sections from the same tiddler// can be easily accomplished.  The plugin also adds a new macro, {{{<<sectionTOC>>}}} which can auto-generate and embed a 'Table of Contents' outline view into a tiddler to enable quick navigation to sections within that tiddler.

''Usage''
You can link to a section of a tiddler by adding the "##sectionname" syntax to the tiddlername:
{{{
[[SomeTiddler##SomeSection]]
}}}
When clicked, the tiddler is displayed and the specified section heading is automatically scrolled into view. If the tiddler title is omitted or the 'here' keyword is used, e.g.,
{{{
[[##SomeSection]] or [[here##SomeSection]]>>
}}}
then the current containing tiddler is implied by default.

''HTML anchor syntax''
You can use HTML syntax to create a scrollable 'anchor' location within a tiddler without use of the standard TW section heading syntax:
{{{
<html><a name="sectionname" /></html>
}}}
You can then link to that section using the enhanced TiddlyLink syntax as above.

''"""<<tiddler>>""" macro''
The {{{<<tiddler>>}}} syntax has been extended so that when the tiddler title is omitted or the 'here' keyword is used, e.g.,
{{{
<<tiddler ##SomeSection>> or <<tiddler here##SomeSection>>
}}}
then the current containing tiddler is implied by default.

''"""<<sectionTOC>>""" macro''
This macro generates a 'Table of Contents' outline-style bullet list with links to all sections within the current tiddler.  Simply place the following macro at the //end of the tiddler content// (i.e., following all section headings).  Important note: //''The {{{<<sectionTOC>>}}} macro must occur at the end of the tiddler in order to locate the rendered section headings that precede it.''//
{{{
<<sectionTOC>> or <<sectionTOC className>>
}}}
To position the macro's //output// within the tiddler, you must create a special 'target element' that uses a specific classname (default='sectionTOC'), like this:
{{{
{{sectionTOC{}}}
}}}
When the {{{<<sectionTOC>>}}} macro is rendered, it will find the matching 'sectionTOC'-classed element and writes it's output there.  You can also add the macro and/or target elements directly to the [[ViewTemplate]] definition, so that every tiddler can automatically display the table of contents:
{{{
<span class='sectionTOC'></span> <!-- target element -->
...
<span macro='sectionTOC'></span> <!-- must be at end of tiddler -->
}}}
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.6|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
***/
//{{{
version.extensions.InlineJavascriptPlugin={major:1,minor:9,revision:6,date:new Date(2010,12,15)};config.formatters.push({name:"inlineJavascript",match:"\\<script",lookahead:'\\<script(?: type=\\"[^\\"]*\\")?(?: src=\\"([^\\"]*)\\")?(?: label=\\"([^\\"]*)\\")?(?: title=\\"([^\\"]*)\\")?(?: key=\\"([^\\"]*)\\")?( show)?\\>((?:.|\\n)*?)\\</script\\>',handler:function(w){var lookaheadRegExp=new RegExp(this.lookahead,"mg");lookaheadRegExp.lastIndex=w.matchStart;var lookaheadMatch=lookaheadRegExp.exec(w.source);if(lookaheadMatch&&lookaheadMatch.index==w.matchStart){var src=lookaheadMatch[1];var label=lookaheadMatch[2];var tip=lookaheadMatch[3];var key=lookaheadMatch[4];var show=lookaheadMatch[5];var code=lookaheadMatch[6];if(src){var script=document.createElement("script");script.src=src;document.body.appendChild(script);document.body.removeChild(script)}if(code){if(show)wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);if(label){var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",wikifyPlainText(label));var fixup=code.replace(/document.write\s*\(/gi,"place.bufferedHTML+=(");link.code="function _out(place,tiddler){"+fixup+"\n};_out(this,this.tiddler);";link.tiddler=w.tiddler;link.onclick=function(){this.bufferedHTML="";try{var r=eval(this.code);if(this.bufferedHTML.length||typeof r==="string"&&r.length)var s=this.parentNode.insertBefore(document.createElement("span"),this.nextSibling);if(this.bufferedHTML.length)s.innerHTML=this.bufferedHTML;if(typeof r==="string"&&r.length){wikify(r,s,null,this.tiddler);return false}else return r!==undefined?r:false}catch(e){alert(e.description||e.toString());return false}};link.setAttribute("title",tip||"");var URIcode="javascript:void(eval(decodeURIComponent(%22(function(){try{";URIcode+=encodeURIComponent(encodeURIComponent(code.replace(/\n/g," ")));URIcode+="}catch(e){alert(e.description||e.toString())}})()%22)))";link.setAttribute("href",URIcode);link.style.cursor="pointer";if(key)link.accessKey=key.substr(0,1)}else{var fixup=code.replace(/document.write\s*\(/gi,"place.innerHTML+=(");var c="function _out(place,tiddler){"+fixup+"\n};_out(w.output,w.tiddler);";try{var out=eval(c)}catch(e){out=e.description?e.description:e.toString()}if(out&&out.length)wikify(out,w.output,w.highlightRegExp,w.tiddler)}}w.nextMatch=lookaheadMatch.index+lookaheadMatch[0].length}}});if(typeof wikifyPlainText=="undefined")window.wikifyPlainText=function(e,t,n){if(t>0)e=e.substr(0,t);var r=new Wikifier(e,formatter,null,n);return r.wikifyPlain()};if(typeof $=="undefined"){function $(e){return document.getElementById(e.replace(/^#/,""))}}
//}}}
|details|k
|''URL''|http://themes.tiddlywiki.com/hawk.html|
! Summary
A theme with a light background, a dark header, a pinkish horizontal MainMenu and pink and blueish highlights.
! Preview
[img[[img[http://img.tiddlyspace.com/Hawk][http://themes.tiddlywiki.com/hawk.html]]
|details|k
|''URL''|http://visualtw.ouvaton.org/VisualTW.html#ExternalizePlugin|
|''Author''|[[Pascal Collin]]|
|''Released''|2007-12-21|
|''Version''|1.0.1|
|''CoreVersion''|2.1.0|
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Pascal Collin]]|
|''Source''|http://visualtw.ouvaton.org/VisualTW.html#ExternalizePlugin|
!Summary
Edit tiddlers directly with your favorite external editor (html editor, text processor, javascript IDE, css editor, ...).
!Examples
; [[plugin info tiddler|http://visualtw.ouvaton.org/VisualTW.html#ExternalizePlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://visualtw.ouvaton.org/VisualTW.html#ExternalizePlugin
<<tag Tagging Plugins>>facilitating and enhancing [[tagging|http://tiddlywiki.org/#Tags]]...
|details|k
|''URL''|http://themes.tiddlywiki.com/mptw.html|
! Summary
MPTW is the theme from Monkey Pirate TiddlyWiki form [[Simon Baird]], best known for taggly tagging and mGSD. It comes with a fluid layout, a blue header, horizontal MainMenu, and white tiddlers, and blue hightlights.
! Preview
[img[[img[http://img.tiddlyspace.com/MPTW][http://themes.tiddlywiki.com/mptw.html]]
<<tag Search Plugins>>enhancing search in TiddlyWiki with search options, regexp, better result list...
|details|k
|''URL''|http://www.TiddlyTools.com/#BreadcrumbsPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2012-06-10|
|''Version''|2.1.5|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#BreadcrumbsPlugin|
!Summary
List and jump to tiddlers viewed during this session plus "back" button / macro.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#BreadcrumbsPluginInfo]]
:see the author's info tiddler for examples
!Preview
[img[http://img.tiddlyspace.com/BreadCrumbsPlugin_1]]
!Details
This plugin provides a list of links to all tiddlers opened during the session, creating a "trail of breadcrumbs" from one tiddler to the next, allowing you to quickly navigate to any previously viewed tiddler, or select 'home' to reset the display to the initial set of tiddlers that were open at the start of the session (i.e., when the document was loaded into the browser).

''Usage''
{{{
<<breadcrumbs homeSeparator crumbSeparator>>
}}}
By default, the breadcrumbs are displayed as a continuous, //horizontal// word-wrapped line of text, using default character sequences for ''homeSeparator'' (" | ") and ''crumbSeparator'' (" > ").  The //optional// ''homeSeparator'' and ''crumbSeparator'' macro parameters allow you to specify alternative separators.  For example, to display the breadcrumbs //vertically// (in a stack, rather than a row), set the separator values to use {{{[[<br>]]}}}... and, to display a horizontal line as the home separator, use {{{[[<html><hr></html>]]}}}.
{{{
<<previousTiddler>>
}}}
This macro embeds a 'back' button in your content.  Clicking the button opens/scrolls to the most recent previously viewed tiddler.  You can also add the {{{previousTiddler}}} keyword to the ~ViewToolbar slice definition in ToolbarCommands.  This adds a 'back' button directly to the toolbar of each tiddler that is displayed.
|details|k
|''URL''|http://themes.tiddlywiki.com/gtd.html|
! Summary
A slightly modified variant of the D³ [[theme|D3GTD]] of a GTD style flavor of TiddlyWiki, with the [[Sidebar|SideBarTabs]] and MainMenu on the left hand side and, again, a few brownish and light green tones against a rather dark gray background.
! Preview
[img[[img[http://img.tiddlyspace.com/GTD][http://themes.tiddlywiki.com/gtd.html]]
<<tag [[Database]] Apps>>for creating database-like applications and collections...
|details|k
|''URL''|http://www.TiddlyTools.com/#SetStoryHeight|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-03-14|
|''Version''|2.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SetStoryHeight|
!Summary
set a scrolling, fixed or percentage height for the central story
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SetStoryHeight]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SetStoryHeight
|~ViewToolbar|tagSearch +editTiddler +cloneTiddler > jump fields permalink references closeOthers revisions < closeTiddler|
|~EditToolbar|+saveTiddler saveDraft -cancelTiddler deleteTiddler|
|~RevisionToolbar|> fields revert|
|details|k
|''URL''|http://tiddlywiki.abego-software.de/#DataTiddlerPlugin|
|''Author''|[[Udo Borowski]]|
|''Released''|2012-04-19|
|''Version''|1.0.7 (2012-04-19)|
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Udo Borowski]]|
|''Source''|http://tiddlywiki.abego-software.de/#DataTiddlerPlugin|
!Summary
Enhance your tiddlers with structured data (such as strings, booleans, numbers, or even arrays and compound objects) that can be easily accessed and modified through named fields (in JavaScript code).
!Examples
; [[plugin info tiddler|http://tiddlywiki.abego-software.de/#DataTiddlerPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.abego-software.de/#DataTiddlerPlugin
|details|k
|''URL''|http://themes.tiddlywiki.com/lewcidorange.html|
! Summary
A variant of K2Blog optimized for widescreen and an orange rather than blue header. <<tiddler K2Blog##Summary>>
! Preview
[img[[img[http://img.tiddlyspace.com/LewcidOrange][http://themes.tiddlywiki.com/lewcidorange.html]]
|details|k
|''URL''|http://www.giffmex.org/NoteStorm.html|
|''Author''|[[Dave Gifford]]|
|''Version''|1.0.1|
|''Released''|2012-08-21|
|''Requires''|runs on version 2.8.0|
|''Source''|http://www.giffmex.org/NoteStorm.html|
! Summary
NoteStorm is your own personal database contained in one html (webpage) file. You download it to your computer or memory stick, and use it to organize your notes. Download and play with this for 10 or 15 minutes, and you will be hooked. Money back guaranteed.
{{annotation{
Perhaps a successor to NoteStorm is Braintags by Dave Gifford.
}}}
! Examples
; [[NoteStormExamples|http://www.giffmex.org/NoteStormExamples.html]]
: examples by the author of how to use NoteStorm
; [[download and try|http://www.giffmex.org/NoteStorm.html]]
:» right click [[here|http://www.giffmex.org/NoteStorm.html]], ''save as'' someplace, and test it
! Preview
[img[http://img.tiddlyspace.com/NoteStorm_1][http://www.giffmex.org/NoteStorm.html]]
! Details
!!!!!Create indexes as many levels deep as you wish
Click 'Create new index' in the left menu, give it a title (the topic or category of notes you wish to create), and click done. Within any index, create a subindex by clicking the 'index' button, giving the index a title, and clicking done.
!!!!!Add a note to an index
Click the 'note' button from within the desired index. Type or paste content into the note. You don't even need to give your note a title. Click done. The note's content will be viewable from the parent index.
!!!!!Navigate between indexes and notes
*From within an index, open any of the notes by clicking on the blue @ symbol under the note.
*From within an open note, open the parent index by clicking the tag at the bottom right corner of the note, and choosing 'open tag...'
!!!!!View a webpage from within Notestorm
Copy the web address of the webpage from the browser bar. In NoteStorm, click the 'webpage' button from within the desired index. Replace XYZ with the web address you copied. Click done.
!!!!!Paste a photo from the Internet
Copy the image location by right-clicking the image and choosing 'copy image location'. In NoteStorm, click the 'image' button from within the desired index. Replace XYZ with the image location you copied. Click done.
!!!!!Format text like a 'quotable quote
Click the 'quote' button from within the desired index. Replace XYZ by typing or pasting the desired text. Click done
!!!!!Add a note for which only the title link is viewable in the index
Click the 'article' button from within the desired index. Type or paste content into the note and give the note a title. Click done. A link to the article will be viewable from the parent index, but not the article's content.
|details|k
|''URL''|http://www.TiddlyTools.com/#QuickSearchPopup|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-01|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''|[[SearchOptionsPlugin...]], [[StickyPopupPlugin...]]|
|''Source''|http://www.TiddlyTools.com/#QuickSearchPopup|
!Summary
Popup list of tiddlers containing text matching specified text or current tiddler title.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#QuickSearchPopup]]
:see the author's info tiddler for examples
!Preview
[img[http://img.tiddlyspace.com/QuickSearchPopup_1]]
!Details
{{{
<<tiddler QuickSearchPopup>>
<<tiddler QuickSearchPopup with: "searchtext" "label">>
}}}
;searchtext (optional)
:default: current tiddler title
;label (optional)
:text for popup command link
;tip (optional)
:tooltip for popup command link
|details|k
|''URL''|http://www.TiddlyTools.com/#ShowTiddlerStatistics|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-25|
|''Version''|1.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion |
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ShowTiddlerStatistics|
!Summary
display document summary / tiddler stats (newest, oldest, largest, smallest, etc.)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ShowTiddlerStatistics]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ShowTiddlerStatistics
<<get ##SUMMARY plain>>

TiddlySpace themes explicitly staged in @Customize are listed below./%
!SUMMARY
<<tag "TiddlySpace Themes" Themes>>that have been developped for TiddlySpace. To use them, include the space.

Equivalent to the list provided by the @themes space, all themes tagged as TiddlySpace themes by the creator are [[listed here|TiddlySpace Theme Scan]].
!END%/
Inventor or [[DcTableOfContentsPlugin...]]
* http://www.zagware.com
R0lGODlhAQEBAYIAMTRmrJe33Nzq9MHS5/z+/HSezIWr1aTC5CwAAAAAAQEBAQID/gi63P4wykmrvTjrzbtvRSiOZGmeaKqubOu+cCzPdB0qdq7vfO//wBUuSCwaj8gkaqhsOp/Q6IgprVqvWBg1y+16pduveEzuhcvotFp1Xrvf6DZ8TsfK6/i88q7v+318f4KDMoGEh4hLAImMjUKLjpGSN5CTlomGl5o8BwZHmZuhNAMEAp5FoKKqLqQEpadBqauzKK2ur0SytLsitre4QLq8tL6/wICVw8q1xs2mP8LLm8XNrs9mydLa1NXWsDrR2pLc3d484eKN5OXm4NnpxOzy1zbo8ITr8rf0NPb3f/n07ftW6N0/TQEFDqzh7yCehAoXzmjocA7EiBJjUKzo/uYixowvNnJM4/EjyBYiR5IpafLkI5WOWLZ0mSIlzC4yZ94aENLgzT45dZbS4vPnQ6EtBWgsatQiUpNKlzb1E1RnVKlT81SdeRVrVjpbkzJk+nXl049dC5aFExZqDptribRF6y6umrkY0/Yja/cK3oh69/Y1exYwtsFi/ioMPJaWgQABDgyYPPnAIMUCGTeeRY4nwMKGofGN1Pkz6MyxRsfs5lkPZn2a36pWxxroadS5ZjMqrfU2bCNw2XaLTdL3vE+6Ex0YftR4OeI7gr9ZXg36mNfHkUh3Q90ZWOfP9yRH1N2YdR2U06tfz56yAPDMxdMq/+u8Dezw6zvZvob+/r4j+OVnzRP8qRFAfHIJCJ59h81yYHVFBCgggw2q8RgQD3oXhIT5UVghGga8F8APGZq3oYLOefghGSHeMmIPJer3A4fwtRZFgTm0+MuLO8T4y4woGmfjjeM5oaMxPOZYjg80gjckkWUc2UySNRiwJA9NOvcklGNIWQ2VM1jZDZZB+rYll2O8Jw+YMYhZzQ5ZCtkFjjWoyQ6bL7jZDHpl3nYmGEU6YWc5eLagpzE5xGnmF3TaMGg3hbJQDkEwKOqnGI06qk+kKkw6Sp+n/WlFppquOYOnMlgaKhmklnqnDKhWCipool7RqquExhArK7MWVqutgVbx6Jcw7MqCqrSm/nFrDsNO+QJk0HLKTK9PqUhgsFY0i2QTyCarLLbZbppEt97GAW64phpBbrllLMuDtjtGSO2q3/YBr4snzssuq+dica8r0saw7qX1+vGvZT0MTLC5gsCLMJn6Ltxuv1w0+zCcES9acMPGXMxnxhLze4idHicKssYMj0xAyfedjPLEiQT8gsI1quHuGzTXvDE8Xrp81q92UBxJzz4LBTSwFRFddEtHjyq0JEovjVHTVdxMR9RSC0Q1oCphnTU7W6PJkddfVxM2FFbjQXbZv5x97U9rs02A2/s9PXPIScRdNt1NLIsZ31X+KzfgSfiNtxJ6S024dnbzSm8UiRe9OHJR/vxtReQuW1t35YcbKbjULDPaeAuWX4F5xKGLzvnjl39+cuqqQ1G6obDbcPqstXux7GPR9u77775TioKYudNwe5nFzzl6lL8kL8PxCjrPRdpNHLoyEdDDJ/30y4vhoyvb5+k68nVQj8T3+AaR/W3hcy8J+vGqP35+7bvvCPzbyo+6HuYT4d+r+qNW/ZTXiP/JQ3g7WN9MBkhA5cwEgTpQ4EcY2MBDGFAhEMzR/J5CwQpe5ikZtN0GddJBD5oGKfzwgQTZUUIT2qYwKezBCqvRQhf25jQx5MEMm4eI/pnMNzlM4Aj1UUPddc8JAQpiBIdYjiIakSodCmHgCuPEJ7pG/kFK1CAHHeFDGTAxKVI03hevx8UjHmGMYsEeE6uIKTMWAY1cKQLm2NjGOsDRKnKcHx3rCIcdukWNCtkjH93gR6blkYia6KIKCjmTyZ0Aa4IcgyKHd0fW/UBpkZSkG4W4NEeaoGeZ1KSFKiknQN4ilKIsztc8WQIdoTKVaWAbK0kQolfCEg2DQwwl1iC3uelykq3sJRmNdBvNoWKTShKmLUNgPRQOknnCHGbeivlMFkUTfNWjZuxAdE2AIU6bVuRmNwkgs2SCxpi5sdA4vXmEZgoFnalR5zrJ2U5w2vAL+JNbGKtkT/uhIZ/6NALwBkpQaFVzDAANqFGASYKEKvQm/gwdgUMfqpKIimCibMsiPCwaAoxmdJ/L4GgBLrhOjWpDpCRd5ywjgdJ5IogjLXWpiWASU5kOKIKbqKlMJycAkxJCp/PkaTsmAdRxCpUmmEBmy1x61PqAlH9KrRNTd6Atn/aBozlrJFXZYdU8WJSUs5qc17pavqjGAKyg8uRYnzoHhqK1T1VcKyMmyUgU0VGuPTQrC+oavUNyla1r6CJfBZRJvA7Ch4PNTzlFOA/ApgwLiYWPzHhjqH+RdWdViCx4yknZyjZWENTTrHMW21nP/vUPaROtcdhaWtM+x7HbhNxbywTY1rp2OLC95zRd6ljb3rY6uc2Cu9zZy8v2ojZi/vwsHnbnUuMe12yMPW1ZoeBRnzn3uc0gnGHh0KrqZi64BfAtDLy2UsY5wbsnu+4IxDteeJXXvEpAL8jUu17kLhG6y1VqSstG3xEYEJ4j8NJ7C4fM/b5sBQXtBCdeel9XDJjASDBw57Dw30u+58EQNoKELemFCl9ymemUV58wbAMPp2M7qiJxiRksDemkWA0mFkdwXmwgFod0dDSuMYQ22jhVgbgG6ANwI1LiYzgE+R4iKbKRbayMjcxWHj825554vNU+LbYLxEVyv54MwKtd6cTn4nKu1PZlGWNLtewk85ioHCYxdwO8kC3zSQOFZgLAGbI9ZY+Wn+fmatxZl5Rr7i+o/gxo4CQHzf0tdIZ/OyFCK/qYLkC0ox8d4r322amUtpluNJvoTMM30n3utKcDLT74iHrUhuZziiaN6niqupisbnUwgjVDIcua1K+u1q0DCy7i5mXXvJayIYGt6QjqRMXElk0Ch51szPJzas0ONg8miuxo18NuCa22tTcDI3loe9uCIVE5vg3uiSzvf1Eut1d+QJ90q5soReiOu9/dEw1Lk94wM0Ks8T1rfvNCpP7GdcBFAfCBV9rgoSg4wkWzcILrteFBg3hOHy7xqlG84mLDeBk1TtSLc7xvHv84gT9A8pKb/OQoT7nKV16BBAAAOw==
Plugins for slideshows, bibtex and the portuguese translation for TiddlyWiki...
* http://www.math.ist.utl.pt/~psoares/addons.html
|details|k
|''URL''|http://themes.tiddlywiki.com/d3gtd.html|
! Summary
The theme from D³, a GTD style flavor of TiddlyWiki, with the MainMenu on the left and a few brownish and light green tones against a rather dark gray background.
! Preview
[img[[img[http://img.tiddlyspace.com/D3GTD][http://themes.tiddlywiki.com/d3gtd.html]]
<<tag "Plugin Libraries" References>>for places not unlike this space where TiddlyEnthusiasts have tried to provide a comprehensive reference of all the [[plugins|Plugin]], [[macros|Macro]], [[scripts|Script]], or [[transclusions|Transclusion]] out there...
"""Featured""" plugins, apps, themes and references...
|details|k
|''URL''|http://www.TiddlyTools.com/#LoadTiddlersPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-08-13|
|''Version''|3.9.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#LoadTiddlersPlugin|
!Summary
macro for automated updates or one-click installations of tiddlers from remote sources
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#LoadTiddlersPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#LoadTiddlersPluginInfo
<<tag Businesses References>> where TiddlyWiki helped individuals in small to medium sized businesses and entrepreneurs get organized, manage their taskload or present information to the outside world...
For a full reference of [[all plugins|Plugin]] and an introduction to<<tag Plugin plugins>>[[click here|Plugin]]. 

There are also different lists for different types, e.g. plugins, macros, transclusions and scripts.

[[Plugins available for inclusion on TiddlySpace are listed here.|Plugin Spaces]].

>''Notice:'' Plugins that are known to not fully work in TiddlyWiki version <<version>> are tagged <<tag Broken "broken">>.

Below is a reference of all <<tag Plugins "plugin categories">> listed in this space...
/***
|''Name''|jQueryOutline|
|''Documentation''|http://listfiltr.tiddlyspace.com|
|''Author''|[[Tobias Beer|http://tobibeer.tiddlyspace.com]]|
|''Idea''|http://stackoverflow.com/questions/1852816/nested-ordered-lists|
|''Version''|0.4.0 (2013.09.24)|
|''CoreVersion''|2.5.3|
|''Readable Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/resources/ListFiltrPlugin/jQueryOutline.js|
/%***/
/*{{{*/
(function(e){e.fn.outline=function(t,n){function r(e){if(!+e)return false;var t=String(+e).split(""),n="",r=3,i=["","C","CC","CCC","CD","D","DC","DCC","DCCC","CM","","X","XX","XXX","XL","L","LX","LXX","LXXX","XC","","I","II","III","IV","V","VI","VII","VIII","IX"];while(r--)n=(i[+t.pop()+r*10]||"")+n;return Array(+t.join("")+1).join("M")+n}function i(e){var n,i,s="",o,u=t.counterTemplates,a=t.plain,f=a?e.length-1:0;for(n=f;n<e.length;n++){i=e[n];o=n%u.length;switch(u[o].substr(0,1)){case"a":i=String.fromCharCode(96+i);break;case"A":i=String.fromCharCode(64+i);break;case"i":i=r(i).toLowerCase();break;case"I":i=r(i);break}s+=i+u[o].substr(1)}return s+" "}var t=e.extend({},e.fn.outline.defaults,t),n=n||[];this.each(function(){e(this).children("li").each(function(r){var s=n.concat([r+1]);e("<span></span>").addClass(t.liClass).text(i(s)).prependTo(this);e(this).children("ol").outline(t,s)})});if(!n.length)this.addClass(t.olClass)};e.fn.outline.defaults={liClass:"pseudo-ol-li",olClass:"pseudo-ol",counterTemplates:["1.","a.","i."],plain:true};var t=config.macros.outline={handler:function(t){var n=e(t).children().last();while(n.is("br")){n=n.prev()}if(n.is("span, div")){n=n.children("ol").first()}n.outline()}}})(jQuery);config.shadowTiddlers["StyleSheetjQueryOutline"]="/*{{{*/\n"+"ol .pseudo-ol-li { display: none }\n"+"ol.pseudo-ol, ol.pseudo-ol ol { list-style: none; margin-left: 1.5em; padding-left: 0.5em;}\n"+"ol.pseudo-ol {margin-left: 0.5em;padding-left:0em;}\n"+"ol.pseudo-ol .pseudo-ol-li { display: inline; font-weight: bold; padding-right:3px; }\n"+"/*}}}*/";store.addNotification("StyleSheetjQueryOutline",refreshStyles)
//%/
/***
|''Name:''|TagSearchPlugin|
|''Description:''|Provides a drop down listing current tags and others to be set. Based on [[x-tagger|http://tbgtd.tiddlyspot.com/#x-tagger]] which in turn was once based on [[TaggerPlugin|http://tw.lewcid.org/#TaggerPlugin]].|
|''Author:''|[[Tobias Beer]]|
|''Version:''|1.2.0 (2010-10-10)|
|''Documentation:''|http://tagsearch.tiddlyspot.com|
|''Source:''|http://tagsearch.tiddlyspot.com/#TagSearchPlugin|
|''~TiddlyWiki:''|Version 2.5 or better|
/%***/
(function(e){config.macros.tagsearch={cfg:{defaultSource:"",defaultMore:"",defaultMode:1,keepModified:false,sidebarOffset:20,newAtSingle:30,newAt:18,excludeTagged:"",toolbar:"",label:"tags",options:"Options",more:"More...",tooltip:"Manage tiddler tags",notags:"no tags set...",aretags:"Current tags",addTag:"Add tag...",addTags:"Set tag...",txtEdit:"~ edit categories...",txtEditTip:"edit tiddler with GTD tag categories used by x-tagger",txtNew:"~ add another tag",txtRemove:"remove tag %0",txtAdd:"set tag %0",txtFor:"To be tagged... ",txtCtrl:" (hold SHIFT to just add it or CTRL to replace in category)",promptNew:"Enter new tag:",modeAsk:"Do you want to remove existing tags from category '%0'?\nCancel simply adds tag '%1'."},handler:function(k,g,i,l,h,n){var m=this.cfg,j=story.findContainingTiddler(k),f=h.parseParams("tagman",null,true);e(createTiddlyButton(k,getParam(f,"label",m.label),getParam(f,"tooltip",m.tooltip),this.click,"button")).attr({id:this.newId("btntgs"),tid:(j?j.getAttribute("tiddler"):"")}).data({pa:i,p:f})},click:function(O){var k,G,S,R,K=[],w=true,W,V,U,M,A,Y,T,D,N,L,J=[],C,f,H,aa=O||window.event,X=e(this),F=X.attr("popup"),B=window.event?"keydown":"keypress",I=config.macros.tagsearch,ab=I.cfg,u=X.data("pa"),Q=X.data("p"),h=u.contains("toolbar"),v=getParam(Q,"source",ab.defaultSource),q=getParam(Q,"more",ab.defaultMore),Z=!u.contains("nosearch"),z=!u.contains("notags"),E=!u.contains("nomore"),n=getParam(Q,"goto",""),o=parseInt(getParam(Q,"mode")),g=getParam(Q,"tiddler",""),r=g?g:X.attr("tid"),ac=(getParam(Q,"exclude","")+" "+ab.excludeTagged).readBracketedList(),y=nu=v?ab.newAt:ab.newAtSingle,P=store.getTiddler(r);if(!r){return}o=isNaN(o)?ab.defaultMode:o;ac.map(function(i){K.pushUnique(i)});for(W=0;W<ac.length;W++){store.getTaggedTiddlers(ac[W]).map(function(i){K.pushUnique(i.title)})}if(v&&!store.getTiddlerText(v)){return false}if(F){D=e("#"+F)[0];e(D).empty()}if(!D){M=true;F=I.newId("tgspop");D=Popup.create(this);e(D).addClass("tgs").attr({id:F}).data({btn:X,tiddler:r,source:v,mode:o}).click(I.noBubble);X.attr("popup",F)}if(v){C=store.getTiddlerText(v).readBracketedList();for(L=0;L<C.length;L++){if(!K.contains(C[L])){H=store.getTaggedTiddlers(C[L]);J.push("TAG:"+C[L]);for(N=0;N<H.length;N++){if(!K.contains(H[N].title)){J.push(H[N].title)}}}}}else{J=store.getTags()}G=P?P.tags.sort():[];Y=function(j,i){return createTiddlyElement(createTiddlyElement(j,"li",null,null),"ol",null,i?i:null)};A=function(j,x,i,p){var m,l;m=createTiddlyElement(createTiddlyElement(j,"li"),"span",null,null);l=e(createTiddlyButton(m,x,p.format(["'"+i+"'"]),I.setTag,"button toggleButton",null));l.data({tiddler:r,tag:i,source:v,mode:o});insertSpacer(m);createTagButton(m,i)};S=Y(D,"tgside");if(config.macros.gotoTiddler&&Z){R=Y(S);if(g){U=createTiddlyElement(R,"li",null,"addto","");wikify("{{title{"+ab.txtFor+"}}}<<tag [["+r+"]]>>",U);R=Y(S)}createTiddlyElement(R,"li",null,"title",ab.addTag);wikify("<<gotoTiddler "+n+" >>",R);e("input",D).bind(B,I.noBubble).data("notify",config.macros.tagsearch.notify).focus()}R=Y(S);createTiddlyElement(R,"li",null,"title",ab.aretags);if(G.length==0){wikify("{{notags{"+ab.notags+"}}}",R)}else{for(L=0;L<G.length;L++){A(R,"[X]",G[L],ab.txtRemove)}}if(z){for(W=0;W<J.length;W++){nu++;f=v?J[W]:J[W][0];if(f.indexOf("TAG:")==0){f=f.substr(4);if(nu>y){nu=0;S=Y(D)}R=Y(S);nu++;createTiddlyLink(createTiddlyElement(R,"li",null,null),f,f,"title")}else{if(!G.contains(f)&&!K.contains(f)){if(!v&&nu>y||v&&nu>ab.newAtSingle){nu=0;S=Y(D);R=Y(S);if(w){createTiddlyElement(createTiddlyElement(R,"li",null,null),"li",null,"title",ab.addTags);w=false}}A(R,"["+String.fromCharCode(160,160,160)+"]",f,ab.txtAdd+(v?ab.txtCtrl:""))}}}}if(E){S=Y(D,"tgside");R=Y(S);createTiddlyElement(R,"li",null,"title",ab.options,null);createTiddlyButton(createTiddlyElement(R,"li"),ab.txtNew,null,I.setTag,"tsopt",null,null,{tiddler:r});if(v){createTiddlyButton(createTiddlyElement(R,"li"),ab.txtEdit,ab.txtEditTip,onClickTiddlerLink,"tsopt",null,null,{tiddlyLink:v.split("##")[0]})}w=true;if(q){T=store.getTiddlerText(q).readBracketedList();if(T.length>0){for(W=0;W<T.length;W++){f=T[W];if(f.indexOf("TAG:")==0){f=f.substr(4,f.length-4);R=Y(S);createTiddlyLink(createTiddlyElement(R,"li",null,null),f,f,"title");k=store.getTaggedTiddlers(f);for(V=0;V<k.length;V++){f=k[V].title;if(!G.contains(f)&&!K.contains(f)){A(R,"["+String.fromCharCode(160,160)+"]",f,ab.txtAdd)}}}else{if(w){R=Y(S);createTiddlyElement(R,"li",null,"title",ab.more);w=false}if(!G.contains(f)&&!K.contains(f)){A(R,"["+String.fromCharCode(160,160)+"]",f,ab.txtAdd)}}}}}}if(M){Popup.show(D,false);if(h){N=document.getElementById("sidebarTabs");D.style.left="";D.style.right=(ab.sidebarOffset+(N?N.offsetWidth:0))+"px"}}return I.noBubble(aa)},setTag:function(w){var q,j,z,l=true,n,u,s,g,v=w||window.event,k=config.macros.tagsearch,y=k.cfg,f=e(this),o=f.closest(".tgs"),i=o.data("btn"),A=f.data("tag"),B=o.data("tiddler"),h=o.data("source"),r=parseInt(o.data("mode"));if(!A){z=prompt(y.promptNew,"");if(!z){return false}else{A=z}}tid=k.exists(B,A);if(tid){u=tid.tags;if(!u.contains(A)){if(h&&r<2&&!v.shiftKey){j=store.getTiddlerText(h).readBracketedList();findTagged:for(q=0;q<j.length;q++){g=j[q];s=store.getTaggedTiddlers(g).map(function(m){return m.title});if(s.contains(A)){s.splice(s.indexOf(A),1);if(!v.ctrlKey&&r==1&&u.containsAny(s)){l=confirm(y.modeAsk.format([g,A]))}if(l){for(n=0;n<s.length;n++){g=s[n];if(u.contains(g)){store.setTiddlerTag(B,false,g)}}}break findTagged}}}store.setTiddlerTag(B,true,A)}else{if(!z){store.setTiddlerTag(B,false,A)}}n=store.getTiddler(B);store.saveTiddler(B,B,n.text,y.keepModified?n.modifier:config.options.txtUserName,y.keepModified?n.modified:new Date(),n.tags,n.fields)}if(config.options.chkAutoSave){autoSaveChanges()}i.click();o.find("input").focus();return k.noBubble(v)},newId:function(f){return f+Math.random().toString().substr(3)},notify:function(f,h){var j=e(h).closest(".tgs"),g=e("form input",j)[0];t=config.macros.tagsearch.exists(j.data("tiddler"),f);if(t&&!t.tags.contains(f)){store.setTiddlerTag(t.title,t,f)}j.data("btn").click();g.select()},exists:function(i,g){if(!store.getTiddler(i)){var h=merge({},config.defaultCustomFields);store.saveTiddler(i,i,"",config.options.txtUserName,new Date(),g,h);return false}return store.getTiddler(i)},noBubble:function(g){var h=g||window.event,f=resolveTarget(h);if(h.keyCode==27){Popup.remove(0)}else{if(h.type!="click"&&f.nodeName.toUpperCase()=="INPUT"){return true}}if(hasClass(f,"tiddlyLink")){return true}Popup.remove(1);h.cancelBubble=true;try{event.keyCode=0}catch(h){}if(window.event){h.returnValue=false}if(h.preventDefault){h.preventDefault()}if(h.stopPropagation){h.stopPropagation()}return false}};config.commands.tagSearch={};var d=config.macros.toolbar;d.createCommandTAGS=d.createCommand;d.createCommand=function(f,h,g,i){if(h=="tagSearch"){wikify("<<tagsearch toolbar "+config.macros.tagsearch.cfg.toolbar+">>",f);e(f.lastChild).attr({commandName:"tagSearch",tiddler:g.title})}else{d.createCommandTAGS.apply(this,arguments)}};var b=config.macros.gotoTiddler;if(b){b.processItem=function(i,g,h,f){if(!i.length){return}h.style.display=f?"block":"none";if(i=="*"){story.search(g.value);return false}if(!f){g.value=i}var j=e(g).data("notify");if(j){j.call(this,i,g)}else{story.displayTiddler(null,i)}return false};b.IEtableFixup="%0"}var c=store.getTiddlerText("ColorPalette::TertiaryMid"),a=store.getTiddlerText("ColorPalette::TertiaryDark");config.shadowTiddlers.StyleSheetTagSearch="/*{{{*/\n.tgs {padding:7px !important;-moz-border-radius:5px; -webkit-border-radius:5px;border-radius:5px;}\n.tgs li a, .tgs .quickopentag .tiddlyLink {display:inline;padding:2px;clear:none;}\n.tgs li a.toggleButton {display:inline;margin-left:5px;}\n.tgs .title {margin:3px 0 0 5px;font-weight:bold;font-size:120%;color:"+c+";padding:0;}\n.tgs form{display:block;float:left;clear:both;padding-left:5px !important;}\n.tgs .addto .quickopentag{display:block;clear:both;padding:5px;font-size:120%;}\n.tgs .notags, .tsopt{display:block;clear:both;margin:5px;}\n.tgs .highlight{background:"+a+";}\n.tgs ol{margin:0;padding:0 0 5px 0;}\n.tgs li{display:block;float:left;padding-bottom:10px !important;}\n.tgs li span{line-height:1em;}\n.tgs li ol li{clear:both;min-width:120px;display:inline;border:1px solid transparent;}\n.tgs li ol li:hover{border:1px solid "+c+";}\n.tgs li ol li ol li{padding:0 !important;}\n.tgs li ol li ol li:hover{border:1px solid transparent;}\n.tgside li ol li {min-width:150px;}.tgs .quickopentag {display:inline;}\n.tgs .quickopentag .tiddlyLink:hover {text-decoration:underline;}\n.tgs .quickopentag .button {border:0;padding:2px;font-size:1.5em;}\n/*}}}*/";store.addNotification("StyleSheetTagSearch",refreshStyles)})(jQuery);
//%/
|details|k
|''URL''|http://www.TiddlyTools.com/#SetTiddlerColumns|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-03-14|
|''Version''|2.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SetTiddlerColumns|
!Summary
use ~CSS3 '-moz-column-count' to set single or multi-column tiddler layout
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SetTiddlerColumns]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SetTiddlerColumns
|details|k
|''URL''|http://www.TiddlyTools.com/#WordCount|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-26|
|''Version''|2.0.1|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#WordCount|
!Summary
Display a count of the number of white-space separated words in a tiddler.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#WordCount]]
:see the author's info tiddler for examples
!Details
{{{
<<tiddler WordCount>>
<<tiddler WordCount with: TiddlerTitle>>
}}}
|details|k
|''URL''|http://tiddlywiki.squize.org#ToolbarIconsPlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2007-02-12|
|''Version''||
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#ToolbarIconsPlugin|
!Summary
undefined
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#ToolbarIconsPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#ToolbarIconsPlugin
|details|k
|''URL''|http://tiddlywiki.squize.org#SaveAndReloadMacro|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-24|
|''Version''|1.0|
|''CoreVersion''||
|''Requires''|~TW2.x|
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#SaveAndReloadMacro|
!Summary
Provides a button to save and reload TW. Useful if you are testing code and dont have ~AutoSave enabled.

!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#SaveAndReloadMacro]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#SaveAndReloadMacro
|details|k
|''URL''|http://tagsearch.tiddlyspot.com/|
|''Author''|[[Tobias Beer]]|
|''Version''|1.2.0|
|''Released''|2010-10-10|
|''Requires''|2.5|
|''Source''|http://tagsearch.tiddlyspot.com/#TagSearchPlugin|
! Summary
Provides a toolbar command {{{tagsearch}}} which opens a popup that allows to search and assign tags. You can also check and uncheck tags from configurable categories that also allow you to quickly navigate to important tags and tiddlers tagging to them.
! Examples
; http://tbGTD.tiddlyspot.com
:» click on ''tags'' in the toolbar
; http://tagsearch.tiddlyspot.com
:» the plugin can be tested at the documentation page
! Preview
[img[http://img.tiddlyspace.com/TagSearchPlugin_1]]
''~TagSearch on ~TiddlySpot''

[img[http://img.tiddlyspace.com/TagSearchPlugin_2]]
''~TagSearch in tbGTD''
! Details
[[TagSearchPlugin|TagSearchPlugin...]] is a TiddlyWiki plugin and all about the tags -button in the toolbar. It allows you to set tags of different categories and - when installed - to use the interface of [[GotoPlugin|GotoPlugin...]] to add new tags. Preferably you should add [[TagSearch|TagSearchPlugin...]] to your ToolbarCommands (or the corresponding section in your theme) while using a tiddler like ''~TagSearchConfig'' for configuration.

''How to use''
Type any text in the {{strong{add tag...}}} box, hit enter and the text is added as a tag ...or select a tiddler title from the searchlist. Clicking on a checkbox -  ''[ ]'' - in front of a tag will add or remove the tag. Clicking on the tag itself will open the tag popup or - if you have [[QuickOpenTagPlugin|QuickOpenTagPlugin...]] installed - it will display the corresponding tiddler while the little arrow next to it will show the popup of tiddlers tagging to said tag. While primarily intended to simplify tagging you can therefore just as well use TagSearchPlugin to access your most important tags.

''Tips''
*in case you do select a tiddler from [[GotoPlugins'|GotoPlugin]] select-list, the input field may loose focus
**to get back to it in order to enter another tag try {{{SHIFT+TAB}}} or {{{ESC}}}
*consider using prefixes for tags that pertain to important tag-categories, for example:
**__category:__ <<tag Action>>
**__tags:__ <<tag #next>>, <<tag #queued>>, <<tag #waiting>>, <<tag #future>>, <<tag #done>>
**once you enter the prefix ''#'' into the searchbox and then hit the down key... you get all tiddlers with that prefix!
*to close the popup hit {{{ESC}}} or click anywhere outside of it
*you can use the searchbox as a kind of reverse ''~NewHere''
**enter a new tag, then click on the tag to open the new tiddler
|details|k
|''URL''|http://www.TiddlyTools.com/#ResetOptionCookies|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-30|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ResetOptionCookies|
!Summary
Reset all TiddlyWiki option cookies (with confirmation)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ResetOptionCookies]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ResetOptionCookies
|details|k
|''URL''|http://tiddlywiki.abego-software.de/doc/IntelliTagger.pdf|
|''Author''|[[Udo Borowski]]|
|''Released''|2012-04-16|
|''Version''|1.0.2 (2007-07-25)|
|''CoreVersion''|2.0.8|
|''Source''|http://tiddlywiki.abego-software.de/#IntelliTaggerPlugin|
!Summary
Speed up tagging tiddlers using tag autocompletion and correction, tag suggestions and context sensitive tag guessing, "Edit Tags only" mode and many more. Especially when you are working with a lot of tags this is the plugin you are looking for.
!Examples
; [[plugin info pdf|http://tiddlywiki.abego-software.de/doc/IntelliTagger.pdf]]
:» see the author's pdf documentation for examples
!Preview
[img[http://img.tiddlyspace.com/IntelliTaggerPlugin_1]]
!Details
* tag guessing window appears once you start typing in the tags field
** pressing "enter" accepts the first suggesion from the list; you may also click it for the same effect
** "alt+number" keyboard shortcuts accept the corresponding suggestions from the list
* the list of suggesions depends on what was already typed -- like typing "sy" may put the "systemConfig" tag on the first place in the list
* the "Edit Tags only" button is added automatically to the "tags" block of a tiddler (as an "[edit]" link)
** see also [[IntelliTagsEditCommandPlugin|IntelliTagsEditCommandPlugin...]]
|details|k
|''URL''|http://www.TiddlyTools.com/#ResetChangeCounters|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-30|
|''Version''|2.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ResetChangeCounters|
!Summary
Reset all TiddlyWiki option cookies (with confirmation)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ResetChangeCounters]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ResetChangeCounters
|details|k
|''URL''|http://www.TiddlyTools.com/#TiddlyLifePlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-10-16|
|''Version''|1.6.5|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#TiddlyLifePlugin|
!Summary
Cellular Automata: Conway's "Game of Life"
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TiddlyLifePlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#TiddlyLifePlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#StoryViewerPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-03-11|
|''Version''|1.4.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#StoryViewerPlugin|
!Summary
view a set of tiddlers using a droplist, "first/previous/next/last" links, or timed slideshow
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#StoryViewerPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#StoryViewerPluginInfo
<<tiddler TemplateAlias with: "Saq Imtiaz">>
!MODIFIER
» <<view title link>> """//""" ''@<<view modifier>>''
!EXCLUDE+LIST
» <<view title link>> """//""" updated ''<<view modified date "0DD.0MM.'YY">>'' by ''@<<view modifier>>''
Click the "new tiddler" button towards the top right of the screen to write something in your space. You'll need to give it a title, some content and, optionally, some tags that will help you identify it later.

!Stuck for ideas?
Not sure what to write about? Not sure what to keep in your space? Other people use ~TiddlySpace for almost anything. How about some of the following:

* [[Save interesting sites|http://bookmarks.tiddlyspace.com]], images or articles from around the web so that you can refer back to them.
* [[Record your family tree|http://familytree.tiddlyspace.com]], store notes on long lost relatives or ancestors and map their relationship to you.
* [[Make up a pocketbook|http://pocketbook.tiddlyspace.com]] to store some useful information in, then print it out, [[fold it up|http://www.pocketmod.com/]], and take it with you.
* [[Plan your holiday|http://the-web-is-your-oyster.tiddlyspace.com/]], record where you're planning to go, note down places of interest and refer back to it later.
* [[Create a mindmap|http://mindmaps.tiddlyspace.com/]] to visualise your inner thoughts and see how they relate to each other.
* [[Set up a questionnaire|http://questionnaire.tiddlyspace.com/]] and get all your friends to answer it.

If you don't like any of those ideas, you can still use this space directly to keep notes and link them together, make a todo list and keep track of everything you're doing, or any one of a hundred million other things.

Still stuck? Check out the @featured space for more suggestions.

You can also [[socialise with others|How to socialise]].
|details|k
|''URL''|http://themes.tiddlywiki.com/devfire.html|
! Summary
Oh, this one is dark one with yellow highlights and comes with a red gradient in the header and a default MainMenu to the left.
! Preview
[img[[img[http://img.tiddlyspace.com/DevFire][http://themes.tiddlywiki.com/devfire.html]]
[[Click here...|UnsortedPlugins]] for a list of plugin entries that were imported but yet reviewed and assigned to a plugin category...

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="78 222 60 60" 
width="30" height="30">
<g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1">
	<g>
		<path d="M 107.92718 244.14815 L 86.651474 222.89253 L 78.85206 230.69925 L 100.120415 251.9476 L 78.774 273.27396 
		L 86.57342 281.08075 L 107.927216 259.74707 L 129.39981 281.19946 L 137.19922 273.39267 L 115.73397 251.94763 
		L 137.121155 230.58054 L 129.32175 222.77374 Z" fill="black" class="glyph"/>
	</g>
</g>
</svg>
|details|k
|''URL''|http://www.TiddlyTools.com/#ToggleFullScreen|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-05-14|
|''Version''|2.1.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Source''|http://www.TiddlyTools.com/#ToggleFullScreen|
!Summary
Create a link that shows/hides sidebars and page headers
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ToggleFullScreen]]
:see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ToggleFullScreen
/***
|''Name''|ToggleTiddlerPrivacyPlugin|
|''Version''|0.7.1|
|''Status''|@@beta@@|
|''Description''|Allows you to set the privacy of new tiddlers and external tiddlers within an EditTemplate, and allows you to set a default privacy setting|
|''CoreVersion''|2.6.1|
|''Requires''|TiddlySpaceConfig|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/ToggleTiddlerPrivacyPlugin.js|
!Notes
When used in conjunction with TiddlySpaceTiddlerIconsPlugin changing the privacy setting will also interact with any privacy icons.

Currently use of
{{{<<setPrivacy defaultValue:public>>}}} is in conflict with {{{<<newTiddler fields:"server.workspace:x_private">>}}}

There is an option, found in the tweak tab of the backstage, called txtPrivacyMode. Set this to either ''public'' or ''private'' depending on your security preference. If you choose not to set it then it will default to ''public''.
!Params
defaultValue:[private|public]
Allows you to set the default privacy value (Default is private)

!Code
***/
//{{{
(function($) {

	var tiddlyspace = config.extensions.tiddlyspace,
		macro;
	macro = config.macros.setPrivacy = {
		handler: function(place, macroName, params, wikifier, paramString, tiddler) {
			if(readOnly) {
				return;
			}
			var el = $(story.findContainingTiddler(place)),
				args = paramString.parseParams("name",
					null, true, false, true)[0],
				container = $("<div />").
					addClass("privacySettings").
					appendTo(place)[0],
				currentSpace = tiddlyspace.currentSpace.name,
				currentBag = tiddler ? tiddler.fields["server.bag"] : false,
				// XXX: is the following reliable?
				isNewTiddler = el.hasClass("missing") || !currentBag,
				tiddlerStatus = tiddlyspace.getTiddlerStatusType(tiddler),
				customFields = el.attr("tiddlyfields"),
				defaultValue = "public",
				options = config.macros.tiddlerOrigin ?
						config.macros.tiddlerOrigin.getOptions(paramString) :
						{};
			customFields = customFields ? customFields.decodeHashMap() : {};
			if(isNewTiddler || !["public", "private", "unsyncedPrivate",
					"unsyncedPublic"].contains(tiddlerStatus)) {
				if(args.defaultValue) {
					defaultValue = args.defaultValue[0].toLowerCase();
				} else {
					defaultValue = config.options.chkPrivateMode ?
							"private" : "public";
				}
				defaultValue = defaultValue ?
						"%0_%1".format(currentSpace, defaultValue) :
						customFields["server.bag"];
				this.createRoundel(container, tiddler, currentSpace,
						defaultValue, options);
			}
		},
		updateEditFields: function(tiddlerEl, bag) {
			var saveBagField = $('[edit="server.bag"]', tiddlerEl),
				saveWorkspaceField = $('[edit="server.workspace"]', tiddlerEl),
				input = $("<input />").attr("type", "hidden"),
				workspace = "bags/" + bag;
			if(saveBagField.length === 0) {
				input.clone().attr("edit", "server.bag").val(bag).
					appendTo(tiddlerEl);
			} else {
				saveBagField.val(bag);
			}
			// reset to prevent side effects
			$(tiddlerEl).attr("tiddlyFields", "");
			if(saveWorkspaceField.length === 0) {
				input.clone().attr("edit", "server.workspace").
					val(workspace).appendTo(tiddlerEl);
			} else {
				saveWorkspaceField.val(workspace);
			}
		},
		setBag: function(tiddlerEl, newBag, options) {
			var bagStatus,
				title = $(tiddlerEl).attr("tiddler"),
				tiddler = store.getTiddler(title),
				originButton = $(".originButton", tiddlerEl)[0],
				refreshIcon,
				newWorkspace = "bags/" + newBag,
				rPrivate = $("input[type=radio].isPrivate", tiddlerEl),
				rPublic = $("input[type=radio].isPublic", tiddlerEl);
			refreshIcon = function(type) {
				var originMacro = config.macros.tiddlerOrigin;
				if(originButton && originMacro) {
					options.noclick = true;
					originMacro.showPrivacyRoundel(tiddler, type,
							originButton, options);
				}
			};
			macro.updateEditFields(tiddlerEl, newBag);
			if(tiddler) {
				tiddler.fields["server.bag"] = newBag;
				// for external tiddlers
				tiddler.fields["server.workspace"] = newWorkspace;
			}
			if(newBag.indexOf("_public") > -1) {
				rPrivate.attr("checked", false);
				rPublic.attr("checked", true);
				bagStatus = "public";
			} else {
				rPublic.attr("checked", false); // explicitly do this for ie
				rPrivate.attr("checked", true);
				bagStatus = "private";
			}
			refreshIcon(bagStatus);
		},
		createRoundel: function(container, tiddler, currentSpace,
							   defaultValue, options) {
			var privateBag = "%0_private".format(currentSpace),
				publicBag = "%0_public".format(currentSpace),
				rbtn = $("<input />").attr("type", "radio").
					attr("name", tiddler.title),
				el = story.findContainingTiddler(container);
			rbtn.clone().val("private").addClass("isPrivate").
				appendTo(container);
			$("<label />").text("private").appendTo(container); // TODO: i18n
			rbtn.clone().val("public").addClass("isPublic")
				.appendTo(container);
			$("<label />").text("public").appendTo(container); // TODO: i18n
			$("[type=radio]", container).click(function(ev) {
				var btn = $(ev.target);
				tiddler.fields["server.page.revision"] = "false";
				if(btn.hasClass("isPrivate")) { // private button clicked.
					$(el).addClass("isPrivate").removeClass("isPublic");
					macro.setBag(el, privateBag, options);
				} else {
					$(el).addClass("isPublic").removeClass("isPrivate");
					macro.setBag(el, publicBag, options);
				}
			});
			window.setTimeout(function() {
				macro.setBag(el, defaultValue, options);
			}, 100);
			// annoyingly this is needed as customFields are added to end of EditTemplate so are not present yet
			// and don't seem to respect any existing customFields.
		}
	};

}(jQuery));
//}}}
|details|k
|''URL''|http://infoboxes.tiddlyspot.com|
|''Author''|Kristjan Brezovnik|
|''Version''|2.2.2|
|''Released''|2013-04-22|
|''Requires''|2.6.3|
|''Source''|http://infoboxes.tiddlyspot.com#InfoboxTablesPlugin|
! Summary
Allows you to create infoboxes, e.g. to list basic information on entities like events or characters. It is designed to be generic, so you can define your own types of infoboxes or modify the predefined ones.
! Examples
; http://infoboxes.tiddlyspot.com
:» the author's wiki provides numerous examples
! Preview
[img[http://infoboxes.tiddlyspot.com|http://img.tiddlyspace.com/InfoboxTablesPlugin_1]]
! Details
See author's site.
|details|k
|''URL''|http://www.TiddlyTools.com/#SystemInfoPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2007-11-01|
|''Version''|1.7.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SystemInfoPlugin|
!Summary
view system internal data and settings
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SystemInfoPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SystemInfoPlugin
<<tag [[File Management]] Plugins>>working with local or remote files and directories...
David is the author of a lot of introductory material for newcomers and reference libraries like TiddlyVault...
» http://tiddlyvault.tiddlyspot.com
» http://giffmex.tiddlyspot.com
|details|k
|''URL''|http://www.TiddlyTools.com/#TiddlyPodPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-03-21|
|''Version''|1.4.4|
|''CoreVersion''|2.1|
|''Requires''|''~TiddlyPodList''|
|''Source''|http://www.TiddlyTools.com/#TiddlyPodPlugin|
!Summary
autoplay music randomly selected from playlist using embedded player
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TiddlyPodPlugin]]
:see the author's info tiddler for examples
!Details
{{{
<<tiddlyPod autoplay loop verbose track:... width:... height:... size:... @TiddlerName>>
}}}
where:
;autoplay / noautoplay
:keyword, default=''autoplay'': the selected item will play immediately, without pressing the PLAY button.
;loop / noloop
:keyword, default=''noloop'': the current item is repeatedly played until you press the stop button.
;verbose
:(keyword, default=//none//: a message will be displayed whenever an item is selected
;track:...
:number, default=//last played//: the index into the playlist for the initial item to load into the player
:if no item is specified, the last one played is re-loaded (tracked in a browser cookie)
:if no cookie exists (i.e., the first time you play after installing, or after clearing cookies, etc.) the first item in the playlist is used
;width:... / height:...
:default=115x15 for ~QuickTime / 90x44 for Windows Media Player
:specify a non-default width/height dimensions for the embedded player (using pixels)
;size:xxxx
:default="auto": a fixed height for the playlist popup container itself (using CSS measurement units, e.g., "px", "em", "cm", "in", etc.)
:if the items in the list overflow this height, then a scrollbar is automatically added to the popup list ;auto
:shows //all// playlist entries without scrolling, using a variable height popup
;@~TiddlerName
:default=[[TiddlyPodList|http://tiddlytools.com#TiddlyPodList]]): a tiddler containing the list of items to play
:entries in the list are separated by "----", and each entry consist of two lines
:* the first line is the location (or URL) of the media file to be played
:* the second line is a title to be displayed when that item is playing
|details|k
|''URL''|http://www.TiddlyTools.com/#LoadRemotePlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-11-03|
|''Version''|2.0.2|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#LoadRemotePlugin|
!Summary
Load a plugin from a remote .js URL
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#LoadRemotePlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#LoadRemotePlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#LoadTiddlersPluginPatch|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-08-05|
|''Version''|3.6.2|
|''CoreVersion''|2.1|
|''Requires''|LoadTiddlersPlugin|
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#LoadTiddlersPluginPatch|
!Summary
backward-compatible function patches for use with [[LoadTiddlersPlugin|LoadTiddlersPlugin...]] and ~TW2.1.x or earlier
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#LoadTiddlersPluginPatch]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#LoadTiddlersPluginPatch
Terms used in this reference...

{{noTitle{<<tagging>>}}}<<listfiltr>>
Instead by their actual name, plugins are listed ending with three dots; e.g. [[PluginName...|Plugin]]
/***
|''Name''|ErrorHandlerPlugin|
|''Version''|0.4.3|
|''Author''|Jon Robson|
|''Description''|Localised tiddler save errors including edit conflict resolution.|
|''CoreVersion''|2.6.1|
|''Requires''|TiddlySpaceConfig|
***/
//{{{
(function($) {

var tiddlyspace = config.extensions.tiddlyspace;
var currentSpace = tiddlyspace.currentSpace.name;
tiddlyspace.getLocalTitle = function(title, workspace, suffix) {
	var endsWith = config.extensions.BinaryTiddlersPlugin.endsWith;
	if(!suffix) {
		var isPublic = endsWith(workspace, "_public");
		suffix = tiddlyspace.resolveSpaceName(workspace);
		if(currentSpace == suffix) {
			suffix = isPublic ? "public" : "private";
		} else {
			suffix = "@%0".format(suffix);
		}
	}
	return "%0 *(%1)*".format(title, suffix);
};

var sssp = config.extensions.ServerSideSavingPlugin;

var msgs = config.messages.editConflict = {
	loading: "Loading..",
	resolve: "[[Edit Conflict]]@glossary: this tiddler may have been changed by someone else.",
	reviewDiff: "review (recommended)",
	reviewDiffTooltip: "review changes made to this tiddler",
	reviewDiffError: "error retrieving revision.",
	save: "overwrite",
	saveTooltip: "make this revision the top revision of this tiddler",
	discard: "cancel",
	discardTooltip: "undo changes to this tiddler and get most recent version",
	diffTitle: "%0",
	diffFieldTitle: "%0 - fields",
	diffTextTitle: "%0 - text",
	updating: "updating your version...",
	diffHeader: ["Review the changes that have been made whilst you were editing this tiddler. ",
		"Fold relevant changes back into your version.\n",
		"{{removed{Red}}} highlight shows content removed. ",
		"{{added{Green}}} highlight shows content added.\n"].join(""),
	diffTextHeader: "View changes in text",
	diffFieldsHeader: "View changes in fields"
};

var plugin = config.extensions.errorHandler = {
	diffTags: ["excludeLists", "excludeMissing", "excludeSearch"],
	displayMessage: function(message, tiddler, context) {
		var desc = context && context.httpStatus ? context.statusText :
			sssp.locale.connectionError;
		var reportArea = plugin.reportError(tiddler.title);
		var msg = $("<div />").appendTo(reportArea);
		if(message == "saveConflict") {
			wikify(msgs.resolve, msg[0]);
			var choiceArea = $("<div />").appendTo(reportArea)[0];
			plugin.editConflictHandler(choiceArea, tiddler);
		} else {
			msg.text(sssp.locale[message].format(tiddler.title, desc));
		}
	},
	editConflictHandler: function(container, tiddler) {
		var title = tiddler.title;
		var myrev = tiddler.fields["server.page.revision"];
		// note user now needs to edit, fix problem and save. 
		// TODO: make sure this gets reset in save callback
		store.getTiddler(title).fields["server.page.revision"] = "false";

		var diffBtn = createTiddlyButton(container, msgs.reviewDiff, msgs.reviewDiffTooltip, function(ev) {
			var title = $(ev.target).data("title");
			plugin.displayDiff(ev.target, store.getTiddler(title), myrev);
		});
		var saveBtn = createTiddlyButton(container, msgs.save, msgs.saveTooltip, function(ev) {
				var title = $(ev.target).data("title");
				var tid = store.saveTiddler(store.getTiddler(title));
				autoSaveChanges(null, [tid]);
			});
		var ignoreBtn = createTiddlyButton(container, msgs.discard, msgs.discardTooltip, function(ev) {
			var title = $(ev.target).text(msgs.updating).data("title");
			plugin.resetToServerVersion(store.getTiddler(title));
		});
		$([diffBtn, ignoreBtn, saveBtn]).data("title", title);
	},
	getDiffTiddlerTexts: function(diffText) {
		var chunks = diffText.split("\n  \n");
		if(chunks.length < 2) {
			return [chunks[0], ""];
		} else {
			var diffFieldsText = "{{diff{\n%0\n}}}".format(chunks[0]);
			diffText = '{{diff{\n%0\n}}}'.format(chunks.splice(1, chunks.length).join("\n"));
			return [diffText, diffFieldsText];
		}
	},
	makeDiffTiddler: function(title, diff) {
		var newTiddler = new Tiddler(title);
		var tags = plugin.diffTags;
		newTiddler.text = msgs.loading;
		newTiddler.fields.doNotSave = true;
		newTiddler.tags = diff ? tags.concat(["diff"]) : tags;
		newTiddler = store.saveTiddler(newTiddler);
		$.extend(store.getTiddler(title).fields,
			config.defaultCustomFields); // allow option to save it
		return newTiddler;
	},
	displayDiff: function(src, tiddler, latestRevision) {
		var adaptor = tiddler.getAdaptor();
		var title = tiddler.title;
		var ts = new Date().formatString("0hh:0mm:0ss");
		var suffix = "edit conflict %0".format(ts);
		var diffTitle = tiddlyspace.getLocalTitle(msgs.diffTitle.format(title), "", suffix);
		var diffTextTitle = tiddlyspace.getLocalTitle(msgs.diffTextTitle.format(title), "", suffix);
		var diffFieldsTitle = tiddlyspace.getLocalTitle(msgs.diffFieldTitle.format(title), "", suffix);
		plugin.makeDiffTiddler(diffTextTitle, true);
		plugin.makeDiffTiddler(diffFieldsTitle, true);
		var newTiddler = plugin.makeDiffTiddler(diffTitle, false);
		newTiddler.text = ['%0\n<<slider chkViewDiffText "%1" "%2">>\n',
			'<<slider chkViewDiffField "%3" "%4">>'].join("").
			format(msgs.diffHeader, diffTextTitle, msgs.diffTextHeader,
				diffFieldsTitle, msgs.diffFieldsHeader);
		store.saveTiddler(newTiddler);

		var callback = function(r) {
			var text = plugin.getDiffTiddlerTexts(r);
			store.getTiddler(diffTextTitle).text = text[0];
			store.getTiddler(diffFieldsTitle).text = text[1];
			story.refreshTiddler(diffTitle, null, true);
		};
		var workspace = "bags/%0".format(tiddler.fields["server.bag"]);
		ajaxReq({
			type: "get",
			dataType: "text",
			url: "/diff?format=unified&rev1=%0/%1/%2&rev2=%0/%1".format(workspace, title, latestRevision),
			success: callback,
			error: function() {
				displayMessage(msgs.reviewDiffError);
			}
		});
		story.displayTiddler(src, diffTitle);
	},
	resetToServerVersion: function(tiddler) {
		var adaptor = tiddler.getAdaptor();
		var ctx = { 
			host: tiddler.fields["server.host"],
			workspace: "bags/" + tiddler.fields["server.bag"]
		};
		adaptor.getTiddler(tiddler.title, ctx, null, function(context) {
			store.saveTiddler(context.tiddler);
			story.refreshTiddler(tiddler.title);
			store.setDirty(false);
		});
	},
	reportError: function(title) {
		var el = story.getTiddler(title);
		if(!el) {
			el = story.displayTiddler(null, title);
		}
		return $("<div />").addClass("error annotation").prependTo(el)[0];
	}
};

sssp.reportFailure = function(message, tiddler, context) {
	config.options.chkViewDiffText = config.options.chkViewDiffText === undefined ?
		true : config.options.chkViewDiffText;
	config.options.chkViewDiffFields = config.options.chkViewDiffFields || false;
	plugin.displayMessage(message, tiddler, context);
};

})(jQuery);
//}}}
<<tiddler "We Love TiddlyWiki...##Summary">>
{{annotation{
"~TiddlyWiki offers a glimpse of how things are changing in terms of how people think about software... a new beginning for simple software."
{{right{-- //Jeremy Wagstaff, [[WSJ.com|http://groups.google.com/group/TiddlyWiki/browse_thread/thread/53c7b7686b9bb5c2/122f1b2146d2ba6d?q=wsj&rnum=1]]//}}}
}}}
{{annotation{
"The original ~TiddlyWiki by Jeremy Ruston is, without a doubt, one of the most amazing dynamic web apps I've ever seen (sorry Gmail.)"
{{right{-- [[Lifehacker.com recommendation|http://www.lifehacker.com/software/productivity/getting-things-done-tiddlywiki-102953.php]]}}}
}}}
{{annotation{
"It's blowing my mind."
{{right{-- //Evan Williams, founder of Blogger, Twitter and Odeo, [[EvHead|http://evhead.com/2005/05/tiddlywiki-reusable-non-linear.asp]]//}}}
}}}
{{annotation{
"What I love most about ~TiddlyWiki is that it is quite easy to use but incredibly flexible."

{{right{-- //Ed Sim of Dawntreader Ventures, [[BeyondVC|http://www.beyondvc.com/2005/10/tiddlywiki.html]]//}}}
}}}
{{annotation{
"~TiddlyWiki is completely blowing my mind... Completely tripped out. Try it and you'll see what I mean."

{{right{-- //Russell Beattie of Yahoo!, [[Russell Beattie's Notebook|http://www.russellbeattie.com/notebook/1008896.html]]//}}}
}}}
{{annotation{
"OK, this is the first wiki interface I’ve seen that has real potential. Dunno quite why exactly, but this blows my mind."
{{right{-- //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./%
!Summary
~TiddlyWiki has received many favourable reviews...
!END%/
The mastermind behind the largest source of TiddlyWiki tools...
» http://tiddlytools.com
/***
|''Name''|TiddlySpaceTiddlerIconsPlugin|
|''Version''|0.8.10|
|''Status''|@@beta@@|
|''Author''|Jon Robson|
|''Description''|Provides ability to render SiteIcons and icons that correspond to the home location of given tiddlers|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpaceTiddlerIconsPlugin.js|
|''Requires''|TiddlySpaceConfig BinaryTiddlersPlugin ImageMacroPlugin TiddlySpacePublishingCommands|
!Notes
{{{<<tiddlerOrigin>>}}} shows the origin of the tiddler it is being run on.
In TiddlySpace terms this means it will determine whether the tiddler is external, public or private.
Where private it will analyse whether a public version exists and distinguish between the different scenarios.
If a tiddler is external, the SiteIcon of that external space will be shown

!Parameters
width / height : define a width or height of the outputted icon
label: if label parameter is set to yes, a label will accompany the icon.
!Code
***/
//{{{
(function($) {

if(!config.macros.image) {
	throw "Missing dependency: ImageMacroPlugin";
}

var imageMacro = config.macros.image;
var tiddlyspace = config.extensions.tiddlyspace;
var tweb = config.extensions.tiddlyweb;
var cmds = config.commands;
var cmd = cmds.publishTiddler;
tiddlyspace.resolveSpaceName = function(value) {
	var endsWith = config.extensions.BinaryTiddlersPlugin.endsWith;
	if(value) {
		value = value.indexOf("bags/") === 0 ? value.substr(5) : value;
		value = value.indexOf("recipes/") === 0 ? value.substr(8) : value;
		if(value.indexOf("@") === 0) {
			value = value.substr(1);
		}
		if(endsWith(value, "_public")) {
			value = value.substr(0, value.length - 7);
		} else if(endsWith(value, "_private")) {
			value = value.substr(0, value.length - 8);
		}
		value = value.toLowerCase();
	}
	return value;
};

tiddlyspace.renderAvatar = function(place, value, options) {
	options = options ? options : {};
	options.labelOptions = options.labelOptions ? options.labelOptions : { include: false, height: 48, width: 48 };
	options.imageOptions = options.imageOptions ? options.imageOptions : {};
	options.imageOptions.altImage = "/bags/common/tiddlers/defaultUserIcon";
	var container = $('<div class="siteIcon" />').appendTo(place);
	value = tiddlyspace.resolveSpaceName(value);

	tweb.getStatus(function(status) {
		var link, noLabel;
		if(!value || value == config.views.wikified.defaultModifier ||
			value == config.views.wikified.shadowModifier) {
			var icon = config.views.wikified.shadowModifier == value ? "shadowIcon" : "missingIcon";
			if(store.tiddlerExists(icon)) {
				imageMacro.renderImage(container, icon, options.imageOptions);
			} else {
				noLabel = true;
			}
		} else {
			var spaceURI;
			if(value != tiddlyspace.currentSpace.name) {
				spaceURI = options.notSpace ? tiddlyspace.getHost(status.server_host) :
					tiddlyspace.getHost(status.server_host, value);
			}
			link = spaceURI ? $("<a />").attr("href", spaceURI) : $("<span />");
			link.text(value);

			var imageOptions = options.imageOptions;
			if(options.spaceLink && !imageOptions.link) {
				imageOptions.link = spaceURI;
			}
			var avatar = options.notSpace ? false : value;
			var uri = tiddlyspace.getAvatar(status.server_host, avatar);
			imageMacro.renderImage(container, uri, options.imageOptions);
			if(!value) {
				value = "tiddlyspace";
			}
		}
		if(!noLabel && options.labelOptions.include) {
			var prefix = $("<span />").text(options.labelOptions.prefix || "")[0];
			var suffix = $("<span />").text(options.labelOptions.suffix || "")[0];
			$('<div class="label" />').append(prefix).append(link).
				append(suffix).appendTo(container);
		}
	});
	if(value) {
		var prefix = options.labelOptions.prefix || "";
		var suffix = options.labelOptions.suffix || "";
		var label = "%0%1%2".format(prefix, value, suffix);
		$(container).attr("title", label);
	}
};

var originMacro = config.macros.tiddlerOrigin = {
	locale: {
		"shadow": "shadow tiddler",
		"missing": "missing tiddler",
		"private": "private",
		"unknown": "unknown state",
		"public": "public",
		"unsyncedPrivate": "unsynced and private",
		"unsyncedPublic": "unsynced and public",
		externalPrefix: "from ",
		externalBagSuffix: " bag",
		externalSuffix: " space",
		publishPrivateDeletePrivate: "Are you sure you want to make this tiddler public?",
		moveToPrivate: "Are you sure you want to make this tiddler private? Only members will be able to see it.",
		pleaseWait: "please wait..",
		keepPublic: "keep public",
		cannotPublishDirtyTiddler: "The current tiddler is unsaved so cannot be published. Please save the tiddler first.",
		keepPrivate: "keep private",
		makePublic: "make public",
		makePrivate: "make private"
	},
	handler: function(place, macroName, params,wikifier, paramString, tiddler){
		var adaptor = tiddler.getAdaptor();
		var btn = $("<div />").addClass("originButton").attr("params", paramString).
			attr("refresh", "macro").attr("macroName", macroName).appendTo(place)[0];
		$(btn).data("tiddler", tiddler);
		originMacro.refresh(btn);
	},
	refresh: function(btn) {
		$(btn).empty();
		var paramString = $(btn).attr("params");
		var tiddler = $(btn).data("tiddler");
		var options = originMacro.getOptions(paramString);
		var type = tiddlyspace.getTiddlerStatusType(tiddler);
		originMacro.renderIcon(tiddler, type, btn, options);
	},
	getOptions: function(paramString) {
		paramString = "%0 label:no width:48 height:48 spaceLink:yes preserveAspectRatio:yes".format(paramString);
		var parsedParams = paramString.parseParams("name");
		var params = parsedParams[0].name;
		var options = {
			labelOptions: originMacro._getLabelOptions(parsedParams),
			imageOptions: imageMacro.getArguments(paramString, []),
			noclick: parsedParams[0].interactive &&
				parsedParams[0].interactive[0] == "no" ? true : false
		};
		if(!options.noclick) {
			var spaceLink = parsedParams[0].spaceLink;
			options.spaceLink = spaceLink && spaceLink[0] == "no" ? false : true;
		} else {
			options.spaceLink = false;
		}
		return options;
	},
	_getLabelOptions: function(parsedParams) {
		parsedParams = parsedParams[0];
		var includeLabel = !parsedParams.label || ( parsedParams.label && parsedParams.label[0] == "yes" );
		var prefix = parsedParams.labelPrefix ? parsedParams.labelPrefix[0] : false;
		var suffix = parsedParams.labelSuffix ? parsedParams.labelSuffix[0] : false;
		return { include: includeLabel, suffix: suffix, prefix: prefix };
	},
	_isSpace: function(value) {
		value = value ? value : "";
		var endsWith = config.extensions.BinaryTiddlersPlugin.endsWith;
		if(endsWith(value, "_private") || endsWith(value, "_public")) {
			return true;
		} else {
			return false;
		}
	},
	renderIcon: function(tiddler, type, button, options) {
		var locale = originMacro.locale;
		originMacro.annotateTiddler(button, type);
		if(type != "external") {
			originMacro.showPrivacyRoundel(tiddler, type, button,
				options);
		} else {
			var prefix = options.labelOptions.prefix, suffix = options.labelOptions.suffix;
			var space = tiddler.fields["server.bag"];
			options.notSpace = !originMacro._isSpace(space);
			options.labelOptions.prefix = prefix ? prefix : locale.externalPrefix;
			options.labelOptions.suffix = suffix ? suffix : (options.notSpace ? locale.externalBagSuffix : locale.externalSuffix);

			tiddlyspace.renderAvatar(button, space, options);
		}
	},
	showPrivacyRoundel: function(thisTiddler, privacyType, button, options) {
		// there is a public tiddler as well as the current tiddler!
		// TODO: not this is not enough.. we also need to check if the public tiddler is the same as..
		// .. the private tiddler to determine whether this is a draft
		// use of hashes would be useful here.
		$(button).empty();
		var icon = "%0Icon".format(privacyType);
		if(privacyType.indexOf("unsynced") === 0 && !store.tiddlerExists(icon)) {
			icon = "unsyncedIcon";
		}
		if(privacyType == "shadow") {
			if(!store.tiddlerExists(icon)) {
				icon = "bags/tiddlyspace/tiddlers/SiteIcon";
			}
		}
		if(privacyType == "missing" && !store.tiddlerExists(icon)) {
			return; // the user is not making use of the missingIcon
		} else {
			imageMacro.renderImage(button, icon, options.imageOptions);
			originMacro.showLabel(button, privacyType, options.labelOptions);
			var cmd = originMacro.iconCommands[privacyType];
			if(cmd && thisTiddler && !options.noclick) {
				$(button).click(function(ev) {
					cmd(ev, thisTiddler);
				});
			}
		}
	},
	annotateTiddler: function(place, type) {
		var tidEl = $(story.findContainingTiddler(place));
		tidEl.
			removeClass("private public external privateAndPublic privateNotPublic shadow").
			addClass(type);
	},
	showLabel: function(button, type, options) {
		var locale = originMacro.locale;
		var label = options.label ? options.label : locale[type];
		label = label ? label : locale.unknown;
		if(options && options.include) {
			$('<div class="roundelLabel" />').html(label).appendTo(button);
		}
		$(button).attr("title", label);
	},
	confirm: function(ev, msg, onYes, options) {
		options = options ? options : {};
		onYes = onYes ? onYes : function(ev) {};
		var btn = $(".originButton", $(ev.target).parents())[0];
		var popup = Popup.create(btn);
		$(popup).addClass("confirmationPopup");
		$("<div />").addClass("message").text(msg).appendTo(popup);
		$("<button />").addClass("button").text(options.yesLabel || "yes").appendTo(popup).click(onYes);
		$("<button />").addClass("button").text(options.noLabel || "no").click(function(ev) {
			Popup.remove();
		}).appendTo(popup);
		Popup.show();
		ev.stopPropagation();
		return false;
	},
	alert: function(ev, msg) {
		var popup = Popup.create(ev.target);
		$(popup).addClass("confirmationPopup alert");
		$("<div />").addClass("message").text(msg).appendTo(popup);
		Popup.show();
		ev.stopPropagation();
	},
	reportDirty: function(el) {
		originMacro.alert(el, originMacro.locale.cannotPublishDirtyTiddler);
	},
	iconCommands: {
		"public": function(ev, tiddler) {
			if(!readOnly) {
				var locale = originMacro.locale;
				var msg = locale.moveToPrivate;
				if(story.isDirty(tiddler.title)) {
					originMacro.reportDirty(ev);
				} else {
					originMacro.confirm(ev, msg, function(ev) {
						var target = $(ev.target);
						var onComplete = function(info) {};
						var privateBag = cmd.toggleBag(tiddler, "private");
						cmd.moveTiddler(tiddler, {
							title: tiddler.title,
							fields: { "server.bag": privateBag }
						}, onComplete);
					}, { yesLabel: locale.makePrivate, noLabel: locale.keepPublic });
				}
			}
		},
		"private": function(ev, tiddler) {
			if(!readOnly) {
				var locale = originMacro.locale;
				var adaptor = tiddler.getAdaptor();
				var publishTo = tiddler.fields["publish.name"] || tiddler.title;
				var workspace = "bags/%0".format(tiddler.fields["server.bag"]);
				tiddler.fields["server.workspace"] = workspace;
				var publicBag = cmd.toggleBag(tiddler, "public");
				var msg;
				msg = locale.publishPrivateDeletePrivate;
				var title = tiddler.title;
				var newTitle = publishTo || tiddler.title;
				tiddler.fields["server.page.revision"] = "false";
				store.addTiddler(tiddler);
				if(story.isDirty(tiddler.title)) {
					originMacro.reportDirty(ev);
				} else {
					originMacro.confirm(ev, msg, function(ev) {
						var onComplete = function(info) {};
						cmd.moveTiddler(tiddler, {
							title: newTitle,
							fields: { "server.bag": publicBag }
						}, onComplete);
					}, { yesLabel: locale.makePublic, noLabel: locale.keepPrivate });
				}
			}
		}
	}
};

})(jQuery);
//}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#PlayerPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2007-10-15|
|''Version''|1.1.4|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#PlayerPlugin|
!Summary
Embed a media player in a tiddler
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#PlayerPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#PlayerPlugin
|details|k
|''URL''|http://markdowntutor.tiddlyspace.com|
|''Author''|Tobias Beer|
|''Date''|2010-10-27|
! Summary
@MarkDownTutor gives you an introduction to ~MarkDown, a markup syntax which you can use in combination with ~TiddlyWiki by including the plugins provided by the @ShowDown space which contains a ~JavaScript  implementation for ~MarkDown by the name of [[ShowDown|http://attacklab.net/showdown]] and a plugin that hooks up a ~TiddlyWiki formatter for it.
! Preview
[img[http://img.tiddlyspace.com/MarkDownTutor]]
! Details
The contents of [[this space|GettingStarted]] are equivalent to [[the original documentation by John Gruber|http://daringfireball.net/projects/markdown/syntax]] only just that  below each ~MarkDown example you will also see the results of the example markup rendered using @ShowDown.

Here's a list of all the topics being covered and demonstrated...
*Overview
**Philosophy
**Inline HTML
**Automatic Escaping for Special Characters
*Block Elements
**Paragraphs and Line Breaks
**Headers
**Blockquotes
**Lists
**Code Blocks
**Horizontal Rules
*Span Elements
**Links
**Emphasis
**Code
**Images
*Miscellaneous
**Backslash Escapes
**Automatic Links
**Using [[ShowDown|ShowDown...]] in TiddlyWiki
|details|k
|''URL''|http://www.TiddlyTools.com/#CoreTweaks|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-12-27|
|''Version''||
|''CoreVersion''|2.2.0|
|''Source''|http://www.TiddlyTools.com/#CoreTweaks|
!Summary
A small collection of overrides to TW core functions.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#CoreTweaks]]
:see the tweak sections in author's info tiddler for details
!Details
This tiddler contains small changes to TW core functions that correct or enhance standard features or behaviors.
;637
:~TiddlyLink tooltip (custom formatting)
;607
:add HREF link on permaview command
;458
:add permalink-like ~HREFs on internal ~TiddlyLinks
;1151
:adjust popup placement when root element is in scrolled DIV
;1147
:tiddler macro with params does not refresh
;1134
:allow leading whitespace in section headings / TBD handle shadow tiddler sections
;824
:WindowTitle - alternative to combined SiteTitle/SiteSubtitle in window titlebar
;471
:'creator' field for new tiddlers
;444
:'tiddler' and 'place' - global variables for use in computed macro parameters
;823
:apply option values via paramifiers (e.g. #chk...and #txt...)
;608/609/610
:toolbars - toggles, separators and transclusion
;529
:IE fixup - case-sensitive element lookup of tiddler elements
;890
:add conditional test to {{{<<tiddler>>}}} macro
;831
:backslash-quoting for embedding newlines in 'line-mode' formats
;683
:~FireFox3 Import bug: 'browse' button replacement
;604
:cross-platform askForFilename()
;657
:wrap tabs onto multiple lines
;628
:hide 'no such macro' errors
<<listfiltr>>
/***
|''Name''|GroupByPlugin|
|''Description''|Mimics allTags macro to provide ways of creating lists grouping tiddlers by any field|
|''Version''|0.6.1|
|''Author''|Jon Robson|
|''Status''|beta|
!Usage
{{{<<groupBy tags>>}}}
mimics allTags macro

{{{<<groupBy server.bag>>}}}
groups by the server.bag field (this version contains TiddlySpace specific code for turning a bag into a space name)

{{{groupBy modified dateFormat:"YYYY"}}}
group tiddlers by year.

{{{<<groupBy tags exclude:excludeLists exclude:systemConfig>>}}}
group tiddlers by tag but exclude the tags with values excludeLists and systemConfig

Within that group you can also exclude things by filter
{{{groupBy modifier filter:[tag[film]]}}}
will group tiddlers tagged with film by modifier.
***/
//{{{
(function($) {
var taglocale = config.views.wikified.tag;
var macro = config.macros.groupBy = {
	locale: {
		tooltip: "all tiddlers in group %0",
		noTiddlers: "no tiddlers",
		openAllText: taglocale.openAllText,
		openAllTooltip: taglocale.openAllTooltip,
		openTiddler: "open tiddler with title %0"
	},
	morpher: {
		// TODO: note currently the following 2 morphers are TiddlySpace specific and probably should be in separate plugin
		"server.workspace": function(value, options) {
			return macro.morpher["server.bag"](value.replace("bags/", "").replace("recipes/", ""));
		},
		"server.bag": function(value, options) {
			if(typeof(value) !== "string") {
				return false;
			} else if(value.indexOf("_public") === -1 && value.indexOf("_private") === -1) {
				value = "*%0".format(value); // add star for non-space bags.
			}
			return value.replace("_public", "").replace("_private", "");
		},
		created: function(value, options) {
			return value.formatString(options.dateFormat || "DD MMM YYYY");
		},
		modified: function(value, options) {
			return macro.morpher.created(value, options);
		}
	},

	handler: function(place, macroName, params, wikifier, paramString) {
		var field = params[0] || "server.workspace";
		var dateFormat = params[1] || "DD MMM YYYY";
		var container = $("<div />").attr("macroName", macroName).addClass("groupBy").
			attr("refresh", "macro").attr("fieldName", field).
			attr("paramString", paramString).
			attr("dateFormat", dateFormat).appendTo(place)[0];
		macro.refresh(container);
	},
	isTypeArray: function(value) {
		var valueType = typeof value;
		if(valueType === "object" && typeof value.length === "number" &&
			!(value.propertyIsEnumerable("length")) &&
			typeof value.splice === "function") { //is Array
			return true;
		} else {
			return false;
		}
	},
	_onClickGroup: function(ev, options) {
		var i, target = ev.target, locale = macro.locale;
		var tiddlers = $(target).closest(".templateContainer").data("tiddlers");
		var popup = $(Popup.create(target)).addClass("taggedTiddlerList")[0];
		var value = $(target).attr("value");
		var openAll = createTiddlyButton($("<li />").appendTo(popup)[0],
			locale.openAllText.format(value), locale.openAllTooltip);
		$(openAll).click(function(ev) {
			story.displayTiddlers(ev.target, tiddlers);
			return false;
		});
		var listBreak = $("<li />").addClass("listBreak").html("<div />").appendTo(popup);
		for(i = 0; i < tiddlers.length; i++) {
			var item = $("<li />").appendTo(popup)[0];
			var template = store.getTiddlerText(options.template) || macro.template;
			wikify(template, item, null, tiddlers[i]);
		}
		listBreak.clone().appendTo(popup);
		$(createTiddlyLink($("<li />").appendTo(popup)[0], value, false)).
			text(locale.openTiddler.format(value));
		Popup.show();
		ev.stopPropagation();
		return false;
	},
	_refresh: function(container, tiddlers, options) {
		var totalGroups = 0, locale = macro.locale, i, j;
		var excludeValues = options.exclude;
		var values = {}, value_ids = [];
		var field = options.field;
		var morpher = macro.morpher[field] || function(value) {
			return value;
		};
		for(i = 0; i < tiddlers.length; i++) {
			var tiddler = tiddlers[i];
			var value = tiddler[field] || tiddler.fields[field];
			value = macro.isTypeArray(value) ? value : [ value ];
			for(j = 0; j < value.length; j++) {
				var v = morpher(value[j], options);
				if(v && $.inArray(v, excludeValues) === -1) {
					totalGroups += 1;
					if(!values[v]) {
						values[v] = [];
					}
					values[v].push(tiddler);
					value_ids.pushUnique(v);
				}
			}
		}
		var ul = $("<ul />").appendTo(container)[0];
		if(totalGroups === 0) {
			$("<li />").addClass("listTitle").text(locale.noTiddlers);
		}
		value_ids = value_ids.sort();
		var groupTemplate = store.getTiddlerText(options.groupTemplate);
		var onClick = function(ev) {
			macro._onClickGroup(ev, options);
		};
		for(i = 0; i < value_ids.length; i++) {
			var title = value_ids[i];
			var info = getTiddlyLinkInfo(title);
			tiddlers = values[title];
			var btn = createTiddlyButton($("<li />").appendTo(ul)[0],
				"%0 (%1)".format(title, tiddlers.length), locale.tooltip.format(title), null, info.classes);
			if(groupTemplate) {
				$(btn).empty();
				wikify(groupTemplate, btn, null, tiddlers[0]);
			}
			$(btn).click(onClick).attr("value", title).attr("refresh", "link").attr("tiddlyLink", title);
			$(btn).addClass("templateContainer").data("tiddlers", tiddlers);
		}
	},
	refresh: function(container) {
		container = $(container).empty();
		var paramString = container.attr("paramString");
		var args = paramString.parseParams("name", null, true, false, true)[0];
		var options = { field: container.attr("fieldName"), dateFormat: container.attr("dateFormat"), exclude: args.exclude || [],
			template: args.template ? args.template[0] : false, groupTemplate: args.groupTemplate ? args.groupTemplate[0] : "" };
		var tiddlers = args.filter ? store.filterTiddlers(args.filter[0]) : store.getTiddlers("title");
		macro._refresh(container, tiddlers, options);
	},
	template: "<<view title link>>"
};

}(jQuery));
//}}}
|details|k
|''URL''|http://themes.tiddlywiki.com/mocha.html|
! Summary
A lightweight theme against a white background with orange highlights and a vertical MainMenu to the left.
! Preview
[img[[img[http://img.tiddlyspace.com/Mocha][http://themes.tiddlywiki.com/mocha.html]]
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
/***
|''Name''|DiffFormatter|
|''Description''|highlighting of text comparisons|
|''Author''|FND|
|''Version''|0.9.0|
|''Status''|beta|
|''Source''|http://svn.tiddlywiki.org/Trunk/contributors/FND/formatters/DiffFormatter.js|
|''CodeRepository''|http://svn.tiddlywiki.org/Trunk/contributors/FND/|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''Keywords''|formatting|
!Description
Highlights changes in a unified [[diff|http://en.wikipedia.org/wiki/Diff#Unified_format]].
!Notes
Based on Martin Budden's [[DiffFormatterPlugin|http://svn.tiddlywiki.org/Trunk/contributors/MartinBudden/formatters/DiffFormatterPlugin.js]].
!Usage
The formatter is applied to blocks wrapped in <html><code>{{{diff{..}}}</code></html> within tiddlers tagged with "diff".
!Revision History
!!v0.9 (2010-04-07)
* initial release; fork of DiffFormatterPlugin
!StyleSheet
.diff { white-space: pre; font-family: monospace; }
.diff ins, .diff del { display: block; text-decoration: none; }
.diff ins { background-color: #dfd; }
.diff del { background-color: #fdd; }
.diff .highlight { background-color: [[ColorPalette::SecondaryPale]]; }
!Code
***/
//{{{
(function() {

config.shadowTiddlers.StyleSheetDiffFormatter = store.getTiddlerText(tiddler.title + "##StyleSheet");
store.addNotification("StyleSheetDiffFormatter", refreshStyles);

var formatters = [{
		name: "diffWrapper",
		match: "^\\{\\{diff\\{\n", // XXX: suboptimal
		termRegExp: /(.*\}\}\})$/mg,
		handler: function(w) {
			var el = createTiddlyElement(w.output, "div", null, "diff");
			w.subWikifyTerm(el, this.termRegExp);
		}
	}, {
		name: "diffRange",
		match: "^(?:@@|[+\\-]{3}) ",
		lookaheadRegExp: /^(?:@@|[+\-]{3}) .*\n/mg,
		handler: function(w) {
			createTiddlyElement(w.output, "div", null, "highlight").
				innerHTML = "&#8230;";
			this.lookaheadRegExp.lastIndex = w.matchStart;
			var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
			if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
				w.nextMatch = this.lookaheadRegExp.lastIndex;
			}
		}
	}, {
		name: "diffAdded",
		match: "^\\+",
		termRegExp: /(\n)/mg,
		handler: function(w) {
			var el = createTiddlyElement(w.output, "ins", null, "added");
			w.subWikifyTerm(el, this.termRegExp);
		}
	}, {
		name: "diffRemoved",
		match: "^-",
		termRegExp: /(\n)/mg,
		handler: function(w) {
			var el = createTiddlyElement(w.output, "del", null, "removed");
			w.subWikifyTerm(el, this.termRegExp);
		}
	}
];

config.parsers.diffFormatter = new Formatter(formatters);
config.parsers.diffFormatter.format = "diff";
config.parsers.diffFormatter.formatTag = "diff";

})();
//}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#DOMTweaksPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2007-07-20|
|''Version''|1.0.1|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#DOMTweaksPlugin|
!Summary
set DOM element ~IDs, add/remove classes and/or reposition rendered elements
!Examples
; [[?!?|http://www.TiddlyTools.com/#DOMTweaksPlugin]]
: missing
!Details
This plugin defines several useful macro-based functions for performing direct manipulation of DOM elements, including setting element ID's, moving elements, and adding/removing classnames from elements.
!!!Usage
;{{{<<DOM setID id force>>}}}
:assign an ID to the DOM element in which this macro is being rendered.
:If the current DOM element already has an ID, the new ID will //not// replace the current ID, unless you include the additional "''force''" keyword parameter.
:''Note:'' requiring this extra parameter helps minimize any problems that may arise if an existing, system-assigned ID is unintentionally re-assigned due to mis-placement of the macro... e.g., renaming 'mainMenu' or 'header' is NOT a good idea, and is prevented unless "force" is used.
;{{{<<DOM move id>>}}}
:move any uniquely identified DOM element to the current rendering location
:allows dynamic relocation of standard TW elements such as 'sidebar', 'mainMenu', as well as any other DOM elements that have an ID assigned to them (via the {{{<<DOM setID id>>}}} macro)
:''Note:'' You can also use this macro to move [[NestedSlidersPlugin...]]-generated slider/floating panels that have had an ID assigned to them (using either the {{{<<DOM setID id>>}}} macro or the [[NestedSlidersPlugin...]] {{{#panelID:}}} syntax).
;{{{<<DOM addclass classname>>}}}
:add a classname to the DOM element in which this macro is being rendered
;{{{<<DOM removeClass classname>>}}}
:remove a classname from the DOM element in which this macro is being rendered
|details|k
|''URL''|http://www.TiddlyTools.com/#AliasPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2012-08-10|
|''Version''|1.1.2|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Source''|http://www.TiddlyTools.com/#AliasPlugin|
!Summary
Create text-substitution macros for abbreviations and other "aliases", and then embed them in the rest of your tiddler content to quickly insert common terms, phrases and links without a lot of repetitive typing.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#AliasPluginInfo]]
:» see the author's info tiddler for examples
!Details
Here's how you use it...
{{{
<<alias keyword "content to display">>
}}}
Select a short keyword or other abbreviated term that is easily input with just a few keystrokes. When the {{{<<alias>>}}} macro is processed, it creates a new macro for you to embed in tiddler content, using the specified alias keyword as the name for that new macro.  You can choose any keyword you like, but don't include any spaces, as macro names must not contain spaces.

In order to ensure that your aliases are always defined and available for use, you should add your definitions to a tiddler that you are certain will be displayed when your TW is first loaded (e.g., [[MainMenu]]).  The {{{<<alias>>}}} macro itself won't actually produce any visible output, so it can be safely added to practically any tiddler without producing a change in that tiddler's appearance.

To use the aliases you have defined, simply invoke them as you would any other TiddlyWiki macro, e.g., {{{<<keyword>>}}}.  If you include parameters when you invoke the macro -- {{{<<keyword param param param...>>}}} -- they can be inserted direclty into the output by replacing corresponding substitution markers, indicated by using "%0" through "%9" in the "text to display" parameter used when the alias was defined. You can also use standard "backslash quoting" (e.g, "\n" (newline), "\t" (tab), etc.) to insert special characters into the alias output.
{{annotation{
''Important note:'' to embed another macro within an alias definition, you must "quote" the closing angle brackets by adding a backslash, like this: {{{>\>}}}.
}}}
For example, to define a quick alias for inserting a link to any given subject on http://www.wikipedia.com, you can write:
{{{
<<alias wikipedia "[[Wikipedia:%0|http://www.wikipedia.com/wiki/%0]]">>
}}}
which allows you to then write:
{{{
<<wikipedia TiddlyWiki>>
}}}
which is processed as if you wrote:
{{{
[[Wikipedia:TiddlyWiki|http://www.wikipedia.com/wiki/TiddlyWiki]]
}}}
and is displayed this way:
[[Wikipedia:TiddlyWiki|http://www.wikipedia.com/wiki/TiddlyWiki]]

Another interesting example uses the substitution markers to automatically display section contents or slice values:
{{{
<<alias describe "|<<tiddler [[%0##Summary]]>\>|\n">>
}}}
which allows you to then write:
{{{
<<describe AliasPlugin>>
}}}
which is processed as if you wrote:
{{{
|<<tiddler [[AliasPlugin...##Summary]]>>|
}}}
and is displayed this way:
|<<get ##Summary plain>>|
|details|k
|''URL''|http://www.TiddlyTools.com/#CycleThemes|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-01|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#CycleThemes|
!Summary
creates command link to cycle through systemThemes
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#CycleThemes]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#CycleThemes
|details|k
|''URL''|http://www.TiddlyTools.com/#SaveFromWebPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-07-25|
|''Version''|1.3.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SaveFromWebConfig|
!Summary
configuration settings for SaveFromWebPlugin
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SaveFromWebPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SaveFromWebPluginInfo
|details|k
|''URL''|http://clonespace.tiddlyspace.com|
|''Author''|Jon Robson|
|''Version''|0.5.0|
|''Released''|2011-10-04|
|''Requires''|TiddlySpace|
|''Source''|http://clonespace.tiddlyspace.com|
! Summary
Include @CloneSpace into your target TiddlySpace and then use the CloneBag@CloneSpace tiddler to define a bag which you want to clone into your target space.
! Examples
; [[@CloneSpace|http://clonespace.tiddlyspace.com]]
:» You need to try it out yourself.
! Preview
This is what the ui looks like...
<<<

<html><input type="text"><a class="button">clone bag</a></html>

<<<
! Details
This space allows you to clone an entire bag. To use it, include it in the space you want to clone into.
{{annotation{
It uses fully qualified bag names. So remember, to include a space called "foo" you need to use the bag "foo_public".
}}}
Or rather D³ ...pronounce D-CUBED...
|details|k
|''URL''|http://www.dcubed.ca/Welcome_to_d-cubed.html|
|''Author''|[[Tom Otvos]]|
|''Version''|1.2.0|
|''Released''|2008-10-27|
|''Requires''|2.4.1|
|''Source''|http://www.dcubed.ca/Welcome_to_d-cubed_files/d3-empty.zip|
! Summary
A GDT system designed by Tom Otvos for TiddlyWiki, D³ has been around since 2008 with a nice summary, ticklers, someday-maybe and all the GTD candy.
! Examples
; [[D³ sample|http://www.dcubed.ca/Welcome_to_d-cubed_files/d3-sample.zip]]
:» a downloadable demo with sample data
! Preview
[img[[img[http://img.tiddlyspace.com/D3_1]]
Inventor and father of TiddlyWiki and currently developing the next generation of TiddlyWiki called [[TiddlyWiki5|http://five.tiddlywiki.com]]...
» http://tiddlywiki.com
Below an slightly annotated version of the [[App Template]]...
{{{
|details|k
|''URL''|http://url.to.app.specific.documentation.org|
|''Author''|Firstname Lastname (Alias)|
|''Version''|app version|
|''Released''|YYYY-0MM-0DD|
|''Requires''|tw core version / plugin dependencies|
|''Source''|http://url.to.app.com/download.html|
! Summary
A few short words of what the app does in terms of key features and benefits.
! Examples
; [[external link to example]]
: some info on what's special about this example
; [[http://example.tiddlyspace.com]]
: do not demonstrate here!
! Preview
[img[http://img.tiddlyspace.com/AppName]]
! Details
Use cases and how it works.
}}}
!Guidelines
; Naming Conventions
: <<tiddler AppName...>>
; Tagging Conventions
: Tag a [[listed app|App]]...
:* always with <<tag App>>
:* with the Author using [[Firstname Lastname]] — see  <<tag Author>>
:* with [[Outdated]] if it no longer works with the current core release
:* with any corresponding<<tag Apps "app category">>, can be multiple
{{annotation{For creating new <<tag Apps "app categories">>, please discuss first.}}}
!App Template Preview
|details|k
|''URL''|http://url.to.app.specific.documentation.org|
|''Author''|Firstname Lastname (Alias)|
|''Version''|app version|
|''Released''|~YYYY-0MM-0DD|
|''Requires''|tw core version / plugin dependencies|
|''Source''|http://url.to.app.com/download.html|
! Summary
A few short words of what the app does in terms of key features and benefits.
{{annotation{Just a few words. Keep the rest for the ''Details'' section.}}}
If the app does not work based on the latest core release, please use the following annotation...
{{annotation{
This app works only on TiddlyWiki version <x.y.z>. It is unclear if it is supported in the latest version.
}}}
! Examples
; [[external link to example]]
: some info on what's special about this example
; [[http://example.tiddlyspace.com]]
: do not demonstrate here!
! Preview
[img[http://img.tiddlyspace.com/AppName]]
{{annotation{Use @img to upload one or more screenshots of the app in action and then [[insert it as an image|http://img.tiddlyspace.com/#AppName_1]] pointing to a url of an external resource.}}}
! Details
Use cases and how it works. Anything beyond the summary worth mentioning.
{{annotation{
» Here you can more details from the app documentation.
» Please don't overdo.
» Don't just copy & paste the entire documentation
» Leave out all the technical stuff, e.g. parameters, options, variables.
» This is not the how-to-guide for everything.
}}}
Design and original concept of TiddlySpot...
» [[http://tiddlyspot.com|http://tiddlyspot.com/?page=about]]
|details|k
|''URL''|http://www.TiddlyTools.com/#SetTiddlerHeight|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-03-14|
|''Version''|2.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SetTiddlerHeight|
!Summary
use CSS to set a fixed or percentage height for each tiddler
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SetTiddlerHeight]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SetTiddlerHeight
/***
|''Name:''|SinglePageHistoryPlugin|
|''Description:''|Limits to only one tiddler open (mostly). Manages an history stack and provides macro to navigate in this history (<<history>><<history back>><<history forward>>).|
|''Author:''|[[Tobias Beer|http://tobibeer.tiddlyspace.com]]|
|''Version:''|1.0.6 (2013-10-14)|
|''~CoreVersion:''|2.5.2|
|''Documentation:''|http://singlepagehistory.tiddlyspace.com|
|''Source:''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/SinglePageHistoryPlugin.min.js|
|''License''|Creative Commons 3.0|
***/
// /%
(function(e){var t=config.options;e.each({chkOpenDefaultOnEmpty:true,chkSinglePageMode:true,chkOpenTop:true},function(e,n){if(t[e]===undefined)t[e]=n});var n=config.macros.history={maxHistory:30,intervalUpdateURL:500,lingo:{historyLbl:"History",historyTip:"Click to show history...",forwardLbl:">",forwardTip:"Forward to previous in history...",backLbl:"<",backTip:"Back to last in history...",cancelEdit:"'%0' is being edited.\n\n"+"OK saves and closes it.\n"+"CANCEL leaves it open."},history:[],historyIndex:-1,currentTiddler:null,button:false,timeoutChangedURL:0,lastURL:window.location.href,openAll:false,handler:function(t,r,i){var s,o=i[0],u=n.historyIndex,a="button btn-history btn-history-";if(o){type=o=="back"?o:"forward";s=createTiddlyButton(t,n.lingo[type+"Lbl"],n.lingo[type+"Tip"],n.go,a+type);if(o=="back"&&u==0||o!="back"&&u==n.history.length-1)e(s).addClass("btn-history-none")}else{createTiddlyButton(t,n.lingo.historyLbl,n.lingo.historyTip,n.showPopup,"button btn-history btn-history-popup")}},showPopup:function(t){var r,i,s,o=t||window.event,u=Popup.create(this);for(r=0;r<n.history.length;r++){s=n.history[r];i=createTiddlyButton(createTiddlyElement(u,"li"),s,s,n.go);e(i).attr("historyIndex",r);if(s==n.currentTiddler)e(i).addClass("btn-history-current")}Popup.show(u,false);o.cancelBubble=true;if(o.stopPropagation)o.stopPropagation();return false},go:function(){var t,r=e(this),i=n.history.length,s=r.hasClass("btn-history-forward"),o=r.attr("historyIndex"),u=n.currentTiddler,o=undefined!=o?parseInt(o):n.historyIndex+(s?1:-1);t=n.history[o];if(!t||t==u||n.checkDirty()){return false}n.historyIndex=o;n.button=true;story.displayTiddler(null,t);n.button=false;e(".btn-history-back, .btn-history-forward").addClass("btn-history-none");if(o>=0&&o<i-1)e(".btn-history-forward").removeClass("btn-history-none");if(o<=i-1&&o>0)e(".btn-history-back").removeClass("btn-history-none");return false},checkDirty:function(){var e=false;story.forEachTiddler(function(t,r){if("true"==r.getAttribute("dirty")){if(confirm(n.lingo.cancelEdit.format([t])))story.saveTiddler(t);else{e=true;return false}}});return e},startURL:function(e){var t=window.location.href.split("#");return e?t[0]:!t[1]||t.length==1},openTiddlers:function(e){n.openAll=true;story.displayTiddlers(null,e?e:store.getTiddlerText("DefaultTiddlers").readBracketedList());story.permaView();n.openAll=false}};checkChangedURL=function(){var e,r,i=window.location.href,s=i.indexOf("#"),o=t.chkSinglePageMode;if(i==n.lastURL)return;r=decodeURIComponent(i.substr(s+1)).readBracketedList();if(o&&r.length==1&&!story.getTiddler(r[0])||!o&&t.chkOpenTop&&story.getTiddler(r[0]))story.displayTiddler(null,r[0]);else if(o){n.lastURL=i;e=r.length;r.map(function(t){e=e&&story.getTiddler(t);return e});if(!e){if(r.length)n.openTiddlers(r);else n.openTiddlers()}}};var r=Story.prototype;r.displayTiddlerSINGLEPAGEHISTORY=r.displayTiddler;r.displayTiddler=function(r,i,s,o,u){var a,f=[],l,c,h,p=0,d,v=t.chkSinglePageMode,m=n.historyIndex,g=n.history.length,y=n.currentTiddler,b=typeof i==="string"?i:i.title;if(y!=b&&s!=2){if(!n.button){if(n.checkDirty()&&v){return false}if(g>0&&m<g-1){for(h=0;h<=m;h++)f.push(n.history[h]);f.push(b);n.historyIndex+=1;n.history=f}else{n.history.push(b);if(g>n.maxHistory)n.history.shift();else n.historyIndex+=1}e(".btn-history-forward").addClass("btn-history-none");if(b!=y&&m>=0)e(".btn-history-back").removeClass("btn-history-none")}if(y&&!n.openAll&&v&&s!=2){n.openAll=true;story.closeAllTiddlers();n.openAll=false}n.currentTiddler=b;if(!n.openAll){href=n.startURL(true)+"#"+encodeURIComponent(String.encodeTiddlyLink(b));window.location.href=href}n.lastURL=window.location.href;document.title=wikifyPlain("SiteTitle")+" - "+b}c=story.displayTiddlerSINGLEPAGEHISTORY("top",b,s,v?false:o);this.forEachTiddler(function(){p++;return p<3});if(s!=2&&p<2||!v){if(t.chkOpenTop)e("#tiddlerDisplay").prepend(e(c));d=(v||t.chkOpenTop)&&!e("#displayArea #searchResults").length?0:ensureVisible(c);if(t.chkAnimate)e(document.body).animate({scrollTop:d});else window.scrollTo(0,d)}if(!n.timeoutChangedURL)n.timeoutChangedURL=window.setInterval(function(){checkChangedURL()},n.intervalUpdateURL);return c};r.closeTiddlerSINGLEPAGEHISTORY=r.closeTiddler;r.closeTiddler=function(e,i,s){r.closeTiddlerSINGLEPAGEHISTORY.apply(this,arguments);if(s!="OPENING"&&t.chkOpenDefaultOnEmpty&&!n.openAll){var o=0;this.forEachTiddler(function(e,t){o++;return o<2});if(o==0)n.openTiddlers()}};onClickTagOpenAllSINGLEPAGEHISTORY=onClickTagOpenAll;onClickTagOpenAll=function(e){n.openAll=true;story.closeAllTiddlers();onClickTagOpenAllSINGLEPAGEHISTORY.apply(this,arguments);story.permaView();n.openAll=false};config.commands.saveTiddler.handlerSINGLEPAGEHISTORY=config.commands.saveTiddler.handler;config.commands.saveTiddler.handler=function(e,t,r){n.openAll=true;var i=config.commands.saveTiddler.handlerSINGLEPAGEHISTORY.apply(this,arguments);n.openAll=false;return i};var i=config.paramifiers;e.each(config.paramifiers,function(e,t){t.onstartSINGEPAGEHISTORY=t.onstart;t.onstart=function(e){n.openAll=true;t.onstartSINGEPAGEHISTORY.apply(this,arguments);n.openAll=false}})})(jQuery)
// %/
|details|k
|''URL''|http://www.TiddlyTools.com/#ImageSizePlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-09-03|
|''Version''|1.2.3|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ImageSizePlugin|
!Summary
adds support for resizing images
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ImageSizePlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ImageSizePlugin
R0lGODlhAQEBAYIAMTRmrJS23Nzm9LzO5HSezPz+/Iyy3Mza7CwAAAAAAQEBAQID/gi63P4wykmrvTjrzbtvRCiOZGmeaKqubOu+cCzPdB0qdq7vfO//wBUuSCwaj8gkaqhsOp/Q6IgprVqvWBg1y+16pduveEzuhcvotFp1Xrvf6DZ8TsfK6/i88q7v+318f4KDMoGEh4hLAImMjUKLjpGSN5CTlomGl5pwmZueaZ2fomKho6ZZpaeqYJWrrqStr7KosbO2rLe5Vam6vTm8vsGFtcLFZsTGyTbAys0lzM7RBNDSzdTVydfYxdrbwd3eveDhuePktubnsunqruztqu+DAwX19vf4+fr7BQG+8oLo8RtIMJ8/ccheCSzIcOBBXQD/LGxIEd/DcgldTazI/vHirYh+NnKk6BFdxlUiRzIsOQtkn5QqCbJcd1IVzJj8Zr5yqecmTn063dU85fOnxX9DTRU1ai/oKp55ljLth9SXVKZO4yUdddVo1lNQ8XT9+dVU2DpjcZYddZZO2phrRbWd81Zl3E9z4dQdeddT3jd7O1btFbhi301/3RQmOVjX4oaHNSVe83hl41yVC0a+NFlNZpmXb312GNrW6JylZ53et9lS5zSrgaaWFdvgbIVTNd/WmBs0Qqu9Sf8mHBz1cMfFWe9GmVz2cczNbT8XHf3odNPV77We9BpNbesQt4r6rn25zexNzRNFX2+7pO5lyKe/rpo9Vfq07buPBJ+M/vz26imlX4BcDYgfbuzt50h/Y/x3X3jAJUjgeAZCSJyEB/KGoYXIbYhRhOgp2AiDYjgoIiMkfmHihJ+smCFzHn4kXosVfnhhiCx64iKHSgzg449ABinkkEQWaeSRAth3wJFMNunkkye20JZ9VFZpZUUCPDHllVx22WWWTmzp5ZhkVgdmE2KWqeaaRp25x4w6sCnnnBy5mUSadOap5z12IoHnnoDO2ecRfwZqaJmDGlHooYxymWgRizYqqX2PEhHppJhGV2kQl2bqaW+bAtHpp6T+FOoPo5aqap1awpnDqrBOdSogrtoQ6604zXrME7j2ymqYtdbg67AM6cpDqsT2/mrsDsgme+uyOjTrLKzQ/hIsDdNma0+1y1w7g7bacluDtOB+Ki4N5Jab6bkzpKvupOwOw+u7xMYbg7v0MmqvFt7KkO+w+76A77+BBuzCwATvabCU/caQMK4Ls4Dww3RG/Mi8FK9qMRsNw5Axta1i/DGpG6cw8chqlqzIEwG07PLLMMcs88w012zzAfYNYPPOPPfsswEh35hdlIik6MWONnaI44vnxWgSiEPnuAnSMkJdHdGHGN0F1U8LfbXUmnDdUseNiE2T1dFhTYjWXJi9E9mMuC0U2s2pPQjbWcj9FNyJ6K0V3cnZLQjeWPgNFt+IGG4W4ocozhbjhDguF+Tz/tRYtddpg32J5HhRHpDlXSsdNdPrOT024MUJ/gfhV3Dul+cSgX465nVrbonriMEekuxn0x647ZPgLpnuL/H+NurBqe4H61YIzxnxPRk/t++pAy+J865BH5X0eyPfm/J9MF8F9txpLxb3f1OfvPWRkP+e+Wihf7j3uYGvh/hSuM8f/G7Jvzj9U7FfHvAXBf0tiH908d/jAIgV9jnCgCNCoF4UODkGesWBZaNg5yxIFgzGTYOv46BaPNg3EOZOhHAhISICIIAWuvCFMIyhDGcoAKCRDh7KICAO1aDDHcZBgj7EBBCDmLUhEvFuRjzi6pKoxPAxsYkDfCIU69DDKdLCcorOqCIWraDFLeLCi8boIhiDNsZvSLGMP0SjGdWoQjau7Yxu/IIY4wgpONKRC3O8o6jsqMcr5LGPuwLk9ASZPkLOz5CHROQCFblIRm7QkY+E5AklOUlKPs+Sw8PkJTVZPk6W7wOgDKUoR0nKUprylBVIAAA7
Here's a description ~list of all<<tag Template templates>>used in this ~listing. @@background:#eef;padding:5px;float:right;<<newTiddler label:"new tiddler">>@@
!Entry Templates
|iconTable wideTable|k
|!Category|!Entry Template|!Category Template|
|<<tiddler Icon with: TabPlugins>>|[[Plugin Template|Plugin Template]]<br>» for a new [[plugin entry|Plugin]]|[[Plugin Category Template]]<br>» for a new [[plugin category|Plugins]]|
|<<tiddler Icon with: TabApps>>|[[App Template]]<br>» for a new [[app entry|App]]|[[App Category Template]]<br>» for a new [[app category|Apps]]|
|<<tiddler Icon with: TabThemes>>|[[Theme Template]]<br>» for a new [[theme entry|Theme]]|[[Theme Category Template]]<br>» for a new [[theme category|Themes]]|
|<<tiddler Icon with: TabReferences>>|[[Reference Template]]<br>» for a new [[reference entry|Reference]]|[[Reference Category Template]]<br>» for a new [[reference category|References]]|
|<<tiddler Icon with: TabAuthors>>|[[Author Template]]<br>» for a new [[author entry|Author]]|[[Alias Template]]<br>» for a new [[author alias|Alias]]|
!Category Links
» [[Plugin Types|Type]] used as tags on [[plugin entries|Plugin]]
» [[Broken]] [[plugins|Plugin]]
» [[Outdated]] [[apps|App]] or [[themes|Theme]]
» [[Glossary]]
!Transclusion Templates
; [[iframe]]
:» used to showcase an external TiddlyWiki inline using...
:» {{{<<tiddler iframe with: "http://url.com">>}}}
:» Perhaps not the best idea? Cen we get that in a slider — to reveal on-demand?
/***
|Name:|HideWhenPlugin|
|Description:|Allows conditional inclusion/exclusion in templates|
|Version:|4.0.0|
|Date:|2010-09-09|
|Author:|Simon Baird, Tobias Beer|
|Source:|http://mptw.tiddlyspot.com/#HideWhenPlugin|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
For use in ViewTemplate and EditTemplate. Example usage:
{{{<div macro="showWhenTagged Task">[[TaskToolbar]]</div>}}}
{{{<div macro="showWhen tiddler.modifier == 'BartSimpson'"><img src="bart.gif"/></div>}}}
***/
//{{{

window.hideWhenLastTest = false;

window.removeElementWhen = function(test,place) {
	window.hideWhenLastTest = test;
	if(test){
		removeChildren(place);
		place.parentNode.removeChild(place);
	}
};

(function(){
var s,show=false,f,fs={
	When:'eval(paramString)',
	WhenTagged:'tiddler.tags.containsAll(params)',
	WhenTaggedAny:'tiddler.tags.containsAny(params)',
	WhenTaggedAll:'tiddler.tags.containsAll(params)',
	WhenExists:'store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0])',
	TitleIs:'tiddler.title == params[0]',
	'"else"':'!window.hideWhenLastTest'
}
for(var f in fs){
	do{
		s=f=='"else"'?'':(show?'show':'hide');
		eval('merge(config.macros,{\n'+s+f+':{\n'+
			'handler:function(place,macroName,params,wikifier,paramString,tiddler){\n'+
				'removeElementWhen('+(show?'!':'')+fs[f]+',place);\n'+
			'}}});');
		show=!show&&s!='';
	}while(show);
}
})();
//}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#DigitalClock|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-26|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#DigitalClock|
!Summary
display current time with automatic update
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#DigitalClock]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#DigitalClock
/***
|''Name''|TiddlyFileImporter|
|''Version''|0.3.8|
|''Author''|Ben Gillies|
|''Type''|plugin|
|''Description''|Upload a TiddlyWiki file to TiddlyWeb, and import the tiddlers.|
!Usage
Upload a TiddlyWiki file to TiddlyWeb, and import the tiddlers.
!Requires
tiddlyweb
tiddlywebplugins.reflector
!Code
***/
//{{{
(function($){
if(!version.extensions.TiddlyFileImporter)
{ //# ensure that the plugin is only installed once
	version.extensions.TiddlyFileImporter = { installed: true };
}

config.macros.fileImport = {
	reflectorURI: '/reflector?csrf_token=%0',
	incorrectTypeError: 'Incorrect File Type. You must upload a TiddlyWiki',
	uploadLabel: 'Upload',
	uploadLabelPrompt: 'Import tiddlers from this TiddlyWiki',
	step1FileText: 'File:',
	step1PostText: 'In the next screen you will select the tiddlers to import.',
	step1Title: 'Step 1: Pick a TiddlyWiki to import',
	step1TypeChooser: 'Import From:',
	step3Html: ['<input type="hidden" name="markList" />',
		'<input type="hidden" checked="true" name="chkSync" />',
		'<input type="hidden" name="chkSave" />',
		'<input type="hidden" name="txtSaveTiddler" />'].join(),

	handler: function(place, macroName, params, wikifier, paramString) {
		var wizard = new Wizard();
		wizard.createWizard(place, 'Import a TiddlyWiki');
		this.restart(wizard);
	},

	restart: function(wizard) {
		var me = config.macros.fileImport;
		wizard.addStep(me.step1Title, ['<input type="hidden" ',
			'name="markList" />'].join(""));
		var markList = wizard.getElement('markList');
		var uploadWrapper = document.createElement('div');
		markList.parentNode.insertBefore(uploadWrapper, markList);
		uploadWrapper.setAttribute('refresh', 'macro');
		uploadWrapper.getAttribute('macroName', 'fileImport');
		var iframeName = 'reflectorImporter' + Math.random().toString();
		me.createForm(uploadWrapper, wizard, iframeName);
		$(uploadWrapper).append('<p>' + me.step1PostText + '</p>');
		wizard.setValue('serverType', 'tiddlyweb');
		wizard.setValue('adaptor', new config.adaptors.file());
		wizard.setValue('host', config.defaultCustomFields['server.host']);
		wizard.setValue('context', {});
		var iframe = $(['<iframe name="' + iframeName + '" ',
			'style="display: none" />'].join("")).appendTo(uploadWrapper);
		var onSubmit = function(ev) {
			var uploadType = $('select[name=uploadtype]', wizard.formElem).val();
			if (uploadType == "file") {
				// set an onload ready to hijack the form
				me.setOnLoad(uploadWrapper, wizard, iframe[0]);
				wizard.importType = 'file';
				wizard.formElem.submit();
			} else {
				var csrf_token = config.extensions.tiddlyspace.getCSRFToken();
				$.ajax({
					url: "%0/reflector?csrf_token=%1".format(
						config.defaultCustomFields["server.host"], csrf_token),
					type: "POST",
					dataType: "text",
					data: {
						uri: $("input", ".importFrom", wizard.formElem).val()
					},
					success: function(data, txtStatus, xhr) {
						wizard.POSTResponse = data;
						me.importTiddlers(uploadWrapper, wizard);
					},
					error: function(xhr, txtStatus, error) {
						displayMessage(["There was an error fetching the ",
							'url: ', txtStatus].join(""));
						me.restart(wizard);
					}
				});
				return false;
			}
		};
		wizard.setButtons([{
			caption: me.uploadLabel,
			tooltip: me.uploadLabelPrompt,
			onClick: onSubmit
		}]);
		$(wizard.formElem).submit(function(ev) {
			onSubmit(ev);
			ev.preventDefault();
		});
	},

	createForm: function(place, wizard, iframeName) {
		var form = wizard.formElem;
		var me = config.macros.fileImport;
		form.action = me.reflectorURI.format(
			config.extensions.tiddlyspace.getCSRFToken());
		form.enctype = 'multipart/form-data';
		form.encoding = 'multipart/form-data';
		form.method = 'POST';
		form.target = iframeName;
		onSelectChange = function(e) {
			var changeTo = $(this).val();
			if (changeTo == "file") {
				$(".importFrom").html('%0 <input type="file" name="file" />'.
					format(me.step1FileText));
			} else {
				$(".importFrom").html('URL: <input type="text" name="uri" />'
					+ ' Do you want <a target="_blank" href="http://faq.tiddlyspace.com/How%20do%20I%20include%2Fexclude%20spaces%3F">inclusion</a> instead?');
			}
		};
		$(place).append('<span>%0</span>'.format(me.step1TypeChooser)).
			append($(['<select name="uploadtype"><option value="file" selected="selected">file',
				'<option value="uri">url</select>'].join("")).change(onSelectChange)).
			append('<div class="importFrom">%0<input type="file" name="file" /></div>'.
					format(me.step1FileText));
	},

	setOnLoad: function(place, wizard, iframe) {
		var me = config.macros.fileImport;
		var loadHandler = function() {
			me.importTiddlers.apply(this, [place, wizard, iframe]);
		};
		iframe.onload = loadHandler;
		completeReadyStateChanges = 0;
		iframe.onreadystatechange = function() {
			if (++(completeReadyStateChanges) == 5) {
				loadHandler();
			}
		};
	},

	importTiddlers: function(place, wizard, iframe) {
		var tmpStore = new TiddlyWiki();
		var POSTedWiki = "";
		if (wizard.importType == "file") {
			try {
				POSTedWiki= iframe.contentWindow
					.document.documentElement.innerHTML;
			} catch(e) {
				displayMessage(config.macros.fileImport.incorrectTypeError);
				config.macros.fileImport.restart(wizard);
				return;
			}
			// now we are done, so remove the iframe
			$(iframe).remove();
		} else {
			POSTedWiki = wizard.POSTResponse;
		}

		tmpStore.importTiddlyWiki(POSTedWiki);
		var newTiddlers = tmpStore.getTiddlers();
		var workspace = config.defaultCustomFields['server.workspace'];
		var context = {
			status: true,
			statusText: 'OK',
			httpStatus: 200,
			adaptor: wizard.getValue('adaptor'),
			tiddlers: newTiddlers
		};
		context.adaptor.store = tmpStore;
		wizard.setValue('context', context);
		wizard.setValue('workspace', workspace);
		wizard.setValue('inFileImport', true);
		config.macros.importTiddlers.onGetTiddlerList(context, wizard);
	}
};

var _onGetTiddler = config.macros.importTiddlers.onGetTiddler;
config.macros.importTiddlers.onGetTiddler = function(context, wizard) {
	if (wizard.getValue('inFileImport')) {
		var me = config.macros.importTiddlers;
		if(!context.status)
			displayMessage("Error in importTiddlers.onGetTiddler: " + context.statusText);
		var tiddler = context.tiddler;
		var fields = tiddler.fields;
		merge(fields, config.defaultCustomFields);
		fields["server.workspace"] = wizard.getValue('workspace');
		delete fields['server.permissions'];
		delete fields['server.bag'];
		fields['server.page.revision'] = 'false';
		delete fields['server.recipe'];
		fields.changecount = 1;
		store.suspendNotifications();
		store.saveTiddler(tiddler.title, tiddler.title, tiddler.text,
			tiddler.modifier, tiddler.modified, tiddler.tags, tiddler.fields,
			false, tiddler.created);
		store.resumeNotifications();
		var remainingImports = wizard.getValue("remainingImports")-1;
		wizard.setValue("remainingImports",remainingImports);
		if(remainingImports === 0) {
			if(context.isSynchronous) {
				store.notifyAll();
				refreshDisplay();
			}
			wizard.setButtons([
					{caption: me.doneLabel, tooltip: me.donePrompt, onClick: me.onClose}
				],me.statusDoneImport);
			autoSaveChanges();
		}
	} else {
		_onGetTiddler.apply(this, arguments);
	}
};

var _onCancel = config.macros.importTiddlers.onCancel;
config.macros.importTiddlers.onCancel = function(e)
{
	var wizard = new Wizard(this);
	if (!wizard.getValue('inFileImport')) {
		return _onCancel.apply(this, arguments);
	}
	var place = wizard.clear();
	config.macros.fileImport.restart(wizard);
	return false;
};

var _step3Html = config.macros.importTiddlers.step3Html;
var _onGetTiddlerList = config.macros.importTiddlers.onGetTiddlerList;
config.macros.importTiddlers.onGetTiddlerList = function(context, wizard) {
	var fileImport = config.macros.fileImport;
	var importTiddlers = config.macros.importTiddlers;
	if (wizard.getValue('inFileImport')) {
		importTiddlers.step3Html = fileImport.step3Html;
	} else {
		importTiddlers.step3Html = _step3Html;
	}
	_onGetTiddlerList.apply(this, arguments);
};
})(jQuery);
//}}}
|details|k
|''URL''|http://devpad.tiddlyspot.com/#SimpleSearchPlugin|
|''Author''|[[FND]]|
|''Version''|0.4.1|
|''Released''|2010-02-09|
|''Requires''|2.1|
|''Source''|http://devpad.tiddlyspot.com/#SimpleSearchPlugin|
! Summary
Displays search results as a simple list of matching tiddlers.
! Examples
; http://tiddlywiki.org
:» the search on tiddlywiki.org and tiddlywiki.com both use this handy little plugin
! Preview
[img[http://img.tiddlyspace.com/SimpleSearchPlugin_1]]
! Details
Really nothing more to it.
|details|k
|''URL''|http://www.TiddlyTools.com/#RefreshPageDisplay|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-26|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#RefreshPageDisplay|
!Summary
create a link to redraw all page elements without restarting
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#RefreshPageDisplay]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#RefreshPageDisplay
|details|k
|''URL''|http://color.tiddlyspace.com|
|''Author''|[[Tobias Beer]]|
|''Date''|2013-02-22|
! Summary
Explaining the ColorPalette, a demonstration of [[PaletteMaker|PaletteMaker...]] and a reference for all things colored in TiddlyWiki.
! Preview
[img[http://img.tiddlyspace.com/ColorYourTiddlyWiki][http://color.tiddlyspace.com]]
! Details
Please join @color and help paint TiddlySpace.
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
|details|k
|''URL''|http://www.TiddlyTools.com/#MoveTiddlerToTop|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-25|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#MoveTiddlerToTop|
!Summary
reposition the current tiddler to top of the story column
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#MoveTiddlerToTop]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#MoveTiddlerToTop
|details|k
|''URL''|http://www.TiddlyTools.com/#ImportTiddlersPluginPatch|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-10-01|
|''Version''|4.4.0|
|''CoreVersion''|2.1|
|''Requires''|ImportTiddlersPlugin|
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ImportTiddlersPluginPatch|
!Summary
backward-compatible function patches for use with ImportTiddlersPlugin and ~TW2.1.x or earlier
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ImportTiddlersPluginPatch]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ImportTiddlersPluginPatch
|details|k
|''URL''|http://docs.tiddlyspace.com|
|''Author''|[[Chris Dent]] / [[Jon Robson]] / [[Osmosoft]]|
|''Version''|0.67.0|
|''Released''|2013-06-24|
|''Requires''|2.8.1 & many <<tag "TiddlySpace Plugins">>|
|''Source''|http://tiddlyspace.com|
! Summary
Sometimes we all need a little help with organising what's going on in our heads. TiddlySpace lets you organise your thoughts and ideas so that they are with you wherever, whenever and however you need them.
! Examples
; [[spaces on Tiddlyspace|http://spaces.tiddlyspace.com]]
:a list of all created spaces
; [[ambit|http://ambit.tiddlyspace.com]]
:a space-infrastructure for a distributed network of collaborators in the UK
! Preview
[img[http://img.tiddlyspace.com/TiddlySpace_1]]
! Details
|[img[http://tiddlyspace.com/tag_blue.png]]|''"""Organise your stuff with links and tags"""''<br>Link and tag your tiddlers to help you organise them. Tiddlers live on the web and each one has a cool URI making sharing easy.|
|[img[http://tiddlyspace.com/bags/common/tiddlers/box_closed_blue.png]]|''"""Tailor your space with apps"""''<br>TiddlySpace comes with a set of apps for creating and managing your tiddlers. You can create or reuse new apps for new experiences.|
|[img[http://tiddlyspace.com/community_blue.png]]|''"""Collaborate and Share with Others"""''<br>With a simple model for sharing, distributing and adapting your content TiddlySpace makes it easy to collaborate with others.|
|[img[http://tiddlyspace.com/bags/common/tiddlers/tiddlywiki2_blue.png]]|''"""An evolution of TiddlyWiki"""''<br>TiddlySpace builds on the tried and tested tiddler model introduced by TiddlyWiki by moving tiddlers to the web.|
|[img[http://tiddlyspace.com/plug_blue.png]]|''"""Simple API for Developers"""''<br>Developers can customise, integrate and extend TiddlySpace by using its extensive and well-designed set of ~APIs.|
|[img[http://tiddlyspace.com/gears_blue.png]]|''"""Free and Open Source"""''<br>The source code of TiddlySpace is available under an open source license so anyone can use it and improve it.|
/***
|''Name''|TiddlySpaceConfig|
|''Version''|0.7.7|
|''Description''|TiddlySpace configuration|
|''Status''|stable|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpaceConfig.js|
|''CoreVersion''|2.6.1|
|''Requires''|TiddlyWebConfig ServerSideSavingPlugin TiddlyFileImporter|
!Code
***/
//{{{
(function($) {

var tweb = config.extensions.tiddlyweb;

var recipe = config.defaultCustomFields["server.workspace"].split("recipes/")[1];
var currentSpace; // assigned later

var disabledTabs = [];

var coreBags = ["system", "tiddlyspace"];
var systemSpaces = ["plugins", "info", "images", "theme"];
systemSpaces = $.map(systemSpaces, function(item, i) {
	return "system-%0_public".format(item);
});

// hijack search macro to add custom attributes for mobile devices
var _search = config.macros.search.handler;
config.macros.search.handler = function(place, macroName, params) {
	_search.apply(this, arguments);
	$(".searchField:input", place).
		attr({ autocapitalize: "off", autocorrect: "off" });
};

// arg is either a container name or a tiddler object
// if fuzzy is truthy, space may be inferred from workspace (for new tiddlers)
// returns space object or false
var determineSpace = function(arg, fuzzy) {
	if(typeof arg == "string") { // container name
		var space = split(arg, "_", "r");
		return ["public", "private"].contains(space.type) ? space : false;
	} else if(arg) { // tiddler
		var container = determineContainer(arg, fuzzy);
		return container ? determineSpace(container.name, fuzzy) : false;
	} else {
		return false;
	}
};

// if fuzzy is truthy, container may be inferred from workspace for new tiddlers
// returns container object or false
var determineContainer = function(tiddler, fuzzy) { // TODO: expose?
	var bag = tiddler.fields["server.bag"];
	var recipe = tiddler.fields["server.recipe"]; // XXX: unused/irrelevant/redundant!?
	if(bag) {
		return { type: "bag", name: bag };
	} else if(recipe) {
		return { type: "recipe", name: recipe };
	} else if(fuzzy) { // new tiddler
		var workspace = tiddler.fields["server.workspace"];
		if(workspace) {
			var container = split(workspace, "/", "l");
			return ["bags", "recipes"].contains(container.type) ? container : false;
		} else {
			return false;
		}
	} else {
		return false;
	}
};

// hijack removeTiddlerCallback to restore tiddler from recipe cascade -- TODO: move into TiddlyWebWiki?
var sssp = config.extensions.ServerSideSavingPlugin;
var _removeTiddlerCallback = sssp.removeTiddlerCallback;
sssp.removeTiddlerCallback = function(context, userParams) {
	var title = context.tiddler.title;
	var recipe = context.tiddler.fields["server.recipe"];
	_removeTiddlerCallback.apply(this, arguments);
	if(recipe) {
		context.workspace = "recipes/" + recipe;
		var callback = function(context, userParams) {
			if(context.status) {
				var dirty = store.isDirty();
				store.saveTiddler(context.tiddler).clearChangeCount();
				store.setDirty(dirty);
			} else {
				store.notify(title, true);
			}
		};
		context.adaptor.getTiddler(title, context, null, callback);
	}
};

// splits a string once using delimiter
// mode "l" splits at the first, "r" at the last occurrence
// returns an object with members type and name
var split = function(str, sep, mode) {
	mode = mode == "r" ? "pop" : "shift"; // TODO: use +/-1 instead of "l"/"r"?
	var arr = str.split(sep);
	var type = arr.length > 1 ? arr[mode]() : null;
	return { type: type, name: arr.join(sep) };
};

var plugin = config.extensions.tiddlyspace = {
	currentSpace: determineSpace(recipe),
	coreBags: coreBags.concat(systemSpaces),

	determineSpace: determineSpace,
	isValidSpaceName: function(name) {
		return name.match(/^[a-z][0-9a-z\-]*[0-9a-z]$/) ? true : false;
	},
	getCurrentBag: function(type) {
		return "%0_%1".format(currentSpace, type);
	},
	getCurrentWorkspace: function(type) {
		return "bags/" + this.getCurrentBag(type);
	},
	// returns the URL for a space's avatar (SiteIcon) based on a server_host
	// object and an optional space name
	// optional nocors argument prevents cross-domain URLs from being generated
	getAvatar: function(host, space, nocors) {
		if(space && typeof space != "string") { // backwards compatibility -- XXX: deprecated
			space = space.name;
		}
		var subdomain = nocors ? currentSpace : space;
		host = host ? this.getHost(host, subdomain) : "";
		var bag = space ? "%0_public".format(space) : "tiddlyspace";
		return "%0/bags/%1/tiddlers/SiteIcon".format(host, bag);
	},
	// returns the URL based on a server_host object (scheme, host, port) and an
	// optional subdomain
	getHost: function(host, subdomain) {
		if(host === undefined) { // offline
			tweb.status.server_host = {}; // prevents exceptions further down the stack -- XXX: hacky workaround, breaks encapsulation
			return null;
		}
		subdomain = subdomain ? subdomain + "." : "";
		var url = "%0://%1%2".format(host.scheme, subdomain, host.host);
		var port = host.port;
		if(port && !["80", "443"].contains(port)) {
			url += ":" + port;
		}
		return url;
	},
	disableTab: function(tabTiddler) {
		if(typeof(tabTiddler) == "string") {
			disabledTabs.push(tabTiddler);
		} else {
			for(var i = 0; i < tabTiddler.length; i++) {
				plugin.disableTab(tabTiddler[i]);
			}
		}
	},
    checkSyncStatus: function(tiddler) {
		if(tiddler) {
			var title = typeof(tiddler) === "string" ? tiddler : tiddler.title;
			var el = story.getTiddler(title) || false;
			if(el) {
				refreshElements(el);
			}
		}
	},
	isDisabledTab: function(tabTitle) {
		var match = new RegExp("(?:\\[\\[([^\\]]+)\\]\\])", "mg").exec(tabTitle);
		var tabIdentifier = match ? match[1] : tabTitle;
		return disabledTabs.contains(tabIdentifier);
	},
	getCSRFToken: window.getCSRFToken || null // this may not have been processed yet
};

currentSpace = plugin.currentSpace.name;

tweb.serverPrefix = tweb.host.split("/")[3] || ""; // XXX: assumes root handler
tweb.getStatus(function(status) {
	var url = plugin.getHost(status.server_host);
	tweb.status.server_host.url = url;
	config.messages.tsVersion = status.version;
});

if(window.location.protocol == "file:") {
	// enable AutoSave by default
	config.options.chkAutoSave = config.options.chkAutoSave === undefined ?
		true : config.options.chkAutoSave;
} else {
	// set global read-only mode based on membership heuristics
	var indicator = store.getTiddler("SiteTitle") || tiddler;
	readOnly = !(recipe.split("_").pop() == "private" ||
		tweb.hasPermission("write", indicator));
	// replace TiddlyWiki's ImportTiddlers due to cross-domain restrictions
	if(config.macros.fileImport) {
		$.extend(config.macros.importTiddlers, config.macros.fileImport);
	}
}

// hijack saveChanges to ensure SystemSettings is private by default
var _saveChanges = saveChanges;
saveChanges = function(onlyIfDirty, tiddlers) {
	if(tiddlers && tiddlers.length == 1 &&
			tiddlers[0] && tiddlers[0].title == "SystemSettings") {
		var fields = tiddlers[0].fields;
		delete fields["server.recipe"];
		fields["server.bag"] = plugin.getCurrentBag("private");
		fields["server.workspace"] = plugin.getCurrentWorkspace("private");
	}
	return _saveChanges.apply(this, arguments);
};

// ensure backstage is always initialized
// required to circumvent TiddlyWiki's read-only based handling
config.macros.backstageInit = {
	init: function() {
		showBackstage = true;
	}
};

// disable evaluated macro parameters for security reasons
config.evaluateMacroParameters = "none";
var _parseParams = String.prototype.parseParams;
String.prototype.parseParams = function(defaultName, defaultValue, allowEval,
		noNames, cascadeDefaults) {
	if(config.evaluateMacroParameters == "none") {
		arguments[2] = false;
	}
	return _parseParams.apply(this, arguments);
};

var _tabsMacro = config.macros.tabs.handler;
config.macros.tabs.handler = function(place, macroName, params) {
	var newParams = [params[0]]; // keep cookie name
	for(var i = 1; i < params.length; i += 3) {
		var tabTitle = params[i + 2];
		if(!plugin.isDisabledTab(tabTitle)){
			newParams = newParams.concat(params[i], params[i + 1], tabTitle);
		}
	}
	_tabsMacro.apply(this, [place, macroName, newParams]);
};

// disable ControlView for XHRs by default
$.ajaxSetup({
	beforeSend: function(xhr) {
		xhr.setRequestHeader("X-ControlView", "false");
	}
});
// TiddlyWeb adaptor currently still uses httpReq, which needs extra magic -- XXX: obsolete this!
var _httpReq = httpReq;
httpReq = function(type, url, callback, params, headers, data, contentType,
		username, password, allowCache) {
	headers = headers || {};
	headers["X-ControlView"] = "false";
	_httpReq.apply(this, arguments);
};

// register style sheet for backstage separately (important)
store.addNotification("StyleSheetBackstage", refreshStyles);

// option for default privacy setting
config.optionsDesc.chkPrivateMode = "Set your default privacy mode to private";
config.optionsSource.chkPrivateMode = "setting";
config.options.chkPrivateMode = config.options.chkPrivateMode || false;
saveSystemSetting("chkPrivateMode", true);
config.defaultCustomFields["server.workspace"] = plugin.
	getCurrentWorkspace(config.options.chkPrivateMode ? "private" : "public");

config.paramifiers.follow = {
	onstart: function(v) {
		if(!readOnly) {
			var bag = "%0_public".format(currentSpace);
			story.displayTiddler(null, v, DEFAULT_EDIT_TEMPLATE, null, null,
				"server.bag:%0 server.workspace:bags/%0".format(bag));
			story.setTiddlerTag(v, "follow", 1);
			story.focusTiddler(v, "text");
		}
	}
};

var fImport = config.macros.fileImport;
if(fImport) {
	fImport.uploadTo = "Upload to: ";
	var _createForm = config.macros.fileImport.createForm;
	config.macros.fileImport.createForm = function(place, wizard, iframeName) {
		var container = $("<div />").text(fImport.uploadTo).appendTo(place);
		var select = $('<select name="mode" />').appendTo(container)[0];
		$('<option value="private" selected>private</a>').appendTo(select);
		$('<option value="public">public</a>').appendTo(select);
		wizard.setValue("importmode", select);
		_createForm.apply(this, [place, wizard, iframeName]);
	};

	var _onGet = config.macros.importTiddlers.onGetTiddler;
	config.macros.importTiddlers.onGetTiddler = function(context, wizard) {
		var type = $(wizard.getValue("importmode")).val();
		var ws =  plugin.getCurrentWorkspace(type);
		wizard.setValue("workspace", ws);
		_onGet.apply(this, [context, wizard]);
	};
}

config.extensions.ServerSideSavingPlugin.reportSuccess = function(msg, tiddler) {
	plugin.checkSyncStatus(tiddler);
	msg = config.extensions.ServerSideSavingPlugin.locale[msg];
	var link = "/" + encodeURIComponent(tiddler.title);
	displayMessage(msg.format([tiddler.title]), link);
};


})(jQuery);
//}}}
<<tag Translation Plugins>>providing a localised version of TiddlyWiki or helping you publish content in languages other than English...
|details|k
|''URL''|http://tiddlywiki.abego-software.de/#TiddlerWithParamsPlugin|
|''Author''|[[Udo Borowski]]|
|''Released''|2012-04-16|
|''Version''|1.0.1 (2006-03-22)|
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Udo Borowski]]|
|''Source''|http://tiddlywiki.abego-software.de/#TiddlerWithParamsPlugin|
!Summary
The plugin extends the build-in {{{<<tiddler...>>}}} macro. It replaces placeholders ($1, $2, ...) in the tiddler by values passed with the macro before it inserts the (replaced) text at the macro's location.
!Examples
; [[plugin info tiddler|http://tiddlywiki.abego-software.de/#TiddlerWithParamsPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.abego-software.de/#TiddlerWithParamsPlugin
Here's a list of all spaces in TiddlySpace that contain plugins or plugin collections for inclusion in your space...

{{tsList{<<tsScan url:"/search?fat=1&q=title:SiteInfo tag:plugin _limit:200"
template:"TiddlySpaceScan##Default"
sort:server.bag
hide:adgaw_public
hide:arwym_public
hide:jeevi_public
hide:hanswobbe_public
hide:perlmonger42_public
hide:shavinder_public
hide:sunyit-pos262-webcampaigning2012_public
hide:zemoxian_public
hide:testnicetagging_public
hide:communitysupply_public
>>}}}
<<listfiltr>>
|details|k
|''URL''|http://giffmex.tiddlyspot.com|
|''Author''|[[David Gifford|Dave Gifford]]|
|''Date''|2013-22-01|
! Summary
A huge collection and references by giffmex to adaptations, plugins, use cases, etc...
! Preview
[img[http://img.tiddlyspace.com/TiddlyWikiInAction_by_Giffmex][http://giffmex.tiddlyspot.com]]
|details|k
|''URL''|http://www.TiddlyTools.com/#ShowAllByTags|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-08-05|
|''Version''|1.1.0|
|''CoreVersion''|2.1|
|''Requires''|InlineJavascriptPlugin|
|''Type''|script|
|''Tags''|Plugin Review Script zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ShowAllByTags|
!Summary
for each tag, show a numbered list of all tiddlers with that tag
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ShowAllByTags]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ShowAllByTags
|details|k
|''URL''|http://www.TiddlyTools.com/#SaveAsPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-02-14|
|''Version''|2.7.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SaveAsPlugin|
!Summary
Save current document to another path/filename
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SaveAsPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SaveAsPluginInfo
The Customize space is your one-stop-shop for all things *tiddly: apps, plugins, macros, scripts, transclusions.
|details|k
|''URL''|http://tiddlytools.com/#TiddlerTweakerPlugin|
|''Author''|[[Eric Shulman]]|
|''Version''|2.4.5|
|''Released''|2011-01-01|
|''Requires''|2.1|
|''Source''|http://tiddlytools.com/#TiddlerTweakerPlugin|
! Summary
Select multiple tiddlers and modify author, created, modified and/or tag values.
! Examples
; http://tiddlytools.com/#TiddlerTweakerPlugin
:» The documentations showcases how it works.
! Preview
[img[http://img.tiddlyspace.com/TiddlerTweakerPlugin_1]]
! Details
[[TiddlerTweaker|TiddlerTweakerPlugin...]] is a 'power tool' for TiddlyWiki authors. Select multiple tiddlers from a listbox and 'bulk modify' the creator, author, created, modified and/or tag values of those tiddlers using a compact set of form fields.  The values you enter into the fields simultaneously overwrite the existing values in all tiddlers you have selected.

By default, any tags you enter into the [[TiddlerTweaker|TiddlerTweakerPlugin...]] will //replace// the existing tags in all the tiddlers you have selected.  However, you can also use [[TiddlerTweaker|TiddlerTweakerPlugin...]] to quickly filter specified tags from the selected tiddlers, while leaving any other tags assigned to those tiddlers unchanged.
!!!Important Notes
* [[TiddlerTweaker|TiddlerTweakerPlugin...]] is a 'power user' tool that can make changes to many tiddlers at once.  ''You should always have a recent backup of your document (or 'save changes' just *before* tweaking the tiddlers), just in case you accidentally 'shoot yourself in the foot'.''
* The date and author information on any tiddlers you tweak will ONLY be updated if the corresponding checkboxes have been selected.  As a general rule, after using [[TiddlerTweaker|TiddlerTweakerPlugin...]], always ''//remember to save your document//'' when you are done, even though the tiddler timeline tab may not show any recently modified tiddlers.
* Selecting and updating all tiddlers in a document can take a while.  Your browser may warn about an 'unresponsive script'.  Usually, if you allow it to continue, it should complete the processing... eventually.  Nonetheless, be sure to save your work before you begin tweaking lots of tiddlers, just in case something does get stuck.
|details|k
|''URL''|http://tiddlywiki.squize.org#ShowUpdatesPlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2007-02-04|
|''Version''|0.2 |
|''CoreVersion''|2.x|
|''Source''|http://tiddlywiki.squize.org#ShowUpdatesPlugin|
!Summary
Allows you to list tiddlers that have changed since the users last visit.
!Examples
; [[demo at author's site|http://tiddlywiki.squize.org/#ShowUpdatesDocs]]
:this demonstrates the lates updates by the author
!Details
You can list only all changed tiddlers, or filter them to only show tiddlers that have or do not have a specific tag. By default a simple list of the titles of changed tiddlers is created. However, using an extremely versatile syntax you can provide a custom template for the generated text.

Simply use...
{{{<<showUpdates>>}}}

Or with options...
{{{<showUpdates excludeTag:TagToExclude onlyTag:TagToList maxEntries:10 write:CustomWriteParameter >>}}}
;excludeTag
:a tag with tiddlers tagging to it being excluded
;onlyTag
:only thusly tagged tiddlers displayed
;maxEntries
:max number of entries displayed when there are no updates
:default is 10, which can be changed in the config.macros.showUpdates.settings part of the code
;write
:if a write parameter is not provided, an un-numbered list of the updates is generated.
:Alternatively, you can specify a custom 'template' for the text generated.
:The syntax for the write parameter is identical to that of the forEachTiddler macro.
:some of the variables available in the write parameter are 'index', 'count' and 'lastVisit' where lastVisit is the date of the last visit in the format {{{YYYYMMDDHHMM}}}, ''areUpdates'' is a boolean that is true if there are new updates since the users last visit.
|details|k
|''URL''|http://mptw.tiddlyspot.com/#LessBackupsPlugin|
|''Author''|[[Simon Baird]]|
|''Released''|2013-06-17|
|''Version''|3.0.1a|
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Simon Baird]]|
|''Source''|http://mptw.tiddlyspot.com/#LessBackupsPlugin|
!Summary
Intelligently limit the number of backup files you create
!Examples
; [[plugin info tiddler|http://mptw.tiddlyspot.com/#LessBackupsPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://mptw.tiddlyspot.com/#LessBackupsPlugin
Creator of a fork of mGSD called dGSD...
» http://mgsd.tiddlyspot.com/#mGSD
|details|k
|''URL''|http://www.blogjones.com/TiddlyWikiTutorial.html#EasyToEdit|
|''Author''|[[Jeremy Harper]]|
|''Date''|2006-06-18|
! Summary
A simple walkthrough on working with Tiddlywiki, creating, editing, tagging and formatting...
! Preview
[img[http://img.tiddlyspace.com/TiddlyWikiTutuorial_by_BlogJones][http://www.blogjones.com/TiddlyWikiTutorial.html#EasyToEdit]]
<<tag [[Development & Testing]] Apps>>for testing JavaScript, HTML, CSS or other weird stuff only geeks and nerds understand...
|details|k
|''URL''|http://www.TiddlyTools.com/#ShowPopupPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-03-13|
|''Version''|2.1.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ShowPopupPlugin|
!Summary
display tiddler content in a TiddlyWiki popup panel
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ShowPopupPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ShowPopupPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#ShowImage|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-11|
|''Version''|1.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ShowImage|
!Summary
display attached tiddler image without supporting plugin
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ShowImage]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ShowImage
The following spaces have a SiteInfo tiddler tagged <<tag theme>>...

{{tsList{<<tsScan url:"/search?fat=1&q=title:SiteInfo tag:theme _limit:200"
template:"TiddlySpaceScan##Default"
sort:server.bag
hide:alexb_public
hide:creeds_public
hide:dgerod_public
hide:iboc_public
hide:yus_public
hide:kuraku_public
hide:tan-milestone_public
>>}}}
<<listfiltr>>
When it comes to themes in TiddlyWiki there are different ways to achieve an end. [[Click here|Theme]] for a list of all themes and an introduction to how [[themes|Theme]] work in TiddlyWiki. To find examples for a theme being used throughout the web, search the web for {{{"<themename> TiddlyWiki"}}}.
|details|k
|''URL''|http://www.TiddlyTools.com/#ShowLocalDirectory|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-02-14|
|''Version''|2.0.2|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ShowLocalDirectory|
!Summary
display local filesystem directory listings
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ShowLocalDirectory]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ShowLocalDirectory
<<tag TiddlySpace Plugins>>that mostly leverage serverside enhancements for TiddlyWiki in the [[TiddlyWeb|http://tiddlyweb.tiddlyspace.com]] ecosystem out of which TiddlySpace emerged are listed below...

For a list of all includable plugins currently registered with TiddlySpace, see [[TiddlySpace Plugin Scan]].
|details|k
|''URL''|http://www.TiddlyTools.com/#FileDropPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-03-08|
|''Version''|2.1.4|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#FileDropPlugin|
!Summary
drag-and-drop files/directories to create tiddlers
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#FileDropPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#FileDropPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#GetTheFAQs|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-03|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''|LoadTiddlersPlugin, FAQViewerPlugin|
|''Type''|transclusion |
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#GetTheFAQs|
!Summary
autoload FAQ articles from external document
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#GetTheFAQs]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#GetTheFAQs
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="434 218 68 68"
width="30" height="30">
<g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1">
	<g>
		<path d="M 478.39694 232.53705 L 478.39694 232.53705 
		C 477.1145 231.85132 475.77875 231.30147 474.41058 230.88734 L 474.41058 218.24994 L 461.58942 218.24994 
		L 461.58942 230.88734 C 460.22125 231.30147 458.8855 231.85132 457.60306 232.53705 L 448.66824 223.60214 
		L 439.6022 232.66814 L 448.53717 241.60304 C 447.8515 242.8854 447.30157 244.22116 446.88745 245.58936 
		L 434.25 245.58936 L 434.25 258.41052 L 446.88745 258.41052 
		C 447.30157 259.77869 447.8515 261.11447 448.53717 262.39688 L 439.6022 271.33173 L 448.66824 280.3978 
		L 457.60306 271.46283 C 458.8855 272.14862 460.22125 272.69846 461.58942 273.11252 L 461.58942 285.74988 
		L 474.41058 285.74988 L 474.41058 273.11252 C 475.77875 272.69846 477.1145 272.14862 478.39694 271.46283 
		L 487.33176 280.3978 L 496.39767 271.33173 L 487.46286 262.39688 
		C 488.14853 261.11447 488.69836 259.77869 489.11255 258.41052 L 501.74988 258.41052 L 501.74988 245.58936 
		L 489.11255 245.58936 C 488.69836 244.22116 488.14853 242.8854 487.46286 241.60304 L 496.39767 232.66814 
		L 487.33176 223.60214 Z M 475.3328 244.66714 C 479.3825 248.71698 479.3825 255.2829 475.3328 259.33273 
		C 471.28296 263.3826 464.71704 263.3826 460.66724 259.33273 
		C 456.61737 255.2829 456.61737 248.71698 460.66724 244.66714 
		C 464.71704 240.61734 471.28296 240.61734 475.3328 244.66714" fill="#111"
		class="glyph"/>
	</g>
</g>
</svg>
{{noTitle{<<list all>>}}}<<listfiltr>>
heavily contributing to the TiddlyWiki community with syntax and code highlighting, formatters, lists and fancy image boxes...
;http://pmario.tiddlyspace.com
: Mario's TiddlySpace
;http://tweb-at-home.tiddlyspace.com
: easy install for TiddlyWeb via ''~VirtualBox''
R0lGODlhAQEBAYIAMTRmrITK/Mzm+ZDR/Pv+/HSezKfD4a/c+ywAAAAAAQEBAQID/gi63P4wykmrvTjrzbtvRSiOZGmeaKqubOu+cCzPdB0qdq7vfO//wBUuSCwaj8gkaqhsOp/Q6IgprVqvWBg1y+16pduveEzuhcvotFp1Xrvf6DZ8TsfK6/i88q7v+318f4KDMoGEh4hLAImMjUKLjpGSN5CTlomGl5pwmZueaZ2fomKho6ZZpaeqYJWrrqStr7KosbO2rLe5Vam6vTm8vsGFtcLFZsTGyTbAys0lzM4B0tPU1dOv0L7W29zdAaPZtt7j5Nab4avl6uvVk+ij7PHy0o7vm/P4+JjIuvn++YTsSfpHEOAfgYwKKvTnB+GhhRAZ5nE4COKAAwcEENjI/rGjRwECDgyAOJGfqYIXNXpcybIlgZAF61DU8y+ly5s4V8KU+GYmnnwDVOYcSnTjznmcTN6Td7Go06cvRyJd4xPOvIxQsz49MBWU0knyDmgdC1WA1HVqqqoJS7Zt2bPq4nxtFE8sS5B4Q2LMC9KtVgHxyqgtwy6oUYxw413E6ncoV7RjBo9hhzgiNZuNW5qF/EXyF8sLMWfu+LgcrKWgIzIevTFxt85zK6aevTpz6XFePGeZzVta09GATXPRfaW3cWl2G28mNzx2n+PQAyT363obrYHRoxumLtwKcSm0M+K9ixej6sbVzXl3/jN07bEh08cTSvY2tyvfnxR8zzq+/r/tZMl3zS7szfEPf6zpZB9lbglIDy6J5INggjcdVViDzEWRXxLzAEhhVsuxQ19WDkJICFMjfviXg9ZMl1WGT2xoRF0pqkhWiOV4+FRw3kAhYxCKDZWXjUXhSE6NRC3YTowFErYOgCCJxNReRH4k4lglOvGjD5SZB5poKirJjYtO4aZlk2I8mR2Y/bGInFZiDrgHml5kJyGSbsVZDZlEZZnEljrYSdCEN6rDZ0483jdnHoIudGiA5Tx6k57f/EknFo2qhmdWlL4JlZlIAEpDpl9uulU5prJEqaV0kDqbjvCh+mmPoV4KHm+LYSReebq6qViqQpYDlZ6sWmWRePBV/jaoX4lyM8Csrx0hKgwKUZmgf/4Ai1Oz20iqKq1GTOtCTd7212k3z7bFrTXacgQqEeKyAFS5Nhq5TruakXNqtEXEqwI+hFapk6+XtUVpukWBC6+tSkwpMIgE+4bvSpTSy5GA4TKMxK8P3xixdJB649S6cgbhbwkcd+zXudMg/KI3LuekMBAnj1CXysARHPPI47SL8cKTrWMxzjs+ORalRc4MiMZAPDkx0U6xvHNRAg6t9DGfGQo1kSRv8/RL41DNL81M93Dv1gL7+rWeFhNrctk7qDM12h+yrFXYwY69NBda091x1wUP643FV+8grjpf+90Wi3PjJGCfemNdnKyK/hPNeFmDOxY5D6IiXvnWlz/1OKKF/wL3qOM0/nna5AxtVOYyb64DoMKuTjeLE8unuruym14F5baj7eDuOomck3xv39pz8Io76DoBsN+EPNnKd5M486w5iG+cxMeZPBStY/+5vmVav23pNWwYvviVAx4A8R3J5y3g1OsHM/urU9ou4Of3nv7pLSAf/j7noPJxw1Too0F+ljfA1Y1jaPLDSQJn8J0HNtB27kuasyToPwUC8F94u2D+7kcU47lkgsNoAgNF6EBvaEs+m0JhDHSTOhYGT0/wI0CcJCVDLXwQBStUHEgMQMQiGrEvqxMQsLqmuh6+gIbdeF7dDAADA1wv/jOAy6EJWeJEF3gmhFATABVtYMXbbVF63bhJF1vwxShuTYw+kKJyojcp87VkjSyQDBj/NkYgXBFLZ2xJnPCEx0dszI0qg+MR/og5RFbIkVbqIAV/SII9VqmPSDAAznQ3FHTlS5IpnBEkLwmFRLowdtuYm/fqV4RA2giTTmCk2MZ0vDR+S1E/UAsJqySAK8hSc7ZEIzdaMr1cUlIEp+RlDOJSxYcl0yVxuiMoQ0kEV1LoBfpwwS8dN0qKBdMjhTRkNT1ZpXH9Q5u8tCZHupYi+rGyaXZ8pbwW0gKBqfN1ByzeNGd4zALcszGwPAFoVqBJIg3ykfn0yCrf+YNu9mcF/rwhKNccus548g6XxhxnQlUE0d6sYJvSHKZL2LmScIoTniJVUUAreRwVFFRF8kGo1yKJ0b0B6ZvXTEF2VABSb25UnzMlzT6p2dANqhSE0UnBSynUtUeRNH5D5edNaclRnQoqBT0Fp1HvYlHoRdWHUw0qhVaKzEYp1UbqfOpG3Pa9oqY0p0DMFFZhitOOqJUAxWwrl+qKRavKFQVLZc1Bb7kNu5o0j5Qk51jj6irAhqmrHIlmZA970r12q6oCdVWlTqCiphLzm5StrNmoei2/NvYEWb2oNeYWU3zWlKFxgyxAGatZx35IsVpN5cVCy4Yf/pMsZPWnZh/E2Q+1tqRU/nVnxlBa2A+ZtrbFpdBxDUvVny3Xrc2FK8qGWzISpFaHfD2o+2rFXGtgdrvc3WwJvitZhZrPute1bHYTRNvhooC9fI3peMmLXfMytb7QNUFgbcNXkcE3vqPV7X8zm17bJqi9FR3Tfvkr32rksCwAPq2A61bXHb5LWr7d6kMZzF0HC7au8vswgnnw279kmFQmHg2EN2KQRfW3GudlaYNRy+G3gs1ZKl5xbH08mhf/1QT49fHHukvhBM+XNUY2K48pNONsnqm8OHZulO2EArq+1X1fnV2IiZyZ4O44ugma7pLV2wSKPJM1Zi5xl28L2q5c+cbU+G4vtwydGI9GsSxb/pKPEkta+vLZOHNlqiPtzKSw7umoJD6yCTqLSDCrx0QVDtyCI81lPxM4oUtej6OzrGVO7/S+jxWppQWNaSf790PBFe5VU2Cj1n7MDoT+6YhN3VJPZ8aTq2ayho5J0dkeOiIqqJcnI9Ycja62XkjtNQrkWJQdBprNoh41NYgUa1l7NNm1tl5gmq3taXzXKB399rSJNDh25IbYxTb2c5G9gokCmTPkLvf7ypluevPUoOjCd76xvG1+R1shLDj3bnkCm1bGWzkBjAkLBnytc5KhKru00QHMaWWJVunal45MP73NLoF1G73daQHFKcRwkYuy0PJcZphXXvGOX3zkJCe1/jKlQPMHM1owOH8z16JA7bvJoydBx63AnqBwn7ob6YfUNSkzSbSfyyXqCsbZyWtQRpyBHNtewbpYtf6Drld93EnhkNITufWJN72OT59DG2XL9hmYHW1olzvOyypivx2giCc44ueuXZKG0TF4SBRf3vWuwhbbsGPMLrzh1/74MMYdDxUUeuUtJ3CZ7N1mltx8x1gmiAVmXPQPW/Ug1Hd41LM75Q35vI7p7vrswT72URBg7Xsc5D7IiBwX3v2+eHua3NdQ+DKGESK2BHzkz7H3pZc9r6lRdOe7lvgu/936rN9I6Ed/chbkPs+Uz4hp5Uj8Sbr9PnbTfPTD3fsBkf7B/vvu/smSvx7yn7/U0e+rS5ysb+4XbJpQM3LjfoF2Dvk3T8CDfATjCTUTAkYjfAf4CQ8IgULjevYSZt9HBoXxdtJ1eQ6YgNjUgSJkIeo3gCI4giTIPhkIf+6QgtTCFogXaqtQgSaAD7BCNCbYeeAAgzIHMB5IMWtGXDXogzJwIG+HLTZXhHWAEgGzI1JCELdgg/3mhIm3LXrhb7ZAhQqYXhanC1wYcV5odVtohCw2hjyYC2EYg2iogT0YIW0obMKwhjWAhs4gAnSYAwF2h5SAGojGhyaQhwT3hYCoCLKweIUoWom4iIFohoyIf48Yic/giJK4fJRYifGHiZUoiJpIbBWX2Im4B4qMyImiCHSluIikeIrFp4p8mIqs2AWu+IrXIYvOEIu0mG23mAy2mIvDxou6+Im+eHXBOIfAOIzZZ4y9sIvI2GTLWIbNCIbF+IyzKI2zoIzUCFvXeAofsI3c2I3e+I3gGI7ieAEJAAA7
Below is a list of<<tag Apps "app categories">>. For an introduction to and an<<tag App "overview of all apps">>[[click here|App]]. 
|details|k
|''URL''|http://www.TiddlyTools.com/#ToggleAnimations|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-27|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ToggleAnimations|
!Summary
enable/disable animation effects
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ToggleAnimations]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ToggleAnimations
|details|k
|''URL''|http://www.TiddlyTools.com/#SearchOptionsPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-04-08|
|''Version''|3.0.10|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#SearchOptionsPlugin|
!Summary
extend core search function with additional user-configurable options
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SearchOptionsPluginInfo]]
:see the author's info tiddler for examples
!Preview
[img[http://img.tiddlyspace.com/SearchOptionsPlugin_1]]
!Details
Extend core search function with additional user-configurable options including selecting which data items to search, enabling / disabling incremental key-by-key searches, and generating a ''list of matching tiddler'' instead of immediately displaying all matches.  This plugin also adds syntax for rendering 'search links' within tiddler content to embed one-click searches using pre-defined 'hard-coded' search terms.

!!!Search Link Syntax
To insert a 'search link' into tiddler content, you can write...
*{{{[search[text to find]]}}}
*{{{[search[text to display|text to find]]}}}

Clicking on the resulting search link will trigger the search functionality, just as if the specified 'text to find' had been entered into the standard search input field usually displayed in the document sidebar.

!!!Inline Output: Search Macro Syntax
Alternatively, to embed search results lists directly into your tiddler content, you can use:
{{{
<<search "text" report>> (report is a literal keyword)
<<search "text" "heading" "separator">> (simple inline generator)
}}}
<svg xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="100%" width="100%" version="1.1" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" viewBox="0 0 40 40"><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><defs><linearGradient id="lG3826" x1="7.0996" gradientUnits="userSpaceOnUse" y1="18.829" gradientTransform="matrix(1.5858347,0,0,1.8078238,1098.1851,351.13716)" x2="1.5461" y2="-0.95166"><stop stop-color="#000" offset="0"/><stop stop-color="#9c9b99" offset="1"/></linearGradient><linearGradient id="lG3828" y2="372.44" gradientUnits="userSpaceOnUse" y1="375.7" x2="1111.7" x1="1097.7"><stop style="stop-color:#ac9393;" offset="0"/><stop style="stop-color:#c8b7b7;" offset="1"/></linearGradient></defs><g transform="translate(-1080.9375,-357.3329)"><path style="stroke-width:0;stroke-miterlimit:4;fill:url(#lG3826);" d="m1080.9,357.32,39.996-0.0426-0.01,40.008c-15.507-25.519-15.36-25.95-39.988-39.965z"/><path style="stroke-dashoffset:0;stroke:#7aa3be;stroke-linecap:round;stroke-miterlimit:4;stroke-width:1.49999988;fill:#c1e6fd;" d="m1091.9,363.55c6.5716-6.4925,16.576-7.3925,23.147-0.90003,6.5717,6.4925,6.5717,17.019,0,23.511-4.4424-8.6113-12.288-15.713-23.147-22.611z"/><path style="stroke-dashoffset:0;stroke:#ce81b0;stroke-linecap:round;stroke-miterlimit:4;stroke-width:1.5;fill:#f4c4e2;" d="m1110.2,367.62c3.217,3.2168,3.217,8.4323,0,11.649-3.8194-4.2357-8.3307-8.1824-11.649-11.649,3.217-3.2168,8.4325-3.2168,11.649-0.00002z"/><path style="stroke-linejoin:bevel;stroke:#000000;stroke-linecap:round;stroke-dasharray:none;stroke-miterlimit:4;stroke-width:0.80000001;fill:url(#lG3828);" d="m1081,357.34c18.79,6.4752,32.53,16.56,39.894,39.892-11.19-17.028-14.878-19.19-27.352-14.96,6.2984-12.098,3.9371-13.19-12.542-24.932z"/></g></svg>
|details|k
|''URL''|http://tiddlywiki.squize.org#TiddlerNotesPlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2007-10-26|
|''Version''|2.1|
|''CoreVersion''|2.2.3|
|''Source''|http://tiddlywiki.squize.org#TiddlerNotesPlugin|
!Summary
Add notes to tiddlers without modifying the original content
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#TiddlerNotesPlugin]]
:see the author's info tiddler for a demo
!Preview
[img[http://img.tiddlyspace.com/TiddlerNotsPlugin_1]]
!Details
This plugin allows you to add notes to tiddlers, without needing to edit the original tiddler. This means that your original content will remain unaltered, and if you update it in the future, you won’t lose your notes. Notes are stored in separate tiddlers, but can be viewed and edited from within the original tiddler.

For a tiddler titled "~MySlide", the notes are by default saved in a tiddler titled "~MySlide-Notes" and is given a tag of "Notes". The suffix and tags of the notes tiddlers are customizable. You can have one or multiple notes per tiddlers. So it is possible to have for example, teacher's notes and student's notes in the same file.

Notes can be configured to start off blank, or pre-filled with the contents of the original tiddler.

!!Usage
In the simplest form...
{{{
<<notes>>
}}}
Additional optional parameters include...
;heading
:the heading to use for the notes box
;tag
:the tag to be given to the notes tiddler
;suffix
:the suffix to be used when naming the notes tiddler

A full macro call could look like...
{{{
<<notes heading:"My Notes" tag:"NoteTiddlers" suffix:"Comments">>
}}}

To avoid adding {{{<<notes>>}}} to each tiddler you want notes for, add it to the ViewTemplate, e.g. below...
{{{
<div class='viewer' macro='view text wikified'></div>
<div class='viewer' macro='notes'></div>
}}}

Used in combination with the [[HideWhenPlugin...]] or [[PublisherPlugin...]], you could have notes be shown only for tiddlers with specific tags. [[PublisherPlugin...]] would allow you for instance to only have the ~TeachersNotes visible to the teacher, and the ~StudentsNotes for the same tiddler visible to the Student.
!!!Configuration Options
;chkPrefillNotes
:enables to pre-fill notes with the original tiddler's contents
<<tag [[Security & User Management]] Plugins>>for working with TiddlyWiki in a multi-user environment, perhaps with requirements for encryption and enhanced security...
|details|k
|''URL''|http://www.TiddlyTools.com/#BreadcrumbsCommand|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-30|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''|[[BreadcrumbsPlugin...]]|
|''Source''|http://www.TiddlyTools.com/#BreadcrumbsCommand|
!Summary
"crumbs" command displays current breadcrumbs list in a popup.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#BreadcrumbsCommand]]
:see the author's info tiddler for a demo
!Details
{{{
<<tiddler BreadcrumbsCommand>>
<<tiddler BreadcrumbsCommand with: label tip>>
}}}
|details|k
|''URL''|http://devpad.tiddlyspot.com/#DcTableOfContentsPlugin|
|''Author''|[[Doug Compton]]|
|''Contributors''|[[Saq Imtiaz]], [[FND]], [[Eric Shulman]]|
|''Version''|0.4.1|
|''Released''|2008-05-12|
|''Requires''|2.2|
|''Source''|http://devpad.tiddlyspot.com/#DcTableOfContentsPlugin|
! Summary
Inserts a table of contents of the headings used in a tiddler, automatically updated with changes, providing links to jump to the heading. For use in inside selected tiddlers or for system wide templates.
! Examples
; [[authors site|http://devpad.tiddlyspot.com/#DcTableOfContentsPlugin]]
: the documentation provides an example toc
! Preview
[img[http://img.tiddlyspace.com/DcTableOfContentsPlugin_1]]
! Details
A parameter can be used to show the table of contents of a seperate tiddler, {{{<<showtoc tiddlerTitle>>}}}.

It also places a link beside each header to jump to the top of the current tiddler, displayed if the current tiddler is using the {{{<<showtoc>>}}} macro.

The appearance of the table of contents and the link to jump to the top can be modified using CSS.

t can also be used in a template to have it show on every tiddler.

If you had a tiddler with the following headings:
{{{
!Heading1a
!!Heading2a
!!Heading2b
!!!Heading3
!Heading1b
}}}
This table of contents would be automatically generated:
* Heading1a
** Heading2a
** Heading2b
*** Heading3
* Heading1b
{{noTitle{<<list filter [tag[App]][tag[Apps]][sort[title]]>>}}}<<listfiltr>>
|details|k
|''URL''|http://www.TiddlyTools.com/#ImageMapPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-05-27|
|''Version''|1.2.2|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ImageMapPlugin|
!Summary
apply image maps ('hotspots') with links to tiddlers
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ImageMapPluginInfo]]
: see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ImageMapPluginInfo
|details|k
|''URL''|http://www.TiddlyTools.com/#SnapshotPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-02-14|
|''Version''|1.4.3|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SnapshotPlugin|
!Summary
save or print HTML+CSS image of rendered document content
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SnapshotPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SnapshotPluginInfo
|details|k
|''URL''|http://mptw.tiddlyspot.com/empty.html#NewMeansNewPlugin|
|''Author''|[[Simon Baird]]|
|''Released''|27-Jun-2011|
|''Version''|1.1.1a|
|''CoreVersion''|2.2|
|''Source''|http://mptw.tiddlyspot.com/empty.html#NewMeansNewPlugin|
!Summary
When hitting the <<newTiddler>> button and a tiddler named ''New Tiddler'' already exists then create ''New Tiddler (1)'' and so on.
!Examples
; [[plugin info tiddler|http://mptw.tiddlyspot.com/empty.html#NewMeansNewPlugin]]
:see the author's info tiddler for examples
!Details
Nothing more to explain.
/***
|''Name''|TiddlySpaceFollowingPlugin|
|''Version''|0.7.1|
|''Description''|Provides a following macro|
|''Author''|Jon Robson|
|''Requires''|TiddlySpaceConfig TiddlySpaceTiddlerIconsPlugin ErrorHandler|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
!Usage
Tag a tiddler with "follow" to express a list of followers.
Using the {{{<<followTiddlers X>>}}}
will reveal the number of tiddlers with name X in the set of spaces the *current* user viewing your space follows.
{{{<<following jon>>}}} will list all the users following Jon.
{{{<<followers jon>>}}} will list all the followers of jon.
{{{<linkedTiddlers>>}}} will list all tiddlers across TiddlySpace linked to the current tiddler
{{{<linkedTiddlers follow:yes>>}}} will list all tiddlers across TiddlySpace that come from your list of followers
adds spaceLink view type {{{<<view server.bag spaceLink>>}}} creates a link to the space described in server.bag
{{{<<view server.bag spaceLink title>>}}} makes a link to the tiddler with title expressed in the field title in space server.bag
If no name is given eg. {{{<<following>>}}} or {{{<<follow>>}}} it will default the current user.
!StyleSheet
.followTiddlersList li {
	list-style:none;
}

.followButton {
	width: 2em;
}

.followTiddlersList li .siteIcon {
	height:48px;
	width: 48px;
}

#sidebarTabs .followers li a,
.followers .siteIcon,
.followers .siteIcon div {
	display: inline;
}

.followTiddlersList li .externalImage, .followTiddlersList li .image {
	display: inline;
}

.scanResults li {
	list-style: none;
}
!Code
***/
//{{{
(function($) {
var LIMIT_FOLLOWING = 100;

var tweb = config.extensions.tiddlyweb;
var tiddlyspace = config.extensions.tiddlyspace;
var currentSpace = tiddlyspace.currentSpace.name;

var shadows = config.shadowTiddlers;
config.annotations.ScanTemplate = "This tiddler is the default template used in the display of tiddlers founding using the tsScan macro. To access attributes use the view macro e.g. {{{<<view title text>>}}}";
shadows.ScanTemplate = "<<view modifier SiteIcon width:24 height:24 spaceLink:yes label:no>> <<view title link>>";
shadows.FollowersTemplate = "<<view server.bag SiteIcon width:24 height:24 spaceLink:yes label:no>> <<view server.bag spaceLink>>";
shadows.FollowingTemplate = "<<view title SiteIcon width:24 height:24 spaceLink:yes label:no>> <<view title spaceLink>>";
shadows.FollowTiddlersBlackList = "";
shadows.FollowTiddlersHeading = "There are tiddlers in spaces you follow using the follow tag which use the title <<view title text>>";
shadows.FollowTiddlersTemplate = ["* <<view server.space SiteIcon width:24 height:24 spaceLink:yes label:no>> ",
	"<<view server.space spaceLink title external:no>> modified by <<view modifier spaceLink>> ",
	"in the <<view server.space spaceLink>> space (<<view modified date>> @ <<view modified date 0hh:0mm>>).\n"].join("");

var name = "StyleSheetFollowing";
shadows[name] = "/*{{{*/\n%0\n/*}}}*/".
	format(store.getTiddlerText(tiddler.title + "##StyleSheet"));
store.addNotification(name, refreshStyles);

// provide support for sucking in tiddlers from the server
tiddlyspace.displayServerTiddler = function(src, title, workspace, callback) {
	var adaptor = store.getTiddlers()[0].getAdaptor();
	var localTitle = tiddlyspace.getLocalTitle(title, workspace);
	var tiddler = new Tiddler(localTitle);
	tiddler.text = "Please wait while this tiddler is retrieved...";
	tiddler.fields.doNotSave = "true";
	store.addTiddler(tiddler);
	src = story.displayTiddler(src || null, tiddler.title);
	tweb.getStatus(function(status) {
		var context = {
			host: tweb.host, // TODO: inherit from source tiddler?
			workspace: workspace,
			headers: { "X-ControlView": "false" }
		};
		var getCallback = function(context, userParams) {
			var tiddler = context.tiddler;
			tiddler.title = localTitle;
			store.addTiddler(tiddler);
			story.refreshTiddler(localTitle, null, true); // overriding existing allows updating
			if(callback) {
				callback(src, tiddler);
			}
		};
		adaptor.getTiddler(title, context, null, getCallback);
	});
};

tiddlyspace.scroller = {
	runHandler: function(title, top, bottom, height) {
		var i;
		var handlers = tiddlyspace.scroller.handlers;
		var tidEl = story.getTiddler(title);
		if(tidEl) {
			var topEl = $(tidEl).offset().top + 20;
			if(top === false || (topEl > top && topEl < bottom)) {
				var h = handlers[title];
				for(i = 0; i < h.length; i++) {
					h[i]();
				}
				tiddlyspace.scroller.clearHandlers(title);
			}
		} else {
			tiddlyspace.scroller.clearHandlers(title);
		}
	},
	clearHandlers: function(title) {
		tiddlyspace.scroller.handlers[title] = [];
	},
	registerIsVisibleEvent: function(title, handler) {
		tiddlyspace.scroller.handlers[title] = tiddlyspace.scroller.handlers[title] || [];
		tiddlyspace.scroller.handlers[title].push(handler);
	},
	init: function() {
		this.handlers = {};
		this.interval = window.setInterval(function() {
			var top = $(window).scrollTop();
			var height = $(window).height();
			var bottom = top + height;
			var title;
			for(title in tiddlyspace.scroller.handlers) {
				if(title) {
					tiddlyspace.scroller.runHandler(title, top, bottom, height);
				}
			}
		}, 2000); // every 2 seconds check scroll position
	}
};
tiddlyspace.scroller.init();

var followMacro = config.macros.followTiddlers = {
	locale: {
		followListHeader: "Here are tiddlers from spaces you follow using the follow tag which use this title.",
		noTiddlersFromFollowers: "None of the spaces you follow contain a tiddler with this name.",
		errorMessage: "There was a problem retrieving tiddlers from the server. Please try again later."
	},
	init: function() {
		followMacro.lookup = {};
	},
	followTag: "follow",
	getHosts: function(callback) {
		tweb.getStatus(function(status) {
			callback(tweb.host, tiddlyspace.getHost(status.server_host, "%0"));
		});
	},
	getBlacklist: function() {
		return store.getTiddlerText("FollowTiddlersBlackList").split("\n");
	},
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		var args = paramString.parseParams("anon")[0];
		var containingTiddler = story.findContainingTiddler(place).getAttribute('tiddler');
		var title = (args.anon && args.anon[0]) || tiddler.fields["server.title"] || tiddler.title;
		var tid = store.getTiddler(title);
		var user = params[1] || false;
		if(tid) {
			followMacro.makeButton(place, {
				url: "/search?q=title:%22" + encodeURIComponent(title) + "%22",
				containingTiddler: containingTiddler,
				blacklisted: followMacro.getBlacklist(), title: title, user: user,
				consultFollowRelationship: (args.follow &&
					args.follow[0] === 'false') ? false : true });
		}
	},
	makeButton: function(place, options) { // this is essentially the same code in TiddlySpaceFollowingPlugin
		var title = options.title;
		var blacklisted = options.blacklisted;
		var tiddler = store.getTiddler(title);
		var btn = $('<div class="followButton" />').addClass("notLoaded").appendTo(place)[0];
		if(blacklisted.contains(title)) {
			$(btn).remove();
			return;
		} else {
			var user = options.user;
			window.setTimeout(function() { // prevent multiple calls due to refresh
				tiddlyspace.scroller.registerIsVisibleEvent(options.containingTiddler, function() {
					var mkButton = function(followers, ignore) {
						if(!followers && !ignore) {
							$(btn).remove();
						} else {
							$("<a />").appendTo(btn);
							var scanOptions = { url: options.url,
								spaceField: options.spaceField || "bag", template: null, sort: "-modified",
								callback: function(tiddlers) {
									$(btn).removeClass("notLoaded");
									followMacro.constructInterface(btn, tiddlers);
								}
							};
							if(!ignore) {
								scanOptions.showBags = followMacro._getFollowerBags(followers);
							}
							scanOptions.hideBags = [tiddler.fields["server.bag"]];
							scanMacro.scan(null, scanOptions, user);
						}
					};
					if(options.consultFollowRelationship) {
						followMacro.getFollowers(mkButton);
					} else {
						mkButton([], true);
					}
				});
			}, 1000);
		}
	},
	constructInterface: function(container, tiddlers) {
		var txt = tiddlers.length;
		var className = txt > 0 ? "hasReplies" : "noReplies";
		var el = $(story.findContainingTiddler(container));
		$(container).empty().addClass(className);
		var btn = $("<a />").addClass("followedTiddlers").text(txt).
			click(function(ev) {
				followMacro.followingOnClick(ev);
			}).appendTo('<div class="followedTiddlers" />').appendTo(container)[0];
		$.data(btn, "tiddlers", tiddlers);
	},
	followingOnClick: function(ev) {
		var target = ev.target;
		var locale = followMacro.locale;
		var el = $('<div class="followTiddlersList" />')[0];
		var popup = Popup.create(target,"div");
		$(popup).addClass("taggedTiddlerList followList").click(function(ev) { // make it so only clicking on the document outside the popup removes the popup
			if(ev.target.parentNode != document) {
				ev.stopPropagation();
			}
		}).append(el);
		var tiddlers = $.data(target, "tiddlers") || [];
		scanMacro.template(el, tiddlers.slice(0,1), "FollowTiddlersHeading");
		scanMacro.template(el, tiddlers, "FollowTiddlersTemplate");
		if(tiddlers.length === 0) {
			$("<li />").text(locale.noTiddlersFromFollowers).appendTo(el);
		}
		Popup.show();
		ev.stopPropagation();
		return popup;
	},
	_getFollowerBags: function(followers) { // XXX: private or not?
		return $.map(followers, function(name, i) {
			return name != currentSpace ? "%0_public".format(name) : null;
		});
	},
	getFollowers: function(callback, username) {
		// returns a list of spaces being followed by the existing space
		var followersCallback = function(user) {
			if(!user.anon) {
				scanMacro.scan(null, { 
					url: "/search?q=bag:%0_public tag:%1 _limit:%2".format(user.name, followMacro.followTag, LIMIT_FOLLOWING),
					spaceField: "title", template: null, cache: true,
					callback: function(tiddlers) {
						var followers = [];
						for(var i = 0; i < tiddlers.length; i++) {
							followers.push(tiddlyspace.resolveSpaceName(tiddlers[i].title));
						}
						callback(followers);
					}
				});
			} else {
				callback(false);
			}
		};
		return !username ? tweb.getUserInfo(followersCallback) : followersCallback({ name: username });
	}
};

var scanMacro = config.macros.tsScan = {
	init: function () {
		this.scanned = {};
	},
	_tiddlerfy: function(jsontiddlers, options) {
		var tiddlers = [];
		var spaceField = options.spaceField || "bag"; // TODO: phase out use view types instead
		$.each(jsontiddlers, function(i, t) {
			var use = false;
			if(!options.showBags || (options.showBags && options.showBags.contains(t.bag))) {
				use = true;
			}
			if(options.hideBags && options.hideBags.contains(t.bag)) {
				use = false;
			}
			if(use) {
				var spaceName = t[spaceField];
				var tiddler = config.adaptors.tiddlyweb.toTiddler(t, tweb.host);
				tiddler.fields["server.space"] = tiddlyspace.resolveSpaceName(spaceName);
				tiddlers.push(tiddler);
			}
		});
		return tiddlers;
	},
	_scanCallback: function(place, jsontiddlers, options) {
		var locale = followersMacro.locale;
		var tiddlers = scanMacro._tiddlerfy(jsontiddlers, options);
		
		if(options.sort) {
			tiddlers = store.sortTiddlers(tiddlers, options.sort);
		}
		if(options.filter) {
			var _store = new TiddlyWiki();
			config.lastStore = _store;
			for(var i = 0; i < tiddlers.length; i++) {
				var clone = tiddlers[i];
				clone.title = tiddlyspace.getLocalTitle(clone.title, clone.fields['server.workspace']);
				_store.addTiddler(clone);
			}
			tiddlers = _store.filterTiddlers(options.filter);
		}
		if(place) {
			$(place).empty();
			var list = $("<ul />").appendTo(place)[0];
			scanMacro.template(list, tiddlers, options.template);
			if(tiddlers.length === 0) {
				$("<li />").text(options.emptyMessage || locale.noone).appendTo(list);
				$(list).addClass("emptyList");
			}
		}
		if(options.callback) {
			options.callback(tiddlers);
		}
	},
	constructSearchUrl: function(host, options) {
		if(options.url) {
			return options.url;
		}
		var inputs = options.searchValues;
		var tag = options.tag;
		var searchField = options.searchField || "title";
		var searchQuery = [];
		for(var i = 0; i < inputs.length; i++) {
			searchQuery.push('%0:"%1"'.format(searchField, inputs[i]));
		}
		var query = searchQuery.join(" OR ");
		query = tag ? "(%0) AND tag:%1".format(query, tag) : query;
		query = options.query ? "%0;%1;".format(query, options.query) : query;
		query = options.fat ? "%0&fat=1".format(query) : query;
		return '%0/search?q=%1'.format(host, query);
	},
	scan: function(place, options) { // TODO: make use of list macro with url filter
		var locale = followersMacro.locale;
		options.template = options.template ? options.template : "ScanTemplate";
		followMacro.getHosts(function(host, tsHost) {
			$(place).text(followersMacro.locale.pleaseWait);
			options = options ? options: {};
			var url = scanMacro.constructSearchUrl(host, options);
			if(options.cache && scanMacro.scanned[url]) {
				var tiddlers = scanMacro.scanned[url].tiddlers;
				var run = function(tiddlers) {
					scanMacro._scanCallback(place, tiddlers, options);
				};
				if(tiddlers) {
					run(tiddlers);
				} else {
					scanMacro.scanned[url].callbacks.push(run);
				}
			} else {
				var callback = function(tiddlers) {
					scanMacro._scanCallback(place, tiddlers, options);
				};
				if(scanMacro.scanned[url] && scanMacro.scanned[url].callbacks) {
					scanMacro.scanned[url].callbacks.push(callback);
				} else {
					scanMacro.scanned[url] = {
						callbacks: [callback]
					};
				}
				ajaxReq({
					url: url,
					dataType: "json",
					success: function(tiddlers) {
						scanMacro.scanned[url].tiddlers = tiddlers;
						var callbacks = scanMacro.scanned[url].callbacks;
						while(callbacks.length > 0) {
							callbacks.pop()(tiddlers);
						}
					},
					error: function(xhr) {
						$(place).empty();
						$("<span />").addClass("annotation error").text(locale.error.format(xhr.status)).appendTo(place);
					}
				});
			}
		});
	},
	template: function(place, tiddlers, template) { // TODO: make use of list macro.
		for(var i = 0; i < tiddlers.length; i++) {
			var tiddler = tiddlers[i];
			var item = $('<li class="spaceName" />').appendTo(place)[0];
			var spaceName = tiddler.fields["server.space"] || "";
			var templateText = store.getTiddlerText(template).replace(/\$1/mg, spaceName);
			wikify(templateText, item, null, tiddler);
		}
	},
	getOptions: function(paramString, tiddler) {
		var args = paramString.parseParams("name", null, true, false, true)[0];
		var options = { query: false, sort: false, tag: false, template: false, showBags: args.show || false,
			hideBags: args.hide || false, filter: false, spaceField: "bag", searchField: "title", fat: false,
			emptyMessage: false };
		for(var name in args) {
			if(name != "name") {
				if(name == "fat") {
					options[name] = true;
				} else {
					options[name] = args[name][0];
				}
			}
		}
		// if user has set searchField to modifier, then use the modifiers value if available otherwise use searchValues.
		var searchField = options.searchField;
		var searchValues = args[searchField] ? args[searchField] : args.searchValues;
		// if neither of those were used use the first parameter
		var defaultValues = tiddler ? [ tiddler.title ] : [];
		options.searchValues = searchValues ? searchValues : ( args.name ? [args.name[0]] : defaultValues);
		return options;
	},
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		var container = $("<div />").addClass("scanResults resultsArea").appendTo(place)[0];
		var options = scanMacro.getOptions(paramString, tiddler);
		scanMacro.scan(container, options);
	}
};

var followersMacro = config.macros.followers = {
	locale: {
		loggedOut: "Please login to see the list of followers",
		noSupport: "We were unable to retrieve followers as your browser does not support following.",
		pleaseWait: "Please wait while we look this up...",
		error: "Error %0 occurred whilst retrieving data from server",
		noone: "None."
	},
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		var locale = followersMacro.locale;
		var args = paramString.parseParams("name", null, true, false, true)[0];
		var username = args.name ? args.name[0] : false;
		var container = $('<div class="followers" />').text(locale.pleaseWait).
			appendTo(place)[0];
		var followersCallback = function(user) {
			if(user.anon) {
				$("<span />").text(locale.loggedOut).appendTo(container);
			} else {
				var options = scanMacro.getOptions(paramString);
				$.extend(options, {
					url: "/search?q=title:@%0 OR title:%0 tag:%1 _limit:%2".
						format(user.name, followMacro.followTag, LIMIT_FOLLOWING),
					spaceField: "bag",
					template: options.template ? options.template : "FollowersTemplate"
				});
				scanMacro.scan(container, options);
			}
		};
		return !username ? followersCallback({ name: currentSpace }) : followersCallback({ name: username });
	}
};

var followingMacro = config.macros.following = {
	locale: {
		pleaseWait: followersMacro.locale.pleaseWait,
		loggedOut: "Please login to see who you are following",
		noSupport: followersMacro.locale.noSupport,
		error: followersMacro.locale.error,
		noone: followersMacro.locale.noone
	},
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		var locale = followingMacro.locale;
		var args = paramString.parseParams("name", null, true, false, true)[0];
		var fat = args.fat ? true : false;
		var username = args.name ? args.name[0] : false;
		var container = $('<div class="following" />').text(locale.pleaseWait).
			appendTo(place)[0];
		var followingCallback = function(user) {
			if(user.anon) {
				$("<span />").text(locale.loggedOut).appendTo(container);
			} else {
				var options = scanMacro.getOptions(paramString);
				$.extend(options, {
					url: "/search?q=bag:%0_public tag:%1 _limit:%2".format(user.name, followMacro.followTag, LIMIT_FOLLOWING),
					spaceField: "title",
					template: options.template ? options.template : "FollowingTemplate"
				});
				scanMacro.scan(container, options);
			}
		};
		return !username ? followingCallback({ name: currentSpace }) : followingCallback({ name: username });
	}
};

var linkedMacro = config.macros.linkedTiddlers = {
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		var args = paramString.parseParams("anon")[0];
		var title = params[0] || tiddler.fields["server.title"] || tiddler.title;
		var tid = store.getTiddler(title);
		var containingTiddler = story.findContainingTiddler(place).getAttribute('tiddler');
		if(tid) {
			followMacro.makeButton(place, {
				spaceField: "recipe",
				url: "/bags/%0/tiddlers/%1/backlinks".format(tid.fields['server.bag'],
					encodeURIComponent(tid.title)),
				blacklisted: followMacro.getBlacklist(),
				title: title,
				containingTiddler: containingTiddler,
				user: params[1] || false,
				consultFollowRelationship: args.follow ? true : false });
		}
	}
};

if(config.options.chkFollowTiddlersIsLinkedTiddlers) {
	merge(config.macros.followTiddlers, config.macros.linkedTiddlers);
	config.shadowTiddlers.FollowTiddlersHeading = "These are the other tiddlers that link to this tiddler.";
}

})(jQuery);
//}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#GridPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-03-07|
|''Version''|2.0.7|
|''CoreVersion''|2.1.3|
|''Source''|http://www.TiddlyTools.com/#GridPlugin|
!Summary
Display/edit slices, sections and fields in a grid (table) for a 'birds-eye' view of your document
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#GridPluginInfo]]
:see the author's info tiddler for examples
!Details
The {{{<<grid>>}}} macro generates a table, where ''rows are tiddlers, columns are any combination of slices, sections or field names'', and grid cells display individual values (or colored boxes with mouseover 'tooltips' to view values).
*Use tag filtering to select and display specific subsets of tiddlers.
*Grid column headings can be shown/hidden by clicking the {{{>>>}}} symbol in the upper-left corner
*Optionally, clicking on a cell allows you to edit the value in that cell.
**Pressing enter (or moving away from the input field) saves the changed value.
**Pressing escape cancels the changes (after confirming).
{{{
<<grid
	columns:[[name name name...]]
	tags:[[tag tag...]]
	filter:...
	clip:...
	inline wikify edit all
>>
}}}

''All parameters are optional...''
;columns: list
:default: use all slices defined in the document
:display columns using the specified names, which refer to any combination of slices, sections and fields{{x{
;=fieldname
:a custom field
;"""!Section"""
:a tiddler section
;"""slice"""
:column names without {{{=}}} or {{{!}}} prefix are interpreted as tiddler slice references
;+~TiddlerName
:uses a space-separated list of column names stored in another tiddler
;@~TiddlerName
:uses the slices from a given tiddler as column names
;@!~TiddlerName
:uses the sections from a given tiddler
;@=~TiddlerName
:uses the fields from a given tiddler
;~TiddlerSize
:a special read-only 'fake' slice displaying the tiddler's size in bytes
}}}
;tags: list
:default=show all tiddlers<br>display tiddlers that match at least ONE of the specified tags {{x{
;+~TiddlerName
:uses a space-separated list of tags stored in another tiddler
;@~TiddlerName
:uses the tags assigned to the indicated tiddler.
}}}
;filter: filter syntax
:default=none<br>enhanced tiddler selection by tags, using core filter syntax (e.g., {{{"[tag[tag1]][tag[tag2]]"}}}) or MatchTagsPlugin's compound //Boolean tag expressions// (e.g., {{{"tag1 or (tag2 and tag3) and not tag4)"}}})
;clip: number
:default=no clip length limit<br>maximum # of characters to show in a grid cell when using 'inline' keyword.  Text values are truncated with '...'
;inline (keyword)
:displays column values directly in grid cells
:default: use a colored block if a value is defined, with mouseover 'tooltip' to show the actual value
;wikify (keyword)
:parses and formats wiki-syntax contained in values
:default: show values ''as-is'', without wiki formatting
;edit (keyword)
:enables click-to-edit to change values
:default: read-only display of values
;all (keyword)
:displays a row for each tiddler, even tiddlers that have NO non-blank values
:default: show only tiddlers that have at least one defined value.
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
|details|k
|''URL''|http://tiddlywiki.squize.org#JumpToTopMacro|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-24|
|''Version''|1.0|
|''CoreVersion''|~TW2.x|
|''Source''|http://tiddlywiki.squize.org#JumpToTopMacro|
!Summary
Provides a toolbar command and a macro, that create a button for quickly jumping to the top of your TW.
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#JumpToTopMacro]]
:see the author's info tiddler for examples
!Details
Handy to place in the tiddler toolbar — edit the ViewTemplate: {{{<<top>>}}} {{button{^}}}
{{annotation{
''Note'' : You can add an extra toolbar to the bottom of tiddlers as well with buttons of your choice, to allow easy access to the buttons/commands in it.
}}}
<<tag Utilities Plugins>>that provide little helpers for wiki administration, tweaking, e.g. editing fields, mass manipulation of collections, etc...
|details|k
|''URL''|http://www.TiddlyTools.com/#HideTiddlerTags|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-25|
|''Version''|2.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#HideTiddlerTags|
!Summary
hide a tiddler's 'tagged' and 'tagging' displays (if any)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#HideTiddlerTags]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#HideTiddlerTags
<<tag [[Task Management]] Plugins>>for managing actions, tasks, calendars, GTD...
|details|k
|''URL''|http://themes.tiddlywiki.com/bleach.html|
! Summary
A light theme with orange higlights and a MainMenu in the top right corner.
! Preview
[img[[img[http://img.tiddlyspace.com/Bleach][http://themes.tiddlywiki.com/bleach.html]]
Throughout the years, many TiddlyWiki enthusiast have guided new and old through the TiddlyWorld.

[[Click here|Reference]] for a full list of [[all references|Reference]] or have a look at the <<tag References "reference categories">>...
TiddlyWiki is an open source project with most help and support being provided by the the community. There are a number of TiddlyWiki discussion forums, for both entry level questions as well as complex development challenges.

The best way to get help with a specific problem is the ~TiddlyWiki discussion groups — it's worth searching the group archives to see if anyone else has already solved the same problem. Here are the best places to ask questions about ~TiddlyWiki, and to connect with other enthusiasts.
; http://groups.google.com/group/TiddlyWiki
:» the ~TiddlyWiki group for general discussion, bug reports and announcements
; http://groups.google.com/group/TiddlyWikiDev
:» the group for discussions about ~TiddlyWiki development
;[[TiddlySpace Discussion Group|groups.google.com/group/tiddlyspace]]
:» using TiddlySpace, how to and troubleshooting
; [[More discussion groups|http://tiddlywiki.org/#Help]]
:» are listed on TiddlyWiki.org

''~Non-English resources''
; http://groups.google.com/group/TiddlyWikiFR
:» French TiddlyWiki user group
; http://groups.google.com/group/TiddlyWiki-zh
:» TiddlyWiki 華語支援論壇 in Chinese
; http://www.geocities.jp/potto372/tiddlywiki/tiddlywikinote.html
:» a guide to TiddlyWiki in Japanese

''"""Code'n'stuff"""''
;http://github.com/TiddlyWiki/tiddlywiki
:» TiddlyWiki code
;https://github.com/TiddlyWiki/tiddlywiki/issues
:» bug and issue tracker for TiddlyWiki
;http://tiddlywiki.org
:» the community wiki
;http://tiddlywiki.com/dev
:» TiddlyWiki development resources
;http://tiddlywikidev.tiddlyspace.com
:» TiddlyWiki developer space on TiddlySpace
;irc://irc.freenode.net/TiddlyWiki
:» the TiddlyWiki IRC channel

The community welcomes [[contributions|Contribute]].
Apps and adaptations that do not run on TiddlyWiki version <<version>> are listed in the tagging section below.

<<tagging>>
{{{
<<tag [[<Category Name>]] Apps>>for use case foo bar baz...
}}}
Do not forget to tag the new [[app category|Apps]] with <<tag Apps>>!
<<allTags excludeLists>><<listfiltr>>
R0lGODlhAQEBAYIAMTRmrJS23OTu9HSezLTK5Pz+/Mza7PT2/CwAAAAAAQEBAQID/gi63P4wykmrvTjrzbtvQyiOZGmeaKqubOu+cCzPdB0qdq7vfO//wBUuSCwaj8gkaqhsOp/Q6IgprVqvWBg1y+16pduveEzuhcvotFp1Xrvf6DZ8TsfK6/i88q7v+318f4KDMoGEh4hLAImMjUKLjpGSN5CTlomGl5pwmZueaZ2fomKho6ZZpaeqYJWrrqStr7KosbO2rLe5Vam6vTm8vsGFtcLFZsTGyTbAys0lzM7RA9ApAdK31CgGBwTXstknBgUF3N6r4Cbi4+Td5qPoJerr7O6f8CTy8/T1l/cj+fr28YvkTwTAgAIHYkKW4yDChAoHFQzh8CHEiH0mDqho/vEixjoaOXb0+PFNyJEjy5WkcxJlynYr3bR0+TLmmpk0a9osgzOnzp1fevr8CZRWEJFDEaosekVoUpRLmUZx+hQqTKlOqFa1ijUrQxtIt3aM2rWIVrEuyZb9cRZt2qtrjx1161Zt3GVfa4Sl+/bujrZ8c9r1+wJwYMFwCbswfBixYi15aext7HPw42eRZ0ymXDnxZRKMOQ+1fDm06NGeS2eWsfl0UtJ3Tbt+nTr26hitZz+FjVW27t21e9+Gkft3Vd47fRs/Hjz58BfFl29F/lG59OnNqz93Ef26WOr8rHv/nj389hbdx6MFf028+vXl259nkf593fjO3Nu/j1H//n7+A/n3H4DuCDgggfLNdeCA7GEz3wr1LdhYg988qEKEEk6IX4UKZrgghacY6OFhIIoi4ogkbviOhSlgiKJoJfbDojYvvhijJCfWSNmNjeSo444q4jhjOD/+yCMhPhbJ2ZF/JKnkkkEe4uSTUK7YIZVFMsnSkOlgiaWWJnEZj5degqnGlGS6ZiZPYuKTZpprwnLlm19GKVOb/9BJZ5xGAeGinvbxaQWagBon6FR4GlRooYd6NeeibzaaBKGQSiepEZRWaqmdTSVKkaaaXsqWpxuBCqqoPGRqqneo/kLqn6t62CoNqsY63qwx1GrrrZxi+uquu+LKgq7AqidsCsQW/mtsr3L5qayyx4L267PQMovXo9TaGm2y2e4nLLfdemttYdOGmy2q4Jr736XpqrvuuIpg6+6zAhDR7rzvNXovvtexWy6/2sL7iLwALzrrvgVX6aizCUO67b8NRyrwMARHnOXEMyBsMW19/gDrxr9Fe4LGIBPVsQ8flwzkGCSrPI/Iw0LssrigyDwzrzfZfPNyMOeq886z9Uwxw0AbivEePxedYh4t4yu0qxUrTV6TSUsNnERVW+0YkllrbbIgTRf7tL1de63P2GaVbTZJUqqtNdpIhF0p3JO6DTTdSEctNd5NyC1xiHaDzDcUflM5OKJ6l3w4LkQXvfgugTt9NNaJ/hf8uB2Rh3v5yT2kbOrmXBTO4OSOiB4o6QRlHrA0pveLuiWtG12g6g6/vknsp4EeZuWn2m4i7XD6bmXjwOqOB+4IloQ8dkUtzzFTzm8tVfRclUW9RcYvxLuO2TNy/cvCF/M929YDn2/4ykTfvYzbv/sZZu2f/74Jra//e/ybzo+s+TCiHyD/GtJfzPCXO//1B4DJEyAbEMg8BZKLgHyxny7AJcFeJKuCvtAVBoOhqg0Kg1IeFB8DAxJCYziphMnwEQrTx8AVNsNALsyP+WIYDffQkHWZu2GCiNcXBzLOY53x4aDKpkPz6K2I/6sYEhVClSVGRChOPOCVoqgdBVFRinmvuuJKNGINId7Ji4ADoyk0IsaclfF+Z/QEGdPIJjbejlRuJMMa4xgUONKxjnecxBzzyDk+ImKPfhxiIHtkx0EK0pB/LCQiEbdIrjXSkY8EmyIjmTdK+gGQljwCJjOZNk7qYZOeBAIoQwmISZJSlKY8ZSlVOYdRstJVH4ilLGdJy1ra8pa4rEACAAA7
Creator of [[TaskMacroPlugin...]] in his [[LabWiki|http://labwiki.sourceforge.net]]...
» http://labwiki.sourceforge.net
|details|k
|''URL''|http://www.TiddlyTools.com/#LooseLinksPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-08-15|
|''Version''|1.1.2|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#LooseLinksPlugin|
!Summary
case-folded/space-folded wiki words
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#LooseLinksPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#LooseLinksPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#AttachFilePluginFormatters|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-10|
|''Version''|4.0.1|
|''CoreVersion''|2.1.3|
|''Requires''||
|''Type''|plugin|
|''Source''|http://www.TiddlyTools.com/#AttachFilePluginFormatters|
!Summary
run-time library for displaying attachment tiddlers
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#AttachFilePluginFormatters]]
:» see the author's info tiddler for examples
!Details
Runtime processing for //rendering// attachment tiddlers created by [[AttachFilePlugin...]].

Attachment tiddlers are tagged with ''attachment'' and contain binary file content (e.g., jpg, gif, pdf, mp3, etc.) that has been stored directly as base64 text-encoded data or can be loaded from external files stored on a local filesystem or remote web server.

> ''Note:'' after creating new attachment tiddlers, you can remove ''~AttachFilePlugin'', as long as you retain //this// tiddler (so that images can be rendered later on).
!!Formatters
This plugin extends the behavior of the following TiddlyWiki core "wikify()" formatters:
* embedded images: {{{[img[tooltip|image]]}}}
* linked embedded images: {{{[img[tooltip|image][link]]}}}
* external/"pretty" links: {{{[[label|link]]}}}
'Please refer to [[AttachFilePlugin...]] for additional information.'
|details|k
|''URL''|http://tiddlywiki.squize.org#BetterTimelineMacro|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2007-01-03|
|''Version''|0.5 beta|
|''CoreVersion''||
|''Requires''|~TW2.x|
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#BetterTimelineMacro|
!Summary
A replacement for the core timeline macro that offers more features:
*list tiddlers with only specfic tag
*exclude tiddlers with a particular tag
*limit entries to any number of days, for example one week
*specify a start date for the timeline, only tiddlers after that date will be listed.

!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#BetterTimelineMacro]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#BetterTimelineMacro
|details|k
|''URL''|http://visualtw.ouvaton.org/VisualTW.html#EasyEditPlugin|
|''Author''|[[Pascal Collin]]|
|''Released''|2008-01-07|
|''Version''|1.3.3|
|''CoreVersion''|2.1.0|
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Pascal Collin]]|
|''Source''|http://visualtw.ouvaton.org/VisualTW.html#EasyEditPlugin|
!Summary
Lite and extensible Wysiwyg editor for TiddlyWiki.
!Examples
; [[plugin info tiddler|http://visualtw.ouvaton.org/VisualTW.html#EasyEditPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://visualtw.ouvaton.org/VisualTW.html#EasyEditPlugin
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
|details|k
|''URL''|http://www.TiddlyTools.com/#FAQViewerPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-06-14|
|''Version''|1.4.3|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#FAQViewerPlugin|
!Summary
select and display FAQ tiddlers from a droplist, sorted by date
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#FAQViewerPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#FAQViewerPlugin
|details|k
|''URL''|http://tiddlywiki.abego-software.de/#PartTiddlerPlugin|
|''Author''|[[Udo Borowski]]|
|''Released''|2012-04-16|
|''Version''|1.0.10 (2011-05-23)|
|''CoreVersion''|2.1.3|
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Udo Borowski]]|
|''Source''|http://tiddlywiki.abego-software.de/#PartTiddlerPlugin|
!Summary
With the {{{<part aPartName> ... </part>}}} feature you can structure your tiddler text into separate parts. Each part can be referenced as a "normal" tiddler, using the "tiddlerName/partName" syntax.
!Examples
; [[plugin info tiddler|http://tiddlywiki.abego-software.de/#PartTiddlerPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.abego-software.de/#PartTiddlerPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#TrashPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-05-21|
|''Version''|1.2.0|
|''CoreVersion''|2.1.0|
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#TrashPlugin|
!Summary
add 'Trash' tag to tiddlers instead of deleting them
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TrashPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#TrashPlugin
|details|k
|''URL''|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin|
|''Author''|Udo Borowski (Abego)|
|''Version''|1.0.8|
|''Released''|2007-04-12|
|''Requires''|2.0|
|''Source''|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin|
! Summary
Create customizable lists, tables etc. for your selections of tiddlers. Specify the tiddlers to include and their order through a powerful language.
! Examples
; http://scripts.tiddlyspace.com
:» a TiddlyWiki script library on TiddlySpace
; http://tiddlywiki.abego-software.de/#ForEachTiddlerExamples
:» the author's definitive reference for all kinds of use cases
! Preview
[img[http://img.tiddlyspace.com/ForEachTiddlerMacro_1]]
! Details
To give you a lot of flexibility the [[ForEachTiddlerMacro|ForEachTiddlerMacro...]] uses JavaScript in its arguments. Even if you are not that familiar with JavaScript you may find forEachTiddler useful. Just have a look at the various ready-to-use [[ForEachTiddlerExamples|http://tiddlywiki.abego-software.de/#ForEachTiddlerExamples]] and adapt them to your needs.
;The Syntax
:{{{<<forEachTiddler [in tiddlyWikiPath] [where whereCondition] [sortBy sortExpression [ascending or descending]] [script scriptText] [action [actionParameters]]>>}}}
; tiddlyWikiPath
: The filepath to the TiddlyWiki the macro should work on. When missing the current TiddlyWiki is used.
; whereCondition
: (quoted) JavaScript boolean expression. May refer to the build-in variables tiddler and context.
; sortExpression
: (quoted) JavaScript expression returning "comparable" objects (using '<','>','=='. May refer to the build-in variables tiddler and context.
; scriptText
: (quoted) JavaScript text. Typically defines JavaScript functions that are called by the various JavaScript expressions (whereClause, sortClause, action arguments,...)
; action
: The action that should be performed on every selected tiddler, in the given order. By default the actions addToList and write are supported. When no action is specified addToList is used.
; actionParameters
: (action specific) parameters the action may refer while processing the tiddlers (see action descriptions for details). JavaScript in actionParameters may refer to the build-in variables tiddler, count, index and context.
|details|k
|''URL''|http://www.TiddlyTools.com/#PreviewPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-01-09|
|''Version''|1.8.1|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#PreviewPlugin|
!Summary
Provides key-by-key live preview for your input textarea, wikifying formatted content as you type.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#PreviewPluginInfo]]
:see the author's info tiddler for examples
!Details
;''Syntax'' — in tiddler content
:{{{<<preview hide fieldname height>>}}}
;''Syntax'' — in [[EditTemplate]]
:{{{<span macro='preview hide fieldname height'></span>}}}
!!!Parameters
;hide (optional)
:a keyword that causes the preview display to be initially hidden
:typically used in an [[EditTemplate]] definition, in conjunction with the 'previewTiddler' toolbar syntax
;fieldname (optional)
:the name of the tiddler field that is being previewed
:the fieldname specified in the {{{<span class='editor' macro='edit fieldname height'></span>}}} syntax used to define the textarea edit field, and is used to locate and access the source content that is to be previewed
:when omitted, the previewer will automatically associate itself with the last textarea control that precedes it in the rendered tiddler editor display
;height (optional)
:the total height of the previewer display, including the status line and controls, using CSS "em" (line height) measurements
:the default height value is "15em" (approximately 15 lines of standard-sized text)
In addition to the preview macro itself, you can place the following in your [[EditTemplate]] to add a tiddler toolbar command that enables you to toggle the preview display once it has been created:
{{{
<span class='toolbar' macro='toolbar previewTiddler'></span>
}}}
When clicked, this command will show/hide ALL preview controls that are displayed in the current tiddler.  Note that, when desired, you can also embed this toolbar command directly into a tiddler by entering the "{{{<<toolbar previewTiddler>>}}}" syntax in the tiddler source.
|details|k
|''URL''|http://www.TiddlyTools.com/#TinyChat|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-02-02|
|''Version''|2.0.3|
|''CoreVersion''||
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#TinyChat|
!Summary
text/video chat service from tinychat.com
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TinyChat]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#TinyChat
You want to<<tag Contribute contribute>>to this listing? The tenets and content structure are simple...

''(1)'' do __not__ install or stage plugins in this space or modify the structure

''(2)'' adhere to the {{title{[[templates|Template]]}}}

''(3)'' link help references in an entry to the corresponding tiddler at TiddlyWiki.org
> or create a and tag a [[Glossary]] entry linking to TiddlyWiki.org and external sources

!Help keep this repository up to date!
To become an editor, please ask for access in the [[TiddlyWiki Discussion Groups|https://groups.google.com/forum/?fromgroups=#!forum/tiddlywiki]].
!Under The Hood
Want to know what this space is powered by? [[See About...|About @Customize]]

<<tiddler Sidebar>>
<<history forward>><<history>><<history back>>/%<<closeAll>><<permaview>>%/[[+|Template]]
|details|k
|''URL''|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-11-30|
|''Version''|2.9.7|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SinglePageModePlugin|
!Summary
Show tiddlers one at a time with automatic permalink, or always open tiddlers at top/bottom of page.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SinglePageModePluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SinglePageModePluginInfo
|details|k
|''URL''|http://www.TiddlyTools.com/#WikifyPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-03-07|
|''Version''|1.2.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#WikifyPlugin|
!Summary
insert sections, slices, fields, literals, or computed values into a wiki-format output
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#WikifyPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#WikifyPluginInfo
|details|k
|''URL''|http://labwiki.sourceforge.net/#TaskMacroPlugin|
|''Author''|[[Luke Blanshard]]|
|''Version''|1.1.0|
|''Released''|2006-05-13|
|''Requires''|2.0.10|
|''Source''|http://labwiki.sourceforge.net/#TaskMacroPlugin|
! Summary
A set of macros to help you keep track of time estimates for tasks.
@@color:red;Not fully supported by ~TiddlyWiki <<version>>@@.
! Examples
; [[Author's Tutorial|http://labwiki.sourceforge.net/#TaskMacroTutorial]]
:» an exhaustive tutorial at the author's site
! Preview
[img[http://img.tiddlyspace.com/TaskMacroPlugin_1][http://labwiki.sourceforge.net/#TaskMacroTutorial]]
! Details
This plugin defines the following macros...
;task
:Displays a task description and makes it easy to estimate and track the time spent on the task.
;taskadder
:Displays text entry field to simplify the adding of tasks.
;tasksum
:Displays a summary of tasks sandwiched between two calls to this macro.
;extension
:A simple little macro that displays information about a TiddlyWiki plugin, and that will hopefully someday migrate to the TW core in some form.
|details|k
|''URL''|http://www.TiddlyTools.com/#ToggleScrollingSidebars|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-30|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ToggleScrollingSidebars|
!Summary
enable/disable 'fixed' positioning of left and right sidebars
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ToggleScrollingSidebars]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ToggleScrollingSidebars
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
!Summary
The google appengine powered serverside by [[Poul Staugaard]]...
» http://giewiki.com
|details|k
|''URL''|http://www.TiddlyTools.com/#TidIDEPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-23|
|''Version''|1.8.5|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#TidIDEPlugin|
!Summary
TiddlyWiki Integrated Development Environment - tools for authors and plugin writers
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TidIDEPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#TidIDEPluginInfo
|details|k
|''URL''|http://www.TiddlyTools.com/#HTMLFormattingPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-05-07|
|''Version''|2.4.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#HTMLFormattingPlugin|
!Summary
embed wiki syntax formatting inside of HTML content
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#HTMLFormattingPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#HTMLFormattingPluginInfo
|details|k
|''URL''|http://www.TiddlyTools.com/#UnsavedChangesPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-12-29|
|''Version''|3.3.6|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#UnsavedChangesPlugin|
!Summary
show droplist of tiddlers that have changed since the last time the document was saved
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#UnsavedChangesPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#UnsavedChangesPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#SwitchThemePluginPatch|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-05-09|
|''Version''|5.2.1|
|''CoreVersion''|2.3|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SwitchThemePluginPatch|
!Summary
Patch core switchTheme() function for backward-compatibility with ~TW2.3.0 and earlier
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SwitchThemePluginPatch]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SwitchThemePluginPatch
These entries still lack a preview...

{{noTitle{<<tagging>>}}}
/***
https://raw.github.com/tiddlyweb/chrjs/master/main.js
***/
//{{{
// TiddlyWeb adaptor
// v0.14.3

/*jslint vars: true, unparam: true, nomen: true, white: true */
/*global jQuery */

var tiddlyweb = (function($) {

"use strict";

var tw = {
	routes: {
		// host is the TiddlyWeb instance's URI (including server_prefix)
		// placeholders "_type" & "name" refer to the respective bag/recipe
		root     : "{host}/",
		bags     : "{host}/bags",
		bag      : "{host}/bags/{name}",
		recipes  : "{host}/recipes",
		recipe   : "{host}/recipes/{name}",
		tiddlers : "{host}/{_type}s/{name}/tiddlers",
		tiddler  : "{host}/{_type}s/{name}/tiddlers/{title}",
		revisions: "{host}/{_type}s/{name}/tiddlers/{title}/revisions",
		revision : "{host}/{_type}s/{name}/tiddlers/{title}/revisions/{revision}",
		search   : "{host}/search?q={query}"
	}
};

var convertTimestamp, supplant;

// host (optional) is the URI of the originating TiddlyWeb instance
tw.Resource = function(type, host) {
	if(arguments.length) { // initialization
		this._type = type;
		if(host !== false) {
			this.host = host !== undefined ? host.replace(/\/$/, "") : null;
		}
	}
};
$.extend(tw.Resource.prototype, {
	// retrieves resource from server
	// callback is passed resource, status, XHR (cf. jQuery.ajax success)
	// errback is passed XHR, error, exception, resource (cf. jQuery.ajax error)
	// filters is an optional filter string (e.g. "select=tag:foo;limit=5")
	get: function(callback, errback, filters) {
		var uri = this.route();
		if(filters) {
			var separator = uri.indexOf("?") === -1 ? "?" : ";";
			uri += separator + filters;
		}
		var self = this;
		return $.ajax({
			url: uri,
			type: "GET",
			dataType: "json",
			success: function(data, status, xhr) {
				var resource = self.parse(data);
				resource.etag = xhr.getResponseHeader("Etag");
				callback(resource, status, xhr);
			},
			error: function(xhr, error, exc) {
				errback(xhr, error, exc, self);
			}
		});
	},
	// sends resource to server
	// callback is passed data, status, XHR (cf. jQuery.ajax success)
	// errback is passed XHR, error, exception, resource (cf. jQuery.ajax error)
	put: function(callback, errback) {
		var self = this;
		var options = {
			url: this.route(),
			type: "PUT",
			contentType: "application/json",
			data: JSON.stringify(this.baseData()),
			success: function(data, status, xhr) {
				callback(self, status, xhr);
			},
			error: function(xhr, error, exc) {
				errback(xhr, error, exc, self);
			}
		};
		if(this.ajaxSetup) {
			this.ajaxSetup(options);
		}
		return $.ajax(options);
	},
	// deletes resource on server
	// callback is passed data, status, XHR (cf. jQuery.ajax success)
	// errback is passed XHR, error, exception, resource (cf. jQuery.ajax error)
	"delete": function(callback, errback) {
		var self = this;
		var options = {
			url: this.route(),
			type: "DELETE",
			success: function(data, status, xhr) {
				callback(self, status, xhr);
			},
			error: function(xhr, error, exc) {
				errback(xhr, error, exc, self);
			}
		};
		if(this.ajaxSetup) {
			this.ajaxSetup(options);
		}
		return $.ajax(options);
	},
	// returns an object carrying only the essential information of the resource
	baseData: function() {
		var data = {},
			self = this;
		$.each(this.data, function(i, item) {
			var value = self[item];
			if(value !== undefined) {
				data[item] = value;
			}
		});
		return data;
	},
	// returns corresponding instance from a raw object (if applicable)
	parse: function(data) {
		return data;
	},
	// list of accepted keys in serialization
	data: [],
	// returns resource's URI
	route: function() {
		return supplant(tw.routes[this._type], this);
	}
});

var Container = function(type, name, host) {
	if(arguments.length) { // initialization
		tw.Resource.apply(this, [type, host]);
		this.name = name;
		this.desc = "";
		this.policy = new tw.Policy({});
	}
};
Container.prototype = new tw.Resource();
$.extend(Container.prototype, {
	tiddlers: function() {
		return new tw.TiddlerCollection(this);
	},
	parse: function(data) {
		var type = tw._capitalize(this._type),
			container = new tw[type](this.name, this.host);
		data.policy = new tw.Policy(data.policy);
		return $.extend(container, data);
	},
	data: ["desc", "policy"]
});

// attribs is an object whose members are merged into the instance (e.g. query)
tw.Collection = function(type, host, attribs) {
	if(arguments.length) { // initialization
		tw.Resource.apply(this, [type, host]);
		$.extend(this, attribs);
	}
};
tw.Collection.prototype = new tw.Resource();

tw.TiddlerCollection = function(container, tiddler) {
	if(arguments.length) { // initialization
		tw.Collection.apply(this, [tiddler ? "revisions" : "tiddlers"]);
		this.container = container || null;
		this.tiddler = tiddler || null;
	}
};
tw.TiddlerCollection.prototype = new tw.Collection();
$.extend(tw.TiddlerCollection.prototype, {
	parse: function(data) {
		var container = this.container;
		return $.map(data, function(item, i) {
			var tiddler = new tw.Tiddler(item.title, container),
				bag = item.bag;
			tiddler = tw.Tiddler.prototype.parse.apply(tiddler, [item]);
			if(!tiddler.bag && bag) { // XXX: bag always present!?
				tiddler.bag = new tw.Bag(bag, container.host);
			}
			if(!tiddler.recipe && item.recipe) {
				tiddler.recipe = new tw.Recipe(item.recipe, container.host);
			}
			delete item.recipe;
			return $.extend(tiddler, item);
		});
	},
	route: function() {
		var params = this.container;
		if(this.tiddler) {
			var container = this.tiddler.bag || this.tiddler.recipe;
			params = {
				_type: container._type,
				host: container.host,
				name: container.name,
				title: this.tiddler.title
			};
		}
		return supplant(tw.routes[this._type], params);
	}
});

tw.Search = function(query, host) {
	tw.Collection.apply(this, ["search", host]);
	this.query = query;
};
tw.Search.prototype = new tw.Collection();
$.extend(tw.Search.prototype, {
	parse: function(data) {
		this.container = { // XXX: hacky
			_type: "bag",
			host: this.host
		};
		var tiddlers = tw.TiddlerCollection.prototype.parse.apply(this, arguments);
		delete this.container;
		return tiddlers;
	}
});

// title is the name of the tiddler
// container (optional) is an instance of either Bag or Recipe
// optionally accepts a single object representing tiddler attributes
tw.Tiddler = function(title, container) {
	tw.Resource.apply(this, ["tiddler", false]);
	this.title = title;
	this.bag = container && container._type === "bag" ? container : null;
	this.recipe = container && container._type === "recipe" ? container : null;
	var self = this;
	$.each(this.data, function(i, item) {
		self[item] = undefined; // exposes list of standard attributes for inspectability
	});
	if(title && title.title) { // title is an object of tiddler attributes
		$.extend(this, title);
	}
};
tw.Tiddler.prototype = new tw.Resource();
$.extend(tw.Tiddler.prototype, {
	revisions: function() {
		return new tw.TiddlerCollection(this.bag || this.recipe, this);
	},
	route: function() {
		var container = this.bag || this.recipe;
		var params = $.extend({}, this, {
			host: container ? container.host : null,
			_type: this.bag ? "bag" : (this.recipe ? "recipe" : null),
			name: container ? container.name : null
		});
		return supplant(tw.routes[this._type], params);
	},
	parse: function(data) {
		var tiddler = new tw.Tiddler(this.title),
			container = this.bag || this.recipe;
		if(data.bag) {
			tiddler.bag = new tw.Bag(data.bag, container.host);
			delete data.bag;
		}
		delete data.recipe;
		tiddler.created = data.created ? convertTimestamp(data.created) : new Date();
		delete data.created;
		tiddler.modified = data.modified ? convertTimestamp(data.modified) : new Date();
		delete data.modified;
		if(this.recipe) {
			tiddler.recipe = this.recipe;
		}
		return $.extend(tiddler, data);
	},
	data: ["created", "creator", "modifier", "modified", "tags", "type", "text",
			"fields"],
	ajaxSetup: function(options) {
		var self = this;
		if(this.etag && (options.type === "PUT" || options.type === "DELETE")) {
			options.beforeSend = function(xhr) {
				xhr.setRequestHeader("If-Match", self.etag);
			};
		}
		if(options.type === "PUT") {
			var callback = options.success;
			options.success = function(data, status, xhr) {
				var loc = xhr.getResponseHeader("Location"),
					etag = xhr.getResponseHeader("Etag");
				if(loc && etag) {
					self.etag = etag;
					if(!self.bag) {
						var bag = loc.split("/bags/").pop().split("/")[0];
						self.bag = new tw.Bag(bag, self.recipe.host);
					}
					callback(self, status, xhr);
				} else { // IE
					self.get(callback, options.error);
				}
			};
		}
	}
});

tw.Revision = function(id, tiddler) {
	var container = tiddler.bag || tiddler.recipe;
	tw.Tiddler.apply(this, [tiddler.title, container]);
	this._type = "revision";
	this.revision = id;
};
tw.Revision.prototype = new tw.Tiddler();
$.extend(tw.Revision.prototype, {
	revisions: false,
	data: false,
	put: false,
	"delete": false
});

tw.Bag = function(name, host) {
	Container.apply(this, ["bag", name, host]);
};
tw.Bag.prototype = new Container();

tw.Recipe = function(name, host) {
	Container.apply(this, ["recipe", name, host]);
	this.recipe = [];
};
tw.Recipe.prototype = new Container();
$.extend(tw.Recipe.prototype, {
	data: ["recipe"].concat(Container.prototype.data)
});

tw.Policy = function(constraints) { // TODO: validation?
	var self = this;
	$.each(this.constraints, function(i, item) {
		self[item] = constraints[item];
	});
};
tw.Policy.prototype.constraints = ["read", "write", "create", "delete",
	"manage", "accept", "owner"];

/*
 * utilities
 */

tw._capitalize = function(str) {
	return str.charAt(0).toUpperCase() + str.slice(1);
};

// convert YYYYMMDDhhmmss timestamp to Date instance
convertTimestamp = function(t) {
	if (t.match(/^\d{12,17}$/)) {
		return new Date(Date.UTC(
			parseInt(t.substr(0, 4), 10),
			parseInt(t.substr(4, 2), 10) - 1,
			parseInt(t.substr(6, 2), 10),
			parseInt(t.substr(8, 2), 10),
			parseInt(t.substr(10, 2), 10),
			parseInt(t.substr(12, 2) || "0", 10),
			parseInt(t.substr(14, 3) || "0", 10)
		));
	} else {
		return new Date(Date.parse(t));
	}
};

// adapted from Crockford (http://javascript.crockford.com/remedial.html)
supplant = function(str, obj) {
	return str.replace(/{([^{}]*)}/g, function (a, b) {
		var r = obj[b];
		r = typeof r === "string" || typeof r === "number" ? r : a;
		return $.inArray(b, ["host", "query"]) !== -1 ? r : encodeURIComponent(r); // XXX: special-casing
	});
};

return tw;

}(jQuery));
//}}}
Måns has been a most active member and contributor in the TiddlyWiki community for a long time, driving progress and testing ever new possibilities...
* http://xn--mns-ula.dk {{hide{Mans Martensson}}}
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AP8zZgAAAGYA//8zAADMMwD/mTMAAGYzAP8zMwAAADMAzP8AAADMAADMmQAAAGYAAMwzAAAAAADuzAAA3QAAALvMAACqAAAAiMwAAHcAAABVmQAARAAAACKZAAARAADuAJkA3QAAALsAmQCqAAAAiACZAHcAAABVAJkARAAAACIAZgARAADuAABm3QAAALsAAGaqAAAAiAAAZncAAABVAABmRAAAACIAAGYRAAAA7u7uM93d3QC7u7szqqqqAIiIiDN3d3cAVVVVM0RERAAiIiIzERERAAAAADMBAQEBAQEBAQEBpXl5eXl5eXl5eXmlAQEBAQEBAQEBAQEBAQEBAQEBgHl5eXl5eXl5eXl5eXl5gAEBAQEBAQEBAQEBAQEB/Xp5eXlVT04qKioqTk9VeXl5ev0BAQEBAQEBAQEBAaV5eXlPKioqKioqKioqKioqT3l5eaUBAQEBAQEBAQGAeXlVTioqKioqKioqKioqKioqTlV5eYABAQEBAQEBgHl5VSoqKioqKioqKioqKioqKioqKlV5eYABAQEBAaV5eVUqKioqKioqKioqKioqKioqKioqKlV5eaUBAQEBeXlVKioqKioqKioqKioqKioqKioqKioqKlV5eQEBAXl5eU4qKioqKioqKjExMTExMSoqKioqKioqTnl5eQEBeXlPKioqKioqKjEyMjIyMjIyMjEqKioqKioqT3l5AXp5eSoqKioqKioxMjIxBwcHBzEyMjEqKioqKioqeXl6eXlVKioqKioqMTIxBwcHBwcHBwcxMjEqKioqKipVeXl5eU8qKioqKioyMgcHBwcHBwcHBwcyMioqKioqKk95eXl5TioqKioqMTIxBwcHBwcHBwcHBzEyMSoqKioqTnl5eXkqKioqKioxMgcHBwcHBwcHBwcHBzIxKioqKioqeXl5eSoqKioqKjEyBwcHBwcHBwcHBwcHMjEqKioqKip5eXl5KioqKioqMTIHBwcHBwcHBwcHBwcyMSoqKioqKnl5eXkqKioqKioxMgcHBwcHBwcHBwcHBzIxKioqKioqeXl5eU4qKioqKjEyMQcHBwcHBwcHBwcxMjEqKioqKk55eXl5TyoqKioqKjIyBwcHBwcHBwcHBzIyKioqKioqT3l5eXlVKioqKioqMTIxBwcHBwcHBwcxMjEqKioqKipVeXl6eXkqKioqKioqMTIyMQcHBwcxMjIxKioqKioqKnl5egF5eU8qKioqKioqMTIyMjIyMjIyMSoqKioqKipPeXkBAXl5eU4qKioqKioqKjExMTExMSoqKioqKioqTnl5eQEBAXl5VSoqKioqKioqKioqKioqKioqKioqKipVeXkBAQEB+nl5VSoqKioqKioqKioqKioqKioqKioqVXl5+gEBAQEBenl5VSoqKioqKioqKioqKioqKioqKlV5eXoBAQEBAQEBeXl5VU4qKioqKioqKioqKioqKk5VeXl5AQEBAQEBAQEBenl5eU8qKioqKioqKioqKipPeXl5egEBAQEBAQEBAQEB+nl5eXlVT04qKioqTk9VeXl5efoBAQEBAQEBAQEBAQEBAXl5eXl5eXl5eXl5eXl5eXkBAQEBAQEBAQEBAQEBAQEBAQF6eXl5eXl5eXl5eXoBAQEBAQEBAQEB/+AH//+AAf/+AAB//AAAP/gAAB/wAAAP4AAAB8AAAAPAAAADgAAAAYAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAYAAAAHAAAADwAAAA+AAAAfwAAAP+AAAH/wAAD/+AAB//4AB///gB/8oAAAAIAAAAEAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAACAAAAAwAAAAMAAAADAAAABG1bSA61m3JXuqB4mbuhd8m9o3jqvaF4+b2hePm9o3jqu6F3ybqgeJm1m3JXbVtIDgAAAAQAAAADAAAAAwAAAAMAAAACAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAUAAAAGAAAACI98Wye0nXWavKF4876kev++pHr/vqR6/76kev++pHr/vqR6/76kev++pHr/vqR6/76kev+8oXjztJ11mo98WycAAAAIAAAABgAAAAUAAAADAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAQAAAAHAAAAChwcHBKulnGJvaN5+L6kev++pHr/y7GJ/9/Fnv/s1K7/9t25//rivv/64r7/9t25/+zUrv/fxZ7/y7GJ/76kev++pHr/vaN5+K6WcYkcHBwSAAAACgAAAAcAAAAEAAAAAgAAAAEAAAAAAAAAAAAAAAEAAAADAAAABwAAAAtuYkUst552z76kev++pHr+1LuS//Latf/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD/8tq1/9S7kv++pHr+vqR6/7eeds9uYkUsAAAACwAAAAcAAAADAAAAAQAAAAAAAAABAAAAAgAAAAQAAAAIi3hbNbqgd+a+pHr/xayD/+3Vr//85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA/+3Vr//FrIP/vqR6/7qgd+aJdVg0AAAACAAAAAQAAAACAAAAAQAAAAEAAAACAAAABIl8WSW8oXjlvqR6/8yyiv/54Lz//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//ngvP/Msor/vqR6/7yheOWJfFklAAAABAAAAAIAAAABAAAAAAAAAAFfXz8Iu6F4zL6kev/Msor/+uK+//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//rivv/Msor/vqR6/7uheMxfXz8IAAAAAQAAAAAAAAAAAAAAAbqid4K+pHr/xayD//ngvP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//fgvP/FrIP/vqR6/7qid4IAAAABAAAAAAAAAAC3l28gvaN5+L6kev7t1a///OXA//zlwP/85cD//OXA//zlwP/85cD//OXA/+/Twv/Qq8f/u5HK/7OGzP+zhsz/u5HK/9Crx//v08L//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA/+3Vr/++pHr+vaN5+LeXbyAAAAAAAAAAALuheJa+pHr/1LuS//zlwP/85cD//OXA//zlwP/85cD//OXA//riwP/Pq8f/r4HM/6+Bzf+vgc3/r4HN/6+Bzf+vgc3/r4HN/6+BzP/Pq8f/+uLA//zlwP/85cD//OXA//zlwP/85cD//OXA/9S5kv++pHr/u6F4lgAAAACii3MLvKF4876kev/y2rX//OXA//zlwP/85cD//OXA//zlwP/64sD/w5vJ/6+Bzf+vg83/w5vc/9W06v/dwPD/3cDw/9W06v/Dm9z/r4PN/6+Bzf/Dm8n/+uLA//zlwP/85cD//OXA//zlwP/85cD/8tq1/76kev+8oXjzootzC72feFW+pHr/y7GJ//zlwP/85cD//OXA//zlwP/85cD//OXA/8+rx/+vgc3/tIfQ/9a16//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//Wtev/tIfQ/6+Bzf/Pq8f//OXA//zlwP/85cD//OXA//zlwP/85cD/y7GJ/76kev+9n3hVvaF4mL6kev/fxZ7//OXA//zlwP/85cD//OXA//zlwP/v08L/r4HM/6+Dzf/Wtev/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//Wtev/r4PN/6+BzP/v08L//OXA//zlwP/85cD//OXA//zlwP/fxZ7/vqR6/72heJi8oXfIvqR6/+zUrv/85cD//OXA//zlwP/85cD//OXA/9Crx/+vgc3/w5vc/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//Dm9z/r4HN/9Crx//85cD//OXA//zlwP/85cD//OXA/+zUrv++pHr/vKF3yL2jeOq+pHr/9t25//zlwP/85cD//OXA//zlwP/85cD/u5HK/6+Bzf/VtOr/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/9W06v+vgc3/u5HK//zlwP/85cD//OXA//zlwP/85cD/9t25/76kev+9o3jqvaF4+b6kev/64r7//OXA//zlwP/85cD//OXA//zlwP+zhsz/r4HN/93A8P/hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/3cDw/6+Bzf+zhsz//OXA//zlwP/85cD//OXA//zlwP/64r7/vqR6/72hePm9oXj5vqR6//rivv/85cD//OXA//zlwP/85cD//OXA/7OGzP+vgc3/3cDw/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//dwPD/r4HN/7OGzP/85cD//OXA//zlwP/85cD//OXA//rivv++pHr/vaF4+b2jeOq+pHr/9t25//zlwP/85cD//OXA//zlwP/85cD/u5HK/6+Bzf/VtOr/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/9W06v+vgc3/u5HK//zlwP/85cD//OXA//zlwP/85cD/9t25/76kev+9o3jqvKF3yL6kev/s1K7//OXA//zlwP/85cD//OXA//zlwP/Qq8f/r4HN/8Ob3P/hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/w5vc/6+Bzf/Qq8f//OXA//zlwP/85cD//OXA//zlwP/s1K7/vqR6/7yhd8i9oXiYvqR6/9/Fnv/85cD//OXA//zlwP/85cD//OXA/+/Twv+vgcz/r4PN/9a16//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//hw/P/4cPz/9a16/+vg83/r4HM/+/Twv/85cD//OXA//zlwP/85cD//OXA/9/Fnv++pHr/vaF4mL2feFW+pHr/y7GJ//zlwP/85cD//OXA//zlwP/85cD//OXA/8+rx/+vgc3/tIfQ/9a16//hw/P/4cPz/+HD8//hw/P/4cPz/+HD8//Wtev/tIfQ/6+Bzf/Pq8f//OXA//zlwP/85cD//OXA//zlwP/85cD/y7GJ/76kev+9n3hVootzC7yhePO+pHr/8tq1//zlwP/85cD//OXA//zlwP/85cD/+uLA/8Obyf+vgc3/r4PN/8Ob3P/VtOr/3cDw/93A8P/VtOr/w5vc/6+Dzf+vgc3/w5vJ//riwP/85cD//OXA//zlwP/85cD//OXA//Latf++pHr/vKF486KLcwsAAAAAu6N3l76kev/Uu5L//OXA//zlwP/85cD//OXA//zlwP/85cD/+uLA/8+rx/+vgcz/r4HN/6+Bzf+vgc3/r4HN/6+Bzf+vgc3/r4HM/8+rx//64sD//OXA//zlwP/85cD//OXA//zlwP/85cD/1LmS/76kev+7oXiWAAAAAAAAAAC3l28gvaN5+L6kev7t1a///OXA//zlwP/85cD//OXA//zlwP/85cD//OXA/+/Twv/Qq8f/u5HK/7OGzP+zhsz/u5HK/9Crx//v08L//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA/+3Vr/++pHr+vaN5+LeXbyAAAAAAAAAAAAAAAAC6oneCvqR6/8Wsg//54Lz//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/34Lz/xayD/76kev+6oneCAAAAAAAAAAAAAAAAAAAAAH9/VQa8oHjLvqR6/8yyiv/64r7//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD/+uK+/8yyiv++pHr/vKB4y39/VQYAAAAAAAAAAAAAAAAAAAAAAAAAALKhbh67o3nkvqR6/8yyiv/54Lz//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//ngvP/Msor/vqR6/7ujeeSyoW4eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALqbdim7o3nkvqR6/8Wsg//t1a///OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/t1a//xayD/76kev+7o3nkupt2KQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALKhbh68oHjLvqR6/76kev7Uu5L/8tq1//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/85cD//OXA//zlwP/y2rX/1LmS/76kev6+pHr/vKB4y7Khbh4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH9/VQa6oneCvaN5+L6kev++pHr/y7GJ/9/Fnv/s1K7/9t25//rivv/64r7/9t25/+zUrv/fxZ7/y7GJ/76kev++pHr/vaN5+Lqid4J/f1UGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3l28gu6F4lryhePO+pHr/vqR6/76kev++pHr/vqR6/76kev++pHr/vqR6/76kev++pHr/vKF487uheJa3l28gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAootzC72feFW9oXiYvKF3yL2jeOq9oXj5vaF4+b2jeOq8oXfIvaF4mL2feFWii3MLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/gB///gAH//gAAf/wAAD/4AAAf8AAAD+AAAAfAAAADwAAAA4AAAAGAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAGAAAABwAAAA8AAAAPgAAAH8AAAD/gAAB/8AAA//gAAf/+AAf//4Af/
/***
|''Name''|BinaryUploadPlugin|
|''Version''|0.3.16|
|''Author''|Ben Gillies and Jon Robson|
|''Type''|plugin|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/BinaryUploadPlugin.js|
|''Description''|Upload a binary file to TiddlyWeb|
|''CoreVersion''|2.6.1|
|''Requires''|TiddlySpaceConfig TiddlyWebConfig|
!Usage
{{{
<<binaryUpload bag:<name> edit:tags edit:title tags:<default tags> title:<title> >>
}}}
* {{{bag:<name>}}}: optional; if left out, the file will be saved to the current workspace
* {{{edit:tags}}}: specifies that you want to tag the file being uploaded
* {{{edit:title}}}: specifies that you want to set the title to something other than the filename
* {{{tags:<default tags>}}}: specifies a default set of tags to apply to the file (requires {{{edit:tags}}} to be set)
* {{{title:<title>}}}: predefines the title of the binary tiddler
!Requires
TiddlyWeb
tiddlywebplugins.form
!Code
***/
//{{{
(function($) {

var tiddlyspace = config.extensions.tiddlyspace;

var macro = config.macros.binaryUpload = {
	locale: {
		titleDefaultValue: "Please enter a title...",
		tagsDefaultValue: "Please enter some tags...",
		titlePrefix: "title: ",
		tagsPrefix: "tags: ",
		loadSuccess: 'Tiddler %0 successfully uploaded',
		loadError: "An error occurred when uploading the tiddler %0",
		uploadInProgress: "Please wait while the file is uploaded...",
		membersOnly: "Only members can upload."
	},
	renderInputFields: function(container, options) {
		var locale = macro.locale;
		var editableFields = options.edit;
		var includeFields = {
			tags:  editableFields && editableFields.contains("tags") ? true : false,
			title: editableFields && editableFields.contains("title") ? true : false
		};
		var fields = ["title", "tags"];
		for(var i = 0; i < fields.length; i++) {
			var fieldName = fields[i];
			var userDefault = options[fieldName];
			var defaultValue = userDefault ? userDefault[0] : false;
			if(includeFields[fieldName] || defaultValue) {
				var localeDefault = locale["%0DefaultValue".format(fieldName)];
				var className = defaultValue ? "userInput" : "userInput notEdited";
				var inputEl;
				var val = defaultValue || localeDefault || "";
				var iContainer = $("<div />").addClass("binaryUpload%0".format(fieldName)).
					appendTo(container);
				if(defaultValue && !includeFields[fieldName]) {
					var label = locale["%0Prefix".format(fieldName)];
					$("<span />").text(label).appendTo(iContainer);
					$("<span />").addClass("disabledInput").text(val).appendTo(iContainer);
					inputEl = $("<input />").attr("type", "hidden");
				} else {
					inputEl = $("<input />").attr("type", "text");
				}
				inputEl.attr("name", fieldName).
					addClass("%0Edit".format(fieldName)).
					val(val).addClass(className).appendTo(iContainer);
			}
		}
	},
	getTiddlerName: function(fileName) {
		var fStart = fileName.lastIndexOf("\\");
		var fStart2 = fileName.lastIndexOf("/");
		fStart = fStart < fStart2 ? fStart2 : fStart;
		fileName = fileName.substr(fStart+1);
		return fileName;
	},
	errorHandler: function(fileName) {
		displayMessage("upload of file %0 failed".format(fileName));
	},
	uploadFile: function(place, baseURL, workspace, options) {
		var pleaseWait = $(".uploadProgress", place);
		var iframeName = options.target;
		var form = $("form", place);
		var existingVal = $("input[name=title]", form).val();
		var fileName = existingVal || $('input:file', form).val();
		if(!fileName) {
			return false; // the user hasn't selected a file yet
		}
		fileName = macro.getTiddlerName(fileName);
		$("input[name=title]", place).val(fileName);
		// we need to go somewhere afterwards to ensure the onload event triggers
		var redirectTo = "/%0/tiddlers.txt?select=title:%1".
			format(workspace, fileName);
		var token = tiddlyspace ? tiddlyspace.getCSRFToken() : "";
		var action = "%0?csrf_token=%1&redirect=%2"
			.format(baseURL, token, redirectTo);
		form[0].action = action; // dont use jquery to work with ie
		form[0].target = iframeName;
		// do not refactor following line... won't work in IE6 otherwise
		$(place).append($('<iframe name="' + iframeName + '" id="' + iframeName + '"/>').css('display','none'));
		macro.iFrameLoader(iframeName, function() {
			var content = document.getElementById(iframeName).contentWindow.document.documentElement;
			if($(content).text().indexOf(fileName) > -1) {
				options.callback(place, fileName, workspace, baseURL);
			} else {
				macro.errorHandler(fileName);
			}
			form.show(1000);
			pleaseWait.hide(1000);
		});
		form.hide(1000);
		pleaseWait.show(1000);
		return true;
	},
	createUploadForm: function(place, options) {
		var locale = macro.locale;
		if(readOnly) {
			$('<div class="annotation" />').text(locale.membersOnly).
				appendTo(place);
			return;
		}
		var bag = options.bag;
		options.callback = options.callback ? options.callback :
			function(place, fileName, workspace, baseurl) {
				macro.displayFile(place, fileName, workspace);
				displayMessage(locale.loadSuccess.format(fileName));
				$("input[type=text]", place).val("");
			};
		var defaults = config.defaultCustomFields;
		place = $("<div />").addClass("container").appendTo(place)[0];
		var workspace = bag ? "bags/%0".format(bag) : config.defaultCustomFields["server.workspace"];
		var baseURL = defaults["server.host"];
		baseURL += (baseURL[baseURL.length - 1] !== "/") ? "/" : "";
		baseURL = "%0%1/tiddlers".format(baseURL, workspace);
		//create the upload form, complete with invisible iframe
		var iframeName = "binaryUploadiframe%0".format(Math.random());
		// do not refactor following line of code to work in IE6.
		var form = $('<form action="%0" method="POST" enctype="multipart/form-data" />'.
					format(baseURL)).addClass("binaryUploadForm").
			appendTo(place)[0];
		macro.renderInputFields(form, options);
		$(form).
			append('<div class="binaryUploadFile"><input type="file" name="file" /></div>').
			append('<div class="binaryUploadSubmit"><input type="submit" value="Upload" disabled /></div>').
			submit(function(ev) {
				this.target = iframeName;
				options.target = iframeName;
				macro.uploadFile(place, baseURL, workspace, options);
			})
			.find('[type="file"]').bind('change', function() {
				$(form).find('[type="submit"]').prop('disabled', false);
			}).end();
		$('<div />').addClass("uploadProgress").text(locale.uploadInProgress).hide().appendTo(place);
		$("input[name=file]", place).change(function(ev) {
			var target = $(ev.target);
			var fileName = target.val();
			var title = $("input[type=text][name=title]", place);
			if(!title.val()) {
				title.val(fileName);
			}
		});
	},
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		params = paramString.parseParams(null, null, true);
		macro.createUploadForm(place, params[0]);
	},
	iFrameLoader: function(iframeName, callback) {
		var iframe = document.getElementById(iframeName); //jQuery doesn't seem to want to do this!?
		var locale = macro.locale;
		$(".userInput").addClass("notEdited"); // reset editing
		var finishedLoading = function() {
			callback();
		};
		var iFrameLoadHandler = function() {
			finishedLoading.apply();
			return;
		};

		iframe.onload = iFrameLoadHandler;
		//IE
		completeReadyStateChanges = 0;
		iframe.onreadystatechange = function() {
			if (++(completeReadyStateChanges) == 3) {
				iFrameLoadHandler();
			}
		};
	},
	displayFile: function(place, title, workspace) {
		var adaptor = store.getTiddlers()[0].getAdaptor();
		var context = {
			workspace: workspace,
			host: config.defaultCustomFields['server.host']
		};
		adaptor.getTiddler(title, context, null, function(context) {
			if(context.status) {
				store.addTiddler(context.tiddler);
				story.displayTiddler(place, title);
				var image = config.macros.image;
				if(image && image.refreshImage) {
					image.refreshImage("/%0/tiddlers/%1".format(workspace, title));
					image.refreshImage(title);
					image.refreshImage("/%0".format(title));
					image.refreshImage("%0/%1/tiddlers/%2".format(config.extensions.tiddlyweb.host, workspace, title));
				}
			} else {
				displayMessage(macro.locale.loadError.format(title));
			}
		});
	}
};

if(tiddlyspace) {
	config.macros.binaryUploadPublic = {
		handler: function(place, macroName, params, wikifier, paramString, tiddler) {
			var options = paramString.parseParams(null, null, true)[0];
			var bag = tiddlyspace.getCurrentBag("public");
			options.bag = bag;
			macro.createUploadForm(place, options);
		}
	};
	config.messages.privacySetting = config.options.chkPrivateMode ?
		"private" : "public";
	config.macros.binaryUpload.defaultWorkspace = tiddlyspace.
		getCurrentWorkspace(config.messages.privacySetting);
}

})(jQuery);
//}}}
|details|k
|''URL''|http://tiddlywiki.squize.org#TaggerPluginDocumentation|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-19|
|''Version''|1.0.1 (2006-06-01)|
|''CoreVersion''|2.0.8|
|''Source''|http://tiddlywiki.squize.org#TaggerPlugin|
!Summary
Provides a drop down listing current tiddler tags, and allowing toggling of tags.
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#TaggerPluginDocumentation]]
:» see the author's info tiddler for examples
!Details
[[TaggerPlugin...]] is a result of combining key features from the ''dropTags'' and ''tagAdder'' macro's. However, since it departs somewhat from the interface ''tagAdder'' users will be familiar with, I'm making this available as a new plugin alongside ''tagAdder''.

Tagger provides a dropdown list of the current tiddler tags, along with the ability to toggle them. Further it can optionally display a list of tags in the dropdown, which can be addded to the tiddler.
*Clicking on ''[x]'' and ''[ ]'' removes and adds the tag respectively.
*Clicking on the tag text displays the tag dropdown for that tag, listing tiddlers tagged with it.
*The ''Create new tag'' lets you quickly type in a new tag not in the list.
*Click on this button to see the dropdown: {{button{"""Tags: ▾ """}}}

Each tag dropdown has a ''"""Rename tag"""'' option which can be used to quickly rename a tag in the entire TW, also rename it's tiddler if it exists.

''Usage''
At it's simplest, using tagger is as simple as...
{{{<<tagger>>}}}:  {{button{"""Tags: ▾ """}}}
> This gives a dropdown with the current tiddler tags, followed by all the tags in the TW.

You can also use a list of specified tags instead of all tags in the TW, by specifying a source tiddler.
{{{<<tagger source:TagsDB>>}}}
You can also display ONLY the current tiddler tags
{{{<<tagger taglist:false>>}}}  {{button{"""Tags: ▾ """}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#ClickifyPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-07-18|
|''Version''|1.0.2|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Source''|http://www.TiddlyTools.com/#ClickifyPlugin|
!Summary
re-compute parameters when a 'command link' macro is clicked
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ClickifyPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ClickifyPlugin
/***
|''Name''|BetterPopupsPlugin|
|''Author''|[[Tobias Beer|http://tobibeer.tiddlyspace.com]]|
|''Description''|stops the document from scrolling when openeing popups|
|''Documentation''|http://betterpopupsplugin.tiddlyspace.com|
|''Version''|0.1.0 (2013-10-06)|
|''~CoreVersion''|2.5.2|
|''License''|Creative Commons 3.0|
|''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/BetterPopupsPlugin.js|
***/
/*{{{*/
Popup.enableScrolling = false;
Popup.animDuration = 400;
Popup.show = function(valign,halign,offset)
{
	var curr = Popup.stack[Popup.stack.length-1];
	this.place(curr.root,curr.popup,valign,halign,offset);
	jQuery(curr.root).addClass("highlight");
	if(Popup.enableScrolling){
		if(config.options.chkAnimate && anim)
			jQuery('body,html')
				.animate(
					{scrollTop: ensureVisible(curr.popup)},
					Popup.animDuration
				);
		else
			window.scrollTo(0,ensureVisible(curr.popup));
	}
};
/*}}}*/
{{noTitle{<<list filter [tag[Plugin]][tag[Plugins]][sort[title]]>>}}}<<listfiltr>>
|details|k
|''URL''|http://www.TiddlyTools.com/#SaveBreadcrumbs|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-30|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#SaveBreadcrumbs|
!Summary
Write the current list of breadcrumbs to a story tiddler.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SaveBreadcrumbs]]
:see the author's site for a demo
!Details
{{{
<<tiddler SaveBreadcrumbs>>
<<tiddler SaveBreadcrumbs with: label>>
}}}
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
!Summary
One of the most advanced GTD apps in the TiddlyVerse...
» http://mgsd.tiddlyspot.com/#mGSD
!Details
<<tiddler iframe with: "http://mgsd.tiddlyspot.com/demo3.html">>
/***
|''Name''|TiddlySpaceInitialization|
|''Version''|0.7.3|
|''Description''|Initializes new TiddlySpaces the first time they are created|
|''Status''|@@beta@@|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/blob/master/src/plugins/TiddlySpaceInit.js|
|''CoreVersion''|2.6.1|
|''Requires''|TiddlySpaceConfig RandomColorPalettePlugin chrjs ImageMacroPlugin|
!TODO
* robust error notification and recovery
!MarkupPreHead
<!--{{{-->
<link href="/bags/%0_public/tiddlers.atom" rel="alternate"
	type="application/atom+xml" title="%0's public feed" />
<link rel="canonical" href="%1/" />
<!--}}}-->
!Code
***/
//{{{
(function($) {

var versionField = "tiddlyspaceinit_version";
var markupPreHead = store.getTiddlerText(tiddler.title + "##MarkupPreHead", "");
var tiddlyspace = config.extensions.tiddlyspace;
var currentSpace = tiddlyspace.currentSpace;
var tweb = config.extensions.tiddlyweb;

var plugin = config.extensions.TiddlySpaceInit = {
	version: "0.6",
	SiteTitle: "%0",
	SiteSubtitle: "a TiddlySpace",
	flagTitle: "%0SetupFlag",
	flagWarning: "Please do not modify this tiddler; it was created " +
		"automatically upon space creation.",

	dispatch: function(ev) {
		var title = plugin.flagTitle.format([currentSpace.name]);
		config.annotations[title] = plugin.flagWarning;
		if(currentSpace.type != "private") {
			return;
		}
		var tiddlers = [];
		var tid = store.getTiddler(title);
		if(tid) {
			curVersion = parseFloat(tid.fields[versionField]);
			reqVersion = parseFloat(plugin.version);
			if(curVersion < reqVersion) {
				plugin.update(curVersion, tid);
				tid.fields[versionField] = plugin.version;
				tid.incChangeCount();
				tid = store.saveTiddler(tid);
				tiddlers.push(tid);
			}
		} else { // first run
			tid = new Tiddler(title);
			tid.tags = ["excludeLists", "excludeSearch", "excludePublisher"];
			tid.fields = $.extend({}, config.defaultCustomFields);
			tid.fields[versionField] = plugin.version;
			tid.text = "@@%0@@".format([plugin.flagWarning]);
			tid = store.saveTiddler(tid);
			tiddlers = tiddlers.concat(plugin.firstRun(), tid);
		}
		autoSaveChanges(null, tiddlers);
	},
	update: function(curVersion, flagTiddler) {
		if(curVersion < 0.2) {
			this.createAvatar();
		}
		if(curVersion < 0.3) {
			flagTiddler.tags.pushUnique("excludePublisher"); // XXX: never persisted
		}
		if(curVersion < 0.5) { // v0.4 was faulty
			this.setupMarkupPreHead();
		}
		if(curVersion < 0.6) {
			this.purgeSystemSettings();
		}
	},
	pubTid: {
		tags: ["excludeLists", "excludeSearch"],
		fields: $.extend({}, config.defaultCustomFields, {
			"server.workspace": tiddlyspace.getCurrentWorkspace("public")
		})
	},
	makeTiddlerIfNot: function(tiddler) {
		if (!store.tiddlerExists(tiddler.title)) {
			$.extend(true, tiddler, plugin.pubTid);
			return [store.saveTiddler(tiddler)];
		} else {
			return [];
		}
	},
	firstRun: function() {
		var tiddlers = [];
		// generate Site*itle
		$.each(["SiteTitle", "SiteSubtitle"], function(i, item) {
			var tid = new Tiddler(item);
			tid.text = plugin[item].format([currentSpace.name]);
			tiddlers.push.apply(tiddlers,
				plugin.makeTiddlerIfNot(tid));
		});
		// generate public ColorPalette
		var tid = new Tiddler("ColorPalette");
		tid.text = config.macros.RandomColorPalette.generatePalette({
			saturation_pale: 0.67, saturation_light: 0.53,
			saturation_mid: 0.43, saturation_dark: 0.06,
			pale: 0.99, light: 0.85, mid: 0.5, dark: 0.31
		},
			false);
		tiddlers.push.apply(tiddlers, plugin.makeTiddlerIfNot(tid));
		this.createAvatar();
		this.setupMarkupPreHead();
		return tiddlers;
	},
	// remove _cookie slices (TiddlyWiki 2.6.2 beta 6 remnants)
	purgeSystemSettings: function() {
		var ss = store.getTiddler("SystemSettings");
		if(ss) {
			var lines = ss.text.split("\n");
			var persistentOptions = $.grep(lines, function(line, i) {
				return line.indexOf("_cookie:") == -1;
			});
			ss.text = persistentOptions.join("\n");
			ss = store.saveTiddler(ss);
			autoSaveChanges(null, [ss]);
		}
	},
	createAvatar: function() {
		var avatar = "SiteIcon";
		var host = tweb.host;
		var notify = function(xhr, error, exc) {
			displayMessage("ERROR: could not create avatar - " + // TODO: i18n
				"%0: %1".format([xhr.statusText, xhr.responseText]));
			// TODO: resolve!?
		};

		var pubBag = tiddlyspace.getCurrentBag("public");
		var tid = new tiddlyweb.Tiddler(avatar);
		tid.bag = new tiddlyweb.Bag(pubBag, host);

		var callback = function(data, status, xhr) {}; // avatar already exists; do nothing
		var errback = function(xhr, error, exc) {
			if(xhr.status != 404) {
				return;
			}
			// copy default avatar
			var _notify = function(tid, status, xhr) {
				displayMessage("created avatar"); // TODO: i18n
				var image = config.macros.image;
				if(image && image.refreshImage) {
					var uri = "/%0/tiddlers/SiteIcon".
						format(tiddlyspace.getCurrentWorkspace("public"));
					image.refreshImage(uri);
					image.refreshImage("SiteIcon");
				}
			};
			var _callback = function(tid, status, xhr) {
				tid.title = avatar;
				tid.bag.name = pubBag;
				delete tid.etag;
				tid.put(_notify, notify); // TODO: add to current session document (via adaptor?)
			};
			tweb.getUserInfo(function(user) {
				var avatarTitle = currentSpace.name == user.name ?
					"defaultUserIcon" : "defaultSiteIcon";
				var tid = new tiddlyweb.Tiddler(avatarTitle);
				tid.bag = new tiddlyweb.Bag("common", host);
				tid.get(_callback, notify);
			});
		};
		tid.get(callback, errback);
	},
	savePublicTiddlerText: function(title, text, pubWorkspace) {
		var tid = new Tiddler(title);
		tid.text = text;
		tid.tags = ["excludeLists"];
		tid.fields = $.extend({}, config.defaultCustomFields);
		tid.fields["server.workspace"] = pubWorkspace;
		tid.fields["server.page.revision"] = "false";
		tid = store.saveTiddler(tid);
		autoSaveChanges(null, [tid]);
	},
	setupMarkupPreHead: function() {
		var pubWorkspace = tiddlyspace.getCurrentWorkspace("public");
		var existing = store.getTiddler("MarkupPreHead");
		if(!existing || existing.fields["server.workspace"] != pubWorkspace) {
			var context = this;
			tweb.getStatus(function(status) {
				var text = markupPreHead.format(currentSpace.name,
					tiddlyspace.getHost(status.server_host, currentSpace.name));
				context.savePublicTiddlerText("MarkupPreHead", text,
					pubWorkspace);
			});
		}
		// also set up DefaultTiddlers
		var title = "DefaultTiddlers";
		existing = store.getTiddler(title) || new Tiddler(title);
		if(existing.fields["server.workspace"] != pubWorkspace) {
			var text = existing.text || store.getShadowTiddlerText(title);
			this.savePublicTiddlerText(title, text, pubWorkspace);
		}
	}
};

$(document).bind("startup", plugin.dispatch);

})(jQuery);
//}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#ToggleSiteTitles|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-25|
|''Version''|1.0.0|
|''CoreVersion''|2.5|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ToggleSiteTitles|
!Summary
show/hide document 'header' area (containing SiteTitle and SiteSubtitle content)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ToggleSiteTitles]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ToggleSiteTitles
<<tag "Webstuff" Plugins>>communicating around the web and loading contents from or storing contents to remote hosting sites and webservices...
/***
Sanitizes a given wikified selector after callback by doing: {{{$el.html( $el.text())}}}
{{{config.macros.tsScan.sanitizeSelector = '.tsList .tsInfo';}}}
***/
/*{{{*/
(function ($) {
    var ts = config.macros.tsScan;
    if (ts) {
        ts.sanitizeSelector = '.tsList .tsInfo';
        ts._scanCallbackHIJACK = config.macros.tsScan._scanCallback;
        ts._scanCallback = function (place, jsontiddlers, options) {
            ts._scanCallbackHIJACK.apply(this, arguments);
            $(ts.sanitizeSelector).each(function () {
                $i = $(this);
                $i.html($i.text());
            });
        }
    }
})(jQuery);
/*}}}*/
Loads of plugins like [[TagSearchPlugin...]], tbGTD and the guy who set up this plugin repository...
» [[tobibeer repository on Github|https://github.com/tobibeer/TiddlyWikiPlugins]]
» [[@tobibeer on TiddlySpace|http://tobibeer.tiddlyspace.com]]
» [[Google+ Profile|plus.google.com/117699930396488564449]]
R0lGODlhAAEAAYcAMViAvTRlr3Kfz9zn8////6fD4bjf/KHU+6za/ILH+5HO+6DT+oHF+ZDL+Z/R+IDD94/K+J/S+YDC9o/K95/Q94DB9Y/I9Z/P9n/B9I/H9H/A85/O9X+/84/H836+8o7G857N83698Y7F8Z7M83688I7E8Z3L8n277o3D8JzL8n267o3D75zK8Hy57I3B7pzJ8IzA7pzI73y36ozA7JzI7nu26Yu/6pzH7Xu16Iu+6pvG7Xq05oq96ZvG7JrF6nqy5Ym753my5JrD6Xmw4om55ZrD6Ii55JnC53iu4Ii444i345nB5net3oi24pnA5Hes3Yi24Jm/5Her3Ii14Ji+43aq24ez33ap25e94nao2oay3XWo2Ze84HWm14ax3Je74XWm1oax25a633Sk1Yav2YWv2pe63nOi04Wt2Jm73nOh0oWt15y93nOh0Yet16vG4o+y2bDJ5JO12vP4/d7v/O/2/M7o+7/i/ILG+s7n+4HE+M7n+r/h+87m+s7l+c3l+b7g+s3l+M3k+M3k977f+X677szj9szi9szi9b3e+Mzh9czh9L3d98vh9Hmx48vf88vf8r3d9r3c9neu3sve8bzc9cve8M3j98ze8M7e8Lzb9M/f8NHh8HOj1NTi8bza83Oi0tjl8t7p9Ofv97vZ8tvm8vn7/bvY8cvg87vX8Mvg8nmx4rrW7+by/Pj7/Xmv4brW7rrV7svf8brV7brU7O/2+32777nT7HWp2rrS6/D2+83e8LrS6nmz5bvS6vH2+3iu4bzT6net3/L3+/P3+7/U6neq29bk8cHV63ap2vT4+/X4+8PX687f8PX5/Mrb7dDg8HWl1vb5/Pf6/Pj7/Orx+Nrm8uHq9fv8/fz9/v3+/vb4+/7+/uTt9r3S6LnP55W324Sr1eDq9Jq63X+o1PL2+tfk8Z693rTM5o2x2M7e7unw95G02sXY63ai0Yiu16zG48HV6nul0u3z+dPh8KPA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAEAAQcI/gABBBhIsKDBgwgTKlzIsKHDhxAjSpxIsaLFiwQFaNzIsaPHjyBDihxJsqTJkyhTqlzJsqVLjQFeypxJs6bNmzhzkoyps6fPn0CDCg3Jc6jRo0iTKuVYdKnTp1CjpmwqtarVq0upYt3KtatNrV7Dih07EizZs2jDmk3Ltm3UtW7jyh0Kd67duzfr4t3Ld6XevoADExVMuPBOw4gTb/yruHFcxo4jo4UsubJalQMIaN7MubPnz6BDix5NurTp06hTq17NGnSBqZhby55Nu7bt27hlv0ZJWWPm3MCDCx9OHPfuk70F/C7OvLnz58GPm0y+HLr169izd5Zekrr27+DD/gvnfjhldfHo06snTb5s7PXw48dvL9K7/Pv4v9MfbD6////O7QeSfQAWaOBtAn5E4IEMNphagh4t6OCEFH4GYUcSVqghhRcy9V5pBhwg4ogklmjiiSimqOKKLLbo4oswxigjjAiY1uFiH5J2QAI89ujjj0AGKeSQRBZp5JFIJqnkkkwqqYCNsPVn2gIMVGnllVhmqeWWXHbp5ZdghinmmGSWOWYDUPKW42hUmunmm3DGKeecdGaJZmk3wrSmaA484OefgAYq6KCEFmrooYgmquiijDbqKKMQpIncnqFFIMGlmGaq6aacdurpp6CGKuqopJZq6qmlTiDpdJSCRkEF/rDGKuustNZq66245qrrrrz26uuvwPpqwardtfrZBRgkq+yyzDbr7LPQRivttNRWa+212GZ7bQbElofSeaJdoMG45JZr7rnopqvuuuy26+678MYr77zxcotnlN+etgEH/Pbr778AByzwwAQXbPDBCCes8MIMK9xBt+5JWdoGHlRs8cUYZ6zxxhx37PHHIIcs8sgklzzyBxDXZ6xnIITg8sswxyzzzDTXbPPNOOes88489+wzzyKkzF++po1AwtFIJ6300kw37fTTUEct9dRUV2311VWXIPSAK3dmwglghy322GSXbfbZaKet9tpst+3223C7jcLWCnbNWQoq5K33/t589+3334AHLvjghBdu+OGIJ374CnRHaPdmLLQg+eSUV2755ZhnrvnmnHfu+eeghy466C40juHjmr0w+uqst+7667DHfjkMpnsoMWkxyKD77rz37vvvwAcv/PDEF2/88cgnrzzyM9SO4+2j0VDD9NRXb/312Gev/fbcd+/99+CHL/744dvgvJ7Qi3YDDuy37/778Mcv//z012///fjnr//+/Oufw/kCyFBodLCDAhrwgAhMoAIXyMAGOvCBEIygBCdIwQpOkAcAFCBoemDBDnrwgyAMoQhHqEAM3ktN6QuND37Awha68IUwjKEMZ0jDGtrw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
{{title{Latest Updates}}}
<<timeline "modified" "17" "YYYY-0MM-0DD">>
*{{title{[[Full Timeline...|Timeline]]}}}
<<tag [[Topic Lists]] References>>that are, in fact, collections on certain topics and actually link other entries in terms of aggregated lists, e.g. on science, poetry, semantics, music, color, design, etc... simply whatever deserves it's own aggregated, cross section topic list.
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
<<tag [[Blogs & Websites]] Apps>>for creating a website, online portfolios, business cards...
<<tag [[Note Taking]] Apps>>notebooks for organising snippets of text, jotting down notes, creating a collection of memories, diaries, journals...
!Upload an icon
<<tiddler spaceIcon>>
!Describe your space
If you haven't already done so, you should provide a brief decscription of yourself and what you're using this space for. To do this, just edit the [[SiteInfo]] tiddler (keeping the title the same of course).

!Change the title
<<tiddler spaceTitle>>
!Change the theme
<<tiddler colorScheme>>
!Change the menu
If you'd like to change the menu items along the top, you can edit the [[MainMenu]] tiddler.

!Change the default tiddlers
<<tiddler setDefaultTiddlers>>
!More Advanced customisations
If you know HTML and CSS, you can edit some or all of the following tiddlers to customise your space further:
* PageTemplate
* EditTemplate
* ViewTemplate
* StyleSheet
The following spaces have a SiteInfo tiddler tagged <<tag plugin>>...

{{tsList{<<tsScan url:"/search?fat=1&q=title:SiteInfo tag:plugin _limit:200"
template:"TiddlySpaceScan##Default"
sort:server.bag
>>}}}
<<listfiltr>>
|details|k
|''URL''|http://www.TiddlyTools.com/#CopyTiddlerPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-11-30|
|''Version''|3.2.6|
|''CoreVersion''|2.3|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#CopyTiddlerPlugin|
!Summary
Quickly create a copy of any existing tiddler
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#CopyTiddlerPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#CopyTiddlerPlugin
your one-stop-shop for all things *tiddly @@color:#fcc;margin-left:20px; (Classic ~TiddlyWiki)@@
|details|k
|''URL''|http://themes.tiddlywiki.com/classic.html|
! Summary
The autumn leaves and a few more colorful sprinkles have fallen upon this theme which comes with a classic MainMenu to the left.
! Preview
[img[[img[http://img.tiddlyspace.com/Classic][http://themes.tiddlywiki.com/classic.html]]
|details|k
|''URL''|http://tiddlywiki.abego-software.de/Beta.html#TiddlerAliasPlugin|
|''Author''|[[Udo Borowski]]|
|''Released''|2009-04-14|
|''Version''|1.0.0 BETA 4 (2009-03-30)|
|''CoreVersion''|2.1.0|
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Udo Borowski]]|
|''Source''|http://tiddlywiki.abego-software.de/Beta.html#TiddlerAliasPlugin|
!Summary
Reference a tiddler through an alias (or even through many aliases). E.g. a tiddler "William Shakespeare" may also be referenced as [[Shaxper]].
!Examples
; [[plugin info tiddler|http://tiddlywiki.abego-software.de/Beta.html#TiddlerAliasPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.abego-software.de/Beta.html#TiddlerAliasPlugin
|details|k
|''URL''|http://mgsd.tiddlyspot.com/demo3.html#NewSavedTiddlerPlugin|
|''Author''|Simon Baird|
|''Version''|unknown|
|''Released''|2010-03-27|
|''Requires''|2.6.5|
|''Source''|http://mgsd.tiddlyspot.com/demo3.html#NewSavedTiddlerPlugin|
! Summary
Creates a new tiddler that is saved with a given title, text, tags and fields.
! Examples
; [[in MGSD|http://mgsd.tiddlyspot.com/demo3.html]]
: click any "new" links in the sidebar tab ''Process'' or topmenu
! Preview
[img[http://img.tiddlyspace.com/NewSavedTiddlerPlugin_1]]
! Details
{{{
<<newSavedTiddler 
        label:"new Saved Tiddler From Template" 
        text:{{store.getTiddlerText('MyTemplateTiddler')}} 
        tag:'MyTag1 [[Three Word Tag]]'
>>
}}}
<<get ##SUMMARY plain>>/%
!SUMMARY
<<tag "TiddlyWiki Themes" Themes>>that have been developped for TiddlyWiki which you can import as a single tiddler...
!END%/
<<tag [[Collaboration]] Plugins>>that help in communicating within and about TiddlyWiki...
|details|k
|''URL''|http://www.TiddlyTools.com/#TaskTimerPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-11-10|
|''Version''|1.4.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#TaskTimerPlugin|
!Summary
'timer' button automatically writes start/end/elapsed time into tiddler content
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TaskTimerPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#TaskTimerPluginInfo
<html><img src="/$1.gif" class="icon icon$2"/></html>
|details|k
|''URL''|http://mptw.tiddlyspot.com/#HideWhenPlugin|
|''Author''|[[Simon Baird]]|
|''Released''|2013-06-17|
|''Version''|3.2a|
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Simon Baird]]|
|''Source''|http://mptw.tiddlyspot.com/#HideWhenPlugin|
!Summary
Allows conditional inclusion/exclusion in templates
!Examples
; [[plugin info tiddler|http://mptw.tiddlyspot.com/#HideWhenPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://mptw.tiddlyspot.com/#HideWhenPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#RollText|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-30|
|''Version''|2.0.0|
|''CoreVersion''||
|''Requires''|[[AnimationEffectsPlugin...]]|
|''Source''|http://www.TiddlyTools.com/#RollText|
!Summary
display a phrase """one-word-at-a-time""", using [[AnimationEffectsPlugin...]]
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#RollText]]
:» see the author's info tiddler for a demo
!Details
Here's how you use it...
{{{
<<tiddler RollText with: "text" timing speed pause repeat>>
}}}
|!Parameter|!Description|!Default|
|''text''|the text to be rolled|"""<<tiddler RollText##msg>>"""|
|''timing''|time in between start of one word and the next (ms)|500|
|''speed''|speed for word to zoom in/out (ms)|800|
|''pause''|delay between zoom in and zoom out|1500|
|''repeat''|number of animation cycles|2|
[[Customize|Home]]
|details|k
|''URL''|http://www.TiddlyTools.com/#ToggleReadOnly|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-11-30|
|''Version''|2.0.0|
|''CoreVersion''|2.5|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ToggleReadOnly|
!Summary
enable/disable global read-only state without reloading your document
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ToggleReadOnly]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ToggleReadOnly
|details|k
|''URL''|http://www.TiddlyTools.com/#EmbedTiddlers|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-01-14|
|''Version''|2.0.2|
|''CoreVersion''||
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#EmbedTiddlers|
!Summary
transclude a list of tiddlers in a specific order
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#EmbedTiddlers]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#EmbedTiddlers
Author of [[InfoboxTablesPlugin]]
» http://infoboxes.tiddlyspot.com

More plugins and apps at...
http://kbrezovnik.tiddlyspace.com
|details|k
|''URL''|http://www.TiddlyTools.com/#TaggedTemplateTweakInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-02|
|''Version''|1.6.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#TaggedTemplateTweak|
!Summary
use alternative ViewTemplate/EditTemplate for specific tiddlers
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TaggedTemplateTweakInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#TaggedTemplateTweakInfo
<<tiddler TemplateAlias with: "Mario Pietsch">>

<<tag Libraries Apps>>that TiddlyWiki is known to work with...
Creator of the TiddlyPedia theme and kindly providing hosting for TiddlySpot...
» http://themes.tiddlywiki.com/tiddlypedia.html
» [[http://tiddlyspot.com|http://tiddlyspot.com/?page=about]]
|details|k
|''URL''|http://pagr.tiddlyspace.com|
|''Author''|Tobias Beer|
|''Version''|0.5.0|
|''Released''|2013-09-11|
|''Requires''|2.5.3|
|''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/PagrPlugin.min.js|
! Summary
Pagr brings you powerful navigation features based on a toc with sitemap style breadcrumbs with popup navigation, prev / home / next chapter navigation as well as chapter based table of contents.
! Examples
; [[plugin documentation|http://pagr.tiddlyspace.com/#%5B%5BTable%20Of%20Contents%5D%5D]]
:the plugin documentation showcases a working example
; [[MarkDownTutor|http://markdowntutor.tiddlyspace.com/#MarkDown]]
:this turorial space for markdown using @SownDown has been using an earlier version of @PagrPlugin for a while now.
! Preview
[img[http://img.tiddlyspace.com/PagrPlugin_2][http://pagr.tiddlyspace.com]]
! Details
Pagr brings you powerful navigation features based on a toc with...
*[[sitemap style breadcrumbs with popup navigation|http://pagr.tiddlyspace.com/#Crumbs]]
*[[« prev — ▲ home — next » buttons|http://pagr.tiddlyspace.com/#PAging]]
*[[(sub)chapter tocs|http://pagr.tiddlyspace.com/#Chapters]]
All features can be used independently while pagr output is only rendered for any tiddlers present in a ToC. To get started see [[Installation|http://pagr.tiddlyspace.com/#Installation]] and [[Parameters|http://pagr.tiddlyspace.com/#Parameters]] / [[Defaults|http://pagr.tiddlyspace.com/#Parameters]] for available options — or [[dive into the example|http://pagr.tiddlyspace.com]].

To get Pagr working you best include it in your ViewTemplate in the appropriate spot, e.g....
{{{
<div macro='pagr toc:"Table Of Contents"></div>
}}}
!!!Parameters
|!Parameter|!Description|!Default|
|''toc''|the tiddler, section or slice providing the ordered toc links<br>» mandatory so long as no [[global toc tiddler|http://pagr.tiddlyspace.com/#Defaults]] is defined|"" |
|!Chapter Toc|>|>|>|
|''chapter''|[[<<pagr chapter>>|http://pagr.tiddlyspace.com/#Chapters]] renders a [[chapter toc|http://pagr.tiddlyspace.com/#Chapters]] for the current tiddler<br>» [[<<pagr chapter:"tiddler name">>|http://pagr.tiddlyspace.com/#Chapters]] renders it for another tiddler|''n.a.''|
|!Crumbs|>|>|>|
|''home''|the home tiddler for the toc<br>» functions as an imaginary wrapper around top-level list items|""|
|''crumbs''|whether to render crumbs<br>» first searches a global PageTemplate element with the id ''crumbs''<br>» then looks for a ViewTemplate element with the ''crumbs'' class<br>» otherwise renders the crumbs where the macro is called|''n.a.''|
|''crumbsOnly''|whether to render nothing but crumbs<br>same as ''crumbs'' but doesn't output any pagr controls|''n.a.''|
|''crumbsSeparator''|the separator being used between crumbs items |"»"|
|!Paging Controls|>|>|>|
|''fmtPrev''|the format for the prevous button<br>» the arrow is defined via [[css|Styles]]|{{{"[[%0]]"}}}|
|''fmtHome''|the format for the home button|{{{"[[\u25B2|%0]]"}}}|
|''fmtNext''|the format for the next button<br>» the arrow is defined via [[css|Styles]]|{{{"[[%0]]"}}}|
/***
|''Name''|TiddlySpaceSearcher|
|''Version''|0.2.5|
|''Requires''|TiddlySpaceConfig TiddlySpaceFollowingPlugin|
***/
//{{{
(function($) {
var tiddlyspace = config.extensions.tiddlyspace;
var tsScan = config.macros.tsScan;

config.shadowTiddlers.SearchTemplate = "<<view server.bag SiteIcon label:no width:24 height:24 preserveAspectRatio:yes>> <<view server.bag spaceLink title external:no>> in space <<view server.bag spaceLink>>";
config.shadowTiddlers.StyleSheetSearch = [".resultsArea .siteIcon { display: inline; }",
	".searchForm {text-align: left;}"].join("\n");
store.addNotification("StyleSheetSearch", refreshStyles);

var search = config.macros.tsSearch = {
	locale: {
		advanced: "Advanced Options",
		header: "Search",
		resultsHeader: "Results (%0)",
		find: "find",
		noResults: "No tiddlers matched your search query",
		query: "QUERY: ",
		error: "please provide a search query or a tag, modifier or title!",
		titleAdvanced: "where the title is",
		modifierAdvanced: "where the last modifier is",
		spaceAdvanced: "only in the space: ",
		notspaceAdvanced: "but not in the spaces: ",
		tagsAdvanced: "with the tags: "
	},
	andConstructor: function(container, label, fieldname, negationMode) {
		var tags = $("<div />").appendTo(container);
		$('<span />').text(label).appendTo(tags);
		var id = "area" + Math.random();
		container = $("<span />").attr("id", id).appendTo(tags)[0];
		function add(container) {
			var el = $('<input type="text" />').attr("field", fieldname).appendTo(container);
			if(negationMode) {
				el.attr("negation", "true");
			}
		}
		add(container);
		var el = $("<button />").text("AND").click(function(ev) {
			add($(ev.target).data("container"));
			ev.preventDefault();
		}).appendTo(tags);
		$(el).data("container", container);
	},
	fieldConstructor: function(container, label, field) {
		container = $("<div />").appendTo(container)[0];
		$("<span />").text(label).appendTo(container);
		$("<input />").attr("text", "input").attr("field", field).appendTo(container);
	},
	advancedOptions: function(form) {
		var locale = search.locale;
		var container = $("<div />").addClass("tsAdvancedOptions").appendTo(form)[0];
		$("<h2/ >").text(search.locale.advanced).appendTo(container);
		$("<div />").addClass("separator").appendTo(container);
		search.fieldConstructor(container, locale.titleAdvanced, "title");
		search.fieldConstructor(container, locale.modifierAdvanced, "modifier");
		search.fieldConstructor(container, locale.spaceAdvanced, "space");
		search.andConstructor(container, locale.notspaceAdvanced, "space", true);
		search.andConstructor(container, locale.tagsAdvanced, "tag");
	},
	constructSearchQuery: function(form) {
		var data = [], select = [];
		var query = $("[name=q]", form).val();
		if(query) {
			data.push("q=%0".format(query));
		}

		// add tags, fields etc..
		$("[field]", form).each(function(i, el) {
			var val = $(el).val();
			var name = $(el).attr("field");
			var negate = $(el).attr("negation") == "true";
			if(val && name) {
				val = encodeURIComponent(val);
				val = negate ? "!" + val : val;
				if(name == "space") {
					val += "_public";
					name = "bag";
				}
				if(negate) {
					select.push("select=%0:%1".format(name,val));
				} else {
					var prefix = data.length === 0 ? "q=" : "";
					data.push('%0%1:"%2"'.format(prefix, name, val));
				}
			}
		});
		var dataString = data.join(" ");
		if(dataString.length === 0 && !query) {
			return false;
		}
		var selectStatement = select.join("&");
		if(dataString.length > 0 && selectStatement.length > 0) {
			dataString += "&";
		}
		dataString += selectStatement;
		return "/search?%0".format(dataString);
	},
	constructForm: function(place) {
		var locale = search.locale;
		$("<h1 />").text(locale.header).appendTo(place);
		var form = $("<form />").appendTo(place)[0];
		$('<input type="text" name="q" />').appendTo(form);
		$('<input type="submit" />').val(locale.find).appendTo(form);
		search.advancedOptions(form);
		var query = $('<h2 class="query"/>').appendTo(place)[0];
		var results = $("<div />").appendTo(place).addClass("resultsArea")[0];
		var lookup = function(url) {
			if(!url) {
				results.empty().addClass("error").text(locale.error);
				return;
			}
			config.extensions.tiddlyweb.getStatus(function(status) {
				$(query).text(locale.query);
				var href = status.server_host.url + url;
				$("<a />").attr("href", href).text(href).appendTo(query);
				tsScan.scan(results, { url: url, emptyMessage: search.locale.noResults, cache: true,
					template: "SearchTemplate", sort: "title", callback: function(tiddlers) {
						$("<h2 />").text(locale.resultsHeader.format(tiddlers.length)).prependTo(results);
					}
				});
			});
		};
		$(form).submit(function(ev) {
			ev.preventDefault();
			var url = search.constructSearchQuery(form);
			config.macros.tsSearch.lastSearch = url;
			lookup(url);
		});
		if(search.lastSearch) {
			lookup(search.lastSearch);
		}
		return form;
	},
	handler: function(place) {
		var container = $("<div />").addClass("searchForm").appendTo(place)[0];
		search.constructForm(container);
	}
};

})(jQuery);
//}}}
|details|k
|''URL''|http://www.math.ist.utl.pt/~psoares/addons.html|
|''Author''|[[Paolo Soares]]|
|''Version''|2.2.6|
|''Released''|2010-11-17|
|''Requires''|2.5.0|
|''Source''|http://www.math.ist.utl.pt/~psoares/addons.html#SlideShowPlugin|
! Summary
Creates a slide show from any number of tiddlers
! Examples
; [[examples @ psoares|http://www.math.ist.utl.pt/~psoares/addons.html#Plugins]]
:» the ''Plugin'' tiddler lists a lot of slideshow examples
! Preview
[img[http://img.tiddlyspace.com/SlideShowPlugin_1]]
! Details
This plugin turns any number of tiddlers into a slide show. A single macro provides a flexible way to present a set of tiddlers, including:
# a full screen presentation that hides the TiddlyWiki structure (header, sidebar, main menu);
# a way to navigate through a set of tiddlers keeping the TiddlyWiki structure (similar to the ~NavigationMacro by [[Saq Imtiaz (Lewcid)]]);
# a display of all the selected tiddlers ready to be printed.
Most features that are usually found in presentation software are available. 
*Build a slide show from a list of tiddlers' titles or selecting a specific tag with optional sort
*Build a slide show from a single tiddler where slides are divided by a separator
*Fully customizable presentations (CSS knowledge required)
*Auto-advancing slide show (kiosk mode) and looping (circular mode)
*Incremental display (several overlays or layers in a slide)
*Optional clock with 4 different modes:
**local time
**elapsed time of presentation
**elapsed time for each slide
**countdown clock for a given period
*Screen blanking for pauses
|details|k
|''URL''|http://www.TiddlyTools.com/#ReplaceDoubleClick|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-24|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ReplaceDoubleClick|
!Summary
disable doubleclick-to-edit-tiddler or replace doubleclick with shift/ctrl/alt+singleclick
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ReplaceDoubleClick]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ReplaceDoubleClick
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
/bags/common/tiddlers/jquery.js
http://htmljs.tiddlyspace.com/htmljs-disqus
|details|k
|''URL''|http://themes.tiddlywiki.com/tiddlypedia.html|
|''Author''|[[Clinton Checketts]]|
! Summary
A theme that mimicks the ''Monobook'' theme of [[WikiPedia|http://wikipedia.com]] / [[MediaWiki|http://mediawiki.org]] in its generally light gray appearance, a [[sidebar|SideBarTabs]] and MainMenu to the left and a tabbed tiddler interface horizontally aligning the tiddler title and toolbar.
!Examples
; [[TiddlyPedia goes Psychiatry|http://www.staff.uni-mainz.de/mblumers/lg/IKZ/IKZ.html]]
: a psychiatric initiative using TiddlyPedia for publishing
! Preview
[img[[img[http://img.tiddlyspace.com/TiddlyPedia][http://themes.tiddlywiki.com/tiddlypedia.html]]
|details|k
|''URL''|http://www.TiddlyTools.com/#DOMViewerPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-11-30|
|''Version''|1.8.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#DOMViewerPlugin|
!Summary
display internal Document Object Model for wiki-formatted content
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#DOMViewerPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#DOMViewerPlugin
{{{
<<tag [[<Category Name>]] Plugins>>for use case foo bar baz...
}}}
Do not forget to tag the new plugin category with <<tag Plugins>>!
!Summary
The serverside on which TiddlySpace runs...
;home page
:» http://tiddlyweb.com 
;documentation on TiddlySpace
:» http://tiddlyweb.tiddlyspace.com
;code documentation
:» http://tiddlyweb.readthedocs.org
!SpaceUnplugged
{{unpluggedSpaceTab{
{{wizard{
<<image unsyncedIcon width:48>> Sync is currently unavailable in ~TiddlyWiki due to security constraints in modern browsers. Research is being done to build a suitable alternative. In the meantime if you have changed content in an offline ~TiddlyWiki, you can get your content back into ~TiddlySpace by using the ''import'' functionality from the backstage of the online wiki.
}}}
}}}

!Menu
<<message messages.memberStatus>> <<homeLink>>
{{unsyncedList{<<message messages.syncListHeading>> <<list filter [is[unsynced]]>>}}}

running TiddlySpace@glossary version <<message extensions.tiddlyweb.status.tiddlyspace_version>>
{{autotable{
<<tiddler Backstage##Resources>>
}}}

!Resources
[[blog|@@blog]] [[documentation|@@docs]] [[featured spaces|@@featured]] 

!ImportExport
<<fileImport>>
You can download this TiddlySpace as an offline TiddlyWiki:

{{chunkyButton{<<exportSpace>>}}}

!BackstageTiddlers
|upload a <<message messages.privacySetting>> file: <<binaryUpload>>|<<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>>|
|>|<<search>>|
|>|<<tiddler Backstage##Tiddlers>>|

!Tiddlers
<<tabs
	txtMainTab
	"Recent" "Recently edited tiddlers" TabTimeline
	"All" "All tiddlers" TabAll
	"Public" "All public tiddlers" [[TiddlySpaceTabs##Public]]
	"Private" "All private tiddlers" [[TiddlySpaceTabs##Private]]
	"Tags" "All tags" TabTags
	"Spaces" "Tiddlers grouped by space" [[TiddlySpaceTabs##Spaces]]
	"Missing" "Missing tiddlers" TabMoreMissing
	"Orphans" "Orphaned tiddlers" TabMoreOrphans
	"Shadows" "Shadowed tiddlers" TabMoreShadowed
>>

!BatchOps
<<tabs
	txtPublisherTab
	"Private" "Move tiddlers from private to public" Backstage##BatchPrivate
	"Public" "Move tiddlers from public to private" Backstage##BatchPublic
>>

!BatchPrivate
<<TiddlySpacePublisher type:private>>

!BatchPublic
<<TiddlySpacePublisher type:public>>

!Plugins
''Note:'' Many of these plugins are core TiddlySpace plugins and cannot be changed unless first cloned.

<<tiddler PluginManager>>

!Tweaks
These options change behavior in TiddlyWiki //only// and may be ineffective in TiddlySpace.

<<tiddler AdvancedOptions>>
|details|k
|''URL''|http://www.TiddlyTools.com/#CalendarPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-01-04|
|''Version''|1.5.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Source''|http://www.TiddlyTools.com/#CalendarPlugin|
!Summary
Display monthly and yearly calendars.
! Preview
[img[http://img.tiddlyspace.com/CalendarPlugin_1]]
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#CalendarPlugin]]
:» see the author's info tiddler for examples
!Details
This is how you use it...
|!Example|!Description|h
|{{{<<calendar>>}}}|full-year calendar for the current year|
|{{{<<calendar year>>}}}|full-year calendar for the specified year|
|{{{<<calendar year month>>}}}|one month calendar for the specified month and year|
|{{{<<calendar thismonth>>}}}|one month calendar for the current month|
|{{{<<calendar lastmonth>>}}}|one month calendar for last month|
|{{{<<calendar nextmonth>>}}}|one month calendar for next month|
|{{{<<calendar +n>>}}}<br>{{{<<calendar -n>>}}}|one month calendar for a month +/- 'n' months from now|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="2 724 68 55" 
width="30" height="30">
<g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1">
	<g>
		<path d="M 2.25 756 L 11.25 747 L 24.75 760.4994 L 60.750004 724.4994 L 69.75 733.49902 
		L 24.749977 778.49976 Z" fill="#101010" class="glyph"/>
	</g>
</g>
</svg>
<<tagging>>
|details|k
|''URL''|http://www.TiddlyTools.com/#ListboxPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-03-15|
|''Version''|1.4.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ListboxPlugin|
!Summary
set custom field or tiddler tags by selecting from listbox/droplist
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ListboxPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ListboxPluginInfo
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
/***
<<importer>>
***/
//{{{
(function($){

//define get macro
config.macros.importer = {
  //the macro handler
  handler: function (place, macroName, params, wikifier, paramString, tiddler) {
    createTiddlyButton(place,'Now!','Click to import now',this.importer,'button');
  },
  importer: function (){
    var nju, old, out = '', t, ti, tid,txt,tgs,
      tids = store.getTiddlerText('Import').split('----');

    for(t = 0; t < Math.min(3, tids.length); t++){
      tid = $.trim(tids[t]);
      if(!tid)continue;
      firstRow = tid.substr(0, tid.indexOf('\n')).split('|');
      ti=firstRow[0];
      tgs=(firstRow[1] || '').readBracketedList();
      old = store.getTiddler(ti);
      if(old){
        out += '\n* [[' + ti + ']]';
      } else {
        txt = tid.substr( tid.indexOf('\n') + 1);
        nju = new Tiddler(ti);
        nju.title = ti;
        nju.text = txt;
        nju.tags = tgs;
        nju.modifier = 'tobibeer';
        nju.modified = new Date();
        nju.fields = merge({}, config.defaultCustomFields);
        
        console.log(tids);
        console.log(nju);

        console.log('Now, trying to save '+ ti);
        nju = store.saveTiddler(nju);

        console.log('Yay, it finally worked! :o)');

        autoSaveChanges(null, [nju]);
      }
    }
    if(out){
      wikify('\n\nThe following tiddlers already existed...' + out , $('<div/>').insertAfter($(this))[0] );
    }
  }
}
})(jQuery);
//}}}
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
|details|k
|''URL''|http://tiddlywiki.abego-software.de/#%5B%5BFormTiddler%20Introduction%5D%5D|
|''Author''|[[Udo Borowski]]|
|''Released''|2012-04-19|
|''Version''|1.0.7 (2012-04-19)|
|''CoreVersion''||
|''Requires''|[[DataTiddlerPlugin...]]|
|''Source''|http://tiddlywiki.abego-software.de/#FormTiddlerPlugin|
!Summary
Use form-based tiddlers to enter your tiddler data using text fields, listboxes, checkboxes etc. (All standard HTML Form input elements supported).
!Examples
; [[plugin info tiddler|http://tiddlywiki.abego-software.de/#%5B%5BFormTiddler%20Introduction%5D%5D]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.abego-software.de/#%5B%5BFormTiddler%20Introduction%5D%5D
Once you have some content then you may choose to determine a tiddler, or set of tiddlers to display each time you load ~TiddlySpace. This is determined by the [[DefaultTiddlers]].
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
	<title>This Space</title>
	<link href="/bags/common/tiddlers/profile.css" type='text/css' rel='stylesheet' >
	<link href="/bags/common/tiddlers/admin.css" type='text/css' rel='stylesheet' >
	<!--[if lte IE 8]>
	<script type="text/javascript" src="/bags/common/tiddlers/json2.js"></script>
	<script type="text/javascript" src="/bags/common/tiddlers/es5-shim.min.js"></script>
	<![endif]-->
</head>
<body>
<div id="container">
	<div id="text-html" class="main section">
		<a class="app" href="/">home</a>
		<div class="left">
		<h2>About this space <button class='toggleNext'></button></h2>
		<div id="siteinfo"></div>
		<h2>Site Icon</h2>
		<div>
			<img id="siteicon" class="siteicon">
			<form id="upload" method="POST" enctype="multipart/form-data">
				<input type="hidden" name="title" value="SiteIcon" />
				<input type="hidden" name="tags" value="excludeLists">
				<input type="hidden" name="csrf_token" class="csrf" />
				<input type="file" name="file" accept="image/*" />
				<input class="btn" type="submit" value="upload" />
			</form>
			<div id="dropzone">Drop file here
				<img class="notloading" src="/bags/common/tiddlers/ajax-loader.gif" alt="submitting SiteIcon" />
			</div>
		</div>
		<h2>Vital Statistics</h2>
		<div id="info">please wait while information is loaded about this space...</div>
		<button class="spacereset">Reset Space</button>
		<div class="reset-confirm-wrap messageArea">
			<button class="close-btn" title="cancel reset">×</button>
			<p>Are you sure you want to reset the space? You can't go back! This will remove all the content from the space!</p>
			<form class="cf">
				<label for="reset-confirm">Enter the space name to confirm.</label>
				<input type="text" name="reset-confirm" class="reset-confirm-input inputBox" />
				<button type="submit">Reset Now</button>
			</form>
			<div class="reset-message-area">
				<p class="performing">Resetting...</p>
				<p class="finished">Reset Done!</p>
				<p class="recipe-error-msg">Error removing includes. Please remove manually.</p>
			</div>
		</div>
		</div>
		<div class="right">
		<div class="ts-membership">
			<h2>
				Add Member
				<a href="http://docs.tiddlyspace.com/What%20is%20a%20member%3F" title="What is a Member?" class="help">What is a Member?</a>
			</h2>
			<div>
				<p>Add a new member to your space by entering their name below. Enter a space name instead and prefix with @ to add everyone who is already a member of that space.</p>
				<form class="ts-members">
					<input class="inputBox" type="text" name="username">
					<input type="submit" value="Add Member" class="btn" />
				</form>
			</div>
			<h2>
				Existing Members <button class='toggleNext'></button>
			</h2>
			<div>
				Your space currently has the following members: 
				<ul class="ts-members"></ul>
			</div>
			<h2>
				Include Space
				<a class="help" href="http://docs.tiddlyspace.com/What%20is%20space%20inclusion%3F" title="What is inclusion?">What is Inclusion?</a>
			</h2>
			<form class="ts-includes">
				<input class="inputBox" type="text" name="spacename">
				<input type="submit" value="Include Space" class="btn" />
			</form>
		</div>
		<div>
			<h2>Included Spaces <button class='toggleNext'></button></h2>
			<div>
			This space includes the following spaces:
			<ul class="ts-includes"></ul>
			</div>
		</div>
		</div>
		<div class="clear"></div>
	</div>
</div>
<script src='/bags/common/tiddlers/backstage.js'></script>
<script src='/bags/common/tiddlers/jquery.js'></script>
<script src='/bags/tiddlyspace/tiddlers/chrjs'></script>
<script src='/bags/common/tiddlers/chrjs.space'></script>
<script src='/bags/common/tiddlers/chrjs.users'></script>
<script src='/bags/common/tiddlers/chrjs.identities'></script>
<script src='/bags/tiddlyspace/tiddlers/TiddlySpaceCSRF'></script>
<script src='/bags/common/tiddlers/jquery-form.js'></script>
<script src="/bags/common/tiddlers/siteiconupload.js"></script>
<script src="/bags/common/tiddlers/ts.js"></script>
<script src="/status.js"></script>
<script src="/bags/common/tiddlers/space.js"></script>
</body>
</html>
|details|k
|''URL''|http://twhelp.tiddlyspot.com|
|''Author''|Morris Gray|
|''Date''|2010-09-22|
! Summary
The sheer amount of information on all things tiddly in TW Help is unbelievable. You'll find lots of information on how to use TiddlyWiki on plugins, and nice adaptations like TWT-Notes and more.
! Preview
[img[http://img.tiddlyspace.com/TWHelp][http://twhelp.tiddlyspot.com]]
! Details
|!List of Topics|!Other Stuff from Morris Gray|h
|<<tiddler "TW Help##TOPICS">>|<<tiddler "TW Help##STUFF">>|
/%
!TOPICS
*Whats In A Tiddler
*Formatting the Page
*Formatting Tiddlers
*Formatting Text
*Formatting Dates
*Formatting Tables
*How To Use Links
*Using Color
*Third Party Plugins
*Macros Built-in
*Macros Other
*How to use tags
*Hints and Kinks - CSS
*Hints and Kinks - Tweaks
*Glossary
*CSS Reference
*CSS
*HTML
*JavaScript
*FAQ
*Other Help Sites
*Tools For TiddlyWiki
*Navigation With TW
<<listfiltr>>
!STUFF
;[[Science|http://science.tiddlyspot.com]]
:» A Personal Science Site
;[[SideMinder|http://sideminder.tiddlyspot.com]]
:» Track your time
;[[SideSnips|http://sidesnips.tiddlyspot.com]]
:» Snips From Discussion Group
;[[SidebarPluginVault|http://sidebarpluginvault.tiddlyspot.com]]
:» List of TW Plugins
;[[SidebarRadio|http://sidebarradio.tiddlyspot.com]]
:» Personal Embedded Radio/Video
;[[TWT-Blackicity|http://twt-blackicity.tiddlyspot.com/index.html]]
:» NEW! Menu System
;[[TW Equation|http://twequation.tiddlyspot.com]]
:» Empty TW with Equations
;[[TW Math|http://twmath.tiddlyspot.com]]
:» Equations for TiddlyWiki ([[Danish // Skrive Ligninger|http://twligninger.tiddlyspot.com]])
;[[TW Notes|http://twnotes.tiddlyspot.com]]
:» Note taking made easy
;[[TWT-Treeview|http://twt-treeview.tiddlyspot.com/index.html]]
:» NEW! Menu System
;[[TW TuDu|http://twtudu.tiddlyspot.com]]
:» Personal Organizer
;[[TWT-Notes|http://twt-notes.tiddlyspot.com]]
:» Tabbed Notes ([[Danish // Sygemelding & weekendlister|http://gdsskole.tiddlyspot.com]])
;[[TW Help|http://twhelp.tiddlyspot.com]]
:» Help for Beginners
<<listfiltr>>
!END%/
|details|k
|''URL''|http://www.TiddlyTools.com/#DatePluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-04-23|
|''Version''|2.7.3|
|''CoreVersion''|2.1|
|''Requires''|[[DatePlugin...]]|
|''Source''|http://www.TiddlyTools.com/#DatePluginConfig|
!Summary
Formats, background colors and other optional settings for [[DatePlugin...]]
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#DatePluginInfo]]
:see the author's info tiddler for examples
!Details
Provides options / examples on how to override or set defaults...
;default popup content display options
:can overridden by cookies
:*chkDatePopupHideCreated
:*chkDatePopupHideChanged
:*chkDatePopupHideTagged
:*chkDatePopupHideReminders
;show Julian date number below regular date
:chkShowJulianDate
;fixed-date annual holidays
:entered as an array
;weekend map (1=weekend, 0=weekday)
:day index values: sun=0, mon=1, tue=2, wed=3, thu=4, fri=5, sat=6
:{{{config.macros.date.weekend=[ 1,0,0,0,0,0,1 ];}}}
;date display/link formats
:for example, the default date display format
:*{{{config.macros.date.format="YYYY.0MM.0DD";}}}
;reminder lead time
:to find reminders up to X days from now
;default calendar colors
:when displaying a calendar (see [[CalendarPlugin...]]), you can customize the colors/styles that are applied to the calendar dates by modifying the values and/or functions below:
:*{{{weekendbg="#c0c0c0"}}}
:*{{{holidaybg="#ffaace"}}}
:*{{{createdbg="#bbeeff"}}}
:*{{{modifiedsbg="#bbeeff"}}}
:*{{{linkedbg="#babb1e"}}}
:*{{{remindersbg="#c0ffee"}}}
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
The inventor of D³, a TiddlyWiki powered GTD flavor...
» http://www.dcubed.ca/Welcome_to_d-cubed.html
|details|k
|''URL''|http://mptw.tiddlyspot.com/#InstantTimestampPlugin|
|''Author''|[[Simon Baird]]|
|''Released''|2013-06-17|
|''Version''|1.0.10a|
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Simon Baird]]|
|''Source''|http://mptw.tiddlyspot.com/#InstantTimestampPlugin|
!Summary
A handy way to insert timestamps in your tiddler content
!Examples
; [[plugin info tiddler|http://mptw.tiddlyspot.com/#InstantTimestampPlugin]]
: see the author's info tiddler for examples
!Details
None yet. Please review...
http://mptw.tiddlyspot.com/#InstantTimestampPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#SetIconPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-10-03|
|''Version''|1.9.1|
|''CoreVersion''|2.3|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SetIconPlugin|
!Summary
add an image to a toolbar, macro, or slider link
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SetIconPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SetIconPluginInfo
Provides configuration for [[TagSearchPlugin...]]
!Tags
Plugins
Themes
Author
Apps
References
!More
App
Apps
Theme
Themes
Plugins
Plugin
Macro
Script
Transclusion
Outdated
Broken
Author
Alias
Review
Preview
Featured
Reference
References
excludeLists
excludeSearch
|details|k
|''URL''|http://www.TiddlyTools.com/#RefreshTiddler|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-29|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#RefreshTiddler|
!Summary
create a link to force an immediate refresh of the current tiddler
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#RefreshTiddler]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#RefreshTiddler
/***
|''Macro''|LinkifyPlugin|
|''Description''|Automatically turns text into links, optionally using aliases<br>The plugin idea is based on Clint Checketts and Paul Petterson's [[RedirectMacro|http://checkettsweb.com/styles/themes.htm#RedirectMacro]]|
|''Documentation''|http://linkify.tiddlyspot.com|
|''Author''|Tobias Beer|
|''Version''|1.1.2 (2013-10-04)|
|''CoreVersion''|2.5.2|
|''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/LinkifyPlugin.min.js|
|''Usage''|define redirects in LinkifyConfig|
/%***/
(function(e){config.shadowTiddlers.LinkifyConfig="!Exclude\n-excludeLists systemConfig noLinkify\n!Linkify\nLinkifyPlugin|^linkif\n^Tiddler";var t=config.extensions.linkify={defaults:{linkifyAllTiddlers:true,doNotLinkifyInside:"h1,h2,h3,h4,h5,h6,.header,.noLinkify,th",doNotLinkifySameTiddler:true},linkified:[],excluded:[],handler:function(n){var r,i,s=e(n.output).closest(t.defaults.doNotLinkifyInside).length>0,o=story.findContainingTiddler(n.output);o=o?o.getAttribute("tiddler"):"";s=s||t.defaults.doNotLinkifySameTiddler&&o==this.target;r=o.indexOf("##");if(r<0)r=o.indexOf("::");if(r>0)o=o.substr(0,r);i=n.source.substr(n.matchStart,1)==config.textPrimitives.unWikiLink;if(s||i||o&&t.excluded.contains(o)){n.outputText(n.output,n.matchStart+(i?1:0),n.nextMatch)}else{n.outputText(createTiddlyLink(createTiddlyElement(n.output,"span",null,"linkified"),this.target,false),n.matchStart,n.nextMatch)}},addFormatter:function(e,n,r,i,s){var o,u,a=0,f,l,c,h,p,d,v,m,g=config.formatters,y=e.substr(0,1);if(e.substr(e.length-1,1)=="*"){m=true;e=e.substr(0,e.length-1)}e:while(!o&&['"',"~","^","*","("].contains(y)){switch(y){case"~":if(i)return false;case"^":d=true;break;case'"':o=e.substr(e.length-1,1)=='"';if(o)e=e.substr(0,e.length-1);else break e;break;case"(":v=e.substr(e.length-1,1)==")";if(v)e=e.substr(0,e.length-1);else break e;break;case"*":p=true}e=e.substr(1);y=e.substr(0,1)}if(!v)e=e.replace(/\\/mg,"");l="linkify_"+e.replace(/([\W])/mg,function(e){return e.charCodeAt(0)});if(s){c="linkify_"+s.replace(/([\W])/mg,function(e){return e.charCodeAt(0)})}while(a<g.length){u=u||g[a].name==l;if(s&&g[a].name==c){g.splice(a,1)}else a++}if(u||r||!e)return false;h=config.textPrimitives.unWikiLink+"?"+(v?"(?:%2)":"(?:\\b%0%2%1\\b)").format([p?"[\\w]*":"",m?"[\\w]*":"",v?e:e.escapeRegExp().replace(/([a-z]|[A-Z])/img,function(e){return"["+(o?e:/[\W]/mg.exec(e)?"'"+e:e.toUpperCase()+e.toLowerCase())+"]"}).replace(/[\s]/mg,"[\\s]")]);f={name:l,match:h,target:n,handler:t.handler};if(d)g.unshift(f);else g.push(f);return true},indexConfig:function(){var e,n,r,i,s,o,u,a,f,l,c,h,p=config.formatters,d=function(e){e=e.replace(/^(\'|\*|\^|\~|\()+/mg,"");return e.replace(/(\*|\))+?/mg,"")};t.linkified=[];u=store.getTiddlerText("LinkifyConfig")||store.getShadowTiddlerText("LinkifyConfig");u=u?u.split("\n"):[];for(var v=0;v<p.length;v++){if(p[v].name.indexOf("linkify_")==0){p.splice(v,1);v--}}for(s=0;s<u.length;s++){if(!u[s]||[" ","!"].contains(u[s][0]))continue;o=u[s].split("|");l=d(o[0]);n=0;t.linkified.pushUnique(l);for(e=1;e<o.length;e++){a=d(o[e]);if(a.toLowerCase().indexOf(l.toLowerCase())==0){h=o[e];o[e]=o[n];o[n]=h;n=e}}for(e=0;e<o.length;e++)t.addFormatter(o[e],l,false,e==n)}if(t.defaults.linkifyAllTiddlers){c=store.getTiddlers();for(f=0;f<c.length;f++){l=c[f].title;t.addFormatter(l,l,t.excluded.contains(l)||t.linkified.contains(l))}}},indexExcludes:function(){var e,n="",r,i,i=store.getTiddlerText("LinkifyConfig")||store.getShadowTiddlerText("LinkifyConfig");t.excluded=[];i=i?i.split("\n"):[];for(r=0;r<i.length;r++)if(i[r].indexOf("-")==0)n+=i[r].substr(1,i[r].length-1)+" ";n=n.readBracketedList();n.map(function(e){t.excluded.pushUnique(e)});for(e=0;e<n.length;e++)store.getTaggedTiddlers(n[e]).map(function(e){t.excluded.pushUnique(e.title)})},init:function(){this.indexConfig();this.indexExcludes();formatter=new Formatter(config.formatters)}};config.extensions.linkify.init();window.linkifyTiddlers=function(){};TiddlyWiki.prototype.saveTiddlerLINKIFY=TiddlyWiki.prototype.saveTiddler;TiddlyWiki.prototype.saveTiddler=function(n,r,i,s,o,u,a,f,l,c){var h=[],p=store.saveTiddlerLINKIFY.apply(this,arguments),d=r;t.addFormatter(d,d,t.excluded.contains(d)||t.linkified.contains(d),true,d!=n?n:null);if(n=="LinkifyConfig"||r=="LinkifyConfig"){t.indexConfig()}t.indexExcludes();formatter=new Formatter(config.formatters);if(d!=n){e("[tiddler]",e("[content]")).each(function(){var t=e(this),i=t.text()||"",s=t.attr(tiddler)|"";if(i.indexOf(r)>-1||i.indexOf(n)>-1){if(s)h.pushUnique(s)}});e("a[tag], a[tiddlyLink]").each(function(){var t,i=e(this),s=i.attr("tiddlyLink");s=s?s:i.attr("tag");if(s==n||s==r){t=e(this).closest(".tiddler").attr("tiddler");if(t)h.pushUnique(t)}});h.map(function(e){story.refreshTiddler(e,null,true)})}return p};store.removeTiddler_Linkify=store.removeTiddler;store.removeTiddler=function(e){var t=store.removeTiddler_Linkify.apply(this,arguments);config.extensions.linkify.addFormatter("*",null,null,null,e);formatter=new Formatter(config.formatters);story.refreshAllTiddlers(true);return t};config.shadowTiddlers.StyleSheetLinkify="/*{{{*/\n"+".linkified .tiddlyLink{color:[[ColorPalette::PrimaryMid]];font-weight:normal;}\n"+".linkified .tiddlyLink:hover{color:[[ColorPalette::PrimaryLight]];background:transparent;}\n"+".headerShadow .linkified .tiddlyLink {color:transparent !important;}\n"+".siteSubtitle .linkified .tiddlyLink{color:[[ColorPalette::PrimaryPale]];background:transparent;}\n"+".siteSubtitle .linkified .tiddlyLink:hover{color:[[ColorPalette::Background]];background:transparent;}\n"+"dt .linkified .tiddlyLink{font-weight:bold;}\n"+"/*}}}*/";store.addNotification("StyleSheetLinkify",refreshStyles)})(jQuery)
//%/
<<tag "Discovery & Libraries" References>>for places not unlike this space where TiddlyEnthusiasts have tried to provide a comprehensive reference of all the [[plugins|Plugin]], [[macros|Macro]], [[scripts|Script]], or [[transclusions|Transclusion]] out there...
|details|k
|''URL''|http://www.therapie-sport.de|
|''Author''|[[Tobias Beer]]|
|''Owner''|Jeffrey Bierwirth|
|''Released''|2011-09-20|
! Summary
A TiddlyWiki powered website for a physiotherapist's office with lots of custom features like a sitemap, a "what others say section", tiddler thumbnails, accordeon menus, dropdown navigation, a tag cloud, breadcrumb navigation, news articles, and more...
! Preview
[img[http://img.tiddlyspace.com/Therapie-Sport.de][http://www.therapie-sport.de]]
<<tag [[GTD & Tasks]] Apps>>for Getting Things Done, task management, kanban, actionable lists, etc...
|details|k
|''URL''|http://www.TiddlyTools.com/#MissingTiddlersPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-12|
|''Version''|1.2.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#MissingTiddlersPlugin|
!Summary
define fallback content for missing tiddlers
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#MissingTiddlersPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#MissingTiddlersPluginInfo
|details|k
|''URL''|http://www.TiddlyTools.com/#VisitCounter|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-30|
|''Version''|3.0.1|
|''CoreVersion''||
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#VisitCounter|
!Summary
use cookies to track/show private, personal visit counter and timestamp of last visit
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#VisitCounter]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#VisitCounter
Developed [[TiddlersBarPlugin...]], tag trees, rich text editing, encryption and field editing... 
» http://visualtw.ouvaton.org
/***
|''Name''|TiddlySpaceCloneCommand|
|''Version''|0.5.8|
|''Description''|provides a toolbar command for cloning external tiddlers|
|''Status''|stable|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpaceCloneCommand.js|
|''Requires''|TiddlySpaceConfig TiddlySpaceFilters|
!Code
***/
//{{{
(function($) {

var cmd = config.commands;
var tiddlyspace = config.extensions.tiddlyspace;

var fieldsCache = {};

cmd.cloneTiddler = {
	text: cmd.editTiddler.text,
	tooltip: "Create a copy of this tiddler in the current space",
	errorMsg: "Error publishing %0: %1",

	isEnabled: function(tiddler) {
		return !config.filterHelpers.is.local(tiddler) && !readOnly;
	},
	handler: function(ev, src, title) {
		var tiddler = store.getTiddler(title);
		if(tiddler) {
			fieldsCache[title] = $.extend({}, tiddler.fields);
			tiddler.fields["server.workspace"] = tiddlyspace.getCurrentWorkspace(config.options.chkPrivateMode ?
		"private" : "public");
			tiddler.fields["server.permissions"] = "read, write, create"; // no delete
			delete tiddler.fields["server.page.revision"];
			delete tiddler.fields["server.title"];
			delete tiddler.fields["server.etag"];
			// special handling for pseudo-shadow tiddlers
			if(tiddlyspace.coreBags.contains(tiddler.fields["server.bag"])) {
				tiddler.tags.remove("excludeLists");
			}
		} else { // ensure workspace is the current space
			var el = story.findContainingTiddler(src);
			el = $(el);
			var fields = el.attr("tiddlyfields");
			if(fields) { // inherited via TiddlyLink
				fields = fields.decodeHashMap();
				fields["server.workspace"] = config.
					defaultCustomFields["server.workspace"];
			} else {
				fields = config.defaultCustomFields;
			}
			fields = String.encodeHashMap(fields);
			el.attr("tiddlyfields", fields);
		}
		cmd.editTiddler.handler.apply(this, arguments);
		if(tiddler) {
			tiddler.fields["server.permissions"] += ", delete";
		}
		return false;
	}
};

cmd.editTiddler.isEnabled = function(tiddler) {
	return !cmd.cloneTiddler.isEnabled.apply(this, arguments);
};

// hijack cancelTiddler to restore original fields
var _cancelHandler = cmd.cancelTiddler.handler;
cmd.cancelTiddler.handler = function(ev, src, title) {
	var tiddler = store.getTiddler(title);
	if(tiddler) {
		tiddler.fields = fieldsCache[title] || tiddler.fields;
		delete fieldsCache[title];
	}
	return _cancelHandler.apply(this, arguments);
};

// hijack saveTiddler to clear unused fields stash
var _saveHandler = cmd.saveTiddler.handler;
cmd.saveTiddler.handler =  function(ev, src, title) {
	delete fieldsCache[title];
	return _saveHandler.apply(this, arguments);
};

})(jQuery);
//}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#RelatedTiddlersPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-30|
|''Version''|1.1.8|
|''CoreVersion''|2.1|
|''Requires''|InlineJavascriptPlugin, NestedSlidersPlugin, StyleSheetShortcuts|
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#RelatedTiddlersPlugin|
!Summary
starting from a selected tiddler, display a list and/or tree of linked or transcluded tiddlers
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#RelatedTiddlersPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#RelatedTiddlersPlugin
<<tabs
	txtMainTab
	"Recent" "Recently edited tiddlers..." TabTimeline
	"All Stuff" "All tiddlers..." TabAll
	"Tags" "All tags..." TabTags
	"Plugins" "All plugins, macros, transclusions and scripts..." TabPlugins
	"Apps" "All listed apps.." TabApps
	"Themes" "All themes..." TabThemes
	"References" "All references..." TabReferences
	"Authors" "Listed Authors & contributors..." TabAuthors
	"Featured" "Featured entries..." TabFeatured
	 icons: ''
>>
|details|k
|''URL''|http://www.TiddlyTools.com/#ImagePathPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2007-04-13|
|''Version''|0.7.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ImagePathPlugin|
!Summary
Tell TiddlyWiki where to look for image files.  Permits multiple 'fallback' locations
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ImagePathPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ImagePathPlugin
|details|k
|''URL''|http://symbolcodes.tlt.psu.edu/bylanguage/mathchart.html#set|
|''Author''|Jeremy Ruston|
|''Date''|2013-10-17|
|''Discussion''|https://groups.google.com/forum/?fromgroups=#!topic/tiddlywiki/SCkkT0DOL8k|
! Summary
using basic math and set notation and symbols in the tiddler text
! Details
The above site was, of course, not created by Jeremy but lists a reference of available html entities that he advised can be used in the tiddler body to write basic set notations in a tiddler without the use of additional plugins to achive things like...
* http://www.rapidtables.com/math/symbols/Set_Symbols.htm
/***
|''Name''|RefreshTiddlerCommand|
|''Version''|0.3.0|
***/
//{{{
(function($) {

var cmd = config.commands.refreshTiddler = {
	text: "refresh",
	locale: {
		refreshing: "Refreshing tiddler..."
	},
	tooltip: "refresh this tiddler to be the one on the server",
	handler: function(ev, src, title) {
		var tiddler = store.getTiddler(title);
		if(!tiddler) {
			tiddler = new Tiddler(title);
			merge(tiddler.fields, config.defaultCustomFields);
		}
		$(story.getTiddler(title)).find(".viewer").
			empty().text(cmd.locale.refreshing);
		var dirtyStatus = store.isDirty();
		story.loadMissingTiddler(title, {
			"server.workspace": tiddler.fields["server.recipe"]  ? "recipes/" + tiddler.fields["server.recipe"] :
				tiddler.fields["server.workspace"] || "bags/"+tiddler.fields["server.bag"],
			"server.host": tiddler.fields["server.host"],
			"server.type": tiddler.fields["server.type"]
		}, function() {
			store.setDirty(dirtyStatus);
		});
	}
};

})(jQuery);
//}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#NextTiddler|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-26|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#NextTiddler|
!Summary
create a link to close the current tiddler and open another in its place
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#NextTiddler]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#NextTiddler
|details|k
|''URL''|http://visualtw.ouvaton.org/VisualTW.html#EncryptedVaultPlugin|
|''Author''|[[Pascal Collin]]|
|''Released''|2007-12-21|
|''Version''|1.0.1|
|''CoreVersion''|2.2.0|
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Pascal Collin]]|
|''Source''|http://visualtw.ouvaton.org/VisualTW.html#EncryptedVaultPlugin|
!Summary
Adds ~RC4 encryption and password protection to tiddywiki.
!Examples
; [[plugin info tiddler|http://visualtw.ouvaton.org/VisualTW.html#EncryptedVaultPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://visualtw.ouvaton.org/VisualTW.html#EncryptedVaultPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#GotoPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-05-22|
|''Version''|1.9.2|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#GotoPlugin|
!Summary
View any tiddler by entering it's title to display a list of possible matches.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#GotoPluginInfo]]
:see the author's info tiddler for examples
!Details
''View a tiddler by typing its title and pressing //enter//.''  As you type, a list of possible matches is displayed.  You can scroll-and-click (or use arrows+enter) to select/view a tiddler, or press escape to close the listbox to resume typing.  When the listbox is not displayed, pressing //escape// clears the current input.

''Syntax''
{{{
<<gotoTiddler quiet search inputstyle:... liststyle:... filter:...>>
}}}
All parameters are optional.
;quiet (//keyword//)
:list will not be automatically display as each character is typed
:use //down// or //enter// to view the list
;showlist (//keyword//)
:list will always be displayed, inline, directly below the input field
;search (//keyword//)
:adds an extra 'command item' to the list that can be used to invoke a full-text search using the entered value
:especially useful when no matching tiddler titles have been found
;inputstyle / liststyle
:CSS declarations to modify the default input and listbox styles
;filter
:a single tag value (or a boolean tag expression if [[MatchTagsPlugin...]] is installed) to limit the search to only those tiddlers matching the indicated tag or tag expression, e.g.
:{{{<<gotoTiddler filter:"faq or help">>}}}
|details|k
|''URL''|http://tiddlywiki.abego-software.de/#IntelliTagsEditCommandPlugin|
|''Author''|[[Udo Borowski]]|
|''Released''|2007-10-03|
|''Version''|1.0.0 (2007-10-03)|
|''CoreVersion''|2.0.8|
|''Requires''|[[IntelliTaggerPlugin...]]|
|''Source''|http://tiddlywiki.abego-software.de/#IntelliTagsEditCommandPlugin|
!Summary
A command for your tiddler's toolbar to directly edit the tiddler's tags using the [[IntelliTaggerPlugin|IntelliTaggerPlugin...]], without switching to "edit mode".
!Examples
; [[plugin info tiddler|http://tiddlywiki.abego-software.de/#IntelliTagsEditCommandPlugin]]
:try it out at the author's info tiddler using the tags command in the toolbar
!Preview
[img[http://img.tiddlyspace.com/IntelliTagsEditCommandPlugin_1][http://tiddlywiki.abego-software.de/#IntelliTagsEditCommandPlugin]]
!Details
Add the command {{{intelliTagsEdit}}} into the 'macro' attribute of the 'toolbar' {{{<div...>}}} in your ViewTemplate.
{{{
<div class='toolbar' 
        macro='toolbar -closeTiddler closeOthers +editTiddler intelliTagsEdit permalink references jump'>
</div>
}}}
This adds a "tags" button to the toolbar of the tiddlers (next to the ''edit'' button). Pressing the "tags" button will open the input field for the tiddler's tags and let you edit the tags with all the [[IntelliTaggerPlugin|http://tiddlywiki.abego-software.de/#IntelliTaggerPlugin]] features.
Inventor of the GieWiki flavor of TiddlyWiki powered serversides...
» http://giewiki.com
|details|k
|''URL''|http://www.TiddlyTools.com/#PaletteMaker|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-12|
|''Version''|1.2.2|
|''CoreVersion''||
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#PaletteMaker|
!Summary
edit/create ColorPalette using interactive grid/list
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#PaletteMaker]]
:» see the author's info tiddler for examples
; the @color space TiddlySpace
: showcases [[PaletteMaker...]] and other things related to colors in TiddlyWiki
!Details
None yet. Please review...
http://www.TiddlyTools.com/#PaletteMaker
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
<<tagging>>
Creator of [[TiddlyWikiTutorial on BlogJones.com]]...
» [[TiddlyWikiTutorial on blogjones.com|http://www.blogjones.com/TiddlyWikiTutorial.html#EasyToEdit]]
|details|k
|''URL''|http://www.TiddlyTools.com/#InstantBookmarklets|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-11-28|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion bookmarklet|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#InstantBookmarklets|
!Summary
instantly create bookmarklets by dragging onclick links to the browser toolbar
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#InstantBookmarklets]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#InstantBookmarklets
<<tag [[TiddlySpace Apps]] Apps>>for use on TiddlySpace...
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<title>Reply</title>
	<link rel="stylesheet" href="//tiddlyspace.com/bags/benspa_public/tiddlers/bootvelcro.css">
	<style>
		html,
		body {
			overflow: hidden;
			background-color: transparent;
		}

		#container {
			/* prevent a fouc if no images present */
			display: none;
		}

		.modal-header {
			border-bottom: none;
			padding: 5px 0 0;
			position: absolute;
			width: 100%;
			background-color: #e0e0e0;
			-webkit-border-radius: 6px 6px 0 0;
			-moz-border-radius: 6px 6px 0 0;
			border-radius: 6px 6px 0 0;
			cursor: move;
		}

		.form-actions {
			position: absolute;
			bottom: 0;
			box-sizing: border-box;
			-moz-box-sizing: border-box;
			width: 100%;
			margin: 0;
			border-radius: 0 0 6px 6px;
			background-color: #e0e0e0;
			border-top: 1px solid gray;
		}

		.form-actions input.btn {
			width: auto;
			float: right;
			margin: 0 0.2em;
		}

		.closeBtn {
			background-color: #DCE7F1 !important;
		}

		.primary {
			background-color: #09F !important;
		}

		h1 {
			margin-bottom: 9px;
			margin-top: 9px;
		}

		body {
			width: 100%;
			height: 100%;
			position: absolute;
		}

		.modal {
			margin: 10px;
			top: 0;
			left: 0;
			bottom: 0;
			width: 510px;
			position: absolute;
			box-shadow: #444 0px 0px 10px 2px;
			border-radius: 6px;
			background-color: white;
			border: 1px solid gray;
			background-color: #F0F4F8;
		}

		label em {
			cursor: pointer;
		}

		.modal-body {
			overflow: auto;
			position: absolute;
			top: 0;
			bottom: 0;
			left: 0;
			right: 0;
			margin: 65px 20px 67px;
			background-color: transparent;
		}

		.nav-tabs {
			padding-left: 1%;
			margin: 0;
			width: 99%;
			border-color: gray;
		}

		.nav-tabs > li {
			cursor: pointer;
		}

		.nav-tabs > li > a {
			line-height: 2.4em;
			font-weight: bold;
			font-size: 100%;
		}

		.nav-tabs > li.active > a{
			background-color: #F0F4F8;
			border-color: gray;
			border-bottom-color: #F0F4F8;
		}

		.active {
			display: block;
		}

		input,
		textarea,
		select,
		.uneditable-input {
			color: #606060;
		}

		.imagePicker {
			-moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
			-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
			box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
			border: 1px solid #CCC;
			height: 110px;
			overflow: auto;
			-webkit-border-radius: 3px;
			-moz-border-radius: 3px;
			border-radius: 3px;
			margin-left: 0;
		}

		.imagePicker img {
			margin: 5px;
			border: 2px solid transparent;
		}

		.imagePicker .current {
			border: 2px dotted #555;
		}

		label {
			font-weight: bold;
		}

		.form-actions label {
			float: left;
			margin-top: 0.75em;
		}

		fieldset input,
		fieldset textarea {
			width: 90%;
			border-color: gray;
		}

		@media all and (max-width: 550px) {
			.modal {
				width: 95%;
			}
		}

		#help {
			position: absolute;
			border: 0;
			right: 4px;
			top: 5px;
			text-indent: -9999px;
			color: transparent;
			height: 16px;
			width: 16px;
			background: none;
			background-image: url(/bags/common/tiddlers/help.png);
			background-repeat: no-repeat;
			background-color: white;
			z-index: 2;
			border-radius: 10px;
		}

		#help-info {
			padding: 0;
			border: 1px solid gray;
			width: 60%;
			height: 50px;
			color: #404040;
			background-color: white;
			position: absolute;
			top: 5px;
			right: 5px;
			z-index: 1;
			cursor: auto;
			border-radius: 5px;

		}

		#help-info p {
			padding: 10px 25px;
			margin-bottom: 0;
		}
	</style>
</head>
<body>
	<div id="container">
		<form action="#" class="modal">
			<div class="modal-header">
				<button id="help">help</button>
				<div id="help-info" style="display:none;"><p>
				Found something interesting? Write about it in your own space. <a href="//docs.tiddlyspace.com/Reply to this Tiddler" target="_blank">Find out more</a>
				</p></div>
				<ul class="nav nav-tabs" data-tabs="tabs">
					<li class="active" data-tab-name="post"><a href="#postForm">Reply</a></li>
				</ul>
			</div>


			<fieldset id="postForm" class="modal-body">
				<label>Title
					<input type="text" name="title">
				</label>
				<input type="hidden" name="url">
				<label>Post
					<textarea name="text" rows="8"></textarea>
				</label>
				<label>Tags
					<input type="text" name="tags" value="">
				</label>
			</fieldset>


			<div class="form-actions">
				<label class="checkbox">
					<input type="checkbox" name="private" val="private">
					keep private
				</label>
				<input type="submit" class="btn primary btn-large" value="Done">
				<input type="button" class="btn btn-large closeBtn" value="Cancel">
			</div>
		</form>
	</div>

	<script type="text/javascript"
            src="/bags/common/tiddlers/jquery.js"></script>
	<script type="text/javascript" src="/bags/tiddlyspace/tiddlers/chrjs"></script>
	<script type="text/javascript" src="/bags/common/tiddlers/_reply.js"></script>
</body>
</html>
|details|k
|''URL''|http://www.TiddlyTools.com/#ToggleSliders|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-04|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ToggleSliders|
!Summary
toggle (expand/collapse) all sliders in a tiddler (or ID'd DOM element)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ToggleSliders]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ToggleSliders
{{noTitle{<<tagging Featured>>}}}<<listfiltr>>
Plugins, macros, scripts and transclusions that are known to no longer work in TiddlyWiki version <<version>> are listed in the tagging section below.

<<tagging>>
/***
|''Name''|TiddlyWebAdaptor|
|''Description''|adaptor for interacting with TiddlyWeb|
|''Author:''|FND|
|''Contributors''|Chris Dent, Martin Budden|
|''Version''|1.4.10|
|''Status''|stable|
|''Source''|http://svn.tiddlywiki.org/Trunk/association/adaptors/TiddlyWebAdaptor.js|
|''CodeRepository''|http://svn.tiddlywiki.org/Trunk/association/|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.5|
|''Keywords''|serverSide TiddlyWeb|
!Notes
This plugin includes [[jQuery JSON|http://code.google.com/p/jquery-json/]].
!To Do
* createWorkspace
* document custom/optional context attributes (e.g. filters, query, revision) and tiddler fields (e.g. server.title, origin)
!Code
***/
//{{{
(function($) {

var adaptor = config.adaptors.tiddlyweb = function() {};

adaptor.prototype = new AdaptorBase();
adaptor.serverType = "tiddlyweb";
adaptor.serverLabel = "TiddlyWeb";
adaptor.mimeType = "application/json";

adaptor.parsingErrorMessage = "Error parsing result from server";
adaptor.noBagErrorMessage = "no bag specified for tiddler";
adaptor.locationIDErrorMessage = "no bag or recipe specified for tiddler"; // TODO: rename

// retrieve current status (requires TiddlyWeb status plugin)
adaptor.prototype.getStatus = function(context, userParams, callback) {
	context = this.setContext(context, userParams, callback);
	var uriTemplate = "%0/status";
	var uri = uriTemplate.format([context.host]);
	var req = httpReq("GET", uri, adaptor.getStatusCallback, context,
		null, null, null, null, null, true);
	return typeof req == "string" ? req : true;
};

adaptor.getStatusCallback = function(status, context, responseText, uri, xhr) {
	context.status = responseText ? status : false;
	try {
		context.statusText = xhr.statusText;
	} catch(exc) { // offline (Firefox)
		context.status = false;
		context.statusText = null;
	}
	context.httpStatus = xhr.status;
	if(context.status) {
		context.serverStatus = $.evalJSON(responseText); // XXX: error handling!?
	}
	if(context.callback) {
		context.callback(context, context.userParams);
	}
};

// retrieve a list of workspaces
adaptor.prototype.getWorkspaceList = function(context, userParams, callback) {
	context = this.setContext(context, userParams, callback);
	context.workspaces = [];
	var uriTemplate = "%0/recipes"; // XXX: bags?
	var uri = uriTemplate.format([context.host]);
	var req = httpReq("GET", uri, adaptor.getWorkspaceListCallback,
		context, { accept: adaptor.mimeType }, null, null, null, null, true);
	return typeof req == "string" ? req : true;
};

adaptor.getWorkspaceListCallback = function(status, context, responseText, uri, xhr) {
	context.status = status;
	context.statusText = xhr.statusText;
	context.httpStatus = xhr.status;
	if(status) {
		try {
			var workspaces = $.evalJSON(responseText);
		} catch(ex) {
			context.status = false; // XXX: correct?
			context.statusText = exceptionText(ex, adaptor.parsingErrorMessage);
			if(context.callback) {
				context.callback(context, context.userParams);
			}
			return;
		}
		context.workspaces = workspaces.map(function(itm) { return { title: itm }; });
	}
	if(context.callback) {
		context.callback(context, context.userParams);
	}
};

// retrieve a list of tiddlers
adaptor.prototype.getTiddlerList = function(context, userParams, callback) {
	context = this.setContext(context, userParams, callback);
	var uriTemplate = "%0/%1/%2/tiddlers%3";
	var params = context.filters ? "?" + context.filters : "";
	if(context.format) {
		params = context.format + params;
	}
	var workspace = adaptor.resolveWorkspace(context.workspace);
	var uri = uriTemplate.format([context.host, workspace.type + "s",
		adaptor.normalizeTitle(workspace.name), params]);
	var req = httpReq("GET", uri, adaptor.getTiddlerListCallback,
		context, merge({ accept: adaptor.mimeType }, context.headers), null, null, null, null, true);
	return typeof req == "string" ? req : true;
};

adaptor.getTiddlerListCallback = function(status, context, responseText, uri, xhr) {
	context.status = status;
	context.statusText = xhr.statusText;
	context.httpStatus = xhr.status;
	if(status) {
		context.tiddlers = [];
		try {
			var tiddlers = $.evalJSON(responseText); //# NB: not actual tiddler instances
		} catch(ex) {
			context.status = false; // XXX: correct?
			context.statusText = exceptionText(ex, adaptor.parsingErrorMessage);
			if(context.callback) {
				context.callback(context, context.userParams);
			}
			return;
		}
		for(var i = 0; i < tiddlers.length; i++) {
			var tiddler = adaptor.toTiddler(tiddlers[i], context.host);
			context.tiddlers.push(tiddler);
		}
	}
	if(context.callback) {
		context.callback(context, context.userParams);
	}
};

// perform global search
adaptor.prototype.getSearchResults = function(context, userParams, callback) {
	context = this.setContext(context, userParams, callback);
	var uriTemplate = "%0/search?q=%1%2";
	var filterString = context.filters ? ";" + context.filters : "";
	var uri = uriTemplate.format([context.host, context.query, filterString]); // XXX: parameters need escaping?
	var req = httpReq("GET", uri, adaptor.getSearchResultsCallback,
		context, { accept: adaptor.mimeType }, null, null, null, null, true);
	return typeof req == "string" ? req : true;
};

adaptor.getSearchResultsCallback = function(status, context, responseText, uri, xhr) {
	adaptor.getTiddlerListCallback(status, context, responseText, uri, xhr); // XXX: use apply?
};

// retrieve a particular tiddler's revisions
adaptor.prototype.getTiddlerRevisionList = function(title, limit, context, userParams, callback) {
	context = this.setContext(context, userParams, callback);
	var uriTemplate = "%0/%1/%2/tiddlers/%3/revisions";
	var workspace = adaptor.resolveWorkspace(context.workspace);
	var uri = uriTemplate.format([context.host, workspace.type + "s",
		adaptor.normalizeTitle(workspace.name), adaptor.normalizeTitle(title)]);
	var req = httpReq("GET", uri, adaptor.getTiddlerRevisionListCallback,
		context, merge({ accept: adaptor.mimeType }, context.headers), null, null, null, null, true);
	return typeof req == "string" ? req : true;
};

adaptor.getTiddlerRevisionListCallback = function(status, context, responseText, uri, xhr) {
	context.status = status;
	context.statusText = xhr.statusText;
	context.httpStatus = xhr.status;
	if(status) {
		context.revisions = [];
		try {
			var tiddlers = $.evalJSON(responseText); //# NB: not actual tiddler instances
		} catch(ex) {
			context.status = false; // XXX: correct?
			context.statusText = exceptionText(ex, adaptor.parsingErrorMessage);
			if(context.callback) {
				context.callback(context, context.userParams);
			}
			return;
		}
		for(var i = 0; i < tiddlers.length; i++) {
			var tiddler = adaptor.toTiddler(tiddlers[i], context.host);
			context.revisions.push(tiddler);
		}
		var sortField = "server.page.revision";
		context.revisions.sort(function(a, b) {
			return a.fields[sortField] < b.fields[sortField] ? 1 :
				(a.fields[sortField] == b.fields[sortField] ? 0 : -1);
		});
	}
	if(context.callback) {
		context.callback(context, context.userParams);
	}
};

// retrieve an individual tiddler revision -- XXX: breaks with standard arguments list -- XXX: convenience function; simply use getTiddler?
adaptor.prototype.getTiddlerRevision = function(title, revision, context, userParams, callback) {
	context = this.setContext(context, userParams, callback);
	context.revision = revision;
	return this.getTiddler(title, context, userParams, callback);
};

// retrieve an individual tiddler
//# context is an object with members host and workspace
//# callback is passed the new context and userParams
adaptor.prototype.getTiddler = function(title, context, userParams, callback) {
	context = this.setContext(context, userParams, callback);
	context.title = title;
	if(context.revision) {
		var uriTemplate = "%0/%1/%2/tiddlers/%3/revisions/%4";
	} else {
		uriTemplate = "%0/%1/%2/tiddlers/%3";
	}
	if(!context.tiddler) {
		context.tiddler = new Tiddler(title);
	}
	context.tiddler.fields["server.type"] = adaptor.serverType;
	context.tiddler.fields["server.host"] = AdaptorBase.minHostName(context.host);
	context.tiddler.fields["server.workspace"] = context.workspace;
	var workspace = adaptor.resolveWorkspace(context.workspace);
	var uri = uriTemplate.format([context.host, workspace.type + "s",
		adaptor.normalizeTitle(workspace.name), adaptor.normalizeTitle(title),
		context.revision]);
	var req = httpReq("GET", uri, adaptor.getTiddlerCallback, context,
		merge({ accept: adaptor.mimeType }, context.headers), null, null, null, null, true);
	return typeof req == "string" ? req : true;
};

adaptor.getTiddlerCallback = function(status, context, responseText, uri, xhr) {
	context.status = status;
	context.statusText = xhr.statusText;
	context.httpStatus = xhr.status;
	if(status) {
		try {
			var tid = $.evalJSON(responseText);
		} catch(ex) {
			context.status = false;
			context.statusText = exceptionText(ex, adaptor.parsingErrorMessage);
			if(context.callback) {
				context.callback(context, context.userParams);
			}
			return;
		}
		var tiddler = adaptor.toTiddler(tid, context.host);
		tiddler.title = context.tiddler.title;
		tiddler.fields["server.etag"] = xhr.getResponseHeader("Etag");
		// normally we'd assign context.tiddler = tiddler here - but we can't do
		// that because of IE, which triggers getTiddler in putTiddlerCallback,
		// and since ServerSideSavingPlugin foolishly relies on persistent
		// object references, we need to merge the data into the existing object
		$.extend(context.tiddler, tiddler);
	}
	if(context.callback) {
		context.callback(context, context.userParams);
	}
};

// retrieve tiddler chronicle (all revisions)
adaptor.prototype.getTiddlerChronicle = function(title, context, userParams, callback) {
	context = this.setContext(context, userParams, callback);
	context.title = title;
	var uriTemplate = "%0/%1/%2/tiddlers/%3/revisions?fat=1";
	var workspace = adaptor.resolveWorkspace(context.workspace);
	var uri = uriTemplate.format([context.host, workspace.type + "s",
		adaptor.normalizeTitle(workspace.name), adaptor.normalizeTitle(title)]);
	var req = httpReq("GET", uri, adaptor.getTiddlerChronicleCallback,
		context, { accept: adaptor.mimeType }, null, null, null, null, true);
	return typeof req == "string" ? req : true;
};

adaptor.getTiddlerChronicleCallback = function(status, context, responseText, uri, xhr) {
	context.status = status;
	context.statusText = xhr.statusText;
	context.httpStatus = xhr.status;
	if(status) {
		context.responseText = responseText;
	}
	if(context.callback) {
		context.callback(context, context.userParams);
	}
};

// store an individual tiddler
adaptor.prototype.putTiddler = function(tiddler, context, userParams, callback) {
	context = this.setContext(context, userParams, callback);
	context.title = tiddler.title;
	context.tiddler = tiddler;
	context.host = context.host || this.fullHostName(tiddler.fields["server.host"]);
	var uriTemplate = "%0/%1/%2/tiddlers/%3";
	try {
		context.workspace = context.workspace || tiddler.fields["server.workspace"];
		var workspace = adaptor.resolveWorkspace(context.workspace);
	} catch(ex) {
		return adaptor.locationIDErrorMessage;
	}
	var uri = uriTemplate.format([context.host, workspace.type + "s",
		adaptor.normalizeTitle(workspace.name),
		adaptor.normalizeTitle(tiddler.title)]);
	var etag = adaptor.generateETag(workspace, tiddler);
	var headers = etag ? { "If-Match": etag } : null;
	var payload = {
		type: tiddler.fields["server.content-type"] || null,
		text: tiddler.text,
		tags: tiddler.tags,
		fields: $.extend({}, tiddler.fields)
	};
	delete payload.fields.changecount;
	$.each(payload.fields, function(key, value) {
		if(key.indexOf("server.") == 0) {
			delete payload.fields[key];
		}
	});
	payload = $.toJSON(payload);
	var req = httpReq("PUT", uri, adaptor.putTiddlerCallback,
		context, headers, payload, adaptor.mimeType, null, null, true);
	return typeof req == "string" ? req : true;
};

adaptor.putTiddlerCallback = function(status, context, responseText, uri, xhr) {
	context.status = [204, 1223].contains(xhr.status);
	context.statusText = xhr.statusText;
	context.httpStatus = xhr.status;
	if(context.status) {
		var loc = xhr.getResponseHeader("Location");
		var etag = xhr.getResponseHeader("Etag");
		if(loc && etag) {
			var bag = loc.split("/bags/").pop().split("/")[0];
			context.tiddler.fields["server.bag"] = bag;
			context.tiddler.fields["server.workspace"] = "bags/" + bag;
			var rev = etag.split("/").pop().split(/;|:/)[0];
			context.tiddler.fields["server.page.revision"] = rev;
			context.tiddler.fields["server.etag"] = etag;
			if(context.callback) {
				context.callback(context, context.userParams);
			}
		} else { // IE
			context.adaptor.getTiddler(context.tiddler.title, context,
				context.userParams, context.callback);
		}
	} else if(context.callback) {
		context.callback(context, context.userParams);
	}
};

// store a tiddler chronicle
adaptor.prototype.putTiddlerChronicle = function(revisions, context, userParams, callback) {
	context = this.setContext(context, userParams, callback);
	context.title = revisions[0].title;
	var headers = null;
	var uriTemplate = "%0/%1/%2/tiddlers/%3/revisions";
	var host = context.host || this.fullHostName(tiddler.fields["server.host"]);
	var workspace = adaptor.resolveWorkspace(context.workspace);
	var uri = uriTemplate.format([host, workspace.type + "s",
		adaptor.normalizeTitle(workspace.name),
		adaptor.normalizeTitle(context.title)]);
	if(workspace.type == "bag") { // generate ETag
		var etag = [adaptor.normalizeTitle(workspace.name),
			adaptor.normalizeTitle(context.title), 0].join("/"); //# zero-revision prevents overwriting existing contents
		headers = { "If-Match": '"' + etag + '"' };
	}
	var payload = $.toJSON(revisions);
	var req = httpReq("POST", uri, adaptor.putTiddlerChronicleCallback,
		context, headers, payload, adaptor.mimeType, null, null, true);
	return typeof req == "string" ? req : true;
};

adaptor.putTiddlerChronicleCallback = function(status, context, responseText, uri, xhr) {
	context.status = [204, 1223].contains(xhr.status);
	context.statusText = xhr.statusText;
	context.httpStatus = xhr.status;
	if(context.callback) {
		context.callback(context, context.userParams);
	}
};

// store a collection of tiddlers (import TiddlyWiki HTML store)
adaptor.prototype.putTiddlerStore = function(store, context, userParams, callback) {
	context = this.setContext(context, userParams, callback);
	var uriTemplate = "%0/%1/%2/tiddlers";
	var host = context.host;
	var workspace = adaptor.resolveWorkspace(context.workspace);
	var uri = uriTemplate.format([host, workspace.type + "s",
		adaptor.normalizeTitle(workspace.name)]);
	var req = httpReq("POST", uri, adaptor.putTiddlerStoreCallback,
		context, null, store, "text/x-tiddlywiki", null, null, true);
	return typeof req == "string" ? req : true;
};

adaptor.putTiddlerStoreCallback = function(status, context, responseText, uri, xhr) {
	context.status = [204, 1223].contains(xhr.status);
	context.statusText = xhr.statusText;
	context.httpStatus = xhr.status;
	if(context.callback) {
		context.callback(context, context.userParams);
	}
};

// rename an individual tiddler or move it to a different workspace -- TODO: make {from|to}.title optional
//# from and to are objects with members title and workspace (bag; optional),
//# representing source and target tiddler, respectively
adaptor.prototype.moveTiddler = function(from, to, context, userParams, callback) { // XXX: rename parameters (old/new)?
	var self = this;
	var newTiddler = store.getTiddler(from.title) || store.getTiddler(to.title); //# local rename might already have occurred
	var oldTiddler = $.extend(true, {}, newTiddler); //# required for eventual deletion
	oldTiddler.title = from.title; //# required for original tiddler's ETag
	var _getTiddlerChronicle = function(title, context, userParams, callback) {
		return self.getTiddlerChronicle(title, context, userParams, callback);
	};
	var _putTiddlerChronicle = function(context, userParams) {
		if(!context.status) {
			return callback(context, userParams);
		}
		var revisions = $.evalJSON(context.responseText); // XXX: error handling?
		// change current title while retaining previous location
		for(var i = 0; i < revisions.length; i++) {
			delete revisions[i].revision;
			if(!revisions[i].fields.origin) { // NB: origin = "<workspace>/<title>"
				revisions[i].fields.origin = ["bags", revisions[i].bag, revisions[i].title].join("/");
			}
			revisions[i].title = to.title;
		}
		// add new revision
		var rev = $.extend({}, revisions[0]);
		$.each(newTiddler, function(i, item) {
			if(!$.isFunction(item)) {
				rev[i] = item;
			}
		});
		rev.title = to.title;
		rev.created = rev.created.convertToYYYYMMDDHHMM();
		rev.modified = new Date().convertToYYYYMMDDHHMM();
		delete rev.fields.changecount;
		revisions.unshift(rev);
		if(to.workspace) {
			context.workspace = to.workspace;
		} else if(context.workspace.substring(0, 4) != "bags") { // NB: target workspace must be a bag
			context.workspace = "bags/" + rev.bag;
		}
		var subCallback = function(context, userParams) {
			if(!context.status) {
				return callback(context, userParams);
			}
			context.adaptor.getTiddler(newTiddler.title, context, userParams, _deleteTiddler);
		};
		return self.putTiddlerChronicle(revisions, context, context.userParams, subCallback);
	};
	var _deleteTiddler = function(context, userParams) {
		if(!context.status) {
			return callback(context, userParams);
		}
		$.extend(true, newTiddler, context.tiddler);
		context.callback = null;
		return self.deleteTiddler(oldTiddler, context, context.userParams, callback);
	};
	callback = callback || function() {};
	context = this.setContext(context, userParams);
	context.host = context.host || oldTiddler.fields["server.host"];
	context.workspace = from.workspace || oldTiddler.fields["server.workspace"];
	return _getTiddlerChronicle(from.title, context, userParams, _putTiddlerChronicle);
};

// delete an individual tiddler
adaptor.prototype.deleteTiddler = function(tiddler, context, userParams, callback) {
	context = this.setContext(context, userParams, callback);
	context.title = tiddler.title; // XXX: not required!?
	var uriTemplate = "%0/bags/%1/tiddlers/%2";
	var host = context.host || this.fullHostName(tiddler.fields["server.host"]);
	var bag = tiddler.fields["server.bag"];
	if(!bag) {
		return adaptor.noBagErrorMessage;
	}
	var uri = uriTemplate.format([host, adaptor.normalizeTitle(bag),
		adaptor.normalizeTitle(tiddler.title)]);
	var etag = adaptor.generateETag({ type: "bag", name: bag }, tiddler);
	var headers = etag ? { "If-Match": etag } : null;
	var req = httpReq("DELETE", uri, adaptor.deleteTiddlerCallback, context, headers,
		null, null, null, null, true);
	return typeof req == "string" ? req : true;
};

adaptor.deleteTiddlerCallback = function(status, context, responseText, uri, xhr) {
	context.status = [204, 1223].contains(xhr.status);
	context.statusText = xhr.statusText;
	context.httpStatus = xhr.status;
	if(context.callback) {
		context.callback(context, context.userParams);
	}
};

// compare two revisions of a tiddler (requires TiddlyWeb differ plugin)
//# if context.rev1 is not specified, the latest revision will be used for comparison
//# if context.rev2 is not specified, the local revision will be sent for comparison
//# context.format is a string as determined by the TiddlyWeb differ plugin
adaptor.prototype.getTiddlerDiff = function(title, context, userParams, callback) {
	context = this.setContext(context, userParams, callback);
	context.title = title;

	var tiddler = store.getTiddler(title);
	try {
		var workspace = adaptor.resolveWorkspace(tiddler.fields["server.workspace"]);
	} catch(ex) {
		return adaptor.locationIDErrorMessage;
	}
	var tiddlerRef = [workspace.type + "s", workspace.name, tiddler.title].join("/");

	var rev1 = context.rev1 ? [tiddlerRef, context.rev1].join("/") : tiddlerRef;
	var rev2 = context.rev2 ? [tiddlerRef, context.rev2].join("/") : null;

	var uriTemplate = "%0/diff?rev1=%1";
	if(rev2) {
		uriTemplate += "&rev2=%2";
	}
	if(context.format) {
		uriTemplate += "&format=%3";
	}
	var host = context.host || this.fullHostName(tiddler.fields["server.host"]);
	var uri = uriTemplate.format([host, adaptor.normalizeTitle(rev1),
		adaptor.normalizeTitle(rev2), context.format]);

	if(rev2) {
		var req = httpReq("GET", uri, adaptor.getTiddlerDiffCallback, context, null,
			null, null, null, null, true);
	} else {
		var payload = {
			title: tiddler.title,
			text: tiddler.text,
			modifier: tiddler.modifier,
			tags: tiddler.tags,
			fields: $.extend({}, tiddler.fields)
		}; // XXX: missing attributes!?
		payload = $.toJSON(payload);
		req = httpReq("POST", uri, adaptor.getTiddlerDiffCallback, context,
			null, payload, adaptor.mimeType, null, null, true);
	}
	return typeof req == "string" ? req : true;
};

adaptor.getTiddlerDiffCallback = function(status, context, responseText, uri, xhr) {
	context.status = status;
	context.statusText = xhr.statusText;
	context.httpStatus = xhr.status;
	context.uri = uri;
	if(status) {
		context.diff = responseText;
	}
	if(context.callback) {
		context.callback(context, context.userParams);
	}
};

// generate tiddler information
adaptor.prototype.generateTiddlerInfo = function(tiddler) {
	var info = {};
	var uriTemplate = "%0/%1/%2/tiddlers/%3";
	var host = this.host || tiddler.fields["server.host"]; // XXX: this.host obsolete?
	host = this.fullHostName(host);
	var workspace = adaptor.resolveWorkspace(tiddler.fields["server.workspace"]);
	info.uri = uriTemplate.format([host, workspace.type + "s",
		adaptor.normalizeTitle(workspace.name),
		adaptor.normalizeTitle(tiddler.title)]);
	return info;
};

// create Tiddler instance from TiddlyWeb tiddler JSON
adaptor.toTiddler = function(json, host) {
	var created = Date.convertFromYYYYMMDDHHMM(json.created);
	var modified = Date.convertFromYYYYMMDDHHMM(json.modified);
	var fields = json.fields;
	fields["server.type"] = adaptor.serverType;
	fields["server.host"] = AdaptorBase.minHostName(host);
	fields["server.bag"] = json.bag;
	fields["server.title"] = json.title;
	if(json.recipe) {
		fields["server.recipe"] = json.recipe;
	}
	if(json.type && json.type != "None") {
		fields["server.content-type"] = json.type;
	}
	fields["server.permissions"] = json.permissions.join(", ");
	fields["server.page.revision"] = json.revision;
	fields["server.workspace"] = "bags/" + json.bag;
	var tiddler = new Tiddler(json.title);
	tiddler.assign(tiddler.title, json.text, json.modifier, modified, json.tags,
		created, json.fields, json.creator);
	return tiddler;
};

adaptor.resolveWorkspace = function(workspace) {
	var components = workspace.split("/");
	return {
		type: components[0] == "bags" ? "bag" : "recipe",
		name: components[1] || components[0]
	};
};

adaptor.generateETag = function(workspace, tiddler) {
	var revision = tiddler.fields["server.page.revision"];
	var etag = revision == "false" ? null : tiddler.fields["server.etag"];
	if(!etag && workspace.type == "bag") {
		if(typeof revision == "undefined") {
			revision = "0";
		} else if(revision == "false") {
			return null;
		}
		etag = [adaptor.normalizeTitle(workspace.name),
			adaptor.normalizeTitle(tiddler.title), revision].join("/");
		etag = '"' + etag + '"';
	}
	return etag;
};

adaptor.normalizeTitle = function(title) {
	return encodeURIComponent(title);
};

})(jQuery);


/*
 * jQuery JSON Plugin
 * version: 1.3
 * source: http://code.google.com/p/jquery-json/
 * license: MIT (http://www.opensource.org/licenses/mit-license.php)
 */
(function($){function toIntegersAtLease(n)
{return n<10?'0'+n:n;}
Date.prototype.toJSON=function(date)
{return this.getUTCFullYear()+'-'+
toIntegersAtLease(this.getUTCMonth())+'-'+
toIntegersAtLease(this.getUTCDate());};var escapeable=/["\\\x00-\x1f\x7f-\x9f]/g;var meta={'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'};$.quoteString=function(string)
{if(escapeable.test(string))
{return'"'+string.replace(escapeable,function(a)
{var c=meta[a];if(typeof c==='string'){return c;}
c=a.charCodeAt();return'\\u00'+Math.floor(c/16).toString(16)+(c%16).toString(16);})+'"';}
return'"'+string+'"';};$.toJSON=function(o,compact)
{var type=typeof(o);if(type=="undefined")
return"undefined";else if(type=="number"||type=="boolean")
return o+"";else if(o===null)
return"null";if(type=="string")
{return $.quoteString(o);}
if(type=="object"&&typeof o.toJSON=="function")
return o.toJSON(compact);if(type!="function"&&typeof(o.length)=="number")
{var ret=[];for(var i=0;i<o.length;i++){ret.push($.toJSON(o[i],compact));}
if(compact)
return"["+ret.join(",")+"]";else
return"["+ret.join(", ")+"]";}
if(type=="function"){throw new TypeError("Unable to convert object of type 'function' to json.");}
var ret=[];for(var k in o){var name;type=typeof(k);if(type=="number")
name='"'+k+'"';else if(type=="string")
name=$.quoteString(k);else
continue;var val=$.toJSON(o[k],compact);if(typeof(val)!="string"){continue;}
if(compact)
ret.push(name+":"+val);else
ret.push(name+": "+val);}
return"{"+ret.join(", ")+"}";};$.compactJSON=function(o)
{return $.toJSON(o,true);};$.evalJSON=function(src)
{return eval("("+src+")");};$.secureEvalJSON=function(src)
{var filtered=src;filtered=filtered.replace(/\\["\\\/bfnrtu]/g,'@');filtered=filtered.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,']');filtered=filtered.replace(/(?:^|:|,)(?:\s*\[)+/g,'');if(/^[\],:{}\s]*$/.test(filtered))
return eval("("+src+")");else
throw new SyntaxError("Error parsing JSON, source is not valid.");};})(jQuery);
//}}}
iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAOaBJREFUeF7tvQlwY9t2Hdbv6w/6X1KiL9uRZLtKUtnfpSSOrYrkuCLbSpTIVhLbUbkqKWdyYpdd/rHKUiKXHJdcHvS73+t5ntnNZpPNeZ5AgiAxEMQ8kgQ4EyAxzyQ4z8TO2gf38oHsS3azm/1GnqpV6AaBe8/da509nHPuxYXzdt7O23k7b+ftvJ2383beztt5O2/n7SvYfMnVb3gii993hrL/sXMu87eA//lTpP+eaz77V9zzuZ9zBFLfNU9Ff3xoIvxto3/uW0O+wI+ZfdPSUc7bF7bZAykg+ZP2mcTv2GbiH1tnEvdss8l7rrnMPW944clwNN8zEluKDMfy63jdA2hUAv5dGI0vb+EzGfd8Zs42m5ixTMf9lqmoxzoVMdqmIxWOmdjvAX/RMhn5jsEX/Eg67Xn7vJp9NnkBRH/fPpv4NW9k4e+OxJf/X280b8O/t4YjC8QYiS7SKOCLLZI/lqex+KcYZySK4P/z3/34nE/6DoO/zxjm19jSvie8uGyejo8Zx0IN5vG5f+eYnP8t51ToJ8xjQalX5+2DN8dc5rsj8ZU/54nm/xBuew4jdscTyha84RyNgHQ/yJxMrdBsdp3mFjcplN+myPIOxVZ2KbG2R8n1/dextk/x1T2K4nPh/BbN43vB3DrNZFZpIrksRMHH5nPgXOSez4pXeJYt60x8dNAfvDU0MvO3Hf7Z70ndPG9n3Yajy99DvP4XjmA6AOJXQMAuj85JEBTIbVB4aZtiq5+SnFovUHqjiAxjkyj7BmQ2P/1OiiEJJI5jsojmFrYgijV4jSXhYTwQBPpECD/kCCS34I08g/653zUOT/w567D/G1LXz9u7NsTwjxDX/ypIv+Kazzkx4jZ88SWawsjk0R1e3sbI3RUkpTeYQBC5hVeAX98FSt/l99I4NouKBRZb2YFn2YLw1uEhVhBi8hDEIgSxQJbp2J5lKrJomQg1GEZm/6rRPf5N6XLO29s220ziWxhZ/6M7vFDpCeXSI5HFwlhimWbg1kMY6TwiZbJLSeL3DlDyt7eFOMZRlByPcfB5vMeCiCK0zC1s0nR6VeQSI1HkHhCEcz67bxwP5c3+YOeQb/bX9d6JH5Mu77wd1zDiv4VS7VdcoVyZO5RdYzc7DhcfxGiPIUbzKDxEigyJnJNQSrQSlL6jiCPnLoYOiAEhIwJxct7Aecgw5wuMyOL+4Hg4px+ebjEPT/7mkHf8XAhKzRVa+AtI8Fow8pe8odzeBBI5Hu0Jdu+IzUcNfwAlkk7AOxPPUDr/IRTzB04ogwsbwiNw4uicS5NjLl0wTUQW+l0TT4e8Y78oXfZ5c4cXv2MPpP+RM5gJwFhF4pG5s5vnUaVs6BIoEfWhoHR+BbCnSiI8cFIaWFgXHoG9AXIZMk/F9lA1TBo84//I5Bz+rmSGr1+zzCQvWGdTv+ycz7W653OrfiR3nM1zuSYSulMY/DWiPgSUzvsm4HvswbhCmUZo4PkIFoJ1NknGsfmNweGp1gH7yC8aHcOSVb4mzRZIfccxl/2HcPk86ve5bg8v7WDEF42maMw3oZSsDwGlc74t8H0WAucyLHSeQ0BuQEOT0T2tZ3JM7xr77wZdo1+PshEu/2ftc5kqxMUNnm0LIoMWZRwMJUPRiG+Do6SdFZTO9Q7gXCaK/GAyvYLcIEtIdAmDoaDxzuT0Lv+/NntGf0Iy01evWQLpC45Q7pfswbTONZ8RsT6yzDU8EicFY703lIg8DZSOeQbgay16gw0xf+Cay4iQoPPNbercYy1mp+dPSyb7ajXLbOq/xsgf40SP63keCSnJIEqGem8okfq2UDreGUD2cIwkElyucsYTy+SeZxGkyOCf39O6x816q+svS2b78jfTVPwbIP+fOOezKZ7QmUWiF1/71OUrGerMoETum6B0nDNAKfniunEurnLCyztivYHzAuRFZBgLFQac/lmD3f3XJRN+eZt5OvFj1kD69+zBzCLP288tbgnlHzLE1wCl13sU7AV5kosTYRYBbEWDE9FCv31k1mBz/Q3JlF++Zp5JfhMj/w+R5ORHEevmFrcF+bLbL4WS0b5KOHq9DLbDAVD9sFeczqyJlUbYjAzjkYIGItCZHV8+ERinYt8wz6b+yBpIrY2i9p3LF0e+EvkMJaN9VaB0vYxS8mXwDOJMZh2JYZbgOUnrmy/02Udn9SbblyccmAOZC6bp5D+wBdKLiPmC/IRE/nECYCgZ78sOpeuUoSQABoeDqfSaWGZG5USakUBBbfEGhqyOX3fY7ZKVv6BtcDJ+YWg6+RvWQCbKS6NBjvko8w4uFlAyhgwlI35ZoXR9Mo4jn5EEYqv7NJ5cESIwTiVI7ZkpqE2OMb3F/kuSqb+YzRLM/Ip5JjXrms8VprMbxZFfeoElRjgOSsb8skHpukpxHPkMFgAjurJP/vgy8oE08oEodVh9e+oh24DBZPkZydxfrGaaTf/80HTCYg+mC5NwYfG1wsHFHLrII8ZQgpJRvyxQup5SnEQ+Q7ZZAphb2hF7CxBSScciMLp3ew3mMpPF+m3J7F+MZpiIfs84nahG5r83nlylCFyYfCGvCYBxxChKUDLuFx1K11GK05DPiCN8zi5skhPlIYeCXm+Quo2uDY3O+M/MVptk/c+5acciH+kn4v8SHdz0IumbX9o9RL6MQxcrGUPJSKVQMvIXFUr9L4V8zYfsUALZTjL5MngwTaAyMM0kyTCdQigYow6dJTI4ZP5ViYLPt0EAvz44lYzZAhmodYtiJa7/KA5dtGQQJWOVQsnYXzQo9bsUB+QzjtoBKLWRTHx8HckgEMe/w8gHPNE86Sfj1OmZo2ajt9AzMGgyGE1/UqLh82naycRPayfi9qGZVMGXKLp+7ngCKL2oUhy6eMkoSkYrhZLRvyhQ6m8pTkM+46gAGJE1otn8LpmQEKr9MWq2TlKdemhXrR28NTRk/HyWkdUjcx/1+cJ/qJ2MbznDixRa2SsqFmABHCeC14wgGUfJeEehRMDnBaX+HcWbyGfIdpGJP0p+FGABhFYL5I2v0MBEnFqcAaoe9FFLrzbbr9V9PpNEqtHwr/SMhhJDs2kaT2+IjsoCeF8R8KxhQlomPgolMj5rKPWrFFzCTWe2KZDbUb5eCbI9jiOfweSHWQDADHuBYI7aPCGqtc5QZc9QoVOj0xuNgz8l0fLZtA7X7He7RsINvb7IviuyRHPL+xRFB+VOHxKBdJFHccgYMJqM2ewO2WdXyDazQr7ohpgUOWpgJVKORelK3za+D5Su+qXx74P3SlF6jBIc7ctRzGa3yTK9TNrRRTKOL5E3tC7EfOh6AdkOpeQfFQDbVIx+YH4VZSHggVF7fDGqtkzTswEv1am0W+o+ze9L1Hw2rd42/X+3uoPryAHID6tE0FnuqOwFDolAurBS8mUcNQqTb55cpsbBBFVqotTvXSAHxKAkglIcJemAQHiS7No+ZVf3KLu8SznU1bmlbVpYBJCw8msuD/D7+HsWYYw/nwFh8nGUznccIst7ZJlapjpdnO42B+hp5zwZIAR/bPPQdcrXX0o8Q7ZZKfk8+pn84ArsA4wv7JExuEg1tll6aZmh8i4DtXT3BgyDg78g0fNhW61l6udqHcGxFleQ7JFlmlnaFwrljr6PCMJLe2TFyGmC8e40BQTutQSp35kVBlQyuBJKic+B4MXkGi2H8rQym6XVyTStjaeAZAlS4v2VmRwtz+cpH1+lXG6LMhCNuE2Mt3ofOYcS2HtNprZIa80c9J9R0R2iobE8TSS33pn8OYl8mIegL3ImN6nZHaKKoSl6qLJTZefArqa//7bFbPqwdy2X60cuVAz6r9bYArsdI1Eagf8MSq4pBAgR8AVIFyJf1JtEwDHTPrtKXaaUGDkHAsC/9cYUjc+vKxr9EMRoBfH5HUHicnCBVqYztDqRptUxEO1L0NpovIiRI+D38Hf+3OpEilamMrQSyFE+uizEkD4mHykNXSJ8QagmU5oelgiAUdUbIdPEEgTCS+KHiWccIh84jvzJJQCvI9k96odgWQD3+n30sGOQmju6Mzq9/j+RqPow7Y7a83P3NCORKrge7ewC+eGOuHMBoFQESgJgyBdcSj7PGzihoj5Hhu43Bw8Zrrlpjlz6FCVDcKGSkV8jQiYebnwRpejS3GJxpDPhIHcdrxsY5ZsgdWs2R1uBBdqCOLbhRrf5lf8PY25CLBsQy7q/+D3G6liKlvGdUiFgkB8iXQDXwUgntslrypC6af7QdTCq+6IIb3xf4/Zbkc9elW3KthUjH+RDQzSeJ/IvEtkTm/TKFqT7ukm62W6m8qbu/V5N/ycSVR+m3ekb/n/uaSd2qiyzogNj+YJwSTMAewJWLIugNBSUCoBRKgKe6nTPr9GAJ0cP4O5LDfasCSGmNUKB4TxlsruHDF5KfoZdfW6TlkJLgrCjpDPBuwgBeyBxHwIppNaokEZHJPD/+f296ArthpeEKDans0UxCBHFhJiWIXgOJxnkCuLOYbk/uI4DASzuUXxshdydMaqHeEuvh1E3ECMzDDab2z2RfHn0i7jP5AM8+mXy/Xj1wgu0jCTogW6CrnbY4S0HqL27J2SxWP6MRNfZticaz/dv9biDd/rHqNYVIW9uj8YkVXIHuaOlIniTJ+BXb3id9COL9KjtsLHuA8amEI0NZSg7t0EpfFYYWTa6hDSSw8XEmnDZa6MJWmf4k7QFAnchiH0QhoTg1CjghHvIb9hjsJDWfQghODYLgT1MFrmF8Ab4+FFko1sUcC+SozksRFx6XQzOccwY0oGFXWEDJfLZfjL5suuXyfcByCvJnS3QAAz+3DRL13tH6WaHlV41te1pNP3/n0TZ2bbrKs9vXen27DwZnCbV9CK5cwXRGeQ3QgTc0bcVAf9/OLJBBhzgSfvrI6UbLtSrTlB6cpXS+f3XDS3I36N8aJlWOKlDDGfyecTvhZepAOLFKFcg960hvAOEEFsRXuQgNOBcKxBYLr1BaXgfIUZ8/AAIabnABvkhXmNjSIj56PW1DibhCVYokN87NfkYL4TiCAIgsqb3qNoVpht9PrrW6aCH9V3Urur1W63Wn5RoO5tWoR+9cFM9evtKzwi9tM/TUHyHkJzTMDrCneIOyiKQ84GTRDAS3QT5eXrWGXrNONVwnc72KIVHlymTKt4tdAgwOLvhvOzyh2OCHCaJyRKuvVgKnAFYaRsIEWvCo2xOwNMMQwTAymSGchAaeyFZBHJek0JllJpcIw9ErFLIB+4CHUh4zdMrFITAZfJL3f40e1ZgArYdO0p+DpUA7O/EIGwbz9AD/SRd7nTSjUYt1berts1m8/8hUXc27cWA98/e7B2Os9LqhxNkh/txoAPckRF0iGMSi4DVyvkAi4Av5KgIuLzxxTdpEF8oR3l01DBP4DKtcJ3TjgXKIPFL4jvCoBJQ/QjyF+GeVzk+g4gNiIDj9j4yf2US3xF8g6IM6f+7OO/mVJbW2RN4o7SMZJNFkIIIuG+yAESf0zsU8S2TC2KuVcgH7iHh7bamyTKzSgEIRpF8gD0sj352+8MA0iVBPtufMYAK6aVtni53eehqu40qGjupv7+/02Q6w5LwXo/zf72m8uw9NExTxyTiG05sz6ADAHeIlVkqguPCgS++RYNIHCp6wq8bBNAi7o/q05SZXYdRX19VTMHlLsRWaYVjshj5SdpBTGaXf4iwDwUIgb0M5xiyCJbgCbIIFbz1Te6nnOimw1s041wkG0RdppAPcNXTA2OaUQLPIKGW3f5R8g9GP2ztKiGfObCk9qlpJEXX4J2v947Qo7pOam3vSBgMgz8r0fd+7XH/8IWr3e77iP9U6QgLxdlxchtOzh1gNbJb4k6yCLjTsicoFcEoSiQDyK9ETXzUEIxWjBK3Ki6y6CTKy1Lii0BshaGXYfBVGJ5j8Q5KuQLcsyJZHxD7ECHnG+yBVj0QAbxCJsfPMigckC8S3ZUCpSFm32CG9MfkAw9ag9TrypFpdo0muapSIF+MfgXyxSDE+51Ti3SL8wCVl27W9lBNc8eOTqf7BxKF79fKBkZ+4obaN3oVB2/2pcmc3BPkywLgzjjRiZNEMALy9SC/CrXwUQMwKjA6HCj5gt4lSsW3RZ5QakgWQHppl5aQlQvyUZptYxQKt69A0AcH4hGXjVwhrEEAK94Y5WdylFzZI1THRfJxDZz3JLg0nFgld2+COhtfzwcYXAWpPQtkCq4LL6pEPid9suuXyWcOWABqjLInxhkhgMuNOnouhQGbzfb+S8Vl/d7fhAA2bkJh3dN5cUJZAKUigIhFUsgdLg0HHiSM2rFlqtYok/8AGGoKk9+co3SQbxv7NFkU4NiKGLuA7H6FSzEYfHM8TfsgQCQGSgSdJeQE5ADolPS6h8RwA2Fo1RmmFYSELDxDYmVfbOJg8mUkEjs0N7JMjrYoSrXX8wHG04556vUukmluUxAvyIc9mfyjcV8mX9gf/9ej9Kz1xOl6zzB90m6nx40q6u3tjSMZ/BMSje/eHvW5LyK2FDjT7IPSeLSXCkB0AuCOcVIoVwYsAhfI7/eD/P6Y4kUzejAq3JokJZA1x5EMlVYLMlIL27TMhnZFRLnHrv81YpTIe18cOUcBWekBEkVsY+SveWK0gr7lx9KUym5RDB/n65AT3wgcVRzEjtsWyAyxP1bIBxjPukLUO5wnc2jrEPk8uJTIF7bHe2bkARwGbqhH6ZraR/ca1NTc2rqNMPBfSTS+W3ve7/7GbZWj+4Z6hF5Y50gb2njNAxx0BOAOiqQQnXfEd0kD8msGPl3cOQrOjh0dUZofXaFYerdoMOBABDBkYnmPssi+V9xRWkUOsoVSrMBuQozEwygwSYKoIvZA0A4OtIXPb8TWaB1srICNpfAqLYZWKDe3QtngMqUDy5REvIoj/Y4Ckak8hZHszk0sUnB8gWbHFmjaD/hyNMkYlYB/B0ezSErTtGIP0Qr6l4GnisELyCukco0fWipQdGqd3No09SMf4FJQySYvVBHqHVkic3j7jeQf2B5/08ytFfMACOBWQx9V1TUVNP39/0ai8t3ag17Xt650OrysrFpPggzR7YMEUAmyCKyJPVKD/FptQvEiGVzyWTAaxpElx6B4NpJsMFkIUXb/GFF5f0oYdx2xdjeA0Q9y10FkFEQFQA6DCZqSCBobyZJ/OEs+BYwCXk+GXK40OZzIaewpMtlSNGhJks6UoAGgbzBOvUC3Pkaduhi1a6PUrIkI1KvDVCeB/23Bd8PDaYSBCC2jHFtAXxOpTQqj/zyfzxXQvFQWB9N7FPStkq0rTi3H5AOMSnWUVKPLNBTdEfaUyZdx1O48KHWRTbqvm6DrEMC1+n56VtNE6r4+rd1uf/enkt3u8fwHV1Te8E0IoH0cmSqIPUkADHNin1T+Fao3JBUvjsEl3wBGgUuXxmhbpzmMjoNyERAikISQwuhdBvkrthBtceyHN9gA+UywwZw8IKilP0INfRFBTA3KzMruEL3omqdnHXP0BEkWZ9v3j6w3nAV0yG3CENQmStMV6zwtWUOUmlv+dBOHRL5c3wcwssfdS2RpiaBmP74/r/ohQN8ymWKwOex6HPkMFsBgbJuemQJ0s89Plxt09KimjVQ9vXGr1fp9ic7Tt7tq769e7xtbv6XxiUzTmi4odkCGOblP3f5VajCmj3VxDFa/tTtOAYyGQGavWC7CSAcziDCemDzK78E952nZPAfjhmhnBrEFgoiML5LBED/xHJ8FnjYGyNsTpUVPlnamc7RimaNl/QylxzIUQvbPE2K8WsrVkDytyzN7s9Ob5DblaLAhTA+PyQcYtbokRLBC5vj+seQz2EMYkW9Vu6J0u3+MPm4y0r3aLuro7Fo3mUx/UaLz9O1Bn/eHiCn7d/r9wsWcNPqtqQKpxlepyZwVs1xKF8R4CdWbmyPkdy3RDEYDG4WNczCDyKNGEkIsuUlZX4qWh4K0agvD/edRg6NUsqeprvN4F/o+YFFxZfII5DLBz4AXQCVQ0xCkeqAZ6KwPkrN2jgIYqfsoefbQt1UIdal/ijIOeAW4sZnl4mpp6VIul3hjmQLNjK2TVZOi3obj8wHeG9EwmBaDigeXkt0ZzIsJ5XmLP0N3B8bpYouFbtf3Umtbx77RaPx7Ep2nb4/6PGWcVNzXjQsXc1wCaE2jFp1cpxZkuSe5WY77rHr3UI5mMAp4jpuNwsaRl5XZG4g9BiwABM+cPUzLgwFad0ZpP7hEOzCs35ikKrh1JonxBJDJqgCYrOqGgCCrEWgBOoBukNYLaAAdMFgXJBNgARx1c+QBoV5gGBgBRiX4gLGaOZoAJoGp6jmaxWuyM0p7bAAkkfsQwJo1THn1JGW0sxRGyJzKF2gC18PXyCit7ceQJI8Pr5KpPUYNjcqlIYMHEw8q1fgaWTDIjtqewQLgSqALlcA97QRdarPTzUYNNTa3kl6vf7fVwWaj98ceqt26G4gpj43TcDHHC6B/dpPakMw9ajt+VHLc74PaWfVTvjXyYRSIcpGNwQaSRgl7BCEGiCA2uUAL2hlaAjaRhO4H8Edk73PGBI00hWgYJDBGJfgAP8BkjQNMFmMaYMKCQKh2nsL18xQDEuhPCrlIpjlMuRaQ1xahJVQlq11RWu+O0WZPjLZ747SrSdBeP86vTVJBl6KCIUU0BNXzxfMFQKiFmTxtOmOU75mgTNc4RZwJmljcF0vmLHT+GBPP4CqJy+WxADJ9+xIZGyP0/IR8gPdK8ODqxSDjwXbU/iwAnhJWw4Xy/gDkbXSzSUt1DY2k1WrLJUpP16p17u/c63H5bmr8VG4JihVAJQHo5repw7NEZQore6VobZinoc44+b38wMQ9YQA2BNe78rzBgRAggMkVlE0jaVroHMOomqKtYRifBYAEq4CAuAFi1pgoYBNkbYGsHSarL0G7B2QBMllmwIIOW6WOc1Dl4MkzLAyeZxXARfKEBsODzvEUJ3dUdBYdlVWLPERkdSgjCf0qTOdp252gfDcE0DBM0cEQjS3skw/XJI96ns8X5OPQPK+P1IH84xtk0WdpoD4sQo+S7Rg8W8iDrG96g2xHRMCXwvlZ//w6PdRPohT0041mPVXV1FEfKgGLxXL6SqBc4/qp2ypniJMKXgMYSuy+JgBjdJc6R5apold5lk/GK7i4weYoue3LNAzVs41LbcsiOLAtCwF2HUdlEHHGKdc4TIvd47TtBZmz+CMbnAmQ6yOZPCaMD3igLOmATBRnXpMAB2M5zsBti2NxjcaAZzkAlyJckpS+x58RKT1/D8dhMc7y8STA/e56kpTvHKdMlZOimlnyZ/doBKc9IB4QxAPcXdF1VE2+4TUy9iSpA17ppMT2SUeI2t156g9sHuJBBs8IPjJM0TV47estBnpeWU0qlcqHRPA7Eq1v3yCAX7jZ7Vi6PTAmskvTEQFwudc1ukI1A8fX+oyncG16xH3b0CKNTiCRhHrZZfHFH+IMRpI5Y4zl9ilsjlC2xk0LbX7agXERVIvGZsMzgTKJ8AqCHJlMJVLfBjLJ8qs4rnQOPpdIUGTS0ReMetEnFtfEIu15U5Tv8FP6hY2iqinypXbEEi5fnzzqBfGArF+GZ36XvK4VGmyNIdE8Ph9glHWFqcOLsIHBV0o+25QHKW/Y4bztWrOBnkIAXd3dIQjg9BtEnmucP4AA1tgDKAmA437LELJOhU7K4NUvTX2ITAMZGh1dJ3uycFDP8lIyX7zwBkCppxXLy1kIwIj4/NJBueZR2nHDlYtRLIGNz5AFUSoKWRgyZCKVUPq50u/LxxSE83mk88nnl0inCXSYMbYAASBktfooVWalSOcE+ZA3KY16vm7ZDjKGp7bIbs6TAYOl7IR8gNGkTZGGQwG+VyoAS3qPnhpn6CoEcBUCePJSCCCPEHD6ewbK+pw/uNHlWLuDsqLWEysKACeRT6hBaVKvPn6al8EuzdiFhM2zSs7op6uIosMS+JjCFUpGEqMFdh3N7NG8fp7Sz22Uqx+mbUcC7pyNzUYHJhkSGbIYSsGEccg4DUqJLoVMeCnp3BeQfvDqW6BdV5IWmkYp9dhMkY5xGoEAWNgy8UrkH9gDGf6ob0MMFh40SkvHDB5w7f1J0vnXDtsTx7Wk9+np0KcCePSiijq7utbMZvMPJFrfvskCuKsdp3pvQtSZpQIwja6RWp0ULl6poy+luG+15skd3DnUWRmlhpCFwMYS+QFCQFA3T6knFspWu2nbEqWCD3/klFoYHq8ivrMQSl5LhSHjKKGlKP0cQyZaPhYfVz6XgES4/whGc7RjQ85SN0KphyYKtY2TJ7lLLvzpuFH/mj0ie2QwL9IAkuXyY+xaBbsOwO4OJI+Hvovjm3C+J6jYZAE8LK+kjo7ONYSA9xTA8OsCsPrXkWGmUIMrd5SVWqeKUo9lgXRz24c6W4qjRhFCAM+uxQLN6EOUfGSmTKWLtpBVF0bwx1KjMxEySgUhSAOJMuQkUAn8N2Af392DuHZw3G1gE2JbB9ZGs7TszdISkAdyngzl3IArQwvAGt4jfK4wnKWtoShlX3kocX+Igu0T5IRLtqNrb0M+1/g9qPXbUPM/PrJLuhTsGXp0aTJNHhYAg2cDHyMHOHsBKHiAwZlN6kJHSu/kUUK5OkbtSFoGjslcZRwyEBtsoUCTxgjFn1oRBuy03jdL+25kkHC1PNrY6FsjvEHkU4IWQE4WyICglCtNCSDmTFPEkaawI0Xz9hQFbSmatSVp2pqkCUuSxs0J8jNMn8JXgpGhBA0bE+QajJPTECebPlaELkZ2vI7i/SzOUUDf1jVBypQ7KHbfRDPd0+RgAaCrpdemdO1MPk/0NKPWf9B6chL4uDlIvYYMGRUGlaIAOt9RAM81jh/clHKAGreUBJYIwA633q/PiHn9kxJBxjNVRBLB1qEOHwchgFyBxiwJCj93UPKBmZZa/LRrjSNDzNE+RlsIBPpAzDAIcIMYF+DQx8kKUizAEAjSD0RJC2g0EeoFVH0R6lSHqa0nTM09IarvDlFt1zxVd87Ty455etE+R88x+p60BulRS5DuQ9wMvkWNwdd5FL04xpwpSXv2hOhj6qGZwk9tNKkNQQD74lqUrlEG1+89E0x+7s3kNwVpAPnBoDFHrvnXw+pgrCgAnge41mSgxxBA57sKoGrA+efvqByrYh7AHnptHsAV2iW3Y5mGEOfbG+bFTJ9Sp2WwCLh80c69hQjYaDjXCMgO1o9S/I6RMi+ctG2IiHoqi1HsBsFM2AOMCJkkJkTp3B8KfD5T2zzFdQnaNccoW+Gi+O1BmnvlJR+8gg0CENeidI0Az+rx7F4L4sSbyOdQqwX5ZlWSRr1r5Ii9vjagC2+KeYDrfWMoA/VU9uIldXd3L0EAp68CanWu/+h+jzPDM4HPzUHhXg5NBKHzI+Ob5LUukQkiUKFzJ81kMcp7IILhJdLPH58THACGcwfWaapnhmI3DZS4N0SbfUG8mUFuEKeu9g+zGPQ2YOIfNAaorSZA/qZ52hiI0TYS1uQjC8Wv6WimdZzcs+u4jpNXT3lW701T6AwuC3V1IbKAfB8qqqNJNXsZ9iS8Y+uBbpKu9vroWqOWXlRWUU9PT8hoNJ7+ARL1Otd3H/a6pnktgDccviYAPjFiF4tgxL5M5tYY9UEEj05Y3mS8RE7As4eDkcMTGUqwJ/cRk2MUvWUQIliBYbfMcfKrI/TihBVHJTBp7KWYOF5Aegw8bQjQc+BlfYBe1QWoFmisDVAL0FEzS6rqAPVVz9LAq1nSV82SqXKWrC9nyVkxS15gDP9e6I7Q3kBE9C1xd4hiNww0oZkjW+r41TvGQHBLzOo9QehR6q8MXiPQ14XJ2psC+WuKFRULgNcCVNNLYlPIxx0uulbXR5XVNajU1GNDQ0M/LtH69q3V6P72I7XLyTtMWFXHrQayCIYnt2jUtUKWjgRpodTjSkMZ1QMJMYtoih+eGzgKK/K94ZEFCpXZhQCy5U5aUwdpDEbvqw9iBM4KMFndIKoH6ANZWpDFhA2BMDNgZ9IAF+ABcSOAT4L/BYgExiVMAtPlszQLzAEhIIr34kCqIkCZlwFaqArSSk2QdtvDRP1x2oJnypTZKHZrkObRx1Ekndx3pWti6EM7Ihw+6379/ohSvIAdDfVhsvWlyQe3755XHjQsAN6t3T6xIFYDeTn4ek03vaqpRf6jMaOd/tdLu0yejx73uWt4WpFvCOX4cmxCg3Dgndkmn3uVrHBTrNiTVrd4NMrr3MctcTLYiCIMdM9QFKMrAQOvNI5RHgIIVAYESYwAEATmgTAQBZiw5IsApUFYDp9dfBWkfDUTN0drtXO0WTdHW8hdtpHE7jaFaK8ZZWZriIhJ7WQg3+gCcC7qiX6KXgnwZKSN074pTist4xSHQFmkk+oAuYIo0RQGC0NeP2FPqGQbGZU8jwLy7f0ZQT7nXErHYzAvnKM1jibp7sAYXWwaouuvOqi2voG3h9darVaJ1VO2R32e30dGWRA7ggIrIs4cV8ow2D1xZ+3qNA1CBBVvWOduseSOXeIUwIVxGBgZXqDwYyvFruqEF9hunimSwyR1SJAJQ7L5GlmlYOI0QL8EkEg6CYYEUmkA1QUNJXlmhYcW/CtgTaFDEjDCUeSLfGSjZxajHx7qhp5CyP5HvDn0XVnUYv3Et0K12uO3yzF4PcAI8h1a3scI8sMne0r2zByiqxxhuoWc7VKDnm6+bKaGxibS6XQXJTpP3x6q3b/BdwTznsC2saxQ2bFeQAIrlUXgGECtiot4dcLixiNkvu1IgnhdQelYDCsuzsm3WGGURe4aKYEsO189THtakMkkMYzSqxJhqP0FZNLOAi50zJWmHWOEFpDxx6/rKXLPRJMQg2t+U9H9F3dMrVEjr5+gYlGyB6MB9hqC3VyGBfKNrL82ha4EFoAhuiVyNb5/8+NaDd0ur6HmlpZ9g8Hwv0t0nr6VqZ0/uNphXy3uCo6LXcGlcwHHwRnZg3LReX1OiKD2BBHwHcKdnhMqA8kLDI8u0lyVB15AK2rtta5p2rdipDIZSiR9SID8PSSj+XofJUF8FInfXJWXPNOrCIfKo189tUGtJ+yY4rDYwnsmGiLkHlok3+i6YqmnBBaANryBUI36HyH7crWK7pe9oLb29s3BwcFfk+g8favQOH76dpct/jb3BRyFE53ni3AZF8RFNZ4ggkqpMjDGjlG7EMEeTfTPFUMB3G0Kr1wWFnh0gxBFoj4E4PaZ/OWWMTFBxWXf/Asn+WxJsifQf4UBwrOg7a48PT6mdOXqhBfOTI1R8lryYlHIgXBx9DjHgUOzamaZbvaN0nVUbVerOuhJ2TPq6upKoAJ497uDarWObz7udRj5rlMuL8SdQSdkt0fhiO/jYtbJbcrTUGNEKJyVrmSEOsRFsQNWafMjGxXg5EokhEgGOeHKPHfQBpKugoNFgA8qEXaW8GRpbyhGK81jwgux6w89sdI4z/pFlRe85Iz/eZdyxs9z+zyHwnMpXtsSjY5tiGVzpWMpQSSA8V2xIfQGeLrc7aEblS1UVfWKbw8zmkym01cAcms3ui686HddQlwpcBjonFzESd++cwxHokCj/g3yQNlDTVFqO0YEYvMj4uNJmx85H/COLdEMCBAiuI6kEKOPE7GDcPAhhCAdc8cQoeXG4nRvDCM//NBCE/BCrlkksuwZj4z+N2X8/DQxnjsxtcZoxLEs5lS4rC49xpvAIZk9MyeA13qG6WLjIN2qaKDGxkauAK6/cwUgt0qt57+EsjZ4oyEvChljO29MBI+CFT0CZbPCWemdcHdKU8cPWuZEnOQdxuzWXjsWnxfve/15CtaMUPSOESLQUwbZ91rnFO0ao596g7MICxLx+xbU+gPztIjkM8mTPThnGCOfkz73zJpi0meC9+OMv+aYjJ+ndvtBvqUjLuZQeC6Fd0sdPc6bwCG5Z3a5OAMIji696qG75dXU1ta2q9frf0ei8d1bpdb9Uze67MHLXW4qRx7AN4icVgAMedZw2L5MppaYcHtKmx4et82L6VHNzDGVAc5tT+2TZ3yZAkjCeH6AZ994qnixZlgQtY94LIRwQKT0+jaQPsvf5/yCRbXaNkFp5Bxx9jo4F09MjQ+EyImM35Z9XajyDTL1g8qrpc9APk/tWruSNOpeJe80EmCc9uhx3gbMRdt4TjwcggXwyfNGevS8gtcAMoj/f1ai8d1bjdb50UOVtfFat1vkAXyyt00Ej0LMGk5swt0h1rfFSA0RKK0fPEVlwNOkx64eSiJwT62KnCDMLhmjMgGPkH5io3zdqEgQ960oB+WwIIvgqBhK35c+y8Rva+dpuclPWV6NvG+iOIhn8tnz8Ewfl6ZyX0r7VlzaPf4GGb4dzFAXJps0tesJvMW6yAkwxLapxh0D+cN0tctF155WUcXLlxz/BxD/3/2+wNJW1W//xzd7vXs8LVyLk1l5lUuhM28F2Jn3v43A7Znb42L7k9L6wfNuafUweLwIGO7ZNRrDKA3UIiTwCEWZmOTVQxDHHmGldULkCNtI1HaRwO1bEsXKAeBX/j+P8m1dSCSUPNrzdSOUQ24hiL+qE/Gep3gnewOiHHXwFLZCzD9Y10dCoFTuVaMS4tk9hzS7555TThzfFjz6e5D9l5kC9Emnky416OhOWQU1NzfvIf7/gUTf+7cmg/vnb/e4I5xhPjcHxP7z0yaDhwAR8NQxuz9LZ0KscSvtLBKrh7yP4DgRABx/7YldGh5eoKmuaZqrdFMExEVB2oEY4LIXqjy01OAT07ar7ZO0Bqy2TYr/LyGULL7yUvaZvRjj8T1GBP9m4nkSyo/SzxnaUkz2GOz2i5s6XidfTH1LEzw8N8JzJG+a3XsTimG4QI0jyDEGxsWDIS5VtML9v+Tyb8FgMPwFib73b/V694X7Kkf55Q6HWGxoHEmJDYjvkguUwjO7LZY3rd1JxMSwiI2lhmM8hwh4M4nmhNnCIgpirmB4OCeEMF/hovAji5ihE8kiryje0ItQweVb6at4H2Ulf44/z9+bhweZgffwIRdwRthNQ/DHXO9QbE8kfA2WrCL54qaYkgke53HzHacET//y/Aw/vu9yq5muPH5JL15W8c0gfXD/Z/tLIpV91t+51e3Y5jDAtyG/zbTw28AjrR9wTOTYyCtgpQZkPEUN3ebJnzhlLIcEnjV0oFJxITRwrObFmdn6UZrH6BaegYkuBYTBpIfw9wA+x27exxtOkN07+HkIENXB8Y+eE+BqhRO+Wr4j+kjCx0luN0/woPz1WlDj8wQPqgOl45wGbHcegO0TOfGMwE86XfRJ/QDdfVzG5d/OwMDAP5RoO7vWZrB/72Gvy81Tjfe046SaWRJr0GchAtd8cf2AV754EYnvJCo1JINviOiEJzC9aYYM/ZHdtB2x2jW3KZJFnj/g+D3iydIokj4f4j+/jniz4n3+O3+OP++I7RaPw+XdG66Pl7S77Yv08MiOnoMaHxUPVz5cBp9mguckcO3PO4B59POzmy41Genj8gYqKxfZf3hwcPBPSbSdbXuidvzBlQ7HHi8O8TaxQV4beMeK4Cg4JvLKl1OXE7GSp45LJ4yed4So15QjyymmSGUxMJHWxU9RJLXo0kvfF587JsYfBytGdJ8xS5Wtn94byfshePsW748QNT7fEXXKCZ7jwKux7HV4VvY+BuJ1tV8s/lx78JReVdcUNBrNPYmus2+vNNZfuq+yRa9BALzwwBMQihM27whe+eIVMLdxkUyImTxXwMkhb4nqa46Q0YIM/C0XSN6IU5B8EtilW215MjQV1zs42eNQxvsieH+EdxoJLJJepe++C3j088CrccWIB+LH7Q66/LKNHj1+Sq2trZz8/YpE19m3HqP9QrnG8e+vqrz7PO3It4y96cERp0Vx/WCDRq3LZIP7NMKYDHNPikbgIexnKLgzAcjl9Q4XsntbfUTAoymWeZ7A+5V5yiiI0o836VwFBz+qVtPVJ5UY/dUFtVr9Csnfh/3VkOp++y/f7bRmedaJO9E5sXimAmCIqWO4TT9GkL8/S2PaHPl5M+R71s0fCrLnGrctC4gy74QdPO8KtjPvzKp2RsW8/1WVhz5+Vk/3Hj7m0Z/X6/W/LtH04Vq7wf5RpcZ2/Ubv8A4r8CVyAW3obL2AAEaWe2636A38G8fuh/uigBe9eMQzTrOUexqwjflhXfwYmCtdbjH6rz96Qa9evdrv6empOrOZvze1Br3jz9zttge4E9yZhpGkqAiUOn2OswGTPxDaKNb98L6X2+108VEVPXhSRu3t7VmdTvfZ/pbwy17z79/sdq5eRmf4bhR1oPgUsTP3BOcQ4F2/POfPN+p80uGkSxj9Nx48oZqamj3E/vtms/mz/QnZFr39uw9VNtXlDkfhOrLRcssc8XOEzgVwtmB7snftmsqL5/9c60Xm32igi/ee05Oy53zr1zRi/2fzm4FHW53G/N/cV9lz1/t8dFvjoxZ/ungL2bkIzgxc93Pi93So+NtAF5tNdLG8me48eET19fWb/f39P5To+Oxbj8H6jRdq67VrHbbda70j4gFF/ERxy3koOBPwJBsv9/IKLK/3c+y/WNlFl+8+psrKqv3e3t4eo9H4PYmOz6fV9Zn+xFOV2XCly7XPP1vCoYBnqc4F8H5g+w0ld8VvNNzW+MUvglys19LHjyroydOnvOMnCtf/lyUaPt9Wo7H86t1OcxQiKPDGBN6fxlvIlS7sHG8Gk897LvheDN6EwyP/SoeDfvSwkm7fe0ANDQ1rcP3/FGWfxMDn3Fq0FojA/H/d6rKv8dYxfmx5DT9YCgpWusBzHI8i+QURSvlxLxxaL3fY6Y+f1tH1e4+45t9F1v8Mrv9bkvm/GK3TYP3xKrWp82aXQ+wcYrfFm0jPk8K3h0w+h9AyJH18l8+lViv9qKKdLt9+QOXlL/ZVKpXRYDB8mNW+921dWtMvvOgx26532lEa8k2lfmoeTRdvLT8XwYlg8uXHvVZY58Wvf/BCz4+qVPTx3Sf0tOxZASVfQKfTvfvTvz+L1tZv/M+fq0xz17ucIh/g9YJmX0bcvMAXqXTxX3fIMZ/J55k+sbu3w0k/qu6lSw/KRdLX2tq6qNVq/67FYpEs/QVt/UbLhVaN8b9/1jUYv65yQwReccsyTxdzOFAywNcZMvm8tM77LdlelztdIL+PLt1/Tg8fP6GmpqY8yP/nVqv1w670nWWDCP6HZ10GIQKeKOJwwMvHcnVw7g0ktw/y+Y4rfsInz6gWR76aLt0to/sPHwvykfH/Hkb+ZzvVexatpc/wt8u6jZFrHTbiTST8nIEqR4T659ZEsvN1FgHnRJwbNfvT9HhwqnhbN8f8V3D795+B/EeCfI1G83uf+Tz/WbYWtf7vPO82hm502go8UcQTGvwD1LypQf4Noq+TEIrXWhDTuw3DxSd6XEWpJ7L9ym76GDH/keT2v/Tky61To/2bL7v1oRsdtsKVLhdd6S6uIPJEhzHBmzxOfvLIVwGyyHlVj++r4Efwc6bPP8l7ud1Gf1zeQh/ffoRsv4xv7MgPDAz8868E+dy0hsELPdrB36xVaYM3200QgVvsaOEFpArbPA2E+GbQk38Y6csO/sV12eU/NEwWd/QAn7Sa6Y8fVdGV2/fp2fPnhba2thASvr+PhO+rQb7coOYLvVrDf1bfo1c9bNNtX2m30A2NX4wCnvFq8aWLTyDJfXVCAl8HXw8nepzls9jZ5YtkjzP9GjVdfPCCbt57SBUVFXtdXV3DqPP/2hdmivdDNI1W//2mnoEnzzq0SzfbhkTJw3e28Jz3K2dE/PARr4DJxvsyegXRd4BvF+NZvabRlFjOvaH20RXVMF1sMNDFila6/LCc7t5/QLW1tVs9PT0der3+lyQzfbWbVj/4za7evh9Wtfel7rYb97lKYCHwvDcLgZ9OzoZjlykvLX/RvYLcRwbHeX5oQ/v4gqjt+eaNTxD2PkGs/7heSxefVNO1uw/oxYsXBcT7TF9f379/p6d5fpmbwWj8SD2g+ystqr7BJy2anRttJrqm8iApKuYHvPuFf6iCn0fAi0rsRg+MXWL4zxuyMLmsNaf2xAM1+ZYtvn2On63ESd5VXNMnLSa69LKdPrn7mB48ekLV1dW77PIR7//bM7+P78vUtHrD9zv7Bv5tbUdv+mFTb+Fq86AQAMdJfugR/2YhP5iCn0vAxuVkSh5pR8n4LMEiFP3IFSDQPeoNrIiNG1zdcHLLu3d4KvwSiP/Ri1b6BOUd37v3HKO+paWFS7yHg4ODPy+Z4evdbDbbR/0DA3+tVaXuetmmXn7QohE/evRJu0M89YonSfgmSJ4n5xVGnjljF8uLJ5wnCEii+BDeQRYcn4d/zILPwY9m57l7Xufgko6f0cfrHrwIdhllLj+r5yJG/OWnr+jmo2e8mMPl3SZiPfI83W9/Zlu4v0wNcfDbfZr+v9/cqRp50dq7/aBlgG62GsWtz5w1c7LIT8LkUcabTni3TPf0kvjpdJ5YMcY5VBQ9xIEwSsXxBvDnDn0PYAFwTOfElLdl986uiL35/NxE/j3FuwMTxWfzwdVfajHTxw06+qRaRVfKGwTxZc+e8waObbj70f7+/n+Ca/wJ6XLP23FNZzD8tKZ/4IcdXSpfZWP79v3GXuKK4XqHna52OpAwOoXBuY7mhyPwEzL4bhkejfy8PPYO/ORMDhmcSPJKJP/gBRPJmTn/zOoh4H1247xYxT+Qyd/h7+ojm0JcHZMLIjHlMo49UdG9e4u3Zbfb6QqSu8sIXR/ziH9cQXcePhGPaalvaNgB8fMg/t/A3f9J6fLO29s2GO0/VGv6f4iKwd/Y1rXzrK6N7tR20dVGLV2BGK71eEW+IHIGgJ+Tx3kDu2L+4QROxF7aQmJ3Eq9GtvozCB8L1IlSsxScXzT5UlTnjdMrV0Ssx5cNzYi7b2/heHwTJm/KLJ6reE5O7C7V64pu/skruvWwjB4/e0Evq16Je/RVKpUfxP8zjPifky7nvL1rczgcPwlD/k/dqt765o7uZHVL597zhna6X9dJN+p66XL9gPjJdN6Oxu6Yb5nmmpt/S/+WZkzcTMF3MPFzDbjMPAp+6gn/NhJ7E/4sf4e/y/GccxAuT9m9X6xDCVfZTZfLG+l62Su6U/aSHj5/Sc8rKlHL1/GGjSWUdL2I8f/L0NDQ6X+s8byd3CCCj5A8/SJe/xUMbWlq61h81dQOMXTQ4/pOut+gojsNarrRoKGrDQNFYSAmX2o00KXmoSKJLRZFXOL99py4YVRf4u/VaehyTS9dre6m66/a6WZlE92uqKd75dX0GKRXVlZyUleAi19Vq9WugYGBfweP9ZfOk7vPqEEE39Tr9T/Q6nS/C1fb1durDnd2dW3UNjQWKmobqaymmR6+aqZ7r1roTnU73ULouFXXQzfhMW7gVaC2BNXwJlWtdKOikW6B6Dsvaul+eRXIhlsH2bV1ddQEwtvbO7bh3hMgHYXLwB8ZDIZfw2j/DioZqWfn7TNvdrv9G2az+acxAv8LsPL7fRpNQ6+6b6Rb1ZPs6Opaa2vv2GlubSs0NrdQfVOz+Fl1/jGFGgkQDd5rEs/Xb8Tfm/C51ra2vfaOjjWM8CRKNxc8Tq1Wq/0jnOO3MMp/Fuc7H+lf1OZ0Oj/CiPyOxWL5GRD1yxihvwHi/jd4jN8FboDIcozeFzLw/xeI24wHwB9gVP+f+Pxv43v/KfAzIPzb7/3M3fN23s7beTtv5+28nbfzdt7O23n7ArQLF/5/KYp4ycuRHZMAAAAASUVORK5CYIINCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tNDgwMjcyNTkyOTc5Ny0t
|details|k
|''URL''|http://www.TiddlyTools.com/#TemporaryTiddlersPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-11-14|
|''Version''|1.1.2|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#TemporaryTiddlersPlugin|
!Summary
blocks tiddlers tagged with "temporary" from being saved into the TW file
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TemporaryTiddlersPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#TemporaryTiddlersPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#AttachFilePluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-02-14|
|''Version''|4.0.1|
|''CoreVersion''|2.1|
|''Requires''|AttachFilePluginFormatters, AttachFileMIMETypes|
|''Type''|plugin|
|''Source''|http://www.TiddlyTools.com/#AttachFilePlugin|
!Summary
Store binary files as base64-encoded tiddlers with fallback links for separate local and/or remote file storage
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#AttachFilePluginInfo]]
:» see the author's info tiddler for examples
! Preview
[img[http://img.tiddlyspace.com/AttachFilePlugin_1]]
!Details
None yet. Please review...
http://www.TiddlyTools.com/#AttachFilePluginInfo
/*{{{*/
.tiddler .originButton div {
	display: inline-block;
}

.tiddler .originButton {
	display: block;
}

.selected .tagging,
.selected .tagging:hover {
	border: none;
	background: none;
}

.tagging {
	float: none;
	background: none;
	border: none;
}

.tagging li.listTitle {
	margin-left: 0px;
}
.tagging li {
	margin: 0 8px;
}

.tagging .tiddlyLink {
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	-o-border-radius: 3px;
	border-radius: 3px;
	padding: 1px 2px;
	line-height: 1.2em;
}

/* for following */
#popup .siteIcon {
	float: left;
	height: 25px;
}

.content {
	width: 100%; /* IE */
	font-size: 0.9em;
}

.editorHeading {
	height: 48px;
}

.heading {
	left: 0;
	margin-bottom: 40px;
	position: relative;
	top: 32px;
}

.followButton a {
	display: block;
	margin-top: -20px;
}

.tiddler .followButton {
	position: relative;
	height: 24px;
	text-align: left;
	color: #fff;
	background: [[ColorPalette::PrimaryMid]];
	padding: 10px 0px 0px 10px;
	width: 38px;
	margin: -16px -8px 24px 0;
}

/* creates the larger triangle */
.followButton:before {
	content: "\00a0";
	display: block; /* reduce the damage in FF3.0 */
	position: relative;
	bottom: -20px;
	right: 0;
	width: 0;
	height: 0;
	border-width: 0 0 20px 20px;
	border-style: solid;
	border-color: transparent [[ColorPalette::PrimaryMid]];
}

.toolbar svg {
	height: 16px;
	width: 16px;
}

.toolbar svg .glyph {
	fill: #ccc;
}

.toolbar a:hover .glyph {
	fill: black;
}

.toolbar a:active .glyph {
	fill: [[ColorPalette::Background]];
}

.originButton,
.tiddler .subtitle {
	cursor: pointer;
}

.editSpaceSiteIcon .originButton {
	cursor: auto;
}

.tiddler .subtitle:hover {
	font-weight: bold;
	background: none;
}

.originButton img,
.originButton svg {
	margin-left: 0px;
}

.tiddler .viewer {
	padding-bottom: 16px;
	margin: 0 0 0 56px;
	line-height: 1.4em;
}

.viewer pre {
	margin-left: 0;
}

.siteIcon .label {
	color: [[ColorPalette::TertiaryDark]];
}

.tiddler .titleBar {
	display: block;
	margin-right: 136px;
	margin-left: 56px;
}

.followButton a {
	color: [[ColorPalette::Background]];
}

.tiddler {
	position: relative;
	padding: 0;
	margin-bottom: 3em;
	border-top: 3px solid [[ColorPalette::PrimaryMid]];
	background: #fff;
}

.tiddler .editor {
	padding: 0px 8px;
}

.tiddler .heading .title {
	position: relative;
	display: block;
	word-wrap: break-word;
	font-size: 32px;
	line-height: 32px;
}
.tiddler .heading .editor.title {
	font-size: 1.7em;
	line-height: normal;
}

.tiddler .headingClear {
	clear: both;
}

.tiddler .subtitle {
	font-style: italic;
	font-size: 0.9em;
	color: #a6a59e;
	margin-top: 0;
}

.toolbar {
	position: absolute;
	padding: 0;
	top: 8px;
	right: -8px;
}

.toolbar .moreCommand.highlight {
	background: none;
}

.tiddler .toolbar .button {
	border: none;
	display: inline;
	padding: 0px;
	margin-right: 16px;
}

.tiddler .toolbar a:hover {
	background: none;
}

.tiddler .tagged .listTitle {
	display: none;
}

.revButton {
	float: right;
}

/*! EditTemplate specific*/
.tiddler .privacySettings {
	text-align: center;
}
.tiddler .privacySettings .originButton {
	display: inline;
}

.editSpaceSiteIcon, .privacyEdit {
	float: left;
}

.editSpaceSiteIcon svg,
.editSpaceSiteIcon img,
.editSpaceSiteIcon .roundelLabel {
	float: left;
}

.tagTitle {
	position: absolute;
	text-align: center;
	width: 48px;
	top: 0px;
	left: -56px;
}

.editSpaceSiteIcon .originButton img,
.editSpaceSiteIcon .originButton svg {
	height: 16px;
	margin-left: 24px;
	margin-right: 32px;
	width: 16px;
}

.tagAnnotation {
	margin-top: 8px;
	padding-bottom: 8px;
}
.annotationsBox {
	margin-top: 8px;
}

.editorFooter {
	position: relative;
	padding: 0;
	margin-top: 16px;
	margin-left: 64px;
}

.tiddler .editorFooter .editor {
	padding-left: 0px;
}

.heading .editor input {
	width: 100%;
	font-size: 1.5em;
}

div.toolbar {
	visibility:hidden;
	right:-16px;
}

.selected div.toolbar {
	visibility: visible;
}

.followButton a:hover {
	background: [[ColorPalette::PrimaryMid]];
	text-decoration: underline;
}

a.image:hover {
	background: transparent;
}

@media all and (max-device-width: 480px) {
	div.toolbar {
		visibility:visible;
	}
}
@media only screen and (device-width: 768px) {
	div.toolbar {
		visibility:visible;
	}
}
@media all and (max-width: 960px) {
	.tiddler .titleBar {
		margin-left: 36px;
		margin-right: 80px;
	}

	.tiddler .heading {
		margin-bottom: 48px;
	}

	.tiddler .heading .title {
		font-size: 32px;
		line-height: 32px;
	}

	.originButton svg {
		width: 32px;
		height: 32px;
		margin-left: 0px;
		margin-right: 0px;
	}

	.tiddler .followButton {
		width: 24px;
	}

	.tiddler .viewer {
		margin: 0px 0px 0px 36px;
		padding-top: 0;
	}

	br {
		line-height: 0.5em;
	}
}
/*}}}*/
|details|k
|''URL''|http://themes.tiddlywiki.com/berry2.html|
! Summary
A decent purple with a horizontal MainMenu. A similar variant is Blueberry2.
! Preview
[img[[img[http://img.tiddlyspace.com/Berry2][http://themes.tiddlywiki.com/berry2.html]]
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
|details|k
|''URL''|http://www.TiddlyTools.com/#ToggleRightSidebar|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-26|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ToggleRightSidebar|
!Summary
show/hide right sidebar (SideBarOptions)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ToggleRightSidebar]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ToggleRightSidebar
<<tag "Tips & Tutorials" References>>where we all wish we were born to know, yet learning curves can be steep or require their time for your to climb to the top of that mountain...
|details|k
|''URL''|http://mptw.tiddlyspot.com/#RenameTagsPlugin|
|''Author''|[[Simon Baird]]|
|''Released''|2013-06-17|
|''Version''|3.1|
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Simon Baird]]|
|''Source''|http://mptw.tiddlyspot.com/#RenameTagsPlugin|
!Summary
Allows you to easily rename or delete tags across multiple tiddlers
!Examples
; [[plugin info tiddler|http://mptw.tiddlyspot.com/#RenameTagsPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://mptw.tiddlyspot.com/#RenameTagsPlugin
<<tiddler "Getting Involved">>
|details|k
|''URL''|http://tiddlywiki.squize.org#TagAdderMacro|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-20|
|''Version''|0.61|
|''CoreVersion''|~TW2.07|
|''Source''|http://tiddlywiki.squize.org#TagAdderMacro|
!Summary
Provides a drop down list for toggling tags. You can specify which tags to list, and have multiple drop downs with different tag lists.
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#TagAdderMacro]]
:see the author's info tiddler for examples
!Preview
[img[http://img.tiddlyspace.com/TagAdderMacro_1]]
!Details
*by default {{{<<tagAdder>>}}} will display drop down list of all tags, with tags present on the tiddler grouped together.
*to sort alphabetically (ignoring the [x]), use {{{<<tagAdder 'nogroup'>>}}}
*to specify what tags to list, use {{{<<tagAdder 'group/nogroup' 'tiddler'>>}}} where tiddler is a tiddler that is tagged with the tags you want to list, e.g.:
**~TagDataBase being the tiddler that is tagged with the tags to list, so use {{{<<tagAdder 'group' 'TagDataBase'>>}}}
**Use one of either group or no group, not both!
*you can specify a custom label by giving the macro an additional parameter, e.g.: {{{<<tagAdder 'group' 'TagDataBase' 'custom label'>>}}}

''Toolbar Button''
Copy either of the following to your ViewTemplate...
* to add to next to the tags macro in the viewer area
** {{{<div class='tagged' macro='tagAdder'></div>}}}
*to add to the toolbar...
{{{
<div class='toolbar' >
<span style="padding-right:1.75em;" macro='tagAdder'></span>
<span macro='toolbar -closeTiddler closeOthers +editTiddler permalink references jump'></span></div>
}}}

''Tips''
*on the tiddler you want to use as your TagsDataBase, add {{{<<tagAdder>>}}} for a drop down list of all tags, so you can easily toggle tags on it
*you can have as many TagDataBases as you like
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
<<tag Automation Plugins>>facilitating the automation of repretitive tasks...
/%

Hello,

If you choose to change this GettingStarted tiddler, you may wish to add the following to your new content if you expect you space to be included:

<<<
----
Hello,
''This ~GettingStarted tiddler has been customized.''
If you want to see the original system tiddler just click the following link: GettingStarted@system-info at system-info.
<<<
%/

Welcome to your brand new [[TiddlySpace|http://docs.tiddlyspace.com/TiddlySpace]].

You're almost ready to go, there are just a couple of things left to do.

!Customise your space
Go to [[SpaceSettings]] to finish customising  your space. When you're done, come back here (just scroll up). Don't worry though, this will still be open when you've finished.

!Further Customisation

The [[ServerSettings]] tiddler is used to provide the following space configuration options:

#index: The value is the name of a tiddler that will be presented when loading the space.  For example, when set to Hello for the space hello.tiddlyspace.com, navigating to that URL will present the Hello tiddler.
#editor: The name of an [[editor application|http://docs.tiddlyspace.com/Example%20Tiddler%20Editors]] to edit tiddlers with.  Applications are [[included spaces|http://docs.tiddlyspace.com/How%20do%20I%20include%2Fexclude%20spaces%3F]]

To edit these options, click [[here|ServerSettings]] to open the [[ServerSettings]] tiddler then click on the edit button (the pencil icon).  Then add the options you wish to set and then click on the save button (the tick icon).

An example [[ServerSettings]] tiddler:
{{{
index: HelloThere
editor: /edit#{tiddler}
}}}

The additional text after /edit allows a tiddler to be opened in edit mode e.g:
{{{http://hello.tiddlyspace.com/edit#MyTiddler}}}

!!See Also

* [[ServerSettings shadow tiddler|http://docs.tiddlyspace.com/ServerSettings%20shadow%20tiddler]]
* [[Choosing a non-TiddlyWiki Default Application for your Space|http://docs.tiddlyspace.com/Choosing%20a%20non-TiddlyWiki%20Default%20Application%20for%20your%20Space]]

!Finished customising?
You can [[Start writing]] some [[tiddlers|http://docs.tiddlyspace.com/Tiddler]].
If you're not done tweaking yet though, you can always [[Customise this space|SpaceSettings]] a bit more.

You can also [[access and read other tiddlers in various ways|http://docs.tiddlyspace.com/Viewing%20Tiddlers]].

!Administration
If you'd like to change your password or create another space, visit "Your Account" from the [[Universal Backstage|http://docs.tiddlyspace.com/UniversalBackstage]] (the blue dot in the upper right of the page). If you'd like to add a member or [[include a space|http://docs.tiddlyspace.com/How%20do%20I%20include%2Fexclude%20spaces%3F]] visit "This Space" from the [[Universal Backstage|http://docs.tiddlyspace.com/UniversalBackstage]].

You can have as many spaces as you like and each space can have as many members as you or your group need.

!Stuck?
If you're stuck, and would like some help, please visit the [[help|http://help.tiddlyspace.com]] space, which can point you in the right direction.
/***
|Name|ListFiltrPlugin|
|Description|Allows to easily filter simple and complex lists|
|Documentation|http://listfiltr.tiddlyspace.com|
|Author|[[Tobias Beer|http://tobibeer.tiddlyspace.com]]|
|Version|1.7.4 (2013-11-07)|
|~CoreVersion|2.6.5|
|License|Creative Commons 3.0|
|Source|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/ListFiltrPlugin.min.js|
***/
// /%
function placeholderIsSupported(){var e=document.createElement("input");return"placeholder"in e}(function(e){var t=config.macros.listfiltr={InputPlaceholder:"filter list",InputLabel:"Filter list:",InputTooltip:"enter a search term to filter the list",defaultPreserve:".st-bullet, .annotation",wait:500,minInput:2,or:" ",h:"h1,h2,h3,h4,h5,h6",index:"li,dd,dt,td,th,div",remove:"lf-h lf-hide lf-found lf-keep lf-section",ignore:".lf-found,br,.pseudo-ol-li,.linkified",keepOuter:"b,em,strong,blockquote",keep:[".lf-keep.lf-h",".lf-found.lf-h",".lf-found .lf-h:not(%0)",".lf-section.lf-h",".lf-section .lf-h","thead:not(.lf-h) .lf-h","tr.lf-keep td.lf-h","tr.lf-keep th.lf-h","tr.lf-keep td > .lf-h","tr.lf-keep th > .lf-h","dt.lf-keep .lf-h","dd.lf-keep .lf-h"].join(","),dontKeepInsideFound:["tr.lf-h","div.lf-found li.lf-h:not(div.lf-found li.lf-found li.lf-h)","td.lf-found tr.lf-h","td.lf-found li.lf-h","td.lf-found dt.lf-h","td.lf-found dd.lf-h",".sliderPanel.lf-found li.lf-h",".sliderPanel.lf-found ul.lf-h"].join(","),showOnFilter:[".sliderPanel"].join(","),hideOnEmpty:[".sliderPanel"].join(","),timer:0,handler:function(n,r,i,s,o,u){var a,f,l,c,h=[],p,d=o.parseParams("anon",null,true),v=getParam(d,"appendTo",this.appendTo),m=getParam(d,"preserve",this.defaultPreserve);if(v){c=e(n).closest(".tiddler");n=e(v,c).first()[0]||n}c=e(n).children().last();while(c.is("br"))c=c.prev();if(c.is("span, div"))c=c.contents();c.wrapAll('<div class="lf-list"/>');c=c.closest(".lf-list");if(e.fn.outline)e("ol:not(ol li > ol)",c).outline();t.finalKeep=t.keep;t.keepOuter.split(",").map(function(e){h.push("> "+e);t.finalKeep+=", > "+e+".lf-preserve.lf-h"});e(m+(h.length?","+h.join(","):""),c).addClass("lf-preserve");t.textToParagraph(c);f=e("<div class=lf-search/>").insertBefore(c);p=placeholderIsSupported()?t.InputPlaceholder:"";if(!p){e("<span class=lf-label/>").html(t.InputLabel).appendTo(f)}a=e('<input type="search"/>').attr({title:t.InputTooltip,placeholder:p}).appendTo(f);a.bind("keyup search",function(){var n=e(this);clearTimeout(t.timer);t.timer=setTimeout(function(){t.filter(n);return true},t.wait)})},filter:function(n){var r,i,s,o,u,a=t.index+",span,"+t.h,f=n.val(),l=n.closest(".lf-search").next(),c=n.closest(".st-tree"),h=config.macros.simpletree;if(f.length>t.minInput){l.addClass("lf-filtered");if(h&&c.length&&!c.is(".st-all")){h.toggleAll(c);c.addClass("lf-tree")}}else{l.removeClass("lf-filtered");if(h&&c.length&&c.is(".st-all.lf-tree")){h.toggleAll(c)}c.removeClass("lf-tree")}e("*",l).removeClass(t.remove);e(".highlight",l).each(function(){var t=e(this),n=t.parent();if(t.is("pre, code")){t.removeClass("highlight")}else{t.contents().unwrap();n[0].normalize()}});if(f.length<t.minInput){e(t.hideOnEmpty,l).hide()}else{e(t.showOnFilter,l).show();t.highlight(e.trim(f.toLowerCase()),l);e(a,l).not(t.ignore).each(function(){var n=1,r,o,u,a,f,l,c,h,p,d,v=e(this);i=v.is(".highlight");if(!i)i=v.is("li, dt, dd")?t.checkLi(v):e(".highlight",v).length;if(i){t.mark(v,true);d=v.parentsUntil(".lf-list").last();if(d.is(t.keepOuter)){t.mark(d,true);s=t.keepHeading(d,true)}d=v.closest(t.h);if(d.length)d.nextUntil(t.h).addClass("lf-keep lf-section");else t.keepHeading(v);d=v.closest("dt");if(d.length){t.mark(d);t.mark(d.nextUntil("dt","dd"))}d=v.closest("dd");if(d.length){t.mark(d.prevAll("dt:first"))}d=v.closest("td, th");if(d.length){h=t.mark(v.closest("table"));u=d.is("th")&&!d.prev().length;p=d.closest("tr");t.mark(p,u);a=t.maxCols(h);r=t.numCols(p);if(r<a){l=p.prev("tr");do{t.mark(l,u);l=t.numCols(l)<=r?l.prev("tr"):0}while(l.length)}f=p.next("tr");while(f.length){if(r==a&&t.numCols(f)<r||r<a&&t.numCols(f)<=r){t.mark(f,u);f=f.next("tr")}else{f=0}}if(d.closest("thead").length){v.prevAll().each(function(){o=e(this).attr("colspan");n+=o?parseInt(o):1});h.find("tbody tr").each(function(){var r=0;e("td, th",this).each(function(){var i=e(this);o=i.attr("colspan");r+=o?parseInt(o):1;if(r>=n){t.mark(i,true);t.mark(i.closest("tr"));return false}})})}}if(v.is(".listTitle")&&v.parent().hasClass("timeline"))t.mark(e("> li",v.parent()));t.mark(v.closest("li").parent().find("> .listTitle"))}else{v.addClass("lf-h");if(v.is("td, th")&&v.closest("tbody").length){v.closest("tr").not(".lf-found, .lf-keep").addClass("lf-h")}}});e(".highlight",l).parentsUntil(l).removeClass("lf-h");e("ol, ul, dl, table, .lf-preserve",l).each(function(){var n=e(this);if(e(".highlight",n).length)t.mark(n);else n.addClass("lf-h")});e(t.h,l).not(".lf-found").each(function(){var n=e(this),r=true,i=n.nextUntil(t.h);i.each(function(){el=e(this);if(el.is(".lf-keep, .lf-found, .lf-section")){r=false;return r}});if(r)i.removeClass("lf-keep lf-preserve").addClass("lf-h")});e(t.finalKeep.format(t.dontKeepInsideFound),l).removeClass("lf-h");e(".lf-h:not(.lf-preserve .lf-h)",l).addClass("lf-hide")}return true},highlight:function(n,r){e("*",r).highlight(n);e(".externalLink, .tiddlyLink",r).each(function(){var r=e(this),i=(r.attr("tiddlyLink")||r.attr("href")).replace(/\/\/\:/mg,"_").toLowerCase();n.split(t.or).map(function(t){if(t&&i.indexOf(t)>-1&&!e(".highlight",r).length){r.contents().wrap('<span class="highlight"/>')}})})},keepHeading:function(e,n){n=n?e:e.parentsUntil(".lf-list").last();h=n.prev();if(!h.is(t.h))h=n.prevUntil(t.h).last().prev();if(h.is(t.h)){t.mark(h)}},mark:function(e,n){e.not(t.ignore).removeClass("lf-keep lf-h").not(".highlight").addClass(n?"lf-found":"lf-keep");return e},textToParagraph:function(n){n.find(":not(iframe)").addBack().contents().filter(function(){var t=e(this);return this.nodeType==3&&(t.next().length||t.prev().length)&&!t.closest(".lf-preserve").length&&!t.prevAll(".pseudo-ol-li").length}).wrap('<span class="lf-text"/>');e(".lf-text",n).each(function(){var n,r=e(this),i=false;if(r.closest(".lf-p").length)return true;n=r.prevUntil(t.block).add(r).add(r.nextUntil(t.block));n.each(function(){var n=e(this);i=n.next().is(t.block)||n.prev().is(t.block);return!i});if(i)n.wrapAll('<span class="lf-p lf-preserve"/>')})},maxCols:function(t){var n=0;e("> thead > tr, > tbody > tr",t).each(function(){n=Math.max(n,e("> td, > th",this).length)});return n},numCols:function(t){var n=0;e("> td, > th",t).each(function(){var t=e(this).attr("colspan");n+=t?parseInt(t):1});return n},checkLi:function(n,r){var i=false;n.children(":not(ol, ul, dl)").each(function(){var n=e(this),s=n.is(".highlight")||e(".highlight",n).length;if(r)t.mark(n);i=i||s});if(i||r){x=n.parent("ol, ul, dl").parent("li, dd, dt");if(x.length)t.checkLi(x,true)}return i}};t.block=t.h+","+t.index+",br,blockquote,ol,ul,dt,p,pre,form";e.fn.highlight=function(n){var r=[],i='<span class="highlight">%0</span>',s=n.split(t.or);s.map(function(e){if(e)r.push("(\\b\\w*"+e+"\\w*\\b)")});r=new RegExp(r.join("|"),"gi");this.each(function(){var t=e(this);e(this).contents().each(function(){if(this.nodeType===3&&r.test(this.nodeValue)){var o=t.closest("pre, code");if(o.length){o.addClass("highlight")}else{e(this).replaceWith(this.nodeValue.replace(r,function(e,t){var n;s.map(function(t){if(e.toLowerCase().indexOf(t)>=0){n=i.format(e)}return!n});return n}))}}else if(!e(this).hasClass("highlight")){e(this).highlight(n)}})});return this};config.shadowTiddlers["StyleSheetListFiltr"]="/*{{{*/\n"+".lf-search {padding:5px;background:#eef;}\n"+".lf-hide {display: none !important;}\n"+".lf-found {background:#F5F5DC;}\n"+".lf-list + br {display:none;}\n"+".lf-label {margin-right:5px;font-weight:bold;}\n"+".lf-filtered .lf-p {display:block;}\n"+".lf-filtered dd .lf-p {display:inline-block;}\n"+".lf-filtered br {display: none;}\n"+".lf-filtered .lf-preserve br {display: block;}\n"+".lf-preserve.lf-found br {display: block;}\n"+"/*}}}*/";store.addNotification("StyleSheetListFiltr",refreshStyles)})(jQuery)
//%/
/***
|''Name''|TiddlySpacePublishingCommands|
|''Version''|0.8.5|
|''Status''|@@beta@@|
|''Description''|toolbar commands for drafting and publishing|
|''Author''|Jon Robson|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpacePublishingCommands.js|
|''CoreVersion''|2.6.1|
|''Requires''|TiddlySpaceConfig TiddlySpaceFilters|
!Usage
Provides changeToPrivate, changeToPublic and saveDraft commands
Provides TiddlySpacePublisher macro.
{{{<<TiddlySpacePublisher type:private>>}}} make lots of private tiddlers public.
{{{<<TiddlySpacePublisher type:public>>}}} make lots of public tiddlers public.
!TODO
* add public argument?
!Code
***/
//{{{
(function($) {

var tiddlyspace = config.extensions.tiddlyspace;
var originMacro = config.macros.tiddlerOrigin;

tiddlyspace.getTiddlerStatusType = function(tiddler) {
	var isShadow = store.isShadowTiddler(tiddler.title);
	var exists = store.tiddlerExists(tiddler.title);
	if(isShadow && !exists) {
		return "shadow";
	} else if(!exists) {
		return "missing";
	} else {
		var types = ["private", "public"];
		var type = "external";
		for(var i = 0; i < types.length; i++) {
			var t = types[i];
			type = config.filterHelpers.is[t](tiddler) ? t : type;
		}
		if(config.filterHelpers.is.unsynced(tiddler)) {
			type = type == "private" ? "unsyncedPrivate" : "unsyncedPublic";
		}
		return type;
	}
};

var cmd = config.commands.publishTiddler = {
	text: "make public",
	tooltip: "Change this private tiddler into a public tiddler",
	errorMsg: "Error publishing %0: %1",

	isEnabled: function(tiddler) {
		return !readOnly && config.filterHelpers.is["private"](tiddler);
	},
	handler: function(ev, src, title) {
		var tiddler = store.getTiddler(title);
		if(tiddler) {
			var newBag = cmd.toggleBag(tiddler.fields["server.bag"]);
			this.moveTiddler(tiddler, {
				title: tiddler.fields["publish.name"] || tiddler.title,
				fields: { "server.bag": newBag }
			});
		}
	},
	toggleBag: function(bag, to) {
		var newBag;
		if(typeof bag != typeof "") {
			var tiddler = bag;
			bag = tiddler.fields["server.bag"];
		}
		if(bag.indexOf("_private") > -1) { // should make use of endsWith
			to = to ? to : "public";
			newBag = bag.replace("_private", "_" + to);
		} else {
			to = to ? to : "private";
			newBag = bag.replace("_public", "_" + to);
		}
		return newBag;
	},
	copyTiddler: function(title, newTitle, newBag, callback) {
		var original = store.getTiddler(title);
		newTitle = newTitle ? newTitle : title;
		var adaptor = original.getAdaptor();
		var publish = function(original, callback) {
			var tiddler = $.extend(new Tiddler(newTitle), original);
			tiddler.fields = $.extend({}, original.fields, {
				"server.bag": newBag,
				"server.workspace": "bags/%0".format(newBag),
				"server.page.revision": "false"
			});
			delete tiddler.fields["server.title"];
			tiddler.title = newTitle;
			adaptor.putTiddler(tiddler, null, null, callback);
		};
		publish(original, callback);
	},
	moveTiddler: function(tiddler, newTiddler, callback) {
			var info = {
			copyContext: {},
			deleteContext: {}
		};
		var _dirty = store.isDirty();
		var adaptor = tiddler.getAdaptor();
		var newTitle = newTiddler.title;
		var oldTitle = tiddler.title;
		delete tiddler.fields["server.workspace"];
		var oldBag = tiddler.fields["server.bag"];
		var newBag = newTiddler.fields["server.bag"];
		var newWorkspace = "bags/%0".format(newBag);
		cmd.copyTiddler(oldTitle, newTitle, newBag, function(ctx) {
				info.copyContext = ctx;
				var context = {
					tiddler: tiddler,
					workspace: newWorkspace
				};
				store.addTiddler(ctx.tiddler);
				tiddler.title = oldTitle; // for cases where a rename occurs
				if(ctx.status) { // only do if a success
					if(oldBag != newBag) {
						adaptor.deleteTiddler(tiddler, context, {}, function(ctx) {
							info.deleteContext = ctx;
							var el;
							if(tiddler) {
								tiddler.fields["server.workspace"] = newWorkspace;
								tiddler.fields["server.bag"] = newBag;
							}
							el = el ? el : story.refreshTiddler(oldTitle, null, true);
							if(oldTitle != newTitle) {
								store.deleteTiddler(oldTitle);
								store.notify(oldTitle, true);
							}
							if(el) {
								story.displayTiddler(el, newTitle);
							}
							if(oldTitle != newTitle) {
								story.closeTiddler(oldTitle);
							}
							if(callback) {
								callback(info);
							}
							store.setDirty(_dirty);
						});
					} else {
						if(callback) {
							callback(info);
						}
					}
					refreshDisplay();
				}
		});
	}
};

var changeToPrivate = config.commands.changeToPrivate = {
	text: "make private",
	tooltip: "turn this public tiddler into a private tiddler",
	isEnabled: function(tiddler) {
		return !readOnly && config.filterHelpers.is["public"](tiddler);
	},
	handler: function(event, src, title) {
		var tiddler = store.getTiddler(title);
		var newBag = cmd.toggleBag(tiddler, "private");
		var newTiddler = { title: title, fields: { "server.bag": newBag }};
		cmd.moveTiddler(tiddler, newTiddler);
	}
};
config.commands.changeToPublic = cmd;

/* Save as draft command */
var saveDraftCmd = config.commands.saveDraft = {
	text: "save draft",
	tooltip: "Save as a private draft",
	isEnabled: function(tiddler) {
		return changeToPrivate.isEnabled(tiddler);
	},
	getDraftTitle: function(title) {
		var draftTitle;
		var draftNum = "";
		while(!draftTitle) {
			var suggestedTitle = "%0 [draft%1]".format(title, draftNum);
			if(store.getTiddler(suggestedTitle)) {
				draftNum = !draftNum ? 2 : draftNum + 1;
			} else {
				draftTitle = suggestedTitle;
			}
		}
		return draftTitle;
	},
	createDraftTiddler: function(title, gatheredFields) {
		var tiddler = store.getTiddler(title);
		var draftTitle = saveDraftCmd.getDraftTitle(title);
		var draftTiddler = new Tiddler(draftTitle);
		if(tiddler) {
			$.extend(true, draftTiddler, tiddler);
		} else {
			$.extend(draftTiddler.fields, config.defaultCustomFields);
		}
		for(var fieldName in gatheredFields) {
			if(TiddlyWiki.isStandardField(fieldName)) {
				draftTiddler[fieldName] = gatheredFields[fieldName];
			} else {
				draftTiddler.fields[fieldName] = gatheredFields[fieldName];
			}
		}
		var privateBag = tiddlyspace.getCurrentBag("private");
		var privateWorkspace = tiddlyspace.getCurrentWorkspace("private");
		draftTiddler.title = draftTitle;
		draftTiddler.fields["publish.name"] = title;
		draftTiddler.fields["server.workspace"] = privateWorkspace;
		draftTiddler.fields["server.bag"] = privateBag;
		draftTiddler.fields["server.title"] = draftTitle;
		draftTiddler.fields["server.page.revision"] = "false";
		delete draftTiddler.fields["server.etag"];
		return draftTiddler;
	},
	handler: function(ev, src, title) {
		var tiddler = store.getTiddler(title); // original tiddler
		var tidEl = story.getTiddler(title);
		var uiFields = {};
		story.gatherSaveFields(tidEl, uiFields);
		var tid = saveDraftCmd.createDraftTiddler(title, uiFields);
		tid = store.saveTiddler(tid.title, tid.title, tid.text, tid.modifier,
			new Date(), tid.tags, tid.fields);
		autoSaveChanges(null, [tid]);
		story.closeTiddler(title);
		story.displayTiddler(src, title);
		story.displayTiddler(src, tid.title);
	}
};

var macro = config.macros.TiddlySpacePublisher = {
	locale: {
		title: "Batch Publisher",
		changeStatusLabel: "Make %0",
		noTiddlersText: "No tiddlers to publish",
		changeStatusPrompt: "Make all the selected tiddlers %0.",
		description: "Change tiddlers from %0 to %1 in this space"
	},

	listViewTemplate: {
		columns: [
			{ name: "Selected", field: "Selected", rowName: "title", type: "Selector" },
			{ name: "Tiddler", field: "tiddler", title: "Tiddler", type: "Tiddler" },
			{ name: "Status", field: "status", title: "Status", type: "WikiText" }
		],
		rowClasses: []
	},

	changeStatus: function(tiddlers, status, callback) { // this is what is called when you click the publish button
		var publicBag;
		for(var i = 0; i < tiddlers.length; i++) {
			var tiddler = tiddlers[i];
			var newTiddler = {
				title: tiddler.title,
				fields: { "server.bag": cmd.toggleBag(tiddler, status) }
			};
			cmd.moveTiddler(tiddler, newTiddler, callback);
		}
	},
	getMode: function(paramString) {
		var params = paramString.parseParams("anon")[0];
		var status = params.type ?
			(["public", "private"].contains(params.type[0]) ? params.type[0] : "private") :
			"private";
		var newStatus = status == "public" ? "private" : "public";
		return [status, newStatus];
	},
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		var wizard = new Wizard();
		var locale = macro.locale;
		var status = macro.getMode(paramString);
		wizard.createWizard(place, locale.title);
		wizard.addStep(macro.locale.description.format(status[0], status[1]),
			'<input type="hidden" name="markList" />');
		var markList = wizard.getElement("markList");
		var listWrapper = $("<div />").addClass("batchPublisher").
			attr("refresh", "macro").attr("macroName", macroName).
			attr("params", paramString)[0];
		markList.parentNode.insertBefore(listWrapper, markList);
		$.data(listWrapper, "wizard", wizard);
		macro.refresh(listWrapper);
	},
	getCheckedTiddlers: function(listWrapper, titlesOnly) {
		var tiddlers = [];
		$(".chkOptionInput[rowName]:checked", listWrapper).each(function(i, el) {
			var title = $(el).attr("rowName");
			if(titlesOnly) {
				tiddlers.push(title);
			} else {
				tiddlers.push(store.getTiddler(title));
			}
		});
		return tiddlers;
	},
	refresh: function(listWrapper) {
		var checked = macro.getCheckedTiddlers(listWrapper, true);
		var paramString = $(listWrapper).empty().attr("params");
		var wizard = $.data(listWrapper, "wizard");
		var locale = macro.locale;
		var params = paramString.parseParams("anon")[0];
		var publishCandidates = [];
		var status = macro.getMode(paramString);
		var pubType = status[0];
		var newPubType = status[1];
		var tiddlers = params.filter ? store.filterTiddlers(params.filter[0]) :
			store.filterTiddlers("[is[%0]]".format(pubType));
		var enabled = [];
		for(var i = 0; i < tiddlers.length; i++) {
			var tiddler = tiddlers[i];
			var title = tiddler.title;
			if(!tiddler.tags.contains("excludePublisher") && title !== "SystemSettings") {
				publishCandidates.push({ title: title, tiddler: tiddler, status: pubType});
			}
			if(checked.contains(title)) {
				enabled.push("[rowname=%0]".format(title));
			}
		}

		if(publishCandidates.length === 0) {
			createTiddlyElement(listWrapper, "em", null, null, locale.noTiddlersText);
		} else {
			var listView = ListView.create(listWrapper, publishCandidates, macro.listViewTemplate);
			wizard.setValue("listView", listView);
			var btnHandler = function(ev) {
				var tiddlers = macro.getCheckedTiddlers(listWrapper);
				var callback = function(status) {
					$(".batchPublisher").each(function(i, el) {
						macro.refresh(el);
					});
				};
				macro.changeStatus(tiddlers, newPubType, callback);
			};
			wizard.setButtons([{
				caption: locale.changeStatusLabel.format(newPubType),
				tooltip: locale.changeStatusPrompt.format(newPubType),
				onClick: btnHandler
			}]);
			$(enabled.join(",")).attr("checked", true); // retain what was checked before
		}
	}
};

})(jQuery);
//}}}
Instead of being listed by their actual name, e.g. "App Name", the name is converted to ''~CamelCase'' and ends with three dots; e.g. [[AppName...|App]]
!Spaces
<<groupBy server.bag>>

!Private
<<list filter [is[private]]>>

!Public
<<list filter [is[public]]>>

!Drafts
<<list filter [is[draft]]>>
|details|k
|''URL''|http://www.TiddlyTools.com/#RearrangeTiddlersPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-11-30|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#RearrangeTiddlersPlugin|
!Summary
drag tiddlers by title to re-order story column display
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#RearrangeTiddlersPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#RearrangeTiddlersPlugin
/***
|''Description''|Sanitisation for dynamically pulling tiddlers into your space and displaying them|
!Notes
Works both inside and outside TiddlyWiki. Uses the HTML Sanitizer provided by the Google Caja project
(see http://code.google.com/p/google-caja/wiki/JsHtmlSanitizer for more on this), which is licensed under
an Apache License (see http://www.apache.org/licenses/LICENSE-2.0).
!Code
***/
//{{{
(function($) {

var cleanURL = function(url) {
	var regexp = /^(?:http|https|mailto|ftp|irc|news):\/\//;
	return (regexp.test(url)) ? url : null;
};

$.sanitize = function(html) {
	return html_sanitize(html, cleanURL);
};

/*
 * HTML Sanitizer, provided by Google Caja
 */

/* Copyright Google Inc.
 * Licensed under the Apache Licence Version 2.0
 * Autogenerated at Tue May 17 17:39:24 BST 2011
 * @provides html4
 */var html4={};html4.atype={NONE:0,URI:1,URI_FRAGMENT:11,SCRIPT:2,STYLE:3,ID:4,IDREF:5,IDREFS:6,GLOBAL_NAME:7,LOCAL_NAME:8,CLASSES:9,FRAME_TARGET:10},html4.ATTRIBS={"*::class":9,"*::dir":0,"*::id":4,"*::lang":0,"*::onclick":2,"*::ondblclick":2,"*::onkeydown":2,"*::onkeypress":2,"*::onkeyup":2,"*::onload":2,"*::onmousedown":2,"*::onmousemove":2,"*::onmouseout":2,"*::onmouseover":2,"*::onmouseup":2,"*::style":3,"*::title":0,"a::accesskey":0,"a::coords":0,"a::href":1,"a::hreflang":0,"a::name":7,"a::onblur":2,"a::onfocus":2,"a::rel":0,"a::rev":0,"a::shape":0,"a::tabindex":0,"a::target":10,"a::type":0,"area::accesskey":0,"area::alt":0,"area::coords":0,"area::href":1,"area::nohref":0,"area::onblur":2,"area::onfocus":2,"area::shape":0,"area::tabindex":0,"area::target":10,"bdo::dir":0,"blockquote::cite":1,"br::clear":0,"button::accesskey":0,"button::disabled":0,"button::name":8,"button::onblur":2,"button::onfocus":2,"button::tabindex":0,"button::type":0,"button::value":0,"canvas::height":0,"canvas::width":0,"caption::align":0,"col::align":0,"col::char":0,"col::charoff":0,"col::span":0,"col::valign":0,"col::width":0,"colgroup::align":0,"colgroup::char":0,"colgroup::charoff":0,"colgroup::span":0,"colgroup::valign":0,"colgroup::width":0,"del::cite":1,"del::datetime":0,"dir::compact":0,"div::align":0,"dl::compact":0,"font::color":0,"font::face":0,"font::size":0,"form::accept":0,"form::action":1,"form::autocomplete":0,"form::enctype":0,"form::method":0,"form::name":7,"form::onreset":2,"form::onsubmit":2,"form::target":10,"h1::align":0,"h2::align":0,"h3::align":0,"h4::align":0,"h5::align":0,"h6::align":0,"hr::align":0,"hr::noshade":0,"hr::size":0,"hr::width":0,"iframe::align":0,"iframe::frameborder":0,"iframe::height":0,"iframe::marginheight":0,"iframe::marginwidth":0,"iframe::width":0,"img::align":0,"img::alt":0,"img::border":0,"img::height":0,"img::hspace":0,"img::ismap":0,"img::name":7,"img::src":1,"img::usemap":11,"img::vspace":0,"img::width":0,"input::accept":0,"input::accesskey":0,"input::align":0,"input::alt":0,"input::autocomplete":0,"input::checked":0,"input::disabled":0,"input::ismap":0,"input::maxlength":0,"input::name":8,"input::onblur":2,"input::onchange":2,"input::onfocus":2,"input::onselect":2,"input::readonly":0,"input::size":0,"input::src":1,"input::tabindex":0,"input::type":0,"input::usemap":11,"input::value":0,"ins::cite":1,"ins::datetime":0,"label::accesskey":0,"label::for":5,"label::onblur":2,"label::onfocus":2,"legend::accesskey":0,"legend::align":0,"li::type":0,"li::value":0,"map::name":7,"menu::compact":0,"ol::compact":0,"ol::start":0,"ol::type":0,"optgroup::disabled":0,"optgroup::label":0,"option::disabled":0,"option::label":0,"option::selected":0,"option::value":0,"p::align":0,"pre::width":0,"q::cite":1,"select::disabled":0,"select::multiple":0,"select::name":8,"select::onblur":2,"select::onchange":2,"select::onfocus":2,"select::size":0,"select::tabindex":0,"table::align":0,"table::bgcolor":0,"table::border":0,"table::cellpadding":0,"table::cellspacing":0,"table::frame":0,"table::rules":0,"table::summary":0,"table::width":0,"tbody::align":0,"tbody::char":0,"tbody::charoff":0,"tbody::valign":0,"td::abbr":0,"td::align":0,"td::axis":0,"td::bgcolor":0,"td::char":0,"td::charoff":0,"td::colspan":0,"td::headers":6,"td::height":0,"td::nowrap":0,"td::rowspan":0,"td::scope":0,"td::valign":0,"td::width":0,"textarea::accesskey":0,"textarea::cols":0,"textarea::disabled":0,"textarea::name":8,"textarea::onblur":2,"textarea::onchange":2,"textarea::onfocus":2,"textarea::onselect":2,"textarea::readonly":0,"textarea::rows":0,"textarea::tabindex":0,"tfoot::align":0,"tfoot::char":0,"tfoot::charoff":0,"tfoot::valign":0,"th::abbr":0,"th::align":0,"th::axis":0,"th::bgcolor":0,"th::char":0,"th::charoff":0,"th::colspan":0,"th::headers":6,"th::height":0,"th::nowrap":0,"th::rowspan":0,"th::scope":0,"th::valign":0,"th::width":0,"thead::align":0,"thead::char":0,"thead::charoff":0,"thead::valign":0,"tr::align":0,"tr::bgcolor":0,"tr::char":0,"tr::charoff":0,"tr::valign":0,"ul::compact":0,"ul::type":0},html4.eflags={OPTIONAL_ENDTAG:1,EMPTY:2,CDATA:4,RCDATA:8,UNSAFE:16,FOLDABLE:32,SCRIPT:64,STYLE:128},html4.ELEMENTS={a:0,abbr:0,acronym:0,address:0,applet:16,area:2,b:0,base:18,basefont:18,bdo:0,big:0,blockquote:0,body:49,br:2,button:0,canvas:0,caption:0,center:0,cite:0,code:0,col:2,colgroup:1,dd:1,del:0,dfn:0,dir:0,div:0,dl:0,dt:1,em:0,fieldset:0,font:0,form:0,frame:18,frameset:16,h1:0,h2:0,h3:0,h4:0,h5:0,h6:0,head:49,hr:2,html:49,i:0,iframe:4,img:2,input:2,ins:0,isindex:18,kbd:0,label:0,legend:0,li:1,link:18,map:0,menu:0,meta:18,nobr:0,noframes:20,noscript:20,object:16,ol:0,optgroup:0,option:1,p:1,param:18,pre:0,q:0,s:0,samp:0,script:84,select:0,small:0,span:0,strike:0,strong:0,style:148,sub:0,sup:0,table:0,tbody:1,td:1,textarea:8,tfoot:1,th:1,thead:1,title:24,tr:1,tt:0,u:0,ul:0,"var":0},html4.ueffects={NOT_LOADED:0,SAME_DOCUMENT:1,NEW_DOCUMENT:2},html4.URIEFFECTS={"a::href":2,"area::href":2,"blockquote::cite":0,"body::background":1,"del::cite":0,"form::action":2,"img::src":1,"input::src":1,"ins::cite":0,"q::cite":0},html4.ltypes={UNSANDBOXED:2,SANDBOXED:1,DATA:0},html4.LOADERTYPES={"a::href":2,"area::href":2,"blockquote::cite":2,"body::background":1,"del::cite":2,"form::action":2,"img::src":1,"input::src":1,"ins::cite":2,"q::cite":2};var html=function(a){function x(b,c,d){var e=[];w(function(b,e){for(var f=0;f<e.length;f+=2){var g=e[f],h=e[f+1],i=null,j;if((j=b+"::"+g,a.ATTRIBS.hasOwnProperty(j))||(j="*::"+g,a.ATTRIBS.hasOwnProperty(j)))i=a.ATTRIBS[j];if(i!==null)switch(i){case a.atype.NONE:break;case a.atype.SCRIPT:case a.atype.STYLE:h=null;break;case a.atype.ID:case a.atype.IDREF:case a.atype.IDREFS:case a.atype.GLOBAL_NAME:case a.atype.LOCAL_NAME:case a.atype.CLASSES:h=d?d(h):h;break;case a.atype.URI:h=c&&c(h);break;case a.atype.URI_FRAGMENT:h&&"#"===h.charAt(0)?(h=d?d(h):h,h&&(h="#"+h)):h=null;break;default:h=null}else h=null;e[f+1]=h}return e})(b,e);return e.join("")}function w(b){var c,d;return v({startDoc:function(a){c=[],d=!1},startTag:function(e,f,g){if(!d){if(!a.ELEMENTS.hasOwnProperty(e))return;var h=a.ELEMENTS[e];if(h&a.eflags.FOLDABLE)return;if(h&a.eflags.UNSAFE){d=!(h&a.eflags.EMPTY);return}f=b(e,f);if(f){h&a.eflags.EMPTY||c.push(e),g.push("<",e);for(var i=0,j=f.length;i<j;i+=2){var k=f[i],l=f[i+1];l!==null&&l!==void 0&&g.push(" ",k,'="',r(l),'"')}g.push(">")}}},endTag:function(b,e){if(d)d=!1;else{if(!a.ELEMENTS.hasOwnProperty(b))return;var f=a.ELEMENTS[b];if(!(f&(a.eflags.UNSAFE|a.eflags.EMPTY|a.eflags.FOLDABLE))){var g;if(f&a.eflags.OPTIONAL_ENDTAG)for(g=c.length;--g>=0;){var h=c[g];if(h===b)break;if(!(a.ELEMENTS[h]&a.eflags.OPTIONAL_ENDTAG))return}else for(g=c.length;--g>=0;)if(c[g]===b)break;if(g<0)return;for(var i=c.length;--i>g;){var h=c[i];a.ELEMENTS[h]&a.eflags.OPTIONAL_ENDTAG||e.push("</",h,">")}c.length=g,e.push("</",b,">")}}},pcdata:function(a,b){d||b.push(a)},rcdata:function(a,b){d||b.push(a)},cdata:function(a,b){d||b.push(a)},endDoc:function(a){for(var b=c.length;--b>=0;)a.push("</",c[b],">");c.length=0}})}function v(c){return function(d,e){d=String(d);var f=null,g=!1,h=[],j=void 0,l=void 0,m=void 0;c.startDoc&&c.startDoc(e);while(d){var n=d.match(g?t:u);d=d.substring(n[0].length);if(g){if(n[1]){var o=b(n[1]),p;if(n[2]){var q=n[3];switch(q.charCodeAt(0)){case 34:case 39:q=q.substring(1,q.length-1)}p=k(i(q))}else p=o;h.push(o,p)}else if(n[4]){l!==void 0&&(m?c.startTag&&c.startTag(j,h,e):c.endTag&&c.endTag(j,e));if(m&&l&(a.eflags.CDATA|a.eflags.RCDATA)){f===null?f=b(d):f=f.substring(f.length-d.length);var r=f.indexOf("</"+j);r<0&&(r=d.length),l&a.eflags.CDATA?c.cdata&&c.cdata(d.substring(0,r),e):c.rcdata&&c.rcdata(s(d.substring(0,r)),e),d=d.substring(r)}j=l=m=void 0,h.length=0,g=!1}}else if(n[1])c.pcdata&&c.pcdata(n[0],e);else if(n[3])m=!n[2],g=!0,j=b(n[3]),l=a.ELEMENTS.hasOwnProperty(j)?a.ELEMENTS[j]:void 0;else if(n[4])c.pcdata&&c.pcdata(n[4],e);else if(n[5]&&c.pcdata)switch(n[5]){case"<":c.pcdata("&lt;",e);break;case">":c.pcdata("&gt;",e);break;default:c.pcdata("&amp;",e)}}c.endDoc&&c.endDoc(e)}}function s(a){return a.replace(m,"&amp;$1").replace(n,"&lt;").replace(o,"&gt;")}function r(a){return a.replace(l,"&amp;").replace(n,"&lt;").replace(o,"&gt;").replace(p,"&#34;").replace(q,"&#61;")}function k(a){return a.replace(j,g)}function i(a){return a.replace(h,"")}function g(a,b){return f(b)}function f(a){a=b(a);if(c.hasOwnProperty(a))return c[a];var f=a.match(d);if(f)return String.fromCharCode(parseInt(f[1],10));if(!!(f=a.match(e)))return String.fromCharCode(parseInt(f[1],16));return""}var b;"script"==="SCRIPT".toLowerCase()?b=function(a){return a.toLowerCase()}:b=function(a){return a.replace(/[A-Z]/g,function(a){return String.fromCharCode(a.charCodeAt(0)|32)})};var c={lt:"<",gt:">",amp:"&",nbsp:"240",quot:'"',apos:"'"},d=/^#(\d+)$/,e=/^#x([0-9A-Fa-f]+)$/,h=/\0/g,j=/&(#\d+|#x[0-9A-Fa-f]+|\w+);/g,l=/&/g,m=/&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi,n=/</g,o=/>/g,p=/\"/g,q=/\=/g,t=new RegExp("^\\s*(?:(?:([a-z][a-z-]*)(\\s*=\\s*(\"[^\"]*\"|'[^']*'|(?=[a-z][a-z-]*\\s*=)|[^>\"'\\s]*))?)|(/?>)|[\\s\\S][^a-z\\s>]*)","i"),u=new RegExp("^(?:&(\\#[0-9]+|\\#[x][0-9a-f]+|\\w+);|<!--[\\s\\S]*?-->|<!\\w[^>]*>|<\\?[^>*]*>|<(/)?([a-z][a-z0-9]*)|([^<&>]+)|([<&>]))","i");return{escapeAttrib:r,makeHtmlSanitizer:w,makeSaxParser:v,normalizeRCData:s,sanitize:x,unescapeEntities:k}}(html4),html_sanitize=html.sanitize

// stop here if we're not in TiddlyWiki
// XXX: is this the correct way of checking for TiddlyWiki?
if (!window.TiddlyWiki || !window.store || !store instanceof TiddlyWiki) {
	return;
}

var tiddlyspace = config.extensions.tiddlyspace;

var _subWikify = Wikifier.prototype.subWikify;

var cleanedTitle = 'This section has been cleaned of any potentially harmful code';

var replaceFunctions = {
	html: function(w) {
		var sanitizedHTML, spanEl;
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			sanitizedHTML = $.sanitize(lookaheadMatch[1]);
			spanEl = createTiddlyElement(w.output, 'span', null, 'sanitized');
			spanEl.innerHTML = sanitizedHTML;
			spanEl.setAttribute('title', cleanedTitle);
			w.nextMatch = this.lookaheadRegExp.lastIndex;
		}
	},
	customFormat: function(w) {
		switch(w.matchText) {
			case '@@':
				var e = createTiddlyElement(w.output, 'span');
				var styles = config.formatterHelpers.inlineCssHelper(w);
				if (styles.length === 0) {
					e.className = 'marked';
				}
				w.subWikifyTerm(e, /(@@)/mg);
				break;
			case '{{':
				var lookaheadRegExp = /\{\{[\s]*([\w]+[\s\w]*)[\s]*\{(\n?)/mg;
				lookaheadRegExp.lastIndex = w.matchStart;
				var lookaheadMatch = lookaheadRegExp.exec(w.source);
				if(lookaheadMatch) {
					w.nextMatch = lookaheadRegExp.lastIndex;
					e = createTiddlyElement(w.output,lookaheadMatch[2] == "\n" ? "div" : "span",null,lookaheadMatch[1]);
					w.subWikifyTerm(e,/(\}\}\})/mg);
				}
				break;
		}
	}
};

Wikifier.prototype.subWikify = function(output, terminator) {
	var tid = this.tiddler,
		spaceName = tiddlyspace.currentSpace.name,
		tidSpace, recipeName, stripped;
	try {
		recipeName = tid.fields['server.recipe'] ||
			tid.fields['server.workspace'];
		tidSpace = tiddlyspace.resolveSpaceName(recipeName);
		if (tidSpace !== spaceName) {
			// external tiddler, so replace dangerous formatters
			stripped = stripHTML(tid, this.formatter);
		}
	} catch(e) {
		// do nothing. There's no tiddler, so assume it's safe (?!?!?)
	}

	_subWikify.apply(this, arguments);

	if (stripped) {
		// change back to the original function
		unstripHTML(stripped, this.formatter);
	}
};

// replace potentially unsafe formatters with versions that strip bad HTML/CSS
var stripHTML = function(tid, formatter) {
	var popped = {}, _handler;
	for (var i = 0; i < formatter.formatters.length; i++) {
		var f = formatter.formatters[i];
		if (replaceFunctions[f.name]) {
			_handler = f.handler;
			popped[f.name] = _handler;
			f.handler = replaceFunctions[f.name];
		}
	};

	return popped;
};

// put the original formatters back where they belong
var unstripHTML = function(stripped, formatter) {
	for (var i = 0; i < formatter.formatters.length; i++) {
		var f = formatter.formatters[i];
		if (stripped[f.name]) {
			f.handler = stripped[f.name];
		}
	};
};

})(jQuery);
//}}}
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
<!--{{{-->
<link href="/bags/customize_public/tiddlers.atom" rel="alternate"
	type="application/atom+xml" title="customize's public feed" />
<link rel="canonical" href="http://customize.tiddlyspace.com/" />
<!--}}}-->
R0lGODlhAQEBAYIAMTRmrJS23OTu9HSezLTK5Pz+/Mza7PT2/CwAAAAAAQEBAQID/gi63P4wykmrvTjrzbtvQyiOZGmeaKqubOu+cCzPdB0qdq7vfO//wBUuSCwaj8gkaqhsOp/Q6IgprVqvWBg1y+16pduveEzuhcvotFp1Xrvf6DZ8TsfK6/i88q7v+318f4KDMoGEh4hLAImMjUKLjpGSN5CTlomGl5pwmZueaZ2fomKho6ZZpaeqYJWrrqStr7KosbO2rLe5Vam6vTm8vsGFtcLFZsTGyTbAys0lzM7RA9ApAdK31CgGBwTXstknBgUF3N6r4Cbi4+Td5qPoJerr7O6f8CTy8/T1l/cj+fr28YvkTwTAgAIHYkKW4yDChAoHFQzh8CHEiH0mDqho/vEixjoaOXb0+PFNyJEjy5WkcxJlynYr3bR0+TLmmpk0a9osgzOnzp1fevr8CZRWEJFDEaosekVoUpRLmUZx+hQqTKlOqFa1ijUrQxtIt3aM2rWIVrEuyZb9cRZt2qtrjx1161Zt3GVfa4Sl+/bujrZ8c9r1+wJwYMFwCbswfBixYi15aext7HPw42eRZ0ymXDnxZRKMOQ+1fDm06NGeS2eWsfl0UtJ3Tbt+nTr26hitZz+FjVW27t21e9+Gkft3Vd47fRs/Hjz58BfFl29F/lG59OnNqz93Ef26WOr8rHv/nj389hbdx6MFf028+vXl259nkf593fjO3Nu/j1H//n7+A/n3H4DuCDgggfLNdeCA7GEz3wr1LdhYg988qEKEEk6IX4UKZrgghacY6OFhIIoi4ogkbviOhSlgiKJoJfbDojYvvhijJCfWSNmNjeSo444q4jhjOD/+yCMhPhbJ2ZF/JKnkkkEe4uSTUK7YIZVFMsnSkOlgiaWWJnEZj5degqnGlGS6ZiZPYuKTZpprwnLlm19GKVOb/9BJZ5xGAeGinvbxaQWagBon6FR4GlRooYd6NeeibzaaBKGQSiepEZRWaqmdTSVKkaaaXsqWpxuBCqqoPGRqqneo/kLqn6t62CoNqsY63qwx1GrrrZxi+uquu+LKgq7AqidsCsQW/mtsr3L5qayyx4L267PQMovXo9TaGm2y2e4nLLfdemttYdOGmy2q4Jr736XpqrvuuIpg6+6zAhDR7rzvNXovvtexWy6/2sL7iLwALzrrvgVX6aizCUO67b8NRyrwMARHnOXEMyBsMW19/gDrxr9Fe4LGIBPVsQ8flwzkGCSrPI/Iw0LssrigyDwzrzfZfPNyMOeq886z9Uwxw0AbivEePxedYh4t4yu0qxUrTV6TSUsNnERVW+0YkllrbbIgTRf7tL1de63P2GaVbTZJUqqtNdpIhF0p3JO6DTTdSEctNd5NyC1xiHaDzDcUflM5OKJ6l3w4LkQXvfgugTt9NNaJ/hf8uB2Rh3v5yT2kbOrmXBTO4OSOiB4o6QRlHrA0pveLuiWtG12g6g6/vknsp4EeZuWn2m4i7XD6bmXjwOqOB+4IloQ8dkUtzzFTzm8tVfRclUW9RcYvxLuO2TNy/cvCF/M929YDn2/4ykTfvYzbv/sZZu2f/74Jra//e/ybzo+s+TCiHyD/GtJfzPCXO//1B4DJEyAbEMg8BZKLgHyxny7AJcFeJKuCvtAVBoOhqg0Kg1IeFB8DAxJCYziphMnwEQrTx8AVNsNALsyP+WIYDffQkHWZu2GCiNcXBzLOY53x4aDKpkPz6K2I/6sYEhVClSVGRChOPOCVoqgdBVFRinmvuuJKNGINId7Ji4ADoyk0IsaclfF+Z/QEGdPIJjbejlRuJMMa4xgUONKxjnecxBzzyDk+ImKPfhxiIHtkx0EK0pB/LCQiEbdIrjXSkY8EmyIjmTdK+gGQljwCJjOZNk7qYZOeBAIoQwmISZJSlKY8ZSlVOYdRstJVH4ilLGdJy1ra8pa4rEACAAA7
If you're an author, please help list your stuff!

{{annotation{
''2013-08-23''<br> I have imported plugin descriptions for [[Eric Shulman]] / [[Udo Borowski]] / [[Simon Baird]] / [[Pascal Collin]] and [[Saq Imtiaz]]. Those that need review and don't have a corresponding <<tag Plugins "plugin category">> yet are tagged <<tag Review>>.
{{right{— [[Tobias Beer]]}}}
}}}
Some entries need a {{title{[[Review]]}}}. Please, remove the <<tag Review>> tag __only__ when the entry is complete. Assign the <<tag Preview>> tag if the preview is still missing. Also, if a plugin is broken in version <<version>>, tag it <<tag Broken>> and perhaps list alternative plugins that do work.

There are also lots of references on TiddlyWiki.com that haven't made it here yet.
;http://tiddlywiki.com/#Examples
: — as references or apps

If you want, you can pick any author or reference and browse their stuff, there's plenty of undocumented room!

The following sources probably have a lot of interesting stuff not yet listed...
<<get [[Dave Gifford]]>>
;some more
:» http://twhelp.tiddlyspot.com (Morris Gray)
:» http://tiddlertoddler.tiddlyspot.com
;some plugins
:» http://historyplugin.tiddlyspace.com/#HistoryPlugin
:» http://northernwinds.tiddlyspace.com
:» http://axs.tiddlyspot.com/#TagglyTagsMenuPlugin
:» http://pip.tiddlyspace.com/#TiddlerEditablePlugin
:» http://poller.tiddlyspace.com
:» http://serializer-links.tiddlyspace.com
:» http://repviewmacro.tiddlyspace.com
;apps
:» http://bookmarks.tiddlyspace.com
:» http://bookmarksplugin.tiddlyspace.com
:» http://commander.tiddlyspace.com/
:» http://goljanpathology.tiddlyspot.com/#Contents
:» http://vanillatiddlydocs.tiddlyspot.com
:» http://tiddlydocs.tiddlyspace.com
;themes
:» http://pip.tiddlyspace.com
;tools
:» http://fonts.tiddlyspace.com/
:» http://maketiddler.tiddlyspace.com
<<tag [[Data Management]] Plugins>>for managing structured data in a database-like manner using custom fields, tiddler sections, slices, special formats like JSON, etc...
|details|k
|''URL''|http://www.TiddlyTools.com/#PanelManagerPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-12-25|
|''Version''|1.0.2|
|''CoreVersion''|2.1|
|''Requires''|MoveablePanelPlugin|
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#PanelManagerPlugin|
!Summary
Add-on for [[MoveablePanelPlugin]]: Panel Manager Menu, Control Panel, and Map Viewer 
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#PanelManagerPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#PanelManagerPlugin
|details|k
|''URL''|http://mptw.tiddlyspot.com/#ExtendTagButtonPlugin|
|''Author''|[[Simon Baird]]|
|''Released''|2013-06-17|
|''Version''|3.2a|
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Simon Baird]]|
|''Source''|http://mptw.tiddlyspot.com/#ExtendTagButtonPlugin|
!Summary
Adds a New tiddler button in the tag drop down
!Examples
; [[plugin info tiddler|http://mptw.tiddlyspot.com/#ExtendTagButtonPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://mptw.tiddlyspot.com/#ExtendTagButtonPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#DailyChecklist|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-02|
|''Version''|2.0.0|
|''CoreVersion''|2.4|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#DailyChecklist|
!Summary
example of self-contained tag-based daily checklist
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#DailyChecklist]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#DailyChecklist
|details|k
|''URL''|http://www.TiddlyTools.com/#OpenTiddlers|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-25|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#OpenTiddlers|
!Summary
command link to open multiple tiddlers with a single click
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#OpenTiddlers]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#OpenTiddlers
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
|details|k
|''URL''|http://www.TiddlyTools.com/#ToggleLeftSidebar|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-26|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ToggleLeftSidebar|
!Summary
show/hide left sidebar (MainMenu)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ToggleLeftSidebar]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ToggleLeftSidebar
|details|k
|''URL''|http://yakovl.bplaced.net/TW/STP/STP.html|
|''Author''|[[Yakov Litvin]]|
|''Released''|2013-09-10|
|''Version''|2.4.0|
|''CoreVersion''|2.2.6|
|''Requires''|UpToDateFiltersPlugin|
|''Requirements note''|[[UpToDateFiltersPlugin|http://yakovl.bplaced.net/TW/ExtraFilters.html#UpToDateFiltersPlugin]] is necessary only for TW below v2.6.2|
|''Source''|http://yakovl.bplaced.net/TW/STP/STP.html#SharedTiddlersPlugin|
|''Licence''|[[BSD-like open source license|http://yakovl.bplaced.net/TW/STP/STP.html#%5B%5BYakov%20Litvin%20Public%20Licence%5D%5D]]|
! Summary
A successor of [[IncludePlugin|IncludePlugin...]], [[SharedTiddlersPlugin|SharedTiddlersPlugin...]] allows to include tiddlers from other ~TiddlyWikis, with or without actually importing them. You can open or search included tiddlers, run them as plugins, use them as theme components, etc...
! Examples
; [[plugin info tiddler|http://yakovl.bplaced.net/TW/STP/STP.html#SharedTiddlersPluginInfo]]
:see the author's info tiddler for examples — or details below
! Details
Sometimes having multiple ~TiddlyWikis causes some problems...
* some tiddlers with content may belong to more than one TW: for instance, if you created wikis about health and about cooking, or about coding and about ~TiddlyWiki, you may desire to have some tiddlers (like "Food for muscles" or "Interface development") in both of them
* if you constantly improve interface of your ~TWs and add new extensions, you probably wonder if you can store them in one place and share them somehow among your wikis
* also, it may be useful to aggregate some tiddlers (for instance, the ones tagged "~ToDo") in one place
and on the other hand it's not always convenient to have one big ~TiddlyWiki, because:
* it can grow too large to use it as a web-site and you will probably need to store in a separate wiki the only content which is meant to be published
* it can make workflow worse, because separate ~TWs can be opened in separate browser tabs and changed "asynchronously" (in contrast to two copies of one TW opened in separate tabs)
* different ~TWs can naturally appear on different devices/storages and are needed to be "merged" only from time to time
etc.

And that's where ~SharedTiddlersPlugin comes forward. It's idea is to load tiddlers from one ~TiddlyWiki in another when opening it. Create your "Food for muscles" or "Interface development" in one TW and include it into the the other -- you will see it in both (although, will be able to //edit// it only in one of them which can be no problem if things are put together in a right way). Or include ~PageTemplate from one "central" ~TiddlyWiki to each other and get your interface common for all ones. Or for aggregating "~ToDo"s, "problem"s, "question"s, whatever, include all your ~TWs in another one and use {{{<<tag>>}}} or {{{<<tagged>>}}} macro. Or use autoimport for central updating of extensions including those you develope yourself from their repositories (currently only local ones) -- or even launch included plugins without importing them.

{{annotation{
''Note :'' ~SharedTiddlersPlugin is a fork of [[IncludePlugin|http://tiddlywiki.abego-software.de/#IncludePlugin]].
}}}
Handy tools for lists...
» http://jackparke.tiddlyspot.com

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="506 234 68 36" width="30" height="30"><metadata xmlns:dc="http://purl.org/dc/elements/1.1/"><dc:date>2010-09-16 14:51Z</dc:date><!-- Produced by OmniGraffle Professional 5.2.3 --></metadata><defs></defs><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><rect width="1118" height="783"/><g><path d="M 538.68195 244.31807 C 540.43927 246.07547 540.43927 248.9247 538.68195 250.68204 C 536.92456 252.4394 534.07532 252.4394 532.318 250.68204 C 530.5606 248.9247 530.5606 246.07547 532.318 244.31807 C 534.07532 242.56075 536.92456 242.56075 538.68195 244.31807 M 511.12607 257.99356 C 511.26108 258.13019 511.39728 258.26608 511.53473 258.40121 C 527.2556 273.86606 552.74414 273.86606 568.46515 258.40121 C 568.60248 258.26617 568.73853 258.13037 568.87354 257.9938 C 568.8736 257.99374 568.8736 257.99371 568.8736 257.99362 C 568.87366 257.99371 568.87366 257.9938 568.87372 257.9939 C 570.72504 256.12051 572.35046 254.11153 573.74994 252 C 573.74994 251.99997 573.74994 251.99994 573.74994 251.99992 C 572.35046 249.8884 570.72504 247.87938 568.87372 246.00606 C 568.87366 246.00613 568.87366 246.00621 568.8736 246.00627 C 568.73865 245.86966 568.60254 245.73383 568.46515 245.5987 C 552.74414 230.13387 527.2556 230.13387 511.53473 245.5987 C 511.39728 245.73383 511.26108 245.86974 511.12613 246.00635 C 511.126 246.00624 511.126 246.00616 511.12595 246.00606 C 509.2748 247.87938 507.64954 249.88837 506.24994 251.9998 L 506.24994 251.99983 C 506.24994 251.9999 506.25 251.99992 506.25 251.99997 C 506.25 252 506.24994 252.00005 506.24994 252.00009 L 506.24994 252.00012 C 507.64954 254.11157 509.2748 256.12051 511.12595 257.9939 C 511.126 257.99377 511.126 257.99365 511.12607 257.99359 Z M 515.44916 252 C 515.8548 251.55469 516.27502 251.11778 516.71014 250.68985 C 522.16632 245.32257 529.06055 242.23206 536.17273 241.41824 C 534.6662 241.96199 533.2525 242.83762 532.04498 244.04512 C 527.65155 248.43852 527.65155 255.56163 532.04498 259.95502 C 533.2522 261.16226 534.6656 262.03778 536.17175 262.58154 C 529.05988 261.76761 522.16608 258.6771 516.71014 253.31009 C 516.2751 252.88219 515.85486 252.44528 515.44922 252 Z M 564.55054 251.99995 C 564.14502 252.44525 563.7248 252.88217 563.28973 253.31009 C 557.83368 258.67712 550.93988 261.76764 543.828 262.58157 C 545.33423 262.03781 546.74756 261.1623 547.9549 259.95502 C 552.34833 255.56163 552.34833 248.43852 547.9549 244.04512 C 546.74744 242.83765 545.33374 241.96202 543.82715 241.41824 C 550.9394 242.23206 557.83356 245.3226 563.28973 250.68985 C 563.7248 251.11775 564.14502 251.55467 564.55054 251.99995 Z M 568.8736 257.99362 C 570.7249 256.12033 572.35028 254.11139 573.74988 252.00002" fill="black" class="glyph"/></g></g></svg>
|details|k
|''URL''|http://mptw.tiddlyspot.com|
|''Author''|[[Simon Baird]]|
|''Source''|http://mptw.tiddlyspot.com/empty.html|
! Summary
Monkey Pirate TiddlyWiki, or short MPTW, is a nice TiddlyWiki template by [[Simon Baird]] shipping with a number of usability enhancements and productivity features like taggly tagging.
! Preview
[img[[img[http://img.tiddlyspace.com/MonkeyPirateTiddlyWiki][http://mptw.tiddlyspot.com]]
|details|k
|''URL''|http://www.TiddlyTools.com/#SaveFromWebPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-02-14|
|''Version''|1.3.2|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SaveFromWebPlugin|
!Summary
extend 'save changes' to get remote document contents and save to local filesystem 
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SaveFromWebPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SaveFromWebPluginInfo
R0lGODlhAQEBAYQAMTRmrHy56cTW7InO/Nvv/KTW/HSezJy+3O72/HSs3IPF+anb/Nzm9PL7/JS23Mjn/Iyy3LPK5LzP5pjU/Lnh/NTi9OTx+/z+/Hyy5ITK/Hy+9HSm1rzW9Hyu49Tq/DxqtCwAAAAAAQEBAQQF/uAHjGRpnmiqrmzrvnAsz3Rt36No7Hzv/8CgcEgsGo/IpHLJbDqfuxF0Sq1ar9istijder/gsHgs7JLP6LR63TOz3/C4XOme2+94dj3P7/uve3+Cg4REgYWIiYKHio2OcoyPkpNkkZSXmFiWmZydTJueoaJlAKOmp1ylqKusUaqtsKOgsbSKs7W4g7e5vHy7vcBzv8HEeq/FyL7HyczCy83QxtHTb8PU11PW2Nufz9zfgN7g41Da5Oc/5r0bCRgB7wEa8vP08O8dCRvn6q3s7vIZAgocSLBgQXkB8Om7xs9UgngGI0qcWFCBBgwLmzXs9FADxY8gP1rEmGwjpQ0Y/jyGXMlyosUOGXmZdLShg8qWOHNWDJCg18xED3UKHUpQQYCYsH4O2hBAAdGnUDMoIJlUXCimUbNCNYrUlFI+CW5qHUv06Kqvd8KSXRvVrFerlNSynQtVQ9dMaOFsELt2QoEHDywItoDgguHDFxAMtgC4wAS6Gdx2yrsGK9kJFAIXRsy5s2fEih9QeDxWQQdPlNMkcJoVM4HPsGPLvkBgtFYNPfHCRbQ36oTAs4ML/8yY9FPJk1KPCQD19+bh0KMfRvDAuFDTl5SD6T10AAUL0sOLN2yBwoCydxFp97J6aIHX4+OPJ1BgqF1J67UwF7rgufz/4SGwwFCnOZLfFdzl/kRBAwA2GF8DFAiFXCEHVtEeTt4x6OCG40F4Hk4KpOdHhVN0oNMCGnKoongNDAiiiMoggkFOE8C34o3iWWDdSrkRQqIT+7E0wAM4FhnfAx+yVKAuu8mR4EooGiklixG2hIGPTerF10cD2Djll9ERkGRIATD5x5MgTZAimGwO10B9LJX5x49IoPkRBW3mKd0DLcnZB51G2DlRl3oWCp0FY37kZx6AFrHlRAWsaeiksbXI0pUx5hEkSHhS6mlwVYa05B2NCjHjSp1+qmpsfPLIaJZnmLgSkavWClurIcGoRqk/JMCSB7YG+5mYIYVIKqxibMAal14K6yx5iUp0nzN2/jxq0ADgPavtdNFGtCgcvPKwKUXNbvsssSD1CC6yX/gaEq3mxutBsbqOEa6y78arr2G4UqQBJOxuYW1Bqe4bb6gUfbtrwFmMK9ECBkeM8ETqLvzGBiFNEPHGO0ZkrDRsDDzQAP5tHG8D3Rak8BmNyvoRsCZHPC9I9XoBKL53xmzyxBH9uwagDhukps4md2xQxZUwTAXGXGZLdMQIpDzQx2jQKbJA8D4dcb8SrRzGj+5SpLHWMRtdUM2aKA3F1QE5TXbEFoDkM8tqOxH2RBC/HTPPBqFtBYlsDyDpyYsVbjLKilZdNxN3S5S1tgQ8sICLgy6Qmdvach2R31RUyPbY/s8iYJtQAyzwwOC2mj2Q11scyDS5zlKnuk6/of5p3B9xXs7iSnwurIB0ZSgsnBNhKkZ+r09ULqWWQhbQkLYbSoBIujuRX9AEgf4phM4XNGTqHxkPxno4T/S4oR52H9H3qk7vr728H9H4taoiMLv6GQz96f0ZVN+NGGw7n57Qhb+JTKBkhdKcyo4XvyIkb32fUmABrwUzSkktIApgYBhcJpGCFYpyEwSJANvEN4IgLQvaYRvm2tQA/rkEIe9IgAzhAZCh5M1QCEjc+Bo4hAcKbVIt1IlRTggEdjSFdpQymwKcksEdguFUE/Fgm1xIkIv4bwdMWRaUJiVBDJyKiH/j/qEQ2IZAMIFQbmBcAga0KEL0GSRE+GJdFVLjw4Jor00S9NioqpBFlizvS8QTCKZm1ESbiREI8yvICKXkvpBQRQuWAQnJEliUheDrikdIDfYGEr0iRa1YabQCB8XWSRw1gCDim9Ee02aEEEZEArBkgHyCKDdMLqF8FLnhFAVCNQMoS47ZgJUrC4LFMkKnhCqzJRMEZZAKsilUmMoAD9b4hVks8ZrYzKY2t8nNbmKTBxGY5QUFAkwvRHJQA8TgQgqpLGUO4RbejKc859nEDRhzOMhc3cXYloFFmjIgmLrmNFcZRiTQ86AILWQ445PDj0yLDbiEYJ4m8DGBYrGc1mNX/kI36s1iyueMb3QnFRKpyDxRIKDf3AFB56hRjro0pQZY6HgaSpFQxopLpVTRA9YJU5EG4RcvDapH4wPSgohPDpsUiBSNFIEdbJMHPk1HwILqUnDKB3cuiSofucQmBPA0m19jGFU3OtTx5DMgNlVDUgPiTKY6lZtOVMJYEWpV+YxzbnioI0F06cmvajOucp3rPHlwT+FgVSJpXcNaBTelphogntVUmmDlyYMD/OeseM1DRAvS1hV59a3djGwTJtvRHaxQOvdbqR3WulQOOXawrVMbPWZL29ralraV/c8pKaJVLZBUIHdU0WcNcFt6GNIJxU2ucuXBg9OG6X2C0Csn/ovk2OUyVwvmsK52Z5vbyyaMEFfrrIOGq93YPmG76G0ugIo6kN5uAYoRaS2Aqrtd7C4OveXdgWUBNLtCRjeXNyJvfVHIO3sY+MAITrCfnCsd6BKCjdm7kQR2oOAKExgKFc6wgrv7H5p6CxEQHtmNcqNhBF8YwyVO8YIbdFiDYHQOV1uRACisYgOzEsU1trB+HdRioyJirTmVDolzDI8b45jIB1Zvg2YmEdVqiiJBhs6MDYBke4SDClVO8o4dxOSIJFYO8DUIg8Uz5CxfGctZLrJpN9TloyFilAUZs3SmnGY1d46HdfbTfrlc0x9TpLBCpnGdC1qFQa+ZzRRxMh6A/uygKVM5zy9OhRXSzGEef7cQjG5QmfPM0iuY+dAb6jFBIh2HGDfI0ZC28xN+UuVKO2i3XQMxOjUt6FTfGQtezLWud71rJavogpn9Q4iBe+pp8vrYyEZ2MHGdbGVveUX9LYR0A8LX8eSm2dhu9rKZne1c+1pF7BXIl98Q5pL+x9HdTnevV33IHajbeA4o0llJHTKKiDfQBni3vnenBXXzoAJFaqTHlvKRKMcG3fp+N7u10IGGO/zhD+cBBIwEa4m4FwtwjvB/cgPxjnv84yBfOMNB7vB/S+l+R31yFM/NA5K7/OUlb0JeXi7xKWH2TC/buEphzvOQy7zdPXC5yaUk/moT+mGxBv+Mo3vOdI//nD0yjLrUa/6l+wV7DtOmts4NIPWue/3rYA/706H+9aFPKY+C5MNaM/DH4Tg67HCPO9z/R/auU/1LHvbYxZ+Q9QwMYOtyD7zgZUj3LCyk7DvgQJvCnfY7BFA+bx+85OdOB6BjcQdeh6p8A5wuO5Tbe/+BAOYnT3rEJyEvGzj81HeggeBK6axS2bsSfjsQfwanAjwove7tfnrLU3j0hMdiQJIOIMT5S/ZH2Czo5SN6ru/++eM2AGXcEnUeqKTtOIJ9Bq5OBmYSxPazwT3woa/73rPHZ6mHqlLzZPxLp8H7A3F9dJqf+vrb//74z7/+919//vNvAWOWZH3EZlIh8VBjAH8DgX23B1X814AO+IB+kxrXpX4DoSe05FDI5wMX8hHVJh0IwAAgGIIiOIIiaBHFlXJntgXMERN8cW9G8kkgoQDR1wSfFxH60yYC52WixR7bR4ED0YFTkoMJI3vnRBGMpSeMFxDIR0dKyHoGQXwOgnYV8Uh8tHYEoYCmdFeAJTA9qFfgl30tMRVViBNfeCNt5mJb2G9KaC3yV3UgwhNNYETDtnKGkoQZMIOVtx0BITKAViQXGIYJUTMowU8RAYRfUnEDl4Za8HjoY4cUYYLvgAEP8Q7yMIchsXlnp0M7+AUZp3GTon3DVIZFwj8ZKH2+/tcDfcd2niKFrkQolCKEB6FBYbB2bcgmiDJMQtOHUxJIEYGCJwYGtCcQWDglf4iLUeIpebc5shgGlhgQBbAqSIKLE+CCeWKH3PeLYGCFuniI0VhA7FM/IKFohBYGqWiIhcI93fONq2KHvbSJswgS28gm6MgW0BMs7ScRvmhf3QcS5ghE1TEWC0CNlMKOpcgDngMSw4hDkjNOlXM62lJ0qEQ3Z5CKfxcvjEEBC3A/E2A6DxCPSUQzEnkG/ISJz1I4hBEzrBgZioMGwfg8Hqk3qnKPFreSaMBP/QiTwaJ99HZrLBkSAomTqwKRBFGQPmA1kgSFQMlCLpSP7riPIPGM/kn5LI5ogEmzBjVoblFpK2eogxajBsonZllZKzDoYGnQKC0ZEDcYlh8Jkj9zikZAiDeplq/nSNXglg40K3JpKCkZe3UJB1fJWXmZJ7DIlSDzBoSoioH5JbcIEjuJjZXRjAKBLYkpJWNJloX5BmfpkpOZhfQCMHNghWiJlJspG8VIMdQCYyuRlqM5S1SkkqfpJJAZmS+5mp5RmtJClEYQLj2Qmc8jZ7QZG5X5iLiZm3a5BLzpdwn5m4hBQNSDB7rpA50oET+pnIfhAQw5EHioiEjVEiRJnXspbpmicisRKdT5Gc2zEuLYln5wmM+TnIHJnCDBlOviBwhoEN0ZmKCo/k8jUpx8x56hSZ226X5/wp98B5ojI4pA2Y2XYiaDYKDx55s4qSM5kZ5x8JxF8JdRJJoRM48tkZ1lSaBUEJ1GiKAmo6AsIYPqAaIjJRQ1kpQE0JqVlAgWKj+xaYPTqS8eAKNVNJw8mQj1aUAkGiz/KCE82qOKgKFc4pAG0wAmCiIeOp+P8JUsEZDy4ojHhx8qangOKhHeAaF5Uh7XqYmPMKNN0AE1yiXfcTvmERUoSglkGodb+hEFQAHuCSC1wYvHUaT6mAlyMRau4aXRYQG1oaMFqKfm1QlrFDxzqhnRERoUUABhKkRPGp6cUITqMwAFkKmaCqmuRIW6MQp9iouu/jQhnPCmCOKfopqnp2CqWGCpqVoapBoKrKqlr0oWU2GoHxoLfVSrRGFFsTCrX7CrvLoSt4oLwBoGQTGsLhGrVREMNaEBZ1pAQ0QMx4oGgxita2EUMFESWcobKYGtQ6GtuLoI3doI7NAB8QCtW6EBMTSprVCtfSBD6GoPtWVgMjSuyVGu6BAM8LqvqKGv/ioTABuwxjqwBEsL/Xqw2WGwCvuuDNuwZ/GwELuqEjuxslCxFiurGJuxk7GxHPupHzuxCRuyFOKxJJuvJ9uwI5uyc2KyLNsIK/uylCqz++CyNFuyN7uvMZuzr8mz4LCzPgulQfsNQDu06mm03FC0SEuTFEvLEDjwtFAbtVI7tVRbtVb7AiEAADs=
<<tagging>>
@@Please do not modify this tiddler; it was created automatically upon space creation.@@
|details|k
|''URL''|http://url.to.plugin.specific.documentation.org|
|''Author''|[[Simon Baird]]|
|''Version''|3.0.1a|
|''Released''|2011-06-27|
|''Requires''|2.1|
! Summary
Changes tag links to make it easier to open tags as tiddlers.
! Examples
; http://mptw.tiddlyspot.com
:» see it in action in ''Monkey Pirate ~TiddlyWiki''
! Preview
[img[[img[http://img.tiddlyspace.com/QuickOpenTagPlugin_1]]
! Details
Clicking on the tagname, opens the tag itddler. Clicking on the down-pointing-triangle opens the tag popup.
chkPrivateMode: false
txtMessageLogName: MessageLog
txtMessageLogFade: 3
txtMessageLogDateFormat: YYYY.0MM.0DD 0hh:0mm:0ss
chkMessageLog:true
chkMessageLogFade:true
|details|k
|''URL''|http://mptw.tiddlyspot.com/#CloseOnCancelPlugin|
|''Author''|[[Simon Baird]]|
|''Released''|2013-06-17|
|''Version''|3.0.1a|
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Simon Baird]]|
|''Source''|http://mptw.tiddlyspot.com/#CloseOnCancelPlugin|
!Summary
Closes the tiddler if you click new tiddler then cancel. Default behaviour is to leave it open
!Examples
; [[plugin info tiddler|http://mptw.tiddlyspot.com/#CloseOnCancelPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://mptw.tiddlyspot.com/#CloseOnCancelPlugin
The author of Twine and Twee...
» http://www.gimcrackd.com
|details|k
|''URL''|http://www.TiddlyTools.com/#SetTiddlerBackground|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-30|
|''Version''|2.0.0|
|''CoreVersion''||
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SetTiddlerBackground|
!Summary
set tiddler background and font color CSS attributes
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SetTiddlerBackground]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SetTiddlerBackground
/***
|''Name''|FindrPlugin|
|''Description''|display search results in a list with more flexibility|
|''Documentation''|http://findr.tiddlyspace.com|
|''Authors''|Tobias Beer|
|''Version''|1.1.0 (2013-10-11)|
|''CoreVersion''|2.5.2|
|''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/FindrPlugin.min.js|
|''License''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
***/
///%
(function(e){var t=config.macros.findr={config:{where:"",fallback:"#displayArea",how:"prependTo",hide:"",empty:false,listfiltr:true,fields:"",exclude:"excludeSearch",categories:"title tags text fields",sort:"title",id:"searchResults",idClose:"search_close",idOpenAll:"search_open",fmtHeader:"\n!Search Results",fmtMessage:"\n''%0''",fmtItems:"\n{{search_list{%0\n}}}\n",fmtItem:"\n* [[%0]]",fmtCategory:"\n;%0",fmtItemByCat:"\n:[[%0]]%1",fmtDetails:" {{search_details{(%0)}}}",fmtQuery:"'%0'",fmtRegExp:"/%0/",btnCloseLabel:"close",btnCloseTooltip:"dismiss search results",btnOpenLabel:"open all",btnOpenTooltip:"open all search results",cattitle:"in the title...",cattags:"in tags...",cattext:"in the text...",catfields:"in fields...",catfieldsField:"''%0'' ",cattagsTag:"<<tag [[%0]]>> "}};merge(config.macros.findr,{handler:function(e,t,n,r,i,s){wikify("<<search>>",e)},displayResults:function(n,r,i,s){var o,u,a,f="",l=s.categories||"",c=e(s.where).first(),h=0,p=[],d=[];e.each(n,function(e,t){h+=t.length;if(!l)d.concat(t)});e("#"+s.id).remove();story.refreshAllTiddlers(true);r='"""%0"""'.format(s[i?"fmtQuery":"fmtRegExp"].format(i?s.fmtRegExp.format(r):r));e(s.hide).hide();if(!c.length)c=e(s.fallback);if(s.empty)c.empty();el=e("<div/>").attr("id",s.id);switch(s.how){case"insertAfter":el.insertAfter(c);break;case"insertBefore":el.insertBefore(c);break;case"appendTo":el.appendTo(c);break;default:el.prependTo(c)}el=e('<div class="findr"/>').appendTo(el);el=el[0];if(h){u=s.fmtMessage.format(config.macros.search.successMsg.format([h,r]));s.results=[];(l?l:"tids").readBracketedList().map(function(t){var r=t=="tids"?d:n[t]||[],i=s.sort,o=i.substr(0,1)=="-";if(o)i=i.substr(1);r.sort(function(e,t){var n=e[0][i].toLowerCase()<t[0][i].toLowerCase()?o?+1:-1:e[0][i].toLowerCase()==t[0][i].toLowerCase()?0:o?-1:+1;return n});if(l&&r.length){f+=s.fmtCategory.format(s["cat"+t])}r.map(function(n){var r="",i=n[0];(n[1]||[]).map(function(e){r+=s[t=="tags"?"cattagsTag":"catfieldsField"].format(e)});p.push(i.title);f+=s[l?"fmtItemByCat":"fmtItem"].format(i.title,r?s.fmtDetails.format(e.trim(r)):"")})})}else{u=s.fmtMessage.format(config.macros.search.failureMsg.format([r]))}o=createTiddlyElement(el,"div","findr-buttons");createTiddlyButton(o,s.btnCloseLabel,s.btnCloseTooltip,t.closeResults,"button",s.idClose);if(h){createTiddlyButton(o,s.btnOpenLabel,s.btnOpenTooltip,t.openAll,"button",s.idOpenAll)}a=s.fmtHeader+u+s.fmtItems.format(f)+(s.listfiltr&&config.macros.listfiltr?"<<listfiltr>>":"");wikify(a,el);e(el).data({tids:p,options:s})},closeResults:function(t){var n=e(this).closest(".findr").data("options"),r=e("#"+n.id),i=r.closest('[refresh="content"]')[0];e(n.hide).show();if(i)config.refreshers.content(i);r.remove();highlightHack=null},openAll:function(t){tids=e(this).closest(".findr").data("tids");story.displayTiddlers(null,tids);return false},search:function(t,n,r){var i={title:[],tags:[],text:[],fields:[]},s=r.exclude.readBracketedList(),o=r.fields.readBracketedList(),u=function(e,t,n){i[t].push([e,n])};store.forEachTiddler(function(n,r){if(s.contains(r.title)||s.containsAny(r.tags))return true;if(-1!=r.title.search(t)){u(r,"title")}else if(-1!=r.tags.join(", ").search(t)){u(r,"tags",r.tags)}else if(-1!=r.text.search(t)){u(r,"text")}else if(o.length&&r.fields){var i=[];e.each(r.fields||{},function(e,n){if(o.contains(e)&&-1!=(n||"").search(t)){i.push(e)}});if(i.length)u(r,"fields",i)}});return i}});Story.prototype.search=function(e,n,r){highlightHack=new RegExp(r?e:e.escapeRegExp(),n?"mg":"img");t.displayResults(t.search(highlightHack,"text",t.config),e,r,t.config)};config.macros.search.onKeyPressFINDR=config.macros.search.onKeyPress;config.macros.search.onKeyPress=function(n){e(this).off("search").on("search",config.macros.search.onKeyPress);if(this.value.length<3){var r=e("#"+t.config.id);if(r.length){e("#"+t.config.idClose).click()}}else{config.macros.search.onKeyPressFINDR.apply(this,arguments)}}})(jQuery)
//%/
|details|k
|''URL''|http://www.TiddlyTools.com/#BookmarkList|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-02|
|''Version''|2.0.0|
|''CoreVersion''|2.5.2|
|''Source''|http://www.TiddlyTools.com/#BookmarkList|
!Summary
Generate ~HR-separated list of tiddlers tagged with bookmark for use with [[MiniBrowserPlugin...]].
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#BookmarkList]]
:» see the author's info tiddler for examples
!Details
''Usage''
{{{
<<tiddler BookmarkList>>
<<miniBrowser BookmarkList>>
}}}
|details|k
|''URL''|http://tiddlywiki.squize.org#FootnotesPlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2007-10-25|
|''Version''|2.01|
|''CoreVersion''|2.2.2|
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#FootnotesPlugin|
!Summary
Create automated tiddler footnotes.
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#FootnotesPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#FootnotesPlugin
<<tag [[Creative Writing]] Apps>>for writing books, articles, stories, poems, etc...
User-agent: *
Disallow: /bags
Disallow: /recipes
|details|k
|''URL''|http://www.TiddlyTools.com/#ShowObject|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-11|
|''Version''|1.5.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ShowObject|
!Summary
display TiddlyWiki runtime objects
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ShowObject]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ShowObject
/*{{{*/

/* hide all unwanted things */
#app-picker,
.reply-btn,
.bs-popup,
#header,
.meta,
.main,
#footer{
    display:none !important;
}

/* no backgrounds either */
html,
#container {
    background: none !important;
}

/*}}}*/
|details|k
|''URL''|http://www.TiddlyTools.com/#ShowReferencesPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-03-02|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ShowReferencesPlugin|
!Summary
format and display references to the current tiddler
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ShowReferencesPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ShowReferencesPlugin
<<tag [[PIM & Calendars]] Apps>>for personal information managenent, managing addresses, lists of family and friends, genealogy, calendars, birthdays, etc...
|details|k
|''URL''|http://tiddlywiki.abego-software.de/#%5B%5BSettingsPlugin%20Documentation%5D%5D|
|''Author''|[[Udo Borowski]]|
|''Released''|2006-07-30|
|''Version''|1.1.0 (2006-07-30)|
|''CoreVersion''|2.0.7|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Udo Borowski]]|
|''Source''|http://tiddlywiki.abego-software.de/#SettingsPlugin|
!Summary
Manage your option settings' scope: keep settings private to a TiddlyWiki or share them with other ~TiddlyWikis.
!Examples
; [[plugin info tiddler|http://tiddlywiki.abego-software.de/#%5B%5BSettingsPlugin%20Documentation%5D%5D]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.abego-software.de/#%5B%5BSettingsPlugin%20Documentation%5D%5D
|details|k
|''URL''|http://www.TiddlyTools.com/#CookieManagerPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-01-16|
|''Version''|2.4.1|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#CookieManagerPlugin|
!Summary
view / add / delete browser-based cookies and "bake" cookies to ''~CookieJar'' tiddler for 'sticky' settings
!Examples
; [[plugin tiddler|http://www.TiddlyTools.com/#CookieManagerPlugin]]
:see the author's info tiddler for a demo
!Preview
[img[http://img.tiddlyspace.com/CookieManagerPlugin_1]]
!Details
This plugin provides an interactive control panel that lets you select, view, modify, or delete any of the current values for TiddlyWiki options that have been stored as local, private, //browser cookies//.  You can also use the control panel to "bake cookies", which generates a set of javascript statements that assign hard-coded option values to the TiddlyWiki internal variables that correspond to the current browser cookie settings.  These hard-coded values are then stored in the ''~CookieJar'' tiddler, which is tagged with<<tag systemConfig>> so that each time the document is loaded, the baked cookie settings will be automatically applied.

When a set of baked cookies is added to the ''~CookieJar'', it is automatically surrounded by a conditional test so that the hard-coded settings will only be applied for the username that was in effect when they were initially generated.  In this way, if you publish or share your document with others, //your// particular baked cookie settings are not automatically applied to others, so that their own browser-based cookie settings (if defined) will be applied as usual.

Whenever you "bake cookies", new hard-coded javascript assignment statements are *appended* to the end of the ''~CookieJar''.  However, any baked cookies that were previously generated and stored in the ''~CookieJar'' are not automatically removed from the tiddler.  As a result, because the most recently baked cookie settings in the ''~CookieJar'' are always the last to be processed, the values assigned by older baked cookies are immediately overridden by the values from the newest baked cookies, so that the newest values will be in effect when the ''~CookieJar'' startup processing is completed.

Each time you bake a new batch of cookies, it is recommended that you should review and hand-edit the ''~CookieJar'' to remove any "stale cookies" or merge the old and new sets of baked cookies into a single block to simplify readability (as well as saving a little tiddler storage space).  Of course, you can also hand-edit the ''~CookieJar'' tiddler at any time simply to remove a few individual //baked cookies// if they are no longer needed, and you can even delete the entire ''~CookieJar'' tiddler and start fresh, if that is appropriate.  Please note that changing or deleting a baked cookie does not alter the current value of the corresponding option setting, and any changes you make to the ''~CookieJar'' will only be applied after you have saved and reloaded the document in your browser.
|details|k
|''URL''|http://www.TiddlyTools.com/#EditFieldPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-04-10|
|''Version''|1.6.2|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#EditFieldPlugin|
!Summary
extend core edit macro for use in ViewTemplates or direct embedding in tiddler content
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#EditFieldPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#EditFieldPlugin
!Exclude
-excludeLists systemConfig noLinkify
!Overrides
 """these were put at the top to take preference over the ones below"""
^TiddlyWiki.com|^TiddlyWiki website
^TiddlyWiki.org|help reference*|help*
Authoring & Presentation|word process*|word|print*|document|documents|output*
MonkeyTaggerMacro...|monkeyTagger
Monkey Pirate TiddlyWiki
mGSD|Monkey GTD
Themes|list of all themes|theme tiddler*|theme*|PageTemplate*|ViewTemplate*|EditTemplate*
Presentation|display*|view*|theme|*style*|design*|layout*|lightbox*|image box*|image*|fancy|color*|sidebar*|"table of contents"|toc*|thumb*
Utilities|helper*|admin*|tweak*|tool|tools|edit field*|editing fields|mass manip*|manipulat*|field edit*|fields edit*
Websites
!Linkify
 """try to keep things in alphabetical order"""
About @Customize|customi*|curat*
Academia & Scholars|univers*
Aggregation|analys*|gather*|aggregat*|list*|table*|selection*|specif*
Apps|app|application*|adapt*
Author|authors|^TiddlyEnthusiast*|enthusiast*
Blogs & Websites|website|blog*|online portfolio*|portfolio*|business card*
Businesses|entrepreneur*
Contribute|contrib*
Creative Writing|writ*|book*|article*|story|stories|poem*
Development & Testing|JavaScript|js|HTML|CSS|geek*|nerd*|develop*
Database|database-*|database*|collection*
Data Management|structure*|data|JSON|custom fields|tiddler sections|slice value*|slice*|section content*|section*
D3|^d-cube*|(D³)
Editing & Authoring|edit*|content*|authoring*
FAQ & Documentation|documentation|useful|tips|make ends meet|frequently asked question*|answer*
File Management|local|remote|file*|director*
GTD & Tasks|*GTD|GTD|"Getting Things Done"|kanban
Macro|macro*
Markup|text|format*|code|syntax|highlight*|adapter*|wiki*
Media|audio|video*|image*|music|radio
Mobile|^mobile devices|Android|IOS|iPhone*|iPad*|tablet*
Navigation|menu*|*menu|tree*|dropdown*|breadcrumb*|bread crumb*|sitemap*|accordeon*
Note Taking|organis*|snippet*|jot*|note*|memor*|diar*|journal*
PIM & Calendars|personal information managenent|pim|personal|information|address*|famil*|friend*|genealogy|calendar*|birthday*
Reuse & Automation|automat*|repret*|form*|inclu*
References|external source*|^Tiddly-Compendium
Search|^search option*|regex*
Science & Education|research*|educ*|math*|latex|spreadsheet*|bibtex|learn*|mnemonic*|bible studies|bible|study*|studies
Script|script*
Serverside|serverside tool*|server-*|server *|server*|hosting s*|host*|online*
Slideshows|slideshow-*|slideshow*|presentat*|powerpoint|keynote
Security & Users|at work|multi-user|user*|environment*|requirement*|encrypt*|securit*
Simon Baird|Monkey
TagglyTaggingPlugin...|taggly tagg*|
Tagging|tag cloud*|tag*
Task Management|task*|action*|calendar*
TiddlyWiki|TiddlyWiki*|^TiddlyVerse|^TiddlyWorld*|tw|tws
TiddlySpace|space*
Topic Lists|topic*|aggregated lists|semantic*|cross section
Transclusion|transclu*
Translation|lang*|locali*|Engli*|German*|French*|Spanish*|Portug*
Twine|Twee
UploadPlugin...|^Uploadpl*
Webstuff|communicating|the web|^loading contents|^storing contents|remote host*|webservice*
<<tiddler TemplateAlias with: "Udo Borowski">>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="72 648 70 70" 
width="30" height="30">
<g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1">
	<g>
		<path d="M 77.59005 669.34003 C 71.532745 681.90424 73.714462 697.4441 84.135193 707.86475 
		C 97.315445 721.0451 118.684715 721.0451 131.8649 707.86475 
		C 145.04515 694.68457 145.04515 673.31537 131.8649 660.13513 
		C 121.4441 649.7141 105.90419 647.53253 93.339905 653.5899 L 102.047455 662.2976 
		C 109.58637 660.2373 117.987976 662.16803 123.90997 668.08997 
		C 132.69673 676.8767 132.69673 691.12317 123.90997 699.90985 
		C 115.12313 708.6966 100.87699 708.6966 92.09012 699.90985 
		C 86.168266 693.98804 84.23744 685.58643 86.297653 678.04755 Z M 72 648 L 72 668.25 L 78.75 661.49957 
		L 99.00019 681.7502 L 105.750175 675.00006 L 85.50013 654.75012 L 92.249985 648 Z" fill="black"
		class="glyph"/>
	</g>
</g>
</svg>
{{{
<<tag [[<Category Name>]] Themes>>that work such and such...
}}}
Do not forget to tag the new [[theme category|Themes]] with <<tag Themes>>!
|details|k
|''URL''|http://themes.tiddlywiki.com/k2blog.html|
|''Author''|[[Saq Imtiaz]]|
! Summary
K2Blog is an appealing, professional theme from [[Saq Imtiaz]] comes with a large blue header area with a horizontal MainMenu and white tiddlers centered against a light-gray background.
! Preview
[img[[img[http://img.tiddlyspace.com/K2Blog][http://themes.tiddlywiki.com/k2blog.html]]
|details|k
|''URL''|http://visualtw.ouvaton.org|
|''Author''|[[Pascal Collin]]|
|''Version''|1.2.5|
|''Released''|2008-01-18|
|''Requires''|2.1.0|
|''Source''|http://visualtw.ouvaton.org/VisualTW.html#TiddlersBarPlugin|
! Summary
A tabbed bar to switch between tiddlers similar to browser tabs.
! Examples
; http://visualtw.ouvaton.org
:» the publishers page showcases the plugin
! Preview
[img[http://img.tiddlyspace.com/TiddlersBarPlugin_1]]
! Details
With tiddlers bar you get...
* doubleclick on a blank space in the tiddlers bar creates a new tiddler
* tabs come with buttons to close x or save the tiddler
* clicking on the active tab closes all others tiddlers
* lots of configuration options
|details|k
|''URL''|http://www.TiddlyTools.com/#ImportTiddlersPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-02-14|
|''Version''|4.6.2|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ImportTiddlersPlugin|
!Summary
interactive controls for import/export with filtering.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ImportTiddlersPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ImportTiddlersPluginInfo
|details|k
|''URL''|http://www.TiddlyTools.com/#SetUserNamePlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2012-07-12|
|''Version''|1.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SetUserNamePlugin|
!Summary
prompt for TiddlyWiki username
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SetUserNamePlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SetUserNamePlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#StorySaverPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-20|
|''Version''|1.8.3|
|''CoreVersion''|2.1|
|''Requires''|MarkupPostBody|
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#StorySaverPlugin|
!Summary
save/restore current tiddler view between browser sessions
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#StorySaverPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#StorySaverPluginInfo
{{noTitle{<<list filter [tag[Theme]][tag[Themes]][sort[title]]>>}}}<<listfiltr>>
|details|k
|''URL''|http://www.TiddlyTools.com/#TiddlerPasswordPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2007-09-13|
|''Version''|1.1.3|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#TiddlerPasswordPlugin|
!Summary
block viewing of tiddler content by prompting for a password before content is displayed
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TiddlerPasswordPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#TiddlerPasswordPluginInfo
<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8"/>
	<title>TiddlySpace Apps</title>
	<link rel="stylesheet" href="/bags/common/tiddlers/reset.css" />
	<link rel="stylesheet" href="/bags/common/tiddlers/appspage.css" />
	<!--[if lt IE 7 ]>
	<link rel="stylesheet" href="/bags/common/tiddlers/appspageie6.css" />
	<![endif]-->
</head>
<body>
	
	<div id="wrapper">
		<div id="TSbar"></div>
		<div id="main-content">
			<div id="space-details">
				<a href="/_space"><img class="siteicon"></a>
				<div id="title-subtitle">
					<h1 class="spaceaddress">
						<span class="spaceName"></span><span class="hostName"></span>
					</h1>
					<p class="tagline"><span class="subTitle"></span><a class="managespaces" href="/_space">manage space</a></p>
				</div>
			</div>
			<div id="holder">
				<div id="appswitcher-wrapper">
					<div id="appswitcher">
						<h2>Your Apps</h2>
						<ul id="app-list">
							<li class="htmlserialisation">
								<a href="/tiddlers.html?select=tag:!excludeLists;sort=-modified">
									<img src="/bags/common/tiddlers/browse_read_blue.png" alt="Icon for the HTML Serialisation" class="app-img" />
									BROWSE
								</a>
							</li>
							<li class="tiddlywiki">
								<a href="/tiddlers.wiki">
									<img src="/bags/common/tiddlers/tiddlywiki2_blue.png" alt="Icon for TiddlyWiki" class="app-img" />
									TIDDLYWIKI
								</a>
							</li>
						</ul>
						<div id="addapp">
							<button class="inactive">Add More!</button>
						</div>
					</div>
					<div id="app-desc">
						<ul>
							<li class="htmlserialisationdesc"><p>an easy to understand HTML representation of your content.</p></li>
							<li class="tiddlywikidesc"><p>use TiddlyWiki to create, edit and organise your content.</p></li>
						</ul>
					</div>
					<div style="clear: both;"></div>
				</div>
			</div>
		</div>
		<div id="footer"><!-- ie doesn't support footer tag -->
			<div id="footer-content">
				<div class="links">
					<a href="http://blog.tiddlyspace.com">blog</a>
					<a href="http://featured.tiddlyspace.com">featured</a>
					<a href="http://docs.tiddlyspace.com">documentation</a>
					<a href="https://github.com/TiddlySpace/tiddlyspace">source</a>
				</div>
				<p>TiddlySpace 2011, created by <a href="http://osmosoft.com">Osmosoft</a></p>
			</div>
		</div>
	</div>
	
	<script type="text/javascript" src="/bags/common/tiddlers/backstage.js"></script>
	<script type="text/javascript" src="/bags/common/tiddlers/jquery.js"></script>
	<script type="text/javascript" src="/bags/tiddlyspace/tiddlers/chrjs"></script>
	<script type="text/javascript" src="/bags/common/tiddlers/chrjs-store.js"></script>
	<script type="text/javascript" src="/bags/common/tiddlers/jquery-json.js"></script>
	<script type="text/javascript" src="/bags/common/tiddlers/appspage.js"></script>
</body>
</html>
<!--{{{-->
<div class='header'>
	<div id='sidebarSearch'>
		<span macro='search'>Search&nbsp;&nbsp;</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'  force='true' 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>
<!--}}}-->
|details|k
|''URL''|http://www.TiddlyTools.com/#TaskTimerPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-03-12|
|''Version''|1.3.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#TaskTimerPluginConfig|
!Summary
formats other optional settings for TaskTimerPlugin
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#TaskTimerPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#TaskTimerPluginInfo
|details|k
|''URL''|http://www.TiddlyTools.com/#CollapseTiddlersPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-03-06|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''|CollapsedTemplate|
|''Type''|plugin|
|''Source''|http://www.TiddlyTools.com/#CollapseTiddlersPlugin|
!Summary
show/hide content of a tiddler while leaving tiddler title visible
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#CollapseTiddlersPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#CollapseTiddlersPlugin
!Default
{{tsBox{ {{tsIcon{<<image http://$1.tiddlyspace.com/bags/$1_public/tiddlers/SiteIcon 24 24>>}}}{{tsLink{<<view server.bag spaceLink>>}}} {{tsInfo{<<view text wikified>>}}} }}}
|details|k
|''URL''|http://www.TiddlyTools.com/#RecentChangesPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-08|
|''Version''|2.2.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#RecentChangesPlugin|
!Summary
display droplist of recently changed tiddlers with goto, edit, and preview buttons
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#RecentChangesPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#RecentChangesPlugin
<<tag "Academia & Scholars" References>>where staff and students in universities or those on a quest for deeper knowledge in holy scripture love TiddlyWiki to take notes, gather collections of bibliographical references, create a class curriculum, even hand out assignments...
|details|k
|''URL''|http://www.TiddlyTools.com/#SaveToClipboard|
|''Author''|[[Eric Shulman]]|
|''Released''|2010-03-01|
|''Version''|1.3.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion, bookmarklet|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#SaveToClipboard|
!Summary
save current document to clipboard
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#SaveToClipboard]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#SaveToClipboard
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
/***
|''Name:''|TiddlySpaceLinkPlugin|
|''Description:''|Formatter to reference other spaces from wikitext |
|''Author:''|PaulDowney (psd (at) osmosoft (dot) com) |
|''Source:''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpaceLinkPlugin.js|
|''Version:''|1.4.2|
|''License:''|[[BSD License|http://www.opensource.org/licenses/bsd-license.php]] |
|''Comments:''|Please make comments at http://groups.google.co.uk/group/TiddlyWikiDev |
|''~CoreVersion:''|2.4|
!!Documentation
This plugin provides wikitext formatters for referencing another [[space|Space]] on the same TiddlySpace server, as in the following examples:
<<<
  {{{@space}}} -- @space 
  {{{~@space}}} -- ~@space 
  {{{Tiddler@space}}} -- Tiddler@space
  {{{[[Tiddler Title]]@space}}} -- [[Tiddler Title]]@space 
  {{{[[Link text|Tiddler Title]]@space}}} -- [[Link text|Tiddler Title]]@space
<<<
Links to tiddlers with a title begining with an "@" remain as tiddlyLinks:
<<<
  {{{[[@tiddler]]}}} -- [[@tiddler]]
<<<
and these may be changed into a space link using {{{@@}}}:
<<<
  {{{[[@@space]]}}} -- [[@@space]]
  {{{[[Link to an another space|@@space]]}}} -- [[Link to another space|@@space]]
  {{{[[@space|@@space]]}}} -- [[@space|@@space]]
<<<
TiddlySpace includes the [[TiddlySpaceLinkPlugin]] which provides WikiText markup for linking to other spaces on the same server. For example @glossary is a link to the {{{glossary}}} space and [[Small Trusted Group]]@glossary a link to an individual tiddler in the @glossary space. Prefixing the link with a tilde escapes the link, for example {{{~@space}}}.
Email addresses, for example joe.bloggs@example.com and mary@had.a.little.lamb.org should be unaffected.
!!Features
The plugin provides external links decorated so that other plugins may be included to add features such as the ability to dynamically pull externally linked tiddlers into the current TiddlyWiki.
Wikitext linking to a space on another server, for example from a tiddler in a space on tiddlyspace.com to a tiddler or a space on example.com, isn't currently supported. 
!!Code
***/
//{{{
/*jslint onevar: false nomen: false plusplus: false */
/*global jQuery config createTiddlyText createExternalLink createTiddlyLink */

function createSpaceLink(place, spaceName, title, alt, isBag) {
	var link, a, currentSpaceName, label;
	try {
		if (spaceName === config.extensions.tiddlyspace.currentSpace.name) {
			title = title || spaceName;
			a = createTiddlyLink(place, title, false);
			jQuery(a).text(alt || title);
			return a;
		}
	} catch (ex1) {
		currentSpaceName = false;
	}

	a = jQuery("<a />").addClass('tiddlySpaceLink externalLink').appendTo(place)[0];
	if(title) {
		jQuery(a).attr('tiddler', title);
	}
	if(isBag) {
		jQuery(a).attr('bag', spaceName);
	} else {
		jQuery(a).attr('tiddlyspace', spaceName);
	}

	config.extensions.tiddlyweb.getStatus(function(status) {
		link = status.server_host.url;
		if (title) {
			label = alt || title;
			link = link + "/" + encodeURIComponent(title);
		} else {
			label = alt || spaceName;
		}
		// assumes a http URI without user:pass@ prefix
		if(!isBag) {
			link = link.replace("http://", "http://" + spaceName.toLowerCase() + ".");
		} else {
			link += "/bags/" + spaceName + "/tiddlers.wiki";
		}
		jQuery(a).attr("href", link).text(label);
	});
	return a;
}

(function ($) {

	config.textPrimitives.spaceName = "[a-zA-Z][a-zA-Z0-9-]*[a-zA-Z0-9]";
	config.textPrimitives.spaceNameStrict = "[a-z][a-z0-9-]*";
	config.textPrimitives.bareTiddlerLetter = config.textPrimitives.anyLetterStrict;

	config.formatters.splice(0, 0, {
		name: "spacenameLink",
		match: config.textPrimitives.unWikiLink + "?" + config.textPrimitives.bareTiddlerLetter + "*@" + config.textPrimitives.spaceName + "\\.?.?",
		lookaheadRegExp: new RegExp(config.textPrimitives.unWikiLink + "?(" + config.textPrimitives.bareTiddlerLetter + "*)@(" + config.textPrimitives.spaceName + ")", "mg"),
		handler: function (w) {
			if (w.matchText.substr(w.matchText.length - 2, 1) === '.' && w.matchText.substr(w.matchText.length - 1, 1).match(/[a-zA-Z]/)) {
				w.outputText(w.output, w.matchStart, w.nextMatch);
				return;
			}
			if (w.matchText.substr(0, 1) === config.textPrimitives.unWikiLink) {
				w.outputText(w.output, w.matchStart + 1, w.nextMatch);
				return;
			}
			this.lookaheadRegExp.lastIndex = w.matchStart;
			var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
			if (lookaheadMatch && lookaheadMatch.index === w.matchStart) {
				createSpaceLink(w.output, lookaheadMatch[2], lookaheadMatch[1]);
				w.nextMatch = this.lookaheadRegExp.lastIndex;
			}
		}
	},
	{
		name: "tiddlySpaceLink",
		match: "\\[\\[[^\\|\\]]*\\|*@@" + config.textPrimitives.spaceName + "\\]",
		lookaheadRegExp: new RegExp("\\[\\[(.*?)(?:\\|@@(.*?))?\\]\\]", "mg"),
		handler: function (w) {
			this.lookaheadRegExp.lastIndex = w.matchStart;
			var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
			if (lookaheadMatch && lookaheadMatch.index === w.matchStart) {
				var alt = lookaheadMatch[2] ? lookaheadMatch[1] : lookaheadMatch[1].replace(/^@@/, "");
				var space = lookaheadMatch[2] || alt;
				createSpaceLink(w.output, space, "", alt);
				w.nextMatch = this.lookaheadRegExp.lastIndex;
			}
		}
	},
	{
		name: "tiddlyLinkSpacenameLink",
		match: "\\[\\[[^\\[]*\\]\\]@",
		lookaheadRegExp: new RegExp("\\[\\[(.*?)(?:\\|(.*?))?\\]\\]@(" + config.textPrimitives.spaceName + ")", "mg"),
		handler: function (w) {
			this.lookaheadRegExp.lastIndex = w.matchStart;
			var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
			if (lookaheadMatch && lookaheadMatch.index === w.matchStart) {
				var title = lookaheadMatch[2] || lookaheadMatch[1];
				var alt = lookaheadMatch[1] || lookaheadMatch[2];
				createSpaceLink(w.output, lookaheadMatch[3], title, alt);
				w.nextMatch = this.lookaheadRegExp.lastIndex;
			}
		}
	});

	// ensure space links don't appear as missing links
	config.textPrimitives.brackettedLink = "\\[\\[([^\\]][^@\\]][^\\]]*)\\]\\](?=[^@])";
	config.textPrimitives.titledBrackettedLink = "\\[\\[([^\\[\\]\\|]+)\\|([^\\[\\]\\|]+)\\]\\](?=[^@])";

	// reevaluate derrived expressions ..
	config.textPrimitives.tiddlerForcedLinkRegExp = new RegExp("(?:" + config.textPrimitives.titledBrackettedLink + ")|(?:" +
		config.textPrimitives.brackettedLink + ")|(?:" +
		config.textPrimitives.urlPattern + ")","mg");
	config.textPrimitives.tiddlerAnyLinkRegExp = new RegExp("("+ config.textPrimitives.wikiLink + ")|(?:" +
		config.textPrimitives.titledBrackettedLink + ")|(?:" +
		config.textPrimitives.brackettedLink + ")|(?:" +
		config.textPrimitives.urlPattern + ")","mg");

	// treat space links in titledBracketedLink as external links
	var missingTiddlySpaceLink = new RegExp("^@@" + config.textPrimitives.spaceName + "$", "");
	var isExternalLink = config.formatterHelpers.isExternalLink;
	config.formatterHelpers.isExternalLink = function(link) {
		return missingTiddlySpaceLink.test(link) || isExternalLink(link);
	};

}(jQuery));
//}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#AllThumbs|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-12|
|''Version''|1.2.0|
|''CoreVersion''|2.1|
|''Requires''|ThumbThing|
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#AllThumbs|
!Summary
display a set of thumbnails with full-sized popup images
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#AllThumbs]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#AllThumbs
|details|k
|''URL''|http://tiddlywiki.org|
|''Author''|<<tag Author community>> [[Tobias Beer]]|
|''Date''|2013-08-26|
! Summary
The definitive documentation on all things TiddlyWiki powered by the [[TiddlyWiki Community|Contribute]] on TiddlySpace. Use the [[search|http://tiddlywiki.org/#%5B%5BQuick%20Search%5D%5D]], [[Glossary|http://tiddlywiki.org#glossary]] and [[FAQ|http://tiddlywiki.org#FAQ]]!
! Preview
[img[http://img.tiddlyspace.com/TiddlyWiki.org][http://tiddlywiki.org]]
! Details
Here's an overview of all main topics...
|table100|k
|vertical-align:middle;background:#fcfcff;font-size:1.5em;width:33%; """Getting Started""" |padding:10px;background:#fcfcff;<<tiddler TiddlyWiki.org##START>>|
|vertical-align:middle;background:#f6f6ff;font-size:1.5em; """Advanced Users""" |padding:10px;background:#f6f6ff;<<tiddler TiddlyWiki.org##ADVANCED>>|
|vertical-align:middle;background:#eef;font-size:1.5em; """Developers""" |padding:10px;background:#eef;<<tiddler TiddlyWiki.org##DEVELOPER>>|
|vertical-align:middle;background:#dadaff;font-size:1.5em; """Architects""" |padding:10px;background:#dadaff;<<tiddler TiddlyWiki.org##ARCHITECT>>|
Fore even more topics check out the [[FAQ|http://tiddlywiki.org#FAQ]], [[Glossary|http://tiddlywiki.org#Glossary]], [[Tag Cloud|http://tiddlywiki.org/#%5B%5BTag%20Cloud%5D%5D]] or use [[Quick Search|http://tiddlywiki.org/#%5B%5BQuick%20Search%5D%5D]]./%
!START
» [[Introduction|http://tiddlywiki.org#Introduction]]
» [[Tiddlers|http://tiddlywiki.org#Tiddlers]] & [[Tags|http://tiddlywiki.org#Tags]]
» [[TiddlyWiki Layout|http://tiddlywiki.org#Layout]]
» [[Markup|http://tiddlywiki.org#Markup]] + [[WikiText|http://tiddlywiki.org#WikiText]]
» [[Tiddler Templates|http://tiddlywiki.org#Tiddler Templates]]
» [[Options|http://tiddlywiki.org#Options]]
» [[Shadow Tiddlers|http://tiddlywiki.org#ShadowTiddler]]
» [[Toolbar Commands|http://tiddlywiki.org#Toolbar]]
» [[Bookmarklets|http://tiddlywiki.org#Bookmarklets]]
» [[Publishing TiddlyWiki|http://tiddlywiki.org/#%5B%5BPublishing%20TiddlyWiki%5D%5D]]
» [[Mobile TiddlyWiki|http://tiddlywiki.org#%5B%5BMobile%20TiddlyWiki%5D%5D]]
» [[User Discussion Group|http://tiddlywiki.org#Help]]
» use the [[Search|http://tiddlywiki.org/#%5B%5BQuick%20Search%5D%5D]], [[Glossary|http://tiddlywiki.org#Glossary]] and [[FAQ|http://tiddlywiki.org#FAQ]] extensively
!ADVANCED
» [[Macros|http://tiddlywiki.org#Macros]] & [[Filters|http://tiddlywiki.org#Filters]]
» [[Customization|http://tiddlywiki.org#Customization]]
» [[Transclusion|http://tiddlywiki.org#Transclusion]]
» [[Startup Parameters|http://tiddlywiki.org/#%5B%5BStartup%20Parameters%5D%5D]]
» [[Changing Default Options|http://tiddlywiki.org/#%5B%5BChanging%20Default%20Options%5D%5D]]
» [[Fields|http://tiddlywiki.org#Fields]] -- [[Custom Fields|http://tiddlywiki.org/#%5B%5BCustom%20Fields%5D%5D]]
» [[Date Formats|http://tiddlywiki.org#DateFormats]]
» [[Scripts|http://tiddlywiki.org#Scripts]]
!DEVELOPER
» [[TiddlyWiki Developers Space|http://tiddlywikidev.tiddlyspace.com]] & [[more|http://tiddlywiki.org/#%5B%5BTiddlyWiki%20Development%20Spaces%5D%5D]]
» [[TiddlyWiki Core|http://tiddlywikidev.tiddlyspace.com/#TiddlyWiki Core]]
» [[Code|http://tiddlywiki.org#Code]] + [[Comment Formatting|http://tiddlywiki.org/#%5B%5BComment%20Formatting%5D%5D]]
» [[Snippets & Scripts|http://tiddlywiki.org#Scripts]]
» [[Developer Discussion Group|http://tiddlywiki.org/#%5B%5BDiscussion%20Groups%5D%5D]]
!ARCHITECT
» [[Server-Side Solutions|http://tiddlywiki.org/#%5B%5BServer-Side%20Solutions%5D%5D]]
» [[TiddlyWeb Documentation Space|http://tiddlyweb.tiddlyspace.com]]
» [[TiddlySpace Developers Space|http://developers.tiddlyspace.com]]
!END%/
|details|k
|''URL''|http://ColoredLinks.tiddlyspot.com|
|''Author''|[[Tobias Beer]]|
|''Version''|1.0.3|
|''Released''|2010-09-30|
|''Requires''|2.5.2|
|''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/ColoredLinksPlugin.min.js|
! Summary
Allows to add color to tiddlyLinks, tag-buttons and tiddler titles depending on how the corresponding tiddler is tagged.
! Examples
; http://ColoredLinks.tiddlyspot.com
:» provides lots of examples on how to use
! Preview
[img[http://img.tiddlyspace.com/ColoredLinksPlugin_1]]
''colored links in the tiddler text''
[img[http://img.tiddlyspace.com/ColoredLinksPlugin_2]]
''colored links in the sidebar''
! Details
[[ColoredLinksPlugin...]] was inspired by [[siglets|http://web.archive.org/web/20090917013129/http://www.cs.utexas.edu/~joeraii/siglet/]].

Depending on how the target tiddlers are tagged it produces tiddlyLinks with custom css formats.

It adds css styling to any tiddlyLink or tag-button depending on whether the corresponding tiddler has tags based on a defined value for a field called ''tagcolor'' containing __valid css__.
!!!Use cases
Think of it as color coding. Do you have tiddlers pertaining to a given tag-category and want them color coded? With [[ColoredLinksPlugin...]] you simply attach a css definition to the category-tag and you're all set.

[[ColoredLinksPlugin...]] proves quite powerful in combination with [[CycleTags...]] or [[TagsSearchPlugin...]].

You could also add colors like side-labels, giving tiddlers a left border, dotted top and bottom borders or any other css styling.

!Live Example
<<tiddler iframe with: "http://coloredlinks.tiddlyspot.com">>
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
{{noTitle{<<list filter "[tag[Author]][tag[Alias]][sort[title]]>>}}}<<listfiltr>>
|details|k
|''URL''|http://www.TiddlyTools.com/#HideTiddlersPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-05|
|''Version''|1.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#HideTiddlersPlugin|
!Summary
hide/show tiddlers instead of closing/re-opening them
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#HideTiddlersPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#HideTiddlersPlugin
|details|k
|''URL''|http://tw.lewcid.org/#TiddlyLightBoxDocs|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2008-04-05|
|''Version''|1.0 beta|
|''CoreVersion''||
|''Requires''||
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#TiddlyLightBoxPlugin|
!Summary
undefined
!Examples
; [[plugin info tiddler|http://tw.lewcid.org/#TiddlyLightBoxDocs]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tw.lewcid.org/#TiddlyLightBoxDocs
|details|k
|''URL''|http://www.TiddlyTools.com/#OpenTaggedTiddlers|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-26|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#OpenTaggedTiddlers|
!Summary
Create a link to open a set of tagged tiddlers with a single click.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#OpenTaggedTiddlers]]
:see the author's info tiddler for examples
!Details
{{{
<<tiddler OpenTaggedTiddlers with: label tagToMatch sortBy reverse close limit>>
}}}
;label
:the text of the link
;tagToMatch
:a single tag value to be matched
:when MatchTagsPlugin is installed, you can also use a boolean tag expression, enclosed in "..."
;sortBy (optional)
:a tiddler fieldname, (default="title", use "modified" or "created" for tiddler dates)
;reverse (optional keyword)
:display order for the tiddlers (i.e., descending vs. ascending)
;close (optional keyword)
:closes all open tiddlers before opening the tagged tiddlers
;limit (optional)
:maximum number of tiddlers to be opened
|details|k
|''URL''|http://themes.tiddlywiki.com/tiddlysinister.html|
! Summary
With this theme, the darkness is with you. Apart from a few orange highlights, all is black and dark brown, even the text. As in the classic layout, the MainMenu is to the left and the [[sidebar|SideBarTabs]] to the right.
! Preview
[img[[img[http://img.tiddlyspace.com/TiddlySinister][http://themes.tiddlywiki.com/tiddlysinister.html]]
|details|k
|''URL''|http://tiddlywiki.squize.org#FullScreenPlugin|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-25|
|''Version''|1.1|
|''CoreVersion''||
|''Requires''|~TW2.x|
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#FullScreenPlugin|
!Summary
Toggle between viewing tiddlers fullscreen and normally. Very handy for when you need more viewing space.

!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#FullScreenPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#FullScreenPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#EditTiddlerPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-08-15|
|''Version''|1.3.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#EditTiddlerPlugin|
!Summary
embed an 'edit' link in tiddler content to invoke edit on any specified tiddler title
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#EditTiddlerPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#EditTiddlerPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#MessageLogPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2012-05-21|
|''Version''|1.1.1|
|''CoreVersion''|2.4|
|''Source''|http://www.TiddlyTools.com/#MessageLogPlugin|
!Summary
automatically log TW messages to a ~MessageLog tiddler
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#MessageLogPlugin]]
:» see the author's info tiddler for examples
!Details
This plugin automatically appends TiddlyWiki messages to a //shadow// tiddler, ''~MessageLog'', to provide a short-term, per-session record of messages without altering any 'real' tiddlers in your document.  You can also suppress the //display// of messages that are recorded to the ''~MessageLog''.

You can view the shadow  ''~MessageLog'' tiddler at any time to review the previous messages.  If you edit the ~MessageLog (making it a 'real' tiddler') it will then be saved with the rest of your TW document when you save the file, allowing you to keep a persistent, inter-session log rather than a short-term, per-session log.

''Available Options''
<<option chkMessageLog>> log messages to <<option txtMessageLogName>>
<<option chkMessageLogFade>> fade message display after {{threechar{<<option txtMessageLogFade>>}}} seconds
<<option chkMessageLogQuiet>> hide all messages (when logging is enabled)
Date format (for log entries): <<option txtMessageLogDateFormat>>
|details|k
|''URL''|http://tiddlywiki.squize.org#PopupMacro|
|''Author''|[[Saq Imtiaz]]|
|''Released''|2006-07-19|
|''Version''|1.0.0 (2006-05-09)|
|''CoreVersion''||
|''Requires''|TW Version 2.0.8 or better|
|''Type''||
|''Tags''|Plugin Review zzUnsorted [[Saq Imtiaz]]|
|''Source''|http://tiddlywiki.squize.org#PopupMacro|
!Summary
Create popups with custom content
!Examples
; [[plugin info tiddler|http://tiddlywiki.squize.org#PopupMacro]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://tiddlywiki.squize.org#PopupMacro
<<tag [[Tips & FAQ]] References>>that provide useful tips, answer frequently asked questions, or [[reference|References]] external sources on how to make ends meet...
|details|k
|''URL''|http://www.gimcrackd.com/etc/src/|
|''Author''|[[Chris Klimas]]|
|''Version''|1.3.5|
|''Released''|2009-11-22|
|''Requires''|self-contained, borrows from TiddlyWiki|
|''Source''|https://github.com/tweecode/twine|
! Summary
Create your own interactive stories with Twine / Twee, the same tool used to produce the stories on [[the author's website|http://www.gimcrackd.com/]]. Available for Windows and Mac OSX.
! Examples
; introductory videos on Vimeo
:[[Creating A Simple Story|https://vimeo.com/5010370]]
:[[Formatting a Story|http://vimeo.com/5011133]]
:[[Finishing Touches|http://vimeo.com/5053107]]
! Preview
<html><iframe src="//player.vimeo.com/video/5011133" width="500" height="375" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></html>
! Details
''Think Visually'' — Twine lets you organize your story graphically with a map that you can re-arrange as you work. Links automatically appear on the map as you add them to your passages, and passages with broken links are apparent at a glance. As you write, focus on your text with a fullscreen editing mode like Dark Room. Rapidly switch between a published version of your story and the editable one as you work.

''Free As In Free'' — Stories you create with Twine can be used however you'd like. Because the final output is a single, small Web page, you can easily email a story to friends, post it on your Web site, or even distribute it on a ~CD-ROM. (You could use a floppy disk just as easily — stories take up that little space.) You can also use your stories for commercial purposes without restriction.

;a lively community
:https://groups.google.com/forum/#!forum/tweecode
;Article about Twine release 1.3.5
:http://nickm.com/post/2009/07/twine-is-rolled-out
|details|k
|''URL''|http://tiddlywiki.com|
|''Author''|[[Jeremy Ruston]] [[Eric Shulman]]|
|''Date''|2013-06-24|
! Summary
TiddlyWiki.com is your entry point into the TiddlyWorld. It gives a good abstract of all the features and provides lots of references to delve into.
! Preview
[img[http://img.tiddlyspace.com/TiddlyWiki.com]]
! Details
You'll also find...
* release update notifications
* the latest version for download
* a basic reference of the feature set
* pointers as to where to get help and join the crowd
* lots of references to external sources making use of TiddlyWiki
<<tiddler TemplateAlias with: "Pascal Collin">>
All these plugins didn't yet get a <<tag Plugins "plugin category">>. They were also probably not reviewed, meaning...
* no example ''Preview'' yet
* no meaningful ''Details'' section
<<get "##Summary"' filter:"[tag[zzUnsorted]]">>
|details|k
|''URL''|http://www.TiddlyTools.com/#ToggleBreadcrumbs|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-30|
|''Version''|2.0.0|
|''CoreVersion''|2.1|
|''Requires''|[[BreadcrumbsPlugin|BreadcrumbsPlugin...]]|
|''Source''|http://www.TiddlyTools.com/#ToggleBreadcrumbs|
!Summary
enable/disable display of [[breadcrumbsPlugin|BreadcrumbsPlugin...]]
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ToggleBreadcrumbs]]
:» see the author's info tiddler for examples
!Details
When you toggle the checkbox the [[breadcrumbs display||BreadcrumbsPlugin...]] is toggled.

''Usage''
{{{<<tiddler ToggleBreadcrumbs>>}}}
{{{<<tiddler ToggleBreadcrumbs with: label tip>>}}}

''Example'' — just a preview, not functional
{{{
<<tiddler ToggleBreadcrumbs>>
}}}
<<option chkShowBreadcrumbs>> ''show breadcrumbs''
|details|k
|''URL''|http://www.TiddlyTools.com/#DisableWikiLinksPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-07-23|
|''Version''|1.6.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#DisableWikiLinksPlugin|
!Summary
selectively disable TiddlyWiki's automatic ~WikiWord linking behavior
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#DisableWikiLinksPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#DisableWikiLinksPlugin
|details|k
|''URL''|http://visualtw.ouvaton.org/VisualTW.html#FCKeditorPlugin|
|''Author''|[[Pascal Collin]]|
|''Released''|2007-12-21|
|''Version''|1.1.1|
|''CoreVersion''|2.2.0|
|''Source''|http://visualtw.ouvaton.org/VisualTW.html#FCKeditorPlugin|
!Summary
Wysiwyg editor for TiddlyWiki using ~FCKeditor.
!Examples
; [[WysiwygDemo|http://visualtw.ouvaton.org/VisualTW.html#WysiwygDemo]]
:see and edit on the [[plugin homepage|http://visualtw.ouvaton.org/VisualTW.html]]
!Details
''Instalation''
#download and unzip [[FCKeditor|http://www.fckeditor.net/download]] (by default, in a wiki subfolder, such that the relative path "fckeditor/fckeditor.js" is right).
#import ~FCKeditorPlugin (systemConfig tagged)
#add the following text to MarkupPreHead : {{{<script type="text/javascript" src="fckeditor/fckeditor.js"></script>}}}
#customize ~FCKeditorPath if needed (in MarkupPreHead and in options below)
#save and reload
#use the {{{<<toolbar editHtml>>}}} button in the tiddler's toolbar (in default ViewTemplate) or add {{{editHtml}}} command in your own toolbar.
!!!Useful Addons
*[[HTMLFormattingPlugin|http://www.tiddlytools.com/#HTMLFormattingPlugin]] to embed wiki syntax in html tiddlers.
**When this plugin is installed, you can use anchor syntax to link tiddlers in wysiwyg mode (example : #example).
**Anchors are converted back and from wiki syntax when editing.
*[[TaggedTemplateTweak|http://www.TiddlyTools.com/#TaggedTemplateTweak]] to use alternative ViewTemplate/EditTemplate for tiddler's tagged with specific tag values.
/***
|''Name''|ServerSideSavingPlugin|
|''Description''|server-side saving|
|''Author''|FND|
|''Version''|0.6.5|
|''Status''|stable|
|''Source''|http://svn.tiddlywiki.org/Trunk/association/plugins/ServerSideSavingPlugin.js|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.5.3|
|''Keywords''|serverSide|
!Notes
This plugin relies on a dedicated adaptor to be present.
The specific nature of this plugin depends on the respective server.
!Revision History
!!v0.1 (2008-11-24)
* initial release
!!v0.2 (2008-12-01)
* added support for local saving
!!v0.3 (2008-12-03)
* added Save to Web macro for manual synchronization
!!v0.4 (2009-01-15)
* removed ServerConfig dependency by detecting server type from the respective tiddlers
!!v0.5 (2009-08-25)
* raised CoreVersion to 2.5.3 to take advantage of core fixes
!!v0.6 (2010-04-21)
* added notification about cross-domain restrictions to ImportTiddlers
!To Do
* conflict detection/resolution
* rename to ServerLinkPlugin?
* document deletion/renaming convention
!Code
***/
//{{{
(function($) {

readOnly = false; //# enable editing over HTTP

var plugin = config.extensions.ServerSideSavingPlugin = {};

plugin.locale = {
	saved: "%0 saved successfully",
	saveError: "Error saving %0: %1",
	saveConflict: "Error saving %0: edit conflict",
	deleted: "Removed %0",
	deleteError: "Error removing %0: %1",
	deleteLocalError: "Error removing %0 locally",
	removedNotice: "This tiddler has been deleted.",
	connectionError: "connection could not be established",
	hostError: "Unable to import from this location due to cross-domain restrictions."
};

plugin.sync = function(tiddlers) {
	tiddlers = tiddlers && tiddlers[0] ? tiddlers : store.getTiddlers();
	$.each(tiddlers, function(i, tiddler) {
		var changecount = parseInt(tiddler.fields.changecount, 10);
		if(tiddler.fields.deleted === "true" && changecount === 1) {
			plugin.removeTiddler(tiddler);
		} else if(tiddler.isTouched() && !tiddler.doNotSave() &&
				tiddler.getServerType() && tiddler.fields["server.host"]) { // XXX: server.host could be empty string
			delete tiddler.fields.deleted;
			plugin.saveTiddler(tiddler);
		}
	});
};

plugin.saveTiddler = function(tiddler) {
	try {
		var adaptor = this.getTiddlerServerAdaptor(tiddler);
	} catch(ex) {
		return false;
	}
	var context = {
		tiddler: tiddler,
		changecount: tiddler.fields.changecount,
		workspace: tiddler.fields["server.workspace"]
	};
	var serverTitle = tiddler.fields["server.title"]; // indicates renames
	if(!serverTitle) {
		tiddler.fields["server.title"] = tiddler.title;
	} else if(tiddler.title != serverTitle) {
		return adaptor.moveTiddler({ title: serverTitle },
			{ title: tiddler.title }, context, null, this.saveTiddlerCallback);
	}
	var req = adaptor.putTiddler(tiddler, context, {}, this.saveTiddlerCallback);
	return req ? tiddler : false;
};

plugin.saveTiddlerCallback = function(context, userParams) {
	var tiddler = context.tiddler;
	if(context.status) {
		if(tiddler.fields.changecount == context.changecount) { //# check for changes since save was triggered
			tiddler.clearChangeCount();
		} else if(tiddler.fields.changecount > 0) {
			tiddler.fields.changecount -= context.changecount;
		}
		plugin.reportSuccess("saved", tiddler);
		store.setDirty(false);
	} else {
		if(context.httpStatus == 412) {
			plugin.reportFailure("saveConflict", tiddler);
		} else {
			plugin.reportFailure("saveError", tiddler, context);
		}
	}
};

plugin.removeTiddler = function(tiddler) {
	try {
		var adaptor = this.getTiddlerServerAdaptor(tiddler);
	} catch(ex) {
		return false;
	}
	var context = {
		host: tiddler.fields["server.host"],
		workspace: tiddler.fields["server.workspace"],
		tiddler: tiddler
	};
	var req = adaptor.deleteTiddler(tiddler, context, {}, this.removeTiddlerCallback);
	return req ? tiddler : false;
};

plugin.removeTiddlerCallback = function(context, userParams) {
	var tiddler = context.tiddler;
	if(context.status) {
		if(tiddler.fields.deleted === "true") {
			store.deleteTiddler(tiddler.title);
		} else {
			plugin.reportFailure("deleteLocalError", tiddler);
		}
		plugin.reportSuccess("deleted", tiddler);
		store.setDirty(false);
	} else {
		plugin.reportFailure("deleteError", tiddler, context);
	}
};

plugin.getTiddlerServerAdaptor = function(tiddler) { // XXX: rename?
	var type = tiddler.fields["server.type"] || config.defaultCustomFields["server.type"];
	return new config.adaptors[type]();
};

plugin.reportSuccess = function(msg, tiddler) {
	displayMessage(plugin.locale[msg].format([tiddler.title]));
};

plugin.reportFailure = function(msg, tiddler, context) {
	var desc = (context && context.httpStatus) ? context.statusText :
		plugin.locale.connectionError;
	displayMessage(plugin.locale[msg].format([tiddler.title, desc]));
};

config.macros.saveToWeb = { // XXX: hijack existing sync macro?
	locale: { // TODO: merge with plugin.locale?
		btnLabel: "save to web",
		btnTooltip: "synchronize changes",
		btnAccessKey: null
	},

	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		createTiddlyButton(place, this.locale.btnLabel, this.locale.btnTooltip,
			plugin.sync, null, null, this.locale.btnAccessKey);
	}
};

// hijack saveChanges to trigger remote saving
var _saveChanges = saveChanges;
saveChanges = function(onlyIfDirty, tiddlers) {
	if(window.location.protocol == "file:") {
		_saveChanges.apply(this, arguments);
	} else {
		plugin.sync(tiddlers);
	}
};

// override removeTiddler to flag tiddler as deleted -- XXX: use hijack to preserve compatibility?
TiddlyWiki.prototype.removeTiddler = function(title) { // XXX: should override deleteTiddler instance method?
	var tiddler = this.fetchTiddler(title);
	if(tiddler) {
		tiddler.tags = ["excludeLists", "excludeSearch", "excludeMissing"];
		tiddler.text = plugin.locale.removedNotice;
		tiddler.fields.deleted = "true"; // XXX: rename to removed/tiddlerRemoved?
		tiddler.fields.changecount = "1";
		this.notify(title, true);
		this.setDirty(true);
	}
};

// hijack ImportTiddlers wizard to handle cross-domain restrictions
var _onOpen = config.macros.importTiddlers.onOpen;
config.macros.importTiddlers.onOpen = function(ev) {
	var btn = $(resolveTarget(ev));
	var url = btn.closest(".wizard").find("input[name=txtPath]").val();
	if(window.location.protocol != "file:" && url.indexOf("://") != -1) {
		var host = url.split("/")[2];
		var macro = config.macros.importTiddlers;
		if(host != window.location.host) {
			btn.text(macro.cancelLabel).attr("title", macro.cancelPrompt);
			btn[0].onclick = macro.onCancel;
			$('<span class="status" />').text(plugin.locale.hostError).insertAfter(btn);
			return false;
		}
	}
	return _onOpen.apply(this, arguments);
};

})(jQuery);
//}}}
<<tag "Editing & Authoring" Plugins>>facilitating content authoring and writing content...
A master of search, aggregation, forms and inclusion...
» http://tiddlywiki.abego-software.de
/***
|''Name''|TiddlySpaceToolbar|
|''Description''|augments tiddler toolbar commands with SVG icons|
|''Author''|Osmosoft|
|''Version''|0.6.6|
|''Status''|@@beta@@|
|''Source''|http://github.com/TiddlySpace/tiddlyspace/raw/master/src/plugins/TiddlySpaceToolbar.js|
|''CodeRepository''|http://github.com/TiddlySpace/tiddlyspace|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.5.0|
|''Requires''|ImageMacroPlugin|
|''Keywords''|toolbar icons SVG|
!Description
replaces tiddler toolbar commands with SVG icons if available
!Notes
requires [[ImageMacroPlugin|http://svn.tiddlywiki.org/Trunk/contributors/JonRobson/plugins/ImageMacroPlugin/plugins/ImageMacroPlugin.tid]]

SVG icons are drawn from tiddlers titled {{{<command>.svg}}}
In readonly mode a tiddler called {{{<command>ReadOnly.svg}}} will be used if it exists.
!TODO
* rename (IconToolbarPlugin?)
* support more than one more popup menu in the toolbar.
!Code
***/
//{{{
(function($) {

if(!config.macros.image) {
	throw "Missing dependency: ImageMacroPlugin";
}

var macro = config.macros.toolbar;

macro.icons = {
	cloneTiddler: "editTiddler"
};

var _handler = macro.handler;
macro.handler = function(place, macroName, params, wikifier,
		paramString, tiddler) {
	var toolbar = $(place);
	toolbar.attr({
		refresh: "macro",
		macroName: macroName
	}).data("args", arguments);
	var status = _handler.apply(this, arguments);
	if(tiddler.isReadOnly()) {
		toolbar.addClass("toolbarReadOnly");
	} else {
		toolbar.removeClass("toolbarReadOnly");
	}
	var parsedParams = paramString.parseParams("name")[0];
	if(parsedParams.icons && parsedParams.icons == "yes") {
		this.augmentCommandButtons(place);
	}
	if(parsedParams.more && parsedParams.more == "popup") {
		// note we must override the onclick event like in createTiddlyButton
		// otherwise the click event is the popup AND the slider
		$(".moreCommand", place).each(function(i, el) {
			el.onclick = macro.onClickMorePopUp;
		});
		// buttons that are after a less command should not be in more menu.
		$(".lessCommand ~ .button", place).appendTo(place);
		$(".lessCommand", place).remove();
	}
	return status;
};

macro.refresh = function(place, params) {
	var args = $(place).empty().data("args");
	this.handler.apply(this, args);
};

var imageMacro = config.macros.image;
macro.augmentCommandButtons = function(toolbar) {
	$(".button", toolbar).each(function(i, el) {
		var cmd = $(el).attr("commandname");
		cmd = cmd ? cmd : "moreCommand"; // XXX: special-casing of moreCommand due to ticket #1234
		var icon = store.tiddlerExists(cmd) ? cmd : macro.icons[cmd];
		var text = $(el).text();
		if(readOnly) {
			var readOnlyAlternative = "%0ReadOnly".format([icon]);
			if(store.tiddlerExists(readOnlyAlternative)) {
				icon = readOnlyAlternative;
			}
		}
		if(store.tiddlerExists(icon)) {
			$(el).css({display: "inline-block"}).empty();
			imageMacro.renderImage(el, icon, { alt: text });
		}
	});
};

// provide onClickMore to provide extra commands in a popup
macro.onClickMorePopUp = function(ev) {
	ev = ev || window.event;
	var sibling = this.nextSibling;
	if(sibling) {
		var commands = sibling.childNodes;
		var popup = Popup.create(this);
		$(popup).addClass("taggedTiddlerList");
		for(var i = 0; i < commands.length; i++) {
			var li = createTiddlyElement(popup, "li", null);
			var oldCommand = commands[i];
			var command = oldCommand.cloneNode(true);
			command.onclick = oldCommand.onclick;
			li.appendChild(command);
		}
		Popup.show();
	}
	ev.cancelBubble = true;
	if(ev.stopPropagation) {
		ev.stopPropagation();
	}
	return false;
};

})(jQuery);
//}}}
/***
|''Name''|ColoredLinksPlugin|
|''Description''|adds color to tiddlyLinks depending on the tag assigned to the corresponding tiddler|
|''Documentation''|http://ColoredLinks.tiddlyspot.com|
|''Version''|1.1.0 (2013-09-25)|
|''Author''|[[TobiasBeer]]|
|''Source''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/ColoredLinksPlugin.min.js|
|''License''|[[Creative Commons Attribution-Share Alike 3.0|http://creativecommons.org/licenses/by-sa/3.0/]]|
/%***/
//{{{
(function(e){var t=config.extensions.coloredLinks={colorTags:true,colorTitles:true,titleSelector:"div.title",excludeTagged:"noColor",color:function(t,n,r){var i,s,o="",u,a,f="",l,c=t,h=config.options;if(r){f=n}else{do{f=c&&c.getAttribute?c.getAttribute("tiddler"):null;o=f?c:o;c=c.parentNode}while(c);f=o?o.getAttribute("tiddler"):""}u=store.getTiddler(f);if(u&&u.tags.containsAny(this.excludeTagged.readBracketedList()))return;u=store.getTiddler(n);if(u&&u.tags){a=0;while(!l&&a<u.tags.length){s=store.getValue(u.tags[a],"tagcolor");l=s?u.tags[a]:"";a++}if(!l)l=u.tags[0]}s=s?s:store.getValue(n,"tagcolor");if(!l&&this.colorTags&&s)l=n;if(s){s=s.replace(/\s*;\s*/g,'","').replace(/\s*:\s*/g,'":"').trim();if(s.substr(s.length-2,2)==',"')s=s.substr(0,s.length-2);s='{"'+s+"}";e(t).css(e.parseJSON(s)).addClass("coloredLink")}if(l)e(t).attr("firsttag",l)}};createTiddlyLink_COLOR=createTiddlyLink;createTiddlyLink=function(e,n,r,i,s,o,u){var a=createTiddlyLink_COLOR.apply(this,arguments);t.color(a,n);return a};createTagButton_COLOR=createTagButton;createTagButton=function(e,n,r,i,s){var o=createTagButton_COLOR.apply(this,arguments);addClass(o,store.getTaggedTiddlers(n).length>0?"hastags":"hasnotags");t.color(o,n);return o};config.macros.allTags.handler_COLOR=config.macros.allTags.handler;config.macros.allTags.handler=function(n,r,i){config.macros.allTags.handler_COLOR.apply(this,arguments);e(".button, .tiddlyLink",n).each(function(n){var r=e(this),i=r.attr("tiddlyLink");if(!i&&r.hasClass("hastags")||r.hasClass("hasnotags"))i=r.attr("tag");if(i)t.color(this,i)})};Story.prototype.refreshTiddler_COLOR=Story.prototype.refreshTiddler;Story.prototype.refreshTiddler=function(n,r,i,s,o){var u=Story.prototype.refreshTiddler_COLOR.apply(this,arguments);if(t.colorTitles)t.color(e(u).find(t.titleSelector)[0],n,true);return u}})(jQuery)
//%/
|details|k
|''URL''|http://themes.tiddlywiki.com/monochrome.html|
! Summary
This is a quite dark grey theme with hardly any color, white text and gray highlights.
! Preview
[img[[img[http://img.tiddlyspace.com/MonoChrome][http://themes.tiddlywiki.com/monochrome.html]]
|details|k
|''URL''|http://math-template.tiddlyspace.com/|
|''Author''|Rolf|
|''Date''|2011-05-11|
! Summary
Provides templates and documentation for working with mathjax in Tiddlywiki / TiddlySpace.
! Preview
<html><iframe style="width:100%;height:600px;" src="http://math-template.tiddlyspace.com/"/></html>
! Details
This TiddlySpace is intended as a template for creating a TiddlySpace with LATEX support.
<<tag Presentation Plugins>>to modify how TiddlyWiki displays content for viewing, e.g. themes, style, design, layout, colors, css, etc...
Please quickly skim through the guidelines and preview of the following [[Plugin Template]]...
{{{
|details|k
|''URL''|http://url.to.plugin.specific.documentation.org|
|''Author''|Firstname Lastname (Alias)|
|''Version''|plugin version|
|''Released''|YYYY-0MM-0DD|
|''Requires''|tw core version / plugin dependencies|
|''Source''|http://repository.com/#SomePlugin|
! Summary
A few short words of what the plugin does in terms of key features and benefits.
! Examples
; [[external link to example]]
: some info on what's special about this example
; [[http://example.tiddlyspace.com]]
: do not demonstrate here!
! Preview
[img[http://img.tiddlyspace.com/PluginName_X]]
! Details
Use cases and how it works.
}}}
! Guidelines
; Naming Conventions
: <<tiddler PluginName...>>
; Tagging Conventions
: Tag a listed plugin...
:* always with <<tag Plugin>>
:* if applicable, also with <<tag Macro>>, <<tag Transclusion>> or <<tag Script>>
:* with the Author using [[Firstname Lastname]]
:* with [[Broken]] if it no longer works with the current core release
:* with any corresponding <<tag Plugins "plugin category">>, can be multiple
{{annotation{For creating new categories, please discuss first.}}}
!Preview
{{annotation{
Info Slice Table — Slice names in the template __are__ case sensitive, so leave them as is. 
}}}
|details|k
|''URL''|http://url.to.plugin.specific.documentation.org|
|''Author''|Firstname Lastname (Alias)|
|''Version''|plugin version|
|''Released''|~YYYY-0MM-0DD|
|''Requires''|tw core version / plugin dependencies|
|''Source''|http://repository.com/#SomePlugin|
! Summary
A short summary of what the plugin does in terms of key features
and benefits.
{{annotation{Just a few words. Keep the rest for the ''Details'' section.}}}
If the plugin should no longer work, please use the following annotation...
{{annotation{
With TiddlyWiki core version <x.y.z> this plugin no longer works. Alternatives may be [[FooPlugin...|Plugin]] and [[BarPlugin...|Plugin]].
}}}
! Examples
; [[external link to example]]
: some info on what's special about this example
; [[http://example.tiddlyspace.com]]
: do not demonstrate here!
! Preview
[img[http://img.tiddlyspace.com/PluginName_X]]
{{annotation{Use @img to upload one or more screenshots of the plugin in action and then [[insert it as an image|http://img.tiddlyspace.com/#PluginName_X]] pointing to a url of an external resource.}}}
! Details
Use cases and how it works. Anything beyond the summary worth mentioning.
{{annotation{
» Here you can more details from the plugin documentation.
» Perhaps compatibility listings with older versions of TiddlyWiki.
» Please don't overdo.
» Don't just copy & paste the info tiddler
» Leave out all the technical stuff, e.g. parameters, options, variables.
» This is not the how-to-guide for everything.
}}}
<!--{{{-->
<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>
<div class='editorFooter'>
	<div class='tagTitle'>tagcolor</div>
	<div class='editor' macro='edit tagcolor'></div>
</div>
<!--}}}-->
|details|k
|''URL''|http://themes.tiddlywiki.com/ijobs2.html|
! Summary
This theme comes in grey tones, orange highlights, a horizontal MainMenu and some blue spacers.
! Preview
[img[[img[http://img.tiddlyspace.com/jJobs2][http://themes.tiddlywiki.com/ijobs2.html]]
|details|k
|''URL''|http://www.TiddlyTools.com/#ScrollBox|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-10-01|
|''Version''|1.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ScrollBox|
!Summary
show tiddler content in a fixed-height scrolling area
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ScrollBox]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ScrollBox
|details|k
|''URL''|http://www.TiddlyTools.com/#SendTiddlerPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2007-02-16|
|''Version''|0.8.0|
|''CoreVersion''|2.1|
|''Requires''|[[SendTiddlerConfig|http://www.tiddlytools.com/#SendTiddlerConfig]]|
|''Source''|http://www.TiddlyTools.com/#SendTiddlerPlugin|
|''Status''|ALPHA DEVELOPMENT - USE WITH CARE - SUBJECT TO CHANGE|
!Summary
send tiddler source content or raw storeArea ~DIVs to remote ~URLs for server-side storage/processing
!Examples
You need to test it with your own server configuration.
!Details
The ''sendTiddler'' toolbar command submits tiddler source content to remote ~URLs for server-side processing.  Useful for posting tiddler content to on-line blog services or custom-built server-side storage mechanisms.

''Usage''
<<<
Select ''send'' tiddler toolbar command to view a popup list of destinations servers.

When you select a server, a separate browser window (or popup) will open, containing a server-specific HTML form for sending the tiddler content along with extra input fields as needed to enter additional information to be sent (e.g., account, username, keywords, options, etc.). Review/enter information as desired, and then press the ''send'' button.  A separate window will be opened to display the response from the remote server.
<<<

''Configuration''
<<<
Destination servers are defined in the [[SendTiddlerConfig|http://www.tiddlytools.com/#SendTiddlerConfig]] tiddler. Each definition is separated by a {{{----}}} (horizontal rule). The first line of each definition is the text that will appear in the ''send'' toolbar popup menu. The remaining lines of each contain an HTML form, beginning with {{{<form method="..." action="...">}}} appropriate for that destination server, followed by form input fields (and possibly hidden fields) to contain the specific values needed for processing the form on the server.

Some tiddler values can be automatically inserted into the form, based on the tiddler being sent.  To insert these values, you can embed any of the following ''field markers'' into your custom-defined form definition (using a {{{%marker%}}} format). When the form is displayed, these markers will be automatically replaced by the corresponding tiddler field value.
* content - the current contents of the current tiddler
* source - the URL of the current TiddlyWiki document
* title - the title of the current tiddler
* created - the date the tiddler was initially created
* modified - the date the tiddler was last modified
* author - the TiddlyWiki username of the last person to edit the tiddler
* tags - a (space-separated) list of tags for the tiddler
* alltiddlers - all tiddlers, encoded as TW "storeArea" ~DIVs
* ~SHA1 - cryto-encoded value corresponding to current tiddler  or alltiddlers content
<<<

''Installation Notes''
<<<
If you are using the default (shadow) ViewTemplate, the plugin automatically updates the template to include the ''sendTiddler'' toolbar command.  If you have created a custom ViewTemplate tiddler, you will need to manually add the ''sendTiddler'' toolbar command to your existing template:
{{{
<!-- add 'sendTiddler' command to existing editor toolbar definition -->
<div class='toolbar' macro='toolbar ... sendTiddler ... '>
}}}
/***
|''Name''|RandomColorPalettePlugin|
|''Description''|Adds a random color palette to TiddlyWiki|
|''Author''|Jon Robson|
|''Version''|1.4.0|
|''Status''|stable|
|''Source''|https://github.com/jdlrobson/TiddlyWikiPlugins/raw/master/plugins/RandomColorPalettePlugin/RandomColorPalettePlugin.js|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
!Usage
{{{
<<RandomColorPalette>>
}}}
Sets and saves a random color palette on execution

{{{
<<RandomColorPaletteButton>>
}}}
Creates a button, which when clicked will change the color palette
More information at http://macros.tiddlyspace.com/#%5B%5BRandomColorPaletteButton%20macro%5D%5D
!Code
***/
//{{{
RGB.prototype.toRGBString = function() {
	return "rgb(%0,%1,%2)".format(parseInt(this.r * 255, 10),
		parseInt(this.g * 255, 10), parseInt(this.b * 255, 10))
}
function HSL_TO_RGB(h, s, l) { // h (hue) between 0 and 360, s (saturation) & l (lightness) between 0 and 1
	var c = l <= 0.5 ? 2 * l * s : ( 2 - (2 * l)) * s;
	var h1 = h / 60;
	var x = c * (1 - Math.abs((h1 % 2) - 1)); 
	var r, g, b;
	if(typeof(h) == 'undefined') {
		r = 0;
		g = 0;
		b = 0;
	} else if(0 <= h1 && h1 < 1) {
		r = c;
		g = x;
		b = 0;
	} else if(1 <= h1 && h1 < 2) {
		r = x;
		g = c;
		b = 0;
	} else if(2 <= h1 && h1 < 3) {
		r = 0;
		g = c;
		b = x;
	} else if(3 <= h1 && h1 < 4) {
		r = 0;
		g = x;
		b = c;
	} else if(4 <= h1 && h1 < 5) {
		r = x;
		g = 0;
		b = c;
	} else if(5 <= h1 && h1 < 6) {
		r = c;
		g = 0;
		b = x;
	}
	m = l - (0.5 * c);
	return new RGB(r + m, g + m, b + m);
}

(function($){
	var macro = config.macros.RandomColorPalette = {
		messagesOn: false, 
		changedPaletteText: "We have assigned you a random theme by adjusting the [[ColorPalette]] tiddler.\nDon't like it? Click <<RandomColorPalette>> for another one.", 
		handler: function(place, macroName, params, wikifier, paramString, tiddler) {
			paramString = paramString || "";
			var options = macro.getOptions(paramString);
			macro.generatePalette(options, true);
		},
		optionTypes: {
			floats: ["hue", "saturation", "darkest", "lightness", "huevariance", "dark", "pale", "light", "mid",
				"saturation_light", "saturation_pale", "saturation_mid", "saturation_dark"
			]
		},
		getOptions: function(paramString) {
			var args = paramString.parseParams("name", null, true, false, true)[0];
			var options = {};
			var numbers = macro.optionTypes.floats;
			for(var i in args) {
				options[i] = numbers.indexOf(i) > -1 ? parseFloat(args[i][0], 10) : args[i][0];
			}
			return options;
		},
		generateRandomNumber: function(min, max, info) {
			var num = (Math.random() * 1);
			info = !info ? { attempts:0 } : info;
			info.attempts += 1;
			var good = true;
			if(min == max) {
				return max;
			}
			if(min && num < min) {
				good = false;
			} else if(max && num > max) {
				good = false;
			}
			if(!good) {
				if(info.attempts < 5) {
					return macro.generateRandomNumber(min, max, info);
				} else {
					if(max) {
						return max;
					} else if(min) {
						return min;
					} else {
						return 1;
					}
				}
			}
			return num;
		},
		getExistingPalette: function(asJSON) {
			var title = "ColorPalette";
			var tiddlerText;
			if(store.tiddlerExists(title)) {
				tiddlerText = store.getTiddlerText(title);
			} else if(store.isShadowTiddler(title)){
				tiddlerText = config.shadowTiddlers[title];
			}
			if(asJSON) {
				var json = {};
				if(tiddlerText) {
					var lines = tiddlerText.split("\n");
					for(var i = 0; i < lines.length; i++) {
						var definition = lines[i].split(":");
						if(definition.length == 2) {
							var name = definition[0].trim();
							var value = definition[1].trim();
							json[name] = value;
						}
					}
				}
				return json;
			} else {
				return tiddlerText;
			}
		},
		generatePalette: function(options, save) {
			var outputRGB = options.rgb;
			var palette = macro.getExistingPalette(true);
			var hue = options.hue || Math.floor(Math.random() * 359);
			var saturation = options.saturation || macro.generateRandomNumber(0.3, 0.7);
			var dark = options.dark || options.darkest || macro.generateRandomNumber(0, 0.10);
			var pale = options.pale || options.lightness || macro.generateRandomNumber(0.90, 1);
			var delta = ( ( pale - dark ) / 3 );
			var mid = options.mid || dark + delta;
			var light = options.light || dark + (delta * 2);
			var lightness_values = {Dark: dark, Mid: mid, Light: light, Pale: pale};
			var saturation_values = {};
			for(i in lightness_values) {
				if(true) {
					saturation_values[i] = options["saturation_" + i.toLowerCase()] || saturation;
				}
			}

			var opposite_hue = (hue + 180) % 360;
			var seed = options.huevariance || Math.floor((85 * Math.random()) + 5); // we want it to be at least 5 degrees
			var huetwo = (opposite_hue + seed) % 360;
			var huethree = (opposite_hue - seed) % 360;
			if(huetwo < 0) {
				huetwo = 360 + huetwo;
			}
			if(huethree < 0) {
				huethree = 360 + huethree;
			}
			for(var j in lightness_values) {
				if(true) {
					var saturation = saturation_values[j];
					palette["Primary" + j] = HSL_TO_RGB(hue, saturation, lightness_values[j]);
					palette["Secondary" + j] = HSL_TO_RGB(huetwo, saturation, lightness_values[j]);
					palette["Tertiary" + j] = HSL_TO_RGB(huethree, saturation, lightness_values[j]);
				}
			}
			palette.Background = HSL_TO_RGB(hue, saturation, 0.92);
			palette.Foreground = HSL_TO_RGB(hue, saturation, 0.08);
			palette.ColorPaletteParameters = ["HSL([", hue, "|", seed, "], [", saturation_values.Pale, "|",
				saturation_values.Light, "|", saturation_values.Mid, "|", saturation_values.Dark, "],",
				"[", dark, "|", mid, "|", light, "|", pale, "])"].join("");
			// construct new ColorPalette
			var text = ["/*{{{*/\n"];
			var colorcode;
			for(var id in palette) {
				if(true) {
					var color = palette[id];
					colorcode = outputRGB ? color.toRGBString() : color.toString();
					text.push("%0: %1\n".format(id, colorcode));
				}
			}
			text.push("/*}}}*/");
			text = text.join("");
			if(save) {
				macro.saveColorPalette(text);
			}
			return text;
		},
		saveColorPalette: function(text) {
			var tid = store.getTiddler("ColorPalette");
			if(!tid) {
				tid = new Tiddler("ColorPalette");
				tid.fields = merge({}, config.defaultCustomFields);
			} // TODO: detect that the ColorPalette in the space comes from outside recipe
			tid.fields["server.page.revision"] = "false"; // edit conflicts dont matter

			// save the color palette in tid
			tid = store.saveTiddler(tid.title, tid.title, text, tid.modifier, tid.modified,
				tid.tags, tid.fields, false, tid.created, tid.creator);
			// an interval is used to cope with users clicking on the palette button quickly.
			if(macro._nextSave) {
				window.clearTimeout(macro._nextSave);
			}
			macro._nextSave = window.setTimeout(function() {
					autoSaveChanges(null, [tid]);
				}, 2000);
			// temporary workaround for IE.
			$.twStylesheet.remove({ id: "StyleSheetColors" });
			$.twStylesheet.remove({ id: "StyleSheet" });
			refreshAll();
			macro.reportChange();
			return tid;
		},
		reportChange: function() {
			if(macro.messagesOn) { // only display message once..
				var msgPlace = getMessageDiv();
				if(!$(".changedPalette", msgPlace)[0]) {
					var tempPlace = document.createElement("div");
					wikify("{{changedPalette{" + macro.changedPaletteText + "}}}", tempPlace);
					msgPlace.appendChild(tempPlace);
				}
			}
		}
	};
	var btnMacro = config.macros.RandomColorPaletteButton = {
			text: "New ColorPalette",
			tooltip: "Generate a random colour scheme for your TiddlyWiki",
			makeButton: function(place, options) {
				var btnHandler = function(ev) {
					var t = $(ev.target);
					var options = t.data("options");
					macro.generatePalette(options, true);
					ev.preventDefault();
					return false;
				};
				var btn = createTiddlyButton(place, this.text, this.tooltip, btnHandler);
				$(btn).data("options", options);
				return btn;
			},
			handler: function(place, macroName, params, wikifier, paramString, tiddler) {
				var options = macro.getOptions(paramString);
				btnMacro.makeButton(place, options);
			}
	};
})(jQuery);
//}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#AnimationEffectsPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2008-01-09|
|''Version''|3.1.1|
|''CoreVersion''|2.2|
|''Requires''||
|''Type''|plugin|
|''Source''|http://www.TiddlyTools.com/#AnimationEffectsPlugin|
!Summary
display content with timer-based animations to manipulate multiple CSS attributes
!Examples
; [[Wanna get dizzy?|http://www.tiddlytools.com/#AnimationEffectsSampler]]
:» Then check out this example!
! Preview
[img[http://img.tiddlyspace.com/AnimationEffectsPlugin_1][	http://www.TiddlyTools.com/#AnimationEffectsPluginInfo]]
!Details
None yet. Please review...
http://www.TiddlyTools.com/#AnimationEffectsPluginInfo
|details|k
|''URL''|http://www.lichtorganik.de|
|''Author''|[[Tobias Beer]]|
|''Owner''|Daniel Jankowski|
|''Released''|2012-02-10|
! Summary
A TiddlyWiki powered website for a crafty philosopher who creates the post beautiful porcelain sculptures. The site is driven by an custom catalogue manager and viewer and leverages loads of custom features like a sitemap, a blog, smart contact forms, lightboxes, breadcrumb navigation, and pulls all images from an image store on [[photobucket.com|http://photobucket.com]]...
! Preview
[img[http://img.tiddlyspace.com/LichtOrganik.de][http://www.lichtorganik.de]]
/***
|''Name:''|DefaultOnEmptyPlugin|
|''Description:''|opens the default tiddlers when the story is empty.|
|''Author:''|[[Tobias Beer|http://tobibeer.tiddlyspace.com]]|
|''Version:''|0.1.0 (2015-01-22)|
|''~CoreVersion:''|2.5.2|
|''Documentation:''|http://defaultonempty.tiddlyspace.com|
|''Source:''|https://raw.github.com/tobibeer/TiddlyWikiPlugins/master/plugins/DefaultOnEmptyPlugin.min.js|
|''License''|Creative Commons 3.0|

!Code
***/
//{{{
(function(){var e=config.options;if(e["chkOpenDefaultOnEmpty"]===undefined){e["chkOpenDefaultOnEmpty"]=true}var t=Story.prototype;t.closeTiddlerDEFAULTONEMPTY=t.closeTiddler;t.closeTiddler=function(n,r,i){var s=n,o=e.chkOpenDefaultOnEmpty;if(o){var u=0;this.forEachTiddler(function(e){if(e!=s){u++}return u<2})}if(o&&u==0){r=false}t.closeTiddlerDEFAULTONEMPTY.apply(this,arguments);if(o&&u==0){story.displayTiddlers(null,store.getTiddlerText("DefaultTiddlers").readBracketedList())}}})()
//}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#DiscussionPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-01-04|
|''Version''|1.5.7|
|''CoreVersion''|2.1|
|''Requires''|CommentPlugin|
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#DiscussionPlugin|
!Summary
display tabbed discussion summary with comment input form
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#DiscussionPluginInfo]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#DiscussionPluginInfo
|details|k
|''URL''|http://tsiscover.tiddlyspace.com/tsiscover|
|''Author''|[[Chris Dent]]|
|''Date''|2013-05-15|
! Summary
Tsiscover is an experimental tool to help you find interesting spaces to include in yours. Spaces can provide changes to the behavior, look, language and content of your space via sections listing translations, plugins, apps, themes, language packs and images.
! Preview
[img[http://img.tiddlyspace.com/Tsiscover][http://tsiscover.tiddlyspace.com/tsiscover]]
! Details
Tsiscover displays important functionalities available on TiddlySpace in sections. 

While space makers are mostly aware of the relevant tags some of these spaces have incorrect tags as a result of included SiteInfo tiddlers.

The actual include functionality does not yet work.
All currently installed plugins tag here...
{{noTitle{<<tagging>>}}}
|details|k
|''URL''|http://www.TiddlyTools.com/#EditSectionPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2012-01-30|
|''Version''|1.8.1|
|''CoreVersion''|2.1|
|''Requires''|EditSectionPlugin|
|''Type''|template|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#EditSectionPlugin|
!Summary
popup editor form template used by EditSectionPlugin
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#EditSectionPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#EditSectionPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#HideTiddlerBackground|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-25|
|''Version''|2.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#HideTiddlerBackground|
!Summary
hide a tiddler's background and border (if any)
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#HideTiddlerBackground]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#HideTiddlerBackground
|details|k
|''URL''|http://www.TiddlyTools.com/#PopupPreviewPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2012-05-23|
|''Version''|1.2.0|
|''CoreVersion''|2.1|
|''Requires''|[[StickyPopupPlugin...]] (optional, recommended)|
|''Source''|http://www.TiddlyTools.com/#PopupPreviewPlugin|
!Summary
Popup a formatted preview of a linked tiddler's content.
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#PopupPreviewPlugin]]
:see the author's info tiddler for examples
!Details
This plugin adds a custom 'shift-click' or mouseover handler to all tiddler links (or images with tiddler links) to display a popup with a fully-formatted preview of the linked tiddler's content.

~SHIFT-click to display a popup containing the fully-formatted content of the linked tiddler, in a fixed size, scrolling area.  Click anywhere to dismiss the popup.  Clicking on the link will open the tiddler in the normal manner.  If the linked tiddler contains a section named "preview", the popup displays that section content rather than the entire tiddler.  You can hide the "preview" section by enclosing it within comment markers ({{{/%...%/}}}) or a CSS wrapper ({{{@@display:none;...@@}}} or <html><nowiki><code>{{hidden{...}}}</code></html>) so that you can display alternative "summary" content in the popup preview while still showing the entire content when viewing the tiddler directly.
!!!Options
;chkPopupPreviews
:enable popup previews (shift-click)
;chkPopupPreviewMouseover
:show previews on mouseover (no click needed)
;txtPopupPreviewWidth / txtPopupPreviewHeight
:popup width and height
:may be specified using any valid CSS units, e.g. px, em, in, cm, %
;txtPopupPreviewSection
:preview section name
|details|k
|''URL''|http://www.TiddlyTools.com/#StickyPopupPlugin|
|''Author''|[[Eric Shulman]]|
|''Released''|2007-11-26|
|''Version''|1.0.1|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|plugin|
|''Tags''|Plugin Review zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#StickyPopupPlugin|
!Summary
allow mouse interactions inside popups without automatically closing them
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#StickyPopupPlugin]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#StickyPopupPlugin
|details|k
|''URL''|http://www.TiddlyTools.com/#MicroBrowser|
|''Author''|[[Eric Shulman]]|
|''Released''|2009-09-28|
|''Version''|2.0.1|
|''CoreVersion''||
|''Requires''||
|''Type''|transclusion|
|''Tags''|Plugin Review Transclusion zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#MicroBrowser|
!Summary
simplified browser-in-browser with bookmarks
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#MicroBrowser]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#MicroBrowser
|details|k
|''URL''|http://white-classic.tiddlyspace.com|
|''Author''|Tobias Beer|
|''Version''|0.8.6|
|''Released''|2013-11-06|
|''Requires''|2.6.2|
|''Source''|http://white-classic.tiddlyspace.com|
! Summary
A theme mimicking http://five.tiddlywiki.com, however with a more traditional feel where the header (SiteTitle and SiteSubtitle), search and SideBarOptions are placed at the top.
! Examples
; [[theme space|http://white-classic.tiddlyspace.com/#SiteInfo%20StyleSheet]]
: the theme space provides a working demo
! Preview
[img[http://img.tiddlyspace.com/White-Classic-Theme][http://white-classic.tiddlyspace.com/#SiteInfo%20StyleSheet]]
! Details
This theme is a variant of [[White-Theme]] providing the basic look and feel of TiddlyWiki5 while running on TiddlyWiki version <= <<version>>.

The""" "classic" """variant keeps the SiteTitle, SiteSubtitle and the search at the top of the page, as well as providing the SideBarOptions above the sidebar in the top-right corner similar to the default TiddlySpace theme.

It comes with a mostly white appearance on a slightly silverish page background with mostly blue or grey highlights for links, tables, tabs, etc... and uses box-shadows and gradients to provide a more modern appeal.
!Installation
To get started with [[White-Classic-Theme]]...
#simply include the @White-Classic space
#removing the @system-theme space
#moving any custom styles from StyleSheet into StyleSheetSpace
|details|k
|''URL''|http://www.TiddlyTools.com/#CommentPluginInfo|
|''Author''|[[Eric Shulman]]|
|''Released''|2011-04-27|
|''Version''|2.9.5|
|''CoreVersion''|2.1|
|''Source''|http://www.TiddlyTools.com/#CommentPlugin|
!Summary
automatically insert formatted comments into tiddler content
!Examples
Desperately needed!
!Details
''Syntax''
{{{
<<comment TiddlerName overwrite reverse marker:... tags format dateformat>>
}}}

''Parameters''
;~TiddlerName
://(optional)//<br>specifies the 'target' tiddler into which comments will be written.
:If you use the keyword, //{{{"here"}}}// (or omit all parameters), the current tiddler is used by default.
:The ~TiddlerName can also include special //substitution markers// to construct a unique target title by dynamically inserting values, where:
:*%tiddler%=containing tiddler title,
:*%UTC%=UTC timestamp (YYYYMMMDD.HHMMSSMMM),
:*%random%=random decimal number (.123456789),
:*%who%=current TiddlyWiki username,
:*%subject%=comment subject text.
;overwrite
://(optional)//<br>Normally, comments are //added// to a target tiddler if it already exists.
:However, if you use the ''overwrite'' keyword, the new comment text //''completely replaces the previous contents of an existing tiddler''//.
;reverse
://(optional)//<br>By default, new comments are added to the target tiddler //following// any existing comments.
:When ''reverse'' is used, new comments are inserted //before// existing comments, resulting in a reverse-chronological display (i.e, newest comments shown first).
;marker:...
://(optional)//<br>specifies an alternative //substitution marker// within the target tiddler (see below).
;tags
://(optional)//<br>adds specified space-separated tags to the target tiddler whenever a comment is written.  :Note that the list of tags should be enclosed in "..." so that it is processed as a single parameter.
;format
://(optional)//<br>specifies a custom output format that overrides the default format defined in {{{config.macros.comment.fmt}}} (see Configuration, below), using the following //substitution markers//:
:*%tiddler%=containing tiddler title,
:*%UTC%=UTC timestamp (YYYYMMMDD.HHMMSSMMM),
:*%when%=formatted date/time,
:*%who%=username,
:*%subject%=subject,
:*%message%=comment body text.
;dateformat
://(optional)//<br>specifies a custom date/timestamp output to be inserted in place of {{{%when%}} in the comment output format above.  Overrides the default format defined in {{{config.macros.comment.datefmt}}} (see Configuration, below).

To indicate the location within the target tiddler where new comments are to be inserted, embed {{{/%comment%/}}} as a //substitution marker// //within that target tiddler's source//.  Each new comment is inserted immediately preceding the marker, resulting in a time-ordered sequence of comments.  If no marker is present, new comments are appended to the end of the tiddler.  To insert comments from different forms into separate locations in the //same target tiddler//, you can use the ''marker:...'' parameter to specify alternative marker text (e.g., use "marker:note" or "marker:memo" to specify {{{/%note%/}}} or {{{/%memo%/}}} instead of {{{/%comment%/}}})

!!!Configuration
To configure the behavior and formats used by [[CommentPlugin]], //''place one or more of the following javascript statements in a tiddler tagged with<<tag systemConfig>>''//: //(note: the default values for each setting are shown)//
{{{
config.macros.comment.reverse=false;
}}}
>when set to {{{true}}}, all new comments are inserted //following// the comment marker instead of preceding it, resulting in a reverse chronological display order.  If no comment marker is present in the target tiddler source, the 'reverse' option is ignored and new comments are always appended to the end of the tiddler.
{{{
config.macros.comment.fmt="__''%subject%''__\n^^posted by %who% on %when%^^\n<<<\n%message%\n<<<\n";
}}}
>defines the comment output format to be inserted into the tiddler, where: %when%=date/time, %who%=username, %subject%=subject, and %message% is the body of the comment.  //Note: if you omit %subject% from the output format, the subject input field on the comment form will be automatically suppressed.  Similarly, omitting %message% from the output format suppresses the message input field.  This can be useful when using the {{{<<comment>>}}} macro to create simple activity logs that only require a short, one-line subject rather than entering extended message content.//
{{{
config.macros.comment.datefmt="DDD, MMM DDth, YYYY at hh12:0mm:0ss am";
}}}
>defines the date/timestamp output used within the comment format above.
{{{
config.macros.comment.tags="";
}}}
>defines an optional space-separated, list of tags to be added to the target tiddler whenever a comment is written.  This is most useful when the target tiddler is different from the tiddler containing the {{{<<comment>>}}} macro, to make it easy to locate that tiddler later on.

Note: as of revision 2.0.0, direct dependency on [[NestedSlidersPlugin...]], [[MoveablePanelPlugin...]], [[InlineJavascriptPlugin...]] and [[ToggleSliders...]] has been eliminated.  As a result, the comment form and generated comment output are no longer automatically contained within sliders and the "view all/close all" command is not automatically included.  To recreate the previous output format and comment interface, use the following syntax in the tiddler in which you want to place your comments:
{{{
+++^40em^[add a note]...
<<moveablePanel>>add a note
----
<<comment here "" "+++!!!!![%when% (%who%): %subject%]>...\n%message%\n===\n">>===
 | <<tiddler ToggleSliders with: here "view all" "close all">>
}}}
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xl="http://www.w3.org/1999/xlink" version="1.1" viewBox="364 157 64 51" width="30" height="30"><g stroke="none" stroke-opacity="1" stroke-dasharray="none" fill="none" fill-opacity="1"><g><path class="glyph" d="M 364.50006 184.50061 L 386.99985 207.00037 L 396 198.00002 L 373.50003 175.50066 Z M 403.02295 181.97704 C 400.38693 179.34099 396.11307 179.34099 393.47702 181.97704 C 390.841 184.61307 390.841 188.88695 393.47702 191.52298 C 396.11307 194.15903 400.38693 194.15903 403.02295 191.52298 C 405.65906 188.88695 405.65906 184.61307 403.02295 181.97704 M 414.27298 170.72704 C 411.63693 168.091 407.36307 168.091 404.72702 170.72704 C 402.091 173.36308 402.091 177.63693 404.72702 180.27296 C 407.36307 182.90901 411.63693 182.90901 414.27298 180.27296 C 416.90903 177.63693 416.90903 173.36308 414.27298 170.72704 M 425.523 159.47705 C 422.88696 156.841 418.6131 156.841 415.97705 159.47705 C 413.341 162.11308 413.341 166.38695 415.97705 169.02295 C 418.6131 171.65903 422.88696 171.65903 425.523 169.02295 C 428.15906 166.38695 428.15906 162.11308 425.523 159.47705" fill="#020202"/></g></g></svg>
|details|k
|''URL''|http://themes.tiddlywiki.com/lewcidorangeblog.html|
! Summary
A variant of K2Blog with an orange rather than blue header. <<tiddler K2Blog##Summary>>
! Preview
[img[[img[http://img.tiddlyspace.com/LewcidOrangeBlog][http://themes.tiddlywiki.com/lewcidorangeblog.html]]
|details|k
|''URL''|http://www.TiddlyTools.com/#ShowAllPermalinks|
|''Author''|[[Eric Shulman]]|
|''Released''|2007-08-16|
|''Version''|1.0.0|
|''CoreVersion''|2.1|
|''Requires''||
|''Type''|script|
|''Tags''|Plugin Review Script zzUnsorted [[Eric Shulman]]|
|''Source''|http://www.TiddlyTools.com/#ShowAllPermalinks|
!Summary
generate a list containing permalinks for every tiddler in the document
!Examples
; [[plugin info tiddler|http://www.TiddlyTools.com/#ShowAllPermalinks]]
:» see the author's info tiddler for examples
!Details
None yet. Please review...
http://www.TiddlyTools.com/#ShowAllPermalinks