<!--{{{-->
<link rel='alternate' type='application/rss+xml' title='RSS' href='index.xml' />
<!--}}}-->
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
/*{{{*/
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='header' 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' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' 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>
<!--}}}-->
<!--{{{-->
<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>>
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]]
<<importTiddlers>>
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="29px" height="29px" version="1.1"
  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <desc>
  </desc>
  <a xlink:href="http://bauwebijl.tiddlyspace.com/bags/bauwebijl_public/tiddlers.atom?select=tag:blog">
    <path fill="#929292" id="rect2825" d="m0,0l0,29l29,0l0,-29l-29,0zm2.4,2.55c13.2548,0 24,10.7452 24,24c0,0.0196 0.0001,0.0304 0,0.05l-4,0c-0.0015,-11.0446 -8.9554,-20 -20,-20l0,-4.05zm0,7.225c9.2784,0 16.8,7.5216 16.8,16.8l0,0.025l-4,0c0,-7.0692 -5.7308,-12.8 -12.8,-12.8l0,-4.025zm0,7.225c5.2838,0 9.5744,4.26629 9.6,9.55l-4,0.025c-0.0244,-3.0735 -2.5233,-5.55 -5.6,-5.55l0,-4.025l0,0z"/>
  </a>
</svg>
/***
|''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);
//}}}
test reply on remote tiddler...
<!--{{{-->
<div class='toolbar'
	macro='toolbar [[ToolbarCommands::ViewToolbar]] icons:yes height:16 width:16 more:popup'>
</div>
<div class='heading'>
	<span class='spaceSiteIcon'
		macro='tiddlerOrigin label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
	</span>
	<span class="titleBar">
		<div class='title' macro='view title text'></div>
		<span class="subtitle" macro='viewRevisions page:5'>
			last modified on
			<span macro="view modified date"></span>
		</span>
		<div macro="view title replyLink"></div>
	</span>
	<span class='followPlaceHolder' macro='followTiddlers'></span>
	<span class='modifierIcon'
		macro='view modifier SiteIcon label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
	</span>
	<div class='tagClear'></div>
</div>
<div class='content'>
	<div class='viewer' macro='view text wikified'></div>
</div>
<div class='tagInfo'>
	<div class='tidTags' macro='tags'></div>
	<div class='tagging' macro='tagging'></div>
</div>
<!--}}}-->
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>>
<html><hr><html>
@tiddlywiki
!!!This is the modified version of the ~TiddlySpace "Cement"-theme.
;Changes:
:All elements are wrapped in a systemTheme Tiddler
:Colors in the ~StyleSheet are pointing to the ColorPalette
:Improved toolbar buttons
:Dark sidebartabs
''Updates''
;11-11-2010
:Added "replyLink" to the ~ViewTemplate

!!!Installation
;Automatic:
Add the @basalt space to your ~TiddlySpace with the include-mechanism
----
;By hand:
*Copy the BasaltTheme tiddler to your ~TiddlySpace
*Create a tiddler ''zzConfig'' with inside: {{{config.options.txtTheme = "BasaltTheme";}}}
*Add the tag {{{systemConfig}}} to the ''zzConfig'' tiddler
*Create the tiddler ''~SecMenu'' (to contain your secondary menu items)
*Copy the following colors to your ''~ColorPalette''-tiddler:
/*{{{*/
Background: #fff
Foreground: #000
PrimaryPale: #929292
PrimaryLight: #5B5B5B
PrimaryMid: #369
PrimaryDark: #292929
SecondaryPale: #f9f9f9
SecondaryLight: #e2e2e2
SecondaryMid: #af0000
SecondaryDark: #af0000
TertiaryPale: #F3F3F3
TertiaryLight: #B5B5B5
TertiaryMid: #ADADAD
TertiaryDark: #666
Error: #f88
MidGrey: #383838
LightGrey: #D8D8D8
HoverGrey: #737373
/*}}}*/
Enjoy!
in reply to @dickon:
<<<
I need to check what this 'reply to' button does. Where is the reply posted?

D.
<<<
Hi dickon....your reply is visible in my activity stream (I have a "following on you") but you don't "follow" me...so you wont receive this reply....
Bauwe
/***
|''Name''|HowtoosTheme|
|''Source''|http://bauwebijl.tiddlyspace.com/#HowtoosTheme|
|''Version:''|0.2custom|
|''Author:''|Bauwe Bijl|
|''Date:''|November 7th, 2010|
|''License:''|[[BSD License|http://bauwebijl.tiddlyspace.com/#LegalStatements]]|
|''Comments:''|Please make comments at http://groups.google.nl/group/TiddlyWiki|
|''~CoreVersion:''|2.6.0|
|''Type''|CSS|
|''Description''|a ''~TiddlySpace'' theme: http://bauwebijl.tiddlyspace.com/#HowtoosThemeInfo|
|''PageTemplate:''|##PageTemplate|
|''ViewTemplate:''|##ViewTemplate|
|''EditTemplate:''|##EditTemplate|
|''StyleSheet:''|##StyleSheet|
***/
!PageTemplate
<!--{{{-->
<div id='secondaryMenu' refresh='content' tiddler='SecMenu'></div>
<div class='header'>
	<div id='sidebarSearch'>
		<span macro='search search'></span>
	</div>
	<div class='headerForeground'>
		<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
		<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
	</div>
	<div class='clearFloat'></div>
</div>
<div id='menuBar'>
	<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
	<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
</div>
<div id='displayArea'>
	<div id='messageArea'></div>
	<div id='tiddlerDisplay'></div>
	<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='footer' refresh='content' tiddler='SiteFooter'></div>
<!--}}}-->
!ViewTemplate
<!--{{{-->
<div class='toolbar' 
	macro='toolbar [[ToolbarCommands::ViewToolbar]] icons:yes height:16 width:16 more:popup'>
</div>
<div class='title' macro='view title text'></div>
<div class='heading'>
	<span class='spaceSiteIcon' 
		macro='tiddlerOrigin label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
	</span>
	<span class="titleBar">		
		<div class="subtitle" macro='viewRevisions page:5'>
			last modified on
			<span macro="view modified date"></span>
		</div>
		<div macro="view title replyLink"></div>
	</span>
	<span class='followPlaceHolder' macro='followTiddlers'></span>
	<span class='modifierIcon'
		macro='view modifier SiteIcon label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
	</span>
	<div class='tagClear'></div>
</div>
<div class='content'>
	<div class='viewer' macro='view text wikified'></div>
</div>
<div class='tagInfo'>
	<div class='tidTags' macro='tags'></div>
	<div class='tagging' macro='tagging'></div>
</div>
<!--}}}-->
!EditTemplate
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]] icons:yes'></div>
<div class='editor title' macro='edit title'></div>
<div class='heading editorHeading'>
		<div class='tagClear'></div>
</div>
<div class='annotationsBox' macro='annotations'>
<div class='editSpaceSiteIcon' macro='tiddlerOrigin height:16 width:16 label:no'></div>
	<div class="privacyEdit" macro='setPrivacy label: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>
<!--}}}-->
!StyleSheet
/*{{{*/
[[StyleSheet]]
.siteTitle, .siteSubtitle, .siteTitle .tiddlyLink, .siteTitle .tiddlyLinkNonExisting, .siteSubtitle .tiddlyLink, .siteSubtitle .tiddlyLinkNonExisting { color:[[ColorPalette::LightGrey]];}
body, .header, .headerForeground { background-color:[[ColorPalette::MidGrey]];}
#secondaryMenu { height: 22px; background-color:[[ColorPalette::PrimaryLight]]; padding-left:72px; padding-top:7px; }
#secondaryMenu a, #secondaryMenu .tiddlyLink, #secondaryMenu .button { background-color:[[ColorPalette::PrimaryLight]]; color:[[ColorPalette::TertiaryLight]]; font-size:100%; padding:7px 5px; position: relative; border-right-width:1px; margin-right:1px; border-right-color:[[ColorPalette::MidGrey]]; border-right-style:solid; }
#secondaryMenu a:hover, #secondaryMenu .tiddlyLink:hover, #secondaryMenu .button:hover, #secondaryMenu .button:active, #secondaryMenu .highlight { color:[[ColorPalette::TertiaryLight]]; text-decoration:none; background-color:[[ColorPalette::HoverGrey]]; }
#menuBar { height: 17px; background-color: [[ColorPalette::PrimaryDark]]; border-bottom-style:solid; border-bottom-width: 5px; border-color: [[ColorPalette::PrimaryPale]]; }
#sidebarOptions a:active { background:[[ColorPalette::TertiaryPale]]; }
#menuBar a, #menuBar .tiddlyLink, #menuBar .button, #sidebarOptions a.button { color:[[ColorPalette::TertiaryMid]]; font-size:100%; padding: 8px 8px; position: relative; margin: 0px 1px 0px 0px; border-width: 0px 1px 0px 0px; border-right-color:[[ColorPalette::PrimaryPale]]; border-right-style:solid; }
#menuBar a:hover, #menuBar .tiddlyLink:hover, #menuBar .button:hover, #menuBar .button:active, #menuBar .highlight, #sidebarOptions a.button:hover{ color:[[ColorPalette::PrimaryLight]]; text-decoration:none; background-color:[[ColorPalette::TertiaryPale]]; }
#sidebarOptions { height:29px; margin-top:-4px; }
#sidebarOptions a.button { font-size:80%; top:-4px; height:17px; border-bottom-width:0; border-top-width:0; border-left-width:0; margin-left: 0; }
.tiddler .title { background-color: [[ColorPalette::TertiaryLight]]; padding:7px 7px 7px 7px; margin-top:none; border-width:1px 0px 1px 0px; border-top-color: [[ColorPalette::TertiaryPale]]; border-top-style:solid; border-bottom-color: [[ColorPalette::Foreground]]; border-bottom-style:solid; }
.tiddler { position: relative; -moz-box-shadow: 2px 2px 8px black;	-webkit-box-shadow: 2px 2px 8px black;	filter: progid: DXImageTransform.Microsoft.Shadow(color='#000000', Direction=135, Strength=3); box-shadow: 2px 2px 8px black; border-color:[[ColorPalette::Foreground]]; border-width:1px; border-style:solid; padding: 0px 0px 0px 0px; margin-bottom: 20px; }
.tiddler .viewer { margin: 0 72px 0 72px; line-height: normal; padding-bottom:16px; }
.tiddler, #displayArea { background-color:[[ColorPalette::TertiaryPale]]; }
#tiddlerDisplay {margin-top:0; }
#displayArea, #sidebarTabs {padding: 20px 0px 20px 0px; }
#footer { background-color: [[ColorPalette::MidGrey]]; color: [[ColorPalette::PrimaryPale]]; height:80px; text-align: center; border-top-color:[[ColorPalette::PrimaryPale]]; border-top-style:solid; border-top-width:3px; }
div.toolbar { height:30px; padding-top:10px; top:-5px; right:-6px; visibility:visible; }
.tiddler .toolbar .button { padding:6px 6px 2px 6px; margin:1px 6px 0 0; -moz-border-radius:24px 24px 24px 24px / 24px 24px 24px 24px; background:-moz-linear-gradient(center top ,[[ColorPalette::TertiaryPale]], [[ColorPalette::TertiaryMid]]) repeat scroll 0 0 transparent; border:1px solid [[ColorPalette::MidGrey]] !important; -webkit-border-radius:14px; background: -webkit-gradient(linear, center bottom, center top, color-stop(0, [[ColorPalette::TertiaryMid]]), color-stop(1, [[ColorPalette::TertiaryPale]])); }
.tiddler .toolbar .button:hover, .tiddler .toolbar .button:active { padding:6px 6px 2px 6px; margin:1px 6px 0 0; -moz-border-radius:24px 24px 24px 24px / 24px 24px 24px 24px; background:-moz-linear-gradient(center top ,[[ColorPalette::TertiaryPale]], [[ColorPalette::TertiaryMid]]) repeat scroll 0 0 transparent; -webkit-border-radius:14px; background: -webkit-gradient(linear, center bottom, center top, color-stop(0, [[ColorPalette::TertiaryMid]]), color-stop(1, [[ColorPalette::TertiaryPale]])); border:1px solid [[ColorPalette::Foreground]] !important; }
.tiddler .toolbar .button:active { -moz-box-shadow:0px 2px 8px 0.1px black inset; -webkit-box-shadow: 0px 2px 8px 0.1px black inset; filter: progid:  DXImageTransform.Microsoft.Shadow(color='#000000', Direction=90, Strength=1); box-shadow: inset 0px 2px 8px 1px black; }
.toolbar { padding: 7px 7px 0px 0px; }
.toolbar svg .glyph, .toolbar a:hover .glyph, .toolbar a:active .glyph { fill: #111; }
.toolbar svg { height: 15px; width: 15px; }
.heading { margin-right: 7px;  margin-left: 7px; }
#sidebarTabs .tabsetWrapper .tabset .tab { color:[[ColorPalette::TertiaryMid]]; background-color: [[ColorPalette::MidGrey]];}
#sidebarTabs .tabsetWrapper .tabset .tabSelected, #sidebarTabs .tabsetWrapper .tabset .tabSelected:hover { color:[[ColorPalette::PrimaryMid]]; background-color:[[ColorPalette::PrimaryDark]]; border-color: [[ColorPalette::PrimaryDark]];}
#sidebarTabs .tabsetWrapper .tabset a:hover { color: [[ColorPalette::PrimaryLight]]; background-color:[[ColorPalette::TertiaryPale]];}
#sidebarTabs .tabsetWrapper .tabContents { border-color: [[ColorPalette::PrimaryDark]]; background-color:[[ColorPalette::PrimaryDark]];}
#sidebarTabs .tabContents li a:hover { color: [[ColorPalette::SecondaryDark]]; background-color:[[ColorPalette::PrimaryDark]]; }
#sidebarTabs .tabContents li a { background-color:[[ColorPalette::PrimaryDark]]; margin-bottom:0;}
#sidebarTabs .timeline li.listTitle, #sidebarTabs .tabContents li {color: [[ColorPalette::TertiaryMid]]; background-color:[[ColorPalette::PrimaryDark]];}
#sidebarTabs .tabContents li, .tabContents .button, 
#sidebarTabs .tabsetWrapper .tabContents {color: [[ColorPalette::TertiaryMid]]; background-color:[[ColorPalette::PrimaryDark]];}
.tabContents .button:hover {color:[[ColorPalette::SecondaryDark]]; }
.tiddlyLinkNonExisting:hover, .tiddlyLinkExisting:hover { color:[[ColorPalette::SecondaryDark]]; background: none; }
.tagInfo {margin-left:0;}
/*}}}*/
I had finally some time to sort out how to make a "proper" theme (wrapped in a theme tiddler).
So I took a template and started reassembling my cement-theme (the ~TiddlySpace version).
The cement-theme had a temporary fix for the sidebartabs and I planned to re-style this to a more suitable design.
Together with some tweaks on the toolbar-buttons it was a good candidate for an "official" themeing action.

The fields in the theme for the "source" and the "legal-statements" are pointing to this site, not sure if this was needed since inclusion of the theme might provide that, but it felt "official" and it was good to investigate.

In the new cement theme I also tried to make the css strings as long strings (instead of a long list top to bottom), I see this on more themes and curious if this was influencing the performance I gave this a try.
I must say that doing this makes the stylesheet less readable.

Another thing I had hoped for is to add a colorpalette to the theme so that it is shipped with it. (just like the page, view, edit,_template and the stylesheet).....I still wonder if this might be posible....?

All the colors in the stylesheet are now changed from #c0l0r to {{{[[ColorPalette::etc]]}}} to create a second spin-of of the cement theme that dances with the randomcolor plugin.

Both theme-spaces can viewed here:
;New Cement-theme is now called [[Basalt]]:
:@basalt
;The "dancing with colors-theme" is now called [[Drop]]:
:@drop

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
<<tiddler [[TwitterTabs##showUserResults]] with: TiddlySpace>>
<!DOCTYPE html>
<html manifest="/bags/common/tiddlers/takenote_manifest.appcache">
	<head>
		<title>takenote</title>
		<link rel="stylesheet" href="/bags/common/tiddlers/notabene.css" />
		<link rel="apple-touch-icon" href="/bags/common/tiddlers/touchicon_takenote.png"/>
		<link rel="apple-touch-icon-precomposed" href="/bags/common/tiddlers/touchicon_takenote.png"/>
		<meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=0,initial-scale=1.0">
		<meta name="apple-mobile-web-app-capable" content="yes" />
	</head>
	<body>
		<ul id="backstage">
			<!-- no not add a newline between li elements or you will get a margin with inline blocks -->
			<li><a href="/dashboard">dashboard</a></li><li><a href="/takenote">takenote</a></li>
			<li><a class='connectionStatus'></a></li>
		</ul>
		<div class="takenotecontainer">
			<div class='messageArea'></div>
			<div id="note">
				<div class="toolbar">
					<a id="cancelnote" title="cancel this note">cancel</a>
					<a id="deletenote" title="delete this note">delete</a>
					<a id="newnote" title="complete this note">complete</a>
				</div>
				<div class="note_title_container">
					<textarea class="note_title" placeholder="Note Title"></textarea>
				</div>
				<div id="notebody">
					<span class="notedate"></span> 
					<textarea class="note_text" placeholder="Write here..."></textarea>
				</div>
				<div id="tips">
				<div>Tips for cleverer notes:
				''<span class="boldTip">bold</span>'' //<span class="italicTip">italic</span>// _<span class="underlineTip">underline</span>_ #tag</div>
				<div>[[<a href="http://tiddlyspace.com">Link Name</a>|http://tiddlyspace.com]]
				[[<a href="/Note title">Note title</a>]] <span class="imageTip">[img[/SiteIcon<img src="/SiteIcon" />]]</span></div>
				</div>
				<div id="notemeta"></div>
				<div style="display:none">
				  <a class="syncButton"></a>
				</div>
			</div>
		</div>
		<noscript>
			Takenote requires javascript to work correctly. Sorry!
		</noscript>
		<script src="/bags/common/tiddlers/backstage.js" type="text/javascript" charset="utf-8"></script>
		<script src="/bags/common/tiddlers/bookmark_bubble.js" type="text/javascript" charset="utf-8"></script>
		<script src="/bags/common/tiddlers/jquery.js" type="text/javascript" charset="utf-8"></script>
		<script src="/bags/tiddlyspace/tiddlers/chrjs" type="text/javascript" charset="utf-8"></script>
		<script src="/bags/common/tiddlers/chrjs-store.js" type="text/javascript" charset="utf-8"></script>
		<script src="/bags/common/tiddlers/jquery-json.js" type="text/javascript" charset="utf-8"></script>
		<script src="/bags/common/tiddlers/notabene.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			var takenote;
			takenote = notes($(".takenotecontainer")[0], {
				host: "/"
			});
		</script>
	</body>
</html>
This tiddler enables me to get tiddlers tagged ''news'' published on the @news space ...
(more info here: About@news )
/***
|''Name''|RandomSpacePlugin|
|''Description''|To aid space discovery in TiddlySpace|
|''Requires''|TiddlySpaceConfig ImageMacroPlugin|
|''Version''|0.7.0|
!StyleSheet
.randomSpace {
	width: 20em;
	text-align: center;
}
.randomSpace .siteIcon, .randomSpace .label, .randomSpace .description  {
	text-align: center;
	display: block;
}
.randomSpace .description {
	border: solid 1px black;
}

.randomSpace .anotherLink {
}

***/
//{{{
(function($) {
var tiddler = {title: "RandomSpacePlugin"};
var name = "StyleSheetRandomSpace";
config.shadowTiddlers[name] = store.getTiddlerText(tiddler.title +
     "##StyleSheet");
store.addNotification(name, refreshStyles);
	
var tweb = config.extensions.tiddlyweb;
var tiddlyspace = config.extensions.tiddlyspace;
var imageMacro = config.macros.image;

var macro = config.macros.RandomSpace = {
	_cache: [],
	_cacheSiteInfo: {},
	handler: function(place, macroName, params) { 
		var options = {
			limit: params[0] || 1
		};
		macro.renderRandomSpace(place, options);
	},

	chooseSpaceAndRender: function(place, options) {
		$(place).empty();
		var tiddlers = macro._cache;
		var i = macro.randomIndex(tiddlers);
		var tiddler = tiddlers[i];
		var bag = tiddler.bag;
		macro.renderSiteInfo(place, bag, options);
	},
	renderRandomSpace: function(place, options) {
		var container = $("<div />").addClass("randomSpace").text("please wait... ").appendTo(place)[0];
		var limit = options.limit;
		if(macro._cache.length > 0) {
			macro.chooseSpaceAndRender(container, options);
		} else {
			ajaxReq({
				dataType: "json",
				beforeSend: function(xhr) {
					xhr.setRequestHeader("X-ControlView", "false");
				},
				url:"/search?q=title:SiteInfo",
				success: function(tiddlers) {
					var cache = [];
					for(var i=0; i < tiddlers.length; i++) {
						var tiddler = tiddlers[i];
						if(tiddler.bag.indexOf("_private") == -1) {
							cache.push(tiddler);
						}
					}
					macro._cache = cache;
					macro.chooseSpaceAndRender(container, options);
				},
				error: function() {
					$(container).empty();
				}
			});
		}
	},
	renderSiteInfo: function(place, bag, options) {
		var container = $("<div class='space' />").appendTo(place);
		var space = bag.replace("_public", "");
		tweb.getStatus(function(status) {
			var host = status.server_host;
			var avatar =  tiddlyspace.getAvatar(host, { name: space });
			var image = $("<div class='siteIcon' />").appendTo(container);
			imageMacro.renderImage(image, avatar, { width:48, height: 48 });
			var url = tiddlyspace.getHost(host, space);
			$("<a />").addClass("label").attr("href", url).text(space).appendTo(container);
			var info = $('<div class="description" />').text("loading info... ").appendTo(container);
			if(macro._cacheSiteInfo[bag]) {
				var tiddler = macro._cacheSiteInfo[bag];
				info.empty();
				wikify(tiddler.text, info[0]);
			} else {
				ajaxReq({
					url: "/bags/%0/tiddlers/SiteInfo".format([bag]),
					dataType: "json",
					beforeSend: function(xhr) {
						xhr.setRequestHeader("X-ControlView", "false");
					},
					success: function(tiddler) {
						info.empty();
						macro._cacheSiteInfo[bag] = tiddler;
						wikify(tiddler.text, info[0]);
					}
				});
			}
			$("<a />").addClass("anotherLink").attr("href", "javascript:;").text("click for another").click(function(ev) {
					$(place).empty();
					macro.renderRandomSpace(place, options);
				}).appendTo(container);
		});
	},
	randomIndex: function(list) {
		return Math.round((list.length - 1) * Math.random());
	}
}
})(jQuery);
//}}}
/***
|''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:',
	step1URLText: 'URL:',
	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('%0 <input type="text" name="uri" />'.
					format(me.step1URLText));
			}
		};
		$(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);
//}}}
When reporting an issue or posting some other question regarding TiddlySpace I usually guess who to send the tiddler to.
Most times I know who to contact (usually creator names of tiddlers/plugins etc.) sometimes I have to investigate a little.
And sometimes I'm not sure...in such case I tag a few people ... @jon and @cdent usually ... ( sorry for spamming :) ...so they can pass it on if needed.

Sure I could open irc and ask "who to contact"... but perhaps a common @osmopool (or @spacedesk ) contact tag would be handy (especially now all is growing bigger).
So the person who-fits-the-shoe can pick up the issue...
(I used to work like that on a helpdesk...with a single email-account)
Just an idea...
News lists ~TiddlySapce blog posts at: [[Blog Posts]]@news

<<tsScan @news tag:list template:"NewsMap##Template" sort:created>>
/%
!Template
$1
<<tsScan $1 tag:@news searchField:"modifier" template:"SearchTemplate" query:"select=modified:>28d">>

!Info
!! Use News@News at your homespace.
!! Do not use NewsMap@News as a link in your home space. It doesn't work!
%/
<<<
Less is better. Remember the the constructor is not the same as the user.

To take an analogy a computer is complicated and although it is useful to have it open if you are installing things like memory or interested in how it works it looks nicer when the case is on.
<<<
...or perhaps...looks unfinished when the case is open....

Besides that.
I happen to observe some elder people and their web-behavior/computer usage.
*the screen is the computer
*there is no difference between local apps and stuff viewed with a browser (all is setup fullscreen because of readability)
*there is some idea about the difference between the outlook app and IE (but both show readable news!)
*I can get away with installing linux instead of good old xp as long as I install the teletubby lanscape with it ("yep that's my computer")
*Introducing firefox as an alternative browser to IE took more time to adapt then I expected

I took some tight corners here I know, but it helps to think about issues like simplifying a tiddlywiki.

About "the screen is the computer":
Everything on the screen is information and because it's visible it's taken as "relevant to read". The sidebar is in that aspect confusing in some cases. (different lists to the same content/tiddler is similar hard as opening an application with a different method like the right mouse button ((more way's to the same things seems unfinished/unlogical))....still thinking elder people 65+ here) 

About "introducing firefox as an alternative browser":
It seemed confusing that some functions where not on the right (old) place and although it was there and could be found it took longer to adapt the new functions (making people use the old IE browser much easier because off a "lets have a quick look to that site" to save some time and fuzz....using the new browser was equal to learning new things (even when reading the same good old newspaper-site)

Considering these aspects one can imagine confusion with the sidebartabs (but also the toolbar, backstage or even multiple tiddlers instead of default singlepages etc.) for elderly users and viewers.
Some simplicity and some conventions (that are "always" the same) might help.

Putting this all together in an unordered way:
*backstage (ability to hide for viewers like in the @website theme)
*using "some" tab content in a sensible way (like @jon did with the @tammy theme or like I blended some in the @howtoos site topmenu (tags and/or tagcloud)
*re-construct the sidebarcontent to create a "sitemap"
(like on http://howtoos.tiddlyspace.com/#[[Site%20map]] with some more relevant features)
*ability for reader/viewer to adjust font size (normal, big, huge)
*introduction of a fckeditor style editor for longer period (always the same for lets say 5 years...long time yes) so an elder person could stick with hard learned editor ability's)
*clean looks like hemoglobin-theme (lifts out the content) and the usage of less colors
*images like icons are harder to understand compared to reading the written functions (the connection between an image and the function takes longer to adapt)....thinking about nice svg buttons with a readable function on it here
*ergonomics (make all navigation mouse actions like links and buttons of the type "big")

Other interesting approach:
http://tiddlywiki.bidix.info/ check the 
Reader Mode
Author Mode
Admin Mode
in the sidebar
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="400px" height="400px" viewBox="0 0 30 30" version="1.1"
  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <desc>Example link01 - a link on an ellipse
  </desc>
  <a xlink:href="http://bauwebijl.tiddlyspace.com/bags/bauwebijl_public/tiddlers.atom?select=tag:blog">
    <path fill="#383838" id="rect2825" d="m0,0l0,29l29,0l0,-29l-29,0zm2.4,2.55c13.2548,0 24,10.7452 24,24c0,0.0196 0.0001,0.0304 0,0.05l-4,0c-0.0015,-11.0446 -8.9554,-20 -20,-20l0,-4.05zm0,7.225c9.2784,0 16.8,7.5216 16.8,16.8l0,0.025l-4,0c0,-7.0692 -5.7308,-12.8 -12.8,-12.8l0,-4.025zm0,7.225c5.2838,0 9.5744,4.26629 9.6,9.55l-4,0.025c-0.0244,-3.0735 -2.5233,-5.55 -5.6,-5.55l0,-4.025l0,0z"/>
  </a>
</svg>
Chris
I've joined the .org
What a mess....
But found something via "random page" to migrate :)

But Error saving @tiddlywiki

----
Meanwhile I have contacted Ben
He noticed the same (and created a ticket:
https://github.com/TiddlySpace/tiddlyspace/issues/605 )
----
Ben discoverd there was a "New Tiddler" (empty) saved by Mario.....Once I edited that tiddler it was saved...and I was able to continue
----
Later the error occurred again:
As a shortcut I created a tiddler "test"....which saved correctly.....to re-edit it again to get something properly saved
----
<!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' >
	<script type="text/javascript" src="/bags/common/tiddlers/backstage.js"></script>
</head>
<body>

<div id="container">
	<div class="main section">
		<a class="app" href="/apps">back to apps</a>
		<div class="left">
		<div id="siteiconArea">
		<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" />
				<input type="submit" value="upload" />
			</form>
		</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 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.space'></script>
<script type='text/javascript' src='/bags/common/tiddlers/chrjs.users'></script>
<script type='text/javascript' src='/bags/common/tiddlers/chrjs.identities'></script>
<script type='text/javascript' src="/bags/common/tiddlers/jquery-ui.custom.js"></script>
<script type='text/javascript' src='/bags/common/tiddlers/jquery-form.js'></script>
<script type='text/javascript' src="/bags/common/tiddlers/siteiconupload.js"></script>
<script type='text/javascript' src='/bags/common/tiddlers/ts.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 SiteIcon");
		$("#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>
Yesterday I checked the Flickr image service to get some images on the web (to use in a ~TiddlySpace website).
I'm moving a website from my "own" server to ~TiddlySpace and believed that a separate image service would make my space more suitable for a local copy.
So I checked ''Flickr''.....
First impression:
It seems very weird to me that when I sign-up I have to give a date of birth (signing in as google user). So I restarted with my "dummy" mail account (born 01-01-1900 of course :) and finished the sign-up.
After a small lookaround I uploaded my website images and tested some pages with it.
It seems that Flickr changes all images in jpg's and destroyed some of my transparent effects in png's.
Also the original image size is changed (it can be found with some more clicks) which is not convenient since the images are already optimized with the proper size.

Because the whole images load for my website is roughly 1.3 mb I decided to upload all in ~TiddlySpace. (png's allowed).
For the rest of the 30mb files (some zipfiles to download) I'm using dropbox as fileservice. I've monitored the download ratio of my files before (small usage) and I don't think users care the slower speed of dropbox.

in reply to @dickon:
<<<
As a beginner it strikes me as odd, and faintly irritating, that the tiddler TiddlySpace "does not exist yet" despite it being preformed in the tiddlywiki...  I have received feedback from other first time users that this gives them the impression of unfinished-ness...

Is there a case for this specific Tiddler to be pre-populated as a shadow, that a user could subsequently rewrite to taste...? 
>"This a preformed tiddler, the basic building block of a tiddlywiki, which is what you are reading right now.  Tiddlywiki and tiddlyspace offer a new way of organising and connecting ideas and communicating.  You can learn more about this open source resource from....
For the beginner it could contain a very basic introduction to what this is, and links to external sources of support....

Just a thought, and there are probably many reasons why this wouldn't work...

Obviously, the point of tiddlywiki/space is that the user makes of it what s/he will, but...
<<<
Hi Dickon.....
Some thoughts:
On my older TiddlyWiki's I left the the non-existing links as they are (as a part of the documents "caracter").
Of course any wiki link will show as non-existing when, for example, some text is copied in with some "unlucky" formulated acronyms.

I "solved" (adapted) this issue (to make the text more clean) by racing over the source and adding the {{{~}}} to some links. (sometimes miss one and re-edit again)

For ambit I can imagine you create a tiddlyspace tiddler with the appropriate info for your audience about tiddlyspace.

But the document does how it's created: create links from ~CamelCase (without exceptions).

When I write about ''~TiddlySpace'' (to explain something) I automatically add {{{~}}} even when the tiddler ''~TiddlySpace'' exists to avoid that every line has a link (to the same tiddler). 

~WikiLinks can be disabled with a plugin (I never looked at it.....I want ''~TiddlyWiki'' 


Via the Backstage/YourSpaces tab  a ~TiddlySpace viewer is able to surf to the @guest space. 

>You are currently a member of the following spaces.
> @guest


Going to the @guest space the viewer will find out that he/she is not really a member. (the space seems more a side effect of name-spacing)

But the guest-space could be:  
*a great demo space
*a subscribe to ~TiddlySpace module
or
*a guide to become a member
*containing useful info for guests (blog, glossary)
etc.

Perhaps the @guest space should not be this accessible or, now it's there, be more presented as a "this could be yours"?(and be more accessible instead.....like a demo)

----
I admit it's hard to replicate but it can be done
On @howtoos I have a menu item "tags" http://howtoos.nl/#Tags (which still has to be replaced with a tagcloud)....but on "regular" space via tags it does work too. tags>excludelists>backstage (viewers could go there and check backstage.....and read about the guest space as in my previous writing.

However on your space @jon the exludelists tag does not show that many items (? I dont know why your space is different).....still it can be accessed:
http://jon.tiddlyspace.com/#Backstage

But on @blog (a more regular space) the same >tag>exludelists(72 items here)>Backstage......

Check the screenshot (bottom):
<<image ScreenshotJonGuest.png>>

Copyright (c) 2010, B Bijl
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
    * Neither the name of the <ORGANIZATION> nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
What does newtweet do?
Someone able to reply this way?
...or is newtweet a random password creator :) ?....do I need extra plugins to make this work?
/***
|''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]);
			}
		}
	},
	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]);
	};
}

})(jQuery);
//}}}
/***
|''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);
//}}}
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
<svg width="320" height="240" xmlns="http://www.w3.org/2000/svg">
 <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
 <g>
  <title>Layer 1</title>
  <rect fill="#7f7f7f" stroke="#000000" stroke-width="18" stroke-dasharray="5,2,2,2,2,2" stroke-linejoin="round" stroke-linecap="round" x="52" y="34" width="191" height="174" id="svg_47"/>
  <circle fill="none" stroke="#000000" stroke-width="5" cx="100" cy="140" r="21.40234" id="svg_1"/>
  <circle fill="none" stroke="#000000" stroke-width="5" cx="187" cy="139" r="21.40234" id="svg_3"/>
  <line fill="none" stroke="#000000" stroke-width="5" stroke-linejoin="round" stroke-linecap="round" x1="99" y1="140" x2="135" y2="140" id="svg_34"/>
  <line fill="none" stroke="#000000" stroke-width="5" stroke-linejoin="round" stroke-linecap="round" x1="138.0385" y1="142.83459" x2="168.11261" y2="108.39059" id="svg_35" transform="rotate(11.0409, 153.077, 125.613)"/>
  <line fill="none" stroke="#000000" stroke-width="5" stroke-linejoin="round" stroke-linecap="round" x1="168.63474" y1="105.50309" x2="125.46621" y2="106.50309" id="svg_36" transform="rotate(-3.97598, 147.053, 106.002)"/>
  <line fill="none" stroke="#000000" stroke-width="5" stroke-linejoin="round" stroke-linecap="round" x1="168.78539" y1="84.00568" x2="180.78539" y2="140.78757" id="svg_39" transform="rotate(-13.5704, 174.785, 112.397)"/>
  <line fill="none" stroke="#000000" stroke-width="5" stroke-linejoin="round" stroke-linecap="round" x1="115" y1="100" x2="131" y2="100" id="svg_40"/>
  <line fill="none" stroke="#000000" stroke-width="5" stroke-linejoin="round" stroke-linecap="round" x1="135" y1="150" x2="145" y2="150" id="svg_41"/>
  <line fill="none" stroke="#000000" stroke-width="5" stroke-linejoin="round" stroke-linecap="round" x1="155" y1="84" x2="165" y2="84" id="svg_43"/>
  <line fill="none" stroke="#000000" stroke-width="5" stroke-linejoin="round" stroke-linecap="round" x1="124" y1="104" x2="133" y2="136" id="svg_44" transform="rotate(-2.2026, 128.5, 120)"/>
  <line fill="none" stroke="#000000" stroke-width="5" stroke-linejoin="round" stroke-linecap="round" x1="124" y1="109" x2="100" y2="139" id="svg_45"/>
 </g>
</svg>
I'm interested in the overall usage of TiddlySpace.
Some info about:
*there are X spaces on this server
*there are X homespaces on this server 
*graphs with weekly, monthly growth of Tiddlyspace

Is this info already available somewhere?

//Perhaps nice to put in the backstage middle menu (where the version-number exists?//


The @spaces space is not working
>The below is a list of all spaces with a SiteInfo tiddler currently in TiddlySpace:
>    * No-one. :(

I was wondering if the space lookup mechanism ( @inclusion ) could be used to make some overall statistics about tiddlyspace.
I get a good sense of what going on in tiddlyspace when I "lookup" the "system-plugin" space usage.
But with only a counter it should work like this:
*text "there are xxx spaces in tiddlyspace!"
*no input field
*no button
*only the a number
----
This number might be used to make a graph to visualize how tiddlyspace has grown (last day, week, month etc.)
----
I had a look at the lookup plugin and can change some stuff in it successfully (but not satisfying). I can imagine that the plugin itself can be really simple since it does not need a input field. I would like to have some directions/ideas to try and create this.
/*{{{*/
.tiddler .originButton div {
	display: inline-block;
}

.tiddler .spaceSiteIcon .siteIcon {
	_display: inline; /* IE doesn't like 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 .followPlaceHolder {
	display: block;
	position: absolute;
	top: 16px;
	right: 64px;
	_right: 138px; // add width of modifierIcon
}

.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,
.followPlaceHolder,
.tiddler .subtitle {
	cursor: pointer;
}

.editSpaceSiteIcon .originButton {
	cursor: auto;
}

.tiddler .subtitle:hover {
	font-weight: bold;
	background: none;
}

.originButton img,
.originButton svg {
	margin-left: 0px;
}

.modifierIcon {
	position: absolute;
	width: 74px;
	top: 0px;
	right: 0px;
	_right: 74px; /* in IE6 positioning works incorrectly so use -width instead */
	text-align: right;
}

.modifierIcon img,
.modifierIcon svg {
	margin-right: 8px;
}

.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 .spaceSiteIcon {
	float: left;
	margin-right: 0;
	margin-top: 0;
	position: relative;
	display: block;
}

.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;
}

.spaceSiteIcon .externalImage .image a:hover,
.modifierIcon .externalImage .image a:hover {
	background: none;
}

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;
	}

	.tiddler .modifierIcon img,
	.tiddler .modifierIcon svg,
	.tiddler .spaceSiteIcon .originButton img,
	.originButton svg {
		width: 32px;
		height: 32px;
		margin-left: 0px;
		margin-right: 0px;
	}

	.tiddler .followPlaceHolder {
		right: 48px;
	}

	.tiddler .followButton {
		width: 24px;
	}

	.tiddler .viewer {
		margin: 0px 0px 0px 36px;
		padding-top: 0;
	}

	br {
		line-height: 0.5em;
	}
}
/*}}}*/
ColorPalette
StyleSheet
SiteSubtitle
GettingStarted
SiteTitle
MainMenu
SiteIcon
DefaultTiddlers
ViewTemplate
PageTemplate
SideBarOptions
EditTemplate
SiteInfo
SideBarTabs
ToolbarCommands
Hi 
I just noticed that my ''sidebaroptions:__active__'' looks became colored with a grey gradient. (I somehow have missed this...or it's changed lately)
From the tiddlyspace stylesheet I would like to override the following:
/*{{{*/
.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;
}
/*}}}*/

To make this happen:
/*{{{*/
#sidebarOptions a:active {
background-color:[[ColorPalette::TertiaryPale]];
}
/*}}}*/
''But with no results!''
//I know it's a minor thing.....only when someone "wipes" (mousedrag) over the button, the gradient becomes visible//
For the @drop theme the text is a little less readable this way.
So I was wondering if this gradient really needs to be in the default theme for the sidebaroptions buttons?
Also a method to override the gradient with my own theme would be nice.
Any ideas/solutions?
----
Thanks for the reply Jon.
I will try your option (I tried already with a !important....which usually works)

But could you also tell me if this gradient is added lately in the default theme|?......or that I miss this?
And why it is there ...(I think the gradient has hardly any function....and just became more noticeable on the bigger buttons in my theme's)
----
''
this works:
/*{{{*/
#sidebarOptions a:active {
background: none;
}
/*}}}*/
But I think it's still reverse engineering (display noners).
Removing the {{{#sidebarOptions a:active}}}
from the stylesheettiddlyspace works also.....
''
----
''solved'' (on 4 of my themes)
;how:
:{{{#sidebarOptions a:active { background:[[ColorPalette::TertiaryPale]]; }
}}}
:placed in the stylesheets before the first entry mentioning ''sidebarOptions'' so it's executed first

Thanks
@pmario
<svg width="320" height="240" xmlns="http://www.w3.org/2000/svg">
 <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
 <defs>
  <linearGradient id="svg_11" x1="1" y1="0" x2="1" y2="1">
   <stop offset="0" stop-color="#56aaff"/>
   <stop offset="1" stop-color="#5f00bf"/>
  </linearGradient>
 </defs>
 <g>
  <title>Layer 1</title>
  <rect fill="#ffffff" stroke="#000000" stroke-width="0" x="-0.00131" y="0" width="320" height="240" id="svg_1"/>
  <rect fill="#bfbfbf" stroke-width="0" x="267.37629" y="121.65" width="50.71441" height="57" id="svg_18"/>
  <rect fill="url(#svg_11)" stroke-width="0" x="-0.00102" y="0.00181" width="320" height="50" id="svg_9"/>
  <rect fill="none" stroke="#000000" x="64.00027" y="57.91667" width="192" height="81" id="svg_15"/>
  <line fill="none" stroke="#000000" stroke-width="3" x1="265.36645" y1="64.2" x2="318.06688" y2="64.2" id="svg_19"/>
  <line fill="none" stroke="#000000" x1="265.96677" y1="70.2" x2="317.96665" y2="70.2" id="svg_20"/>
  <line fill="none" stroke="#000000" x1="265.16634" y1="75" x2="318.06687" y2="75" id="svg_21"/>
  <line fill="none" stroke="#000000" x1="266.66634" y1="81.5" x2="319.56687" y2="81.5" id="svg_23"/>
  <line fill="none" stroke="#000000" x1="265.66634" y1="84.5" x2="318.56687" y2="84.5" id="svg_24"/>
  <line fill="none" stroke="#000000" x1="266.16634" y1="87.5" x2="319.06687" y2="87.5" id="svg_25"/>
  <line fill="none" stroke="#000000" x1="265.16634" y1="90.5" x2="318.06687" y2="90.5" id="svg_26"/>
  <line fill="none" stroke="#000000" x1="265.66634" y1="78" x2="318.56687" y2="78" id="svg_27"/>
  <rect fill="#bfbfbf" stroke-width="0" x="3.00035" y="139.17381" width="50.71441" height="57" id="svg_28"/>
  <line fill="none" stroke="#000000" stroke-width="3" x1="1.50094" y1="82.05714" x2="54.20136" y2="82.05714" id="svg_29"/>
  <line fill="none" stroke="#000000" x1="0.4997" y1="88.05714" x2="52.49958" y2="88.05714" id="svg_30"/>
  <line fill="none" stroke="#000000" x1="0.50004" y1="92.85714" x2="53.40058" y2="92.85714" id="svg_31"/>
  <line fill="none" stroke="#000000" x1="0.50004" y1="99.35714" x2="53.40058" y2="99.35714" id="svg_32"/>
  <line fill="none" stroke="#000000" x1="0.50004" y1="102.35714" x2="53.40058" y2="102.35714" id="svg_33"/>
  <line fill="none" stroke="#000000" x1="0.50004" y1="105.35714" x2="53.40058" y2="105.35714" id="svg_34"/>
  <line fill="none" stroke="#000000" x1="0.50004" y1="108.35714" x2="53.40058" y2="108.35714" id="svg_35"/>
  <line fill="none" stroke="#000000" x1="0.50004" y1="95.85714" x2="53.40058" y2="95.85714" id="svg_36"/>
  <line fill="none" stroke="#000000" stroke-width="5" x1="74.28534" y1="72.09823" x2="245.71391" y2="72.09823" id="svg_38"/>
  <line fill="none" stroke="#000000" x1="74.28701" y1="89.95537" x2="245.71558" y2="89.95537" id="svg_39"/>
  <line fill="none" stroke="#000000" x1="74.28478" y1="107.81251" x2="245.71335" y2="107.81251" id="svg_40"/>
  <line fill="none" stroke="#000000" x1="74.28646" y1="125.66966" x2="245.71503" y2="125.66966" id="svg_41"/>
  <rect fill="none" stroke="#000000" x="64.00027" y="144.52382" width="192" height="81" id="svg_49"/>
  <line fill="none" stroke="#000000" stroke-width="5" x1="74.28534" y1="158.70537" x2="245.71391" y2="158.70537" id="svg_50"/>
  <line fill="none" stroke="#000000" x1="74.28701" y1="176.56251" x2="245.71558" y2="176.56251" id="svg_51"/>
  <line fill="none" stroke="#000000" x1="74.28478" y1="194.41966" x2="245.71335" y2="194.41966" id="svg_52"/>
  <line fill="none" stroke="#000000" x1="74.28646" y1="212.2768" x2="245.71503" y2="212.2768" id="svg_53"/>
  <rect fill="none" stroke="#ffffff" stroke-width="3" x="266.1671" y="53.5016" width="52.33333" height="185" id="svg_14"/>
  <rect fill="none" stroke="#ffffff" stroke-width="3" x="1.49818" y="75.49947" width="53" height="162.99999" id="svg_37"/>
 </g>
</svg>
You can change the title and subtitle of your space, this will be visible to people visiting your space as well as being what is shown the browser tabs.  The content these are stored in two tiddlers, clicking on the links below will open up these tiddlers which you can edit to make changes.
* [[SiteTitle]]
* [[SiteSubtitle]]
<html><hr><html>
in reply to @fnd:

Hi.....I have a reply button on this activity/tiddler. Does this work? 
Does reply now also work to people that don't  "follow" me (the word follow becomes very "stalky" :-) all of a sudden)

Just was writing a post about "tracking" on my space.
[[My following thoughts October 25 2010]]@bauwebijl
Bauwe Bijl's space
Type the text for 'psd'
<!DOCTYPE HTML>
<html>
<body style="display:none">
topics: <ul id="topics"></ul>
<button id='addtopic'>add topic</button>
stream:
<ul id="stream"></ul>
<script type='text/javascript' src='/bags/common/tiddlers/jquery.js'></script>
<script type='text/javascript' src='/bags/tiddlyspace/tiddlers/chrjs'></script>
<script src="/twikifier.js" type="text/javascript" charset="utf-8"></script>
<script type='text/javascript'>
	$.ajaxSetup({
		beforeSend: function(xhr) {
			xhr.setRequestHeader("X-ControlView", "false");
		}
	});
	function renderTopic(topic) {
		var item = $("<li />").appendTo("#topics");
		$("<button class='show' />").text(topic).appendTo(item);
		$("<button class='delete'>x</button>").appendTo(item);
		return item[0];
	}
	var host =  '/';
	var space = "jon";
	var active_topics = [];
	var current_topic, offset;
	function renderTopics() {
		var topics = active_topics;
		$("#topics").empty();
		for(var i = 0; i < topics.length; i++) {
			var topic = topics[i];
			if(topic) {
				renderTopic(topic);
			}
		}
		$("body").show();
	}
	// Array Remove - By John Resig (MIT Licensed)
	Array.prototype.remove = function(from, to) {
		var rest = this.slice((to || from) + 1 || this.length);
		this.length = from < 0 ? this.length + from : from;
		return this.push.apply(this, rest);
	};

	var topicList = new tiddlyweb.Tiddler("Topics", new tiddlyweb.Bag(space + "_public", host));
	topicList.get(function(tid) {
			active_topics = tid.text.split("\n");
			renderTopics(active_topics);
			$("#topics .show:first").trigger("click");
		},
		function() {
			active_topics = ["tiddlyspace"];
			renderTopics(active_topics)
		}
	);
	$("#addtopic").click(function(ev) {
		var text = prompt("What topic would you like to watch?");
		if(active_topics.indexOf(text) === -1) {
			active_topics.push(text);
		}
		var el = renderTopic(text);
		topicList.text = active_topics.join("\n");
		topicList.put(function() {
			$("button.show", el).trigger("click");
		}, function() {
			alert("eek!")
		});
	});
	$("#topics .delete").live("click",function(ev) {
		var topic = $(".show", this.parentNode).text();
		active_topics.remove(active_topics.indexOf(topic));
		renderTopics();
		topicList.text = active_topics.join("\n");
		topicList.put(function() {}, function() {
			alert("eek!")
		});
	});
	w = createWikifier(window, jQuery, { host: host, container: "recipes/" + space + "_public" });
	$("#topics .show").live("click",function(ev) {
		var tag = $(this).text();
		current_topic = tag;
		offset = 0;
		$("#stream").empty();
		var search = new tiddlyweb.Search('tag:"' + tag + '" &fat=y', host);
		search.get(function(tiddlers) {
			for(var i = 0; i < tiddlers.length; i++) {
				var tiddler = tiddlers[i];
				var item = $("<li />").appendTo("#stream")[0];
				$("<h2 />").text(tiddler.title + ": ").appendTo(item);
				
				$("<div class='text' />").text(tiddler.text).appendTo(item);
				$("<div class='author' />").text(tiddler.modifier).appendTo(item);
			}
		}, function() {
			$("<li>no topics :-(</li>").appendTo("#stream");
		});
	});
	$(window).scroll(function(){
		if($(window).scrollTop() == $(document).height() - $(window).height()) {
			offset += 10;
			// find a way to get all tiddlers created before the ones above
			console.log("loadMore();");
		}
	});
</script>
</body>
</html>
[[SiteInfo]]
----
Dutch
Male
1970
<!--{{{-->
<div macro='slideRevision'></div>
<div class='heading'>
	<span class="titleBar">
		<div class='title' macro='view title text'></div>
	</span>
	<span class='modifierIcon'
		macro='view modifier SiteIcon label:no height:48 width:48 preserveAspectRatio:yes'>
	</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>
<!--}}}-->
<svg width="29" height="29" xmlns="http://www.w3.org/2000/svg">
 <metadata id="metadata34">image/svg+xml</metadata>
 <defs>
  <title>Layer 1</title>
  <title>Canvas 1</title>
 </defs>
 <g>
  <title>Layer 1</title>
  <path d="m0,0l0,29l29,0l0,-29l-29,0zm2.4,2.55c13.2548,0 24,10.7452 24,24c0,0.0196 0.0001,0.0304 0,0.05l-4,0c-0.0015,-11.0446 -8.9554,-20 -20,-20l0,-4.05zm0,7.225c9.2784,0 16.8,7.5216 16.8,16.8l0,0.025l-4,0c0,-7.0692 -5.7308,-12.8 -12.8,-12.8l0,-4.025zm0,7.225c5.2838,0 9.5744,4.26629 9.6,9.55l-4,0.025c-0.0244,-3.0735 -2.5233,-5.55 -5.6,-5.55l0,-4.025l0,0z" id="rect2825" fill="#000000"/>
 </g>
</svg>
svgEditor.setConfig({
dimensions: [320, 240],
imgPath: "http://svg-edit.tiddlyspace.com/", langPath: "", extensions: "", iconsize: "s"
});
if(window.location.search.indexOf("?") === 0) {
  var query = window.location.search.substr(1).split("&");
  var q = {};
  for(var i = 0; i < query.length; i++) {
    var nameval = query[i].split("=");
    q[nameval[0]] = nameval[1];
  }
  jQuery.ajax({type: "get", beforeSend: function(xhr) {xhr.setRequestHeader("X-ControlView", "false");}, dataType:"json", url: q.resource, success: function(response) {
    svgEditor.loadFromString(response.text);
  }})
}
/***
|''Name:''|~PopupMacro|
|''Author:''|Saq Imtiaz (mod: Tobias Beer)|
|''Version:''|1.1 (2009-11-08)|
|''Description:''|Create popups with custom content|
|''Source:''|http://tbGTD.tiddlyspot.com/#PopupMacro|
|''Documentation:''|http://tw.lewcid.org/#PopupMacroDocs|
|''Requires:''|TW Version 2.0.8 or better|
@@mod for [[tbGTD|http://tbgtd.tiddlyspot.com]] - removed styles and code cleanup@@
!Code
***/
//{{{
config.macros.popup={
err1:'missing macro parameters',
err2:'missing label or content parameter',
arrow:document.all?" ▼":" ▾",
handler:function(place,macroName,params,wikifier,paramString,theTiddler){
var cls,id,lbl,src,click;
if(!params[0]||!params[1]){createTiddlyError(place,this.err1,this.err2);return false;}
lbl=params[0];
src=(params[1]).replace(/\$\)\)/g,">>");
id=params[2]?params[2]:'nestedpopup';
cls='popup popupmacro'+(params[3]?' ' +params[3]:'');
click=function(e){
	var btn,nest,p,tgt;
	e=e||window.event;
	tgt=resolveTarget(e);
	nest=!isNested(tgt);
	id=nest?id:'popup';
	if(nest&&Popup.stack.length>1)Popup.removeFrom(1);
	else if(!nest&&Popup.stack.length>0)Popup.removeFrom(0);
	p=createTiddlyElement(document.body,"ol",id,cls,null);
	Popup.stack.push({root:this,popup:p});
	wikify(src,p);
	Popup.show(p,true);e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation();return false;
}
btn=createTiddlyButton(place,lbl+this.arrow,lbl,click,null);
}
}
window.isNested=function(el){
	var c=document.getElementById("contentWrapper");
	while(el!=null){if(el==c)return true;el=el.parentNode;}return false;
}
setStylesheet('#nestedpopup {margin-left:1em;}','PopupMacroStyles');
//}}}
To get started created images using the svg-editor space simply include this space.

Note you may need to consult [[SideBarOptions]] to work out how to create a new image button.

Click the new image button in the top right of the screen to have a play.

/***
|''Name''|ActivityStreamPlugin|
|''Version''|0.5.4|
|''Description''|Provides a following macro|
|''Author''|Jon Robson|
|''Requires''|TiddlySpaceFollowingPlugin|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''Source''|https://github.com/jdlrobson/TiddlyWiki/raw/master/plugins/TiddlySpaceInstaller/ActivityStreamPlugin.js|
!Usage
{{{<<activity>>}}}
!!Supressing activity
You can supress notifications by  id:
"plugin", "shadow", "standard", "follow", "followYou", "siteInfo", "siteIcon", "ownSiteIcon", "notify", "reply"
e.g. {{{ <<activity supress:siteIcon>> }}} will hide siteIcon activity from you.

!!Supressing people
{{{<<activity ignore:person}}} will ignore all activity where person is the subject of the activity. eg. person followed other-person will not appear in the feed.
!!Controlling displayed dates.
{{{<<activity timestampFormat:"<0hh o' clock>" headingFormat:"0DD/0MM" >>}}} will display date headings as date/month eg.
3rd of January would be displayed as 03/01. This particular timestamp example gives you the hour of the activity.

!!Even more content
{{{<<activity limit:no>>}}} will show you all possible activity in the last X days where X is set at a macro level (advanced developers should see config.macros.activity.RECENTNESS).
!StyleSheet

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

.feedItem .siteIcon {
	display: inline;
}

.activityStream .error {
	background-color: red;
	color: white;
	font-weight: bold;
}

.activityStream .feedItem {
list-style: none;
}

.activityStream .notification {
	background-color: yellow;
	color: black;
}

.activityStream .activityGroupTitle {
	font-weight: bold;
	margin-top: 8px;
}
.activityStream .feedItem {
	margin-left: 8px;
}
!Code
***/
//{{{
(function($) {
var name = "StyleSheetActivityStream";
config.shadowTiddlers[name] = store.getTiddlerText(tiddler.title +
     "##StyleSheet");
store.addNotification(name, refreshStyles);

var followMacro = config.macros.followTiddlers;
var tweb = config.extensions.tiddlyweb;
var tiddlyspace = config.extensions.tiddlyspace;
var scanMacro = config.macros.tsScan;

var modifierSpaceLink = "<<view modifier spaceLink>>";
var spaceTiddlyLink = "<<view server.bag spaceLink server.title>>";
var bagSpaceLink = "<<view server.bag spaceLink>>";
var bagSiteIcon = "<<view server.bag SiteIcon width:24 height:24 label:no preserveAspectRatio:yes>>";
var modifierSiteIcon = "<<view modifier SiteIcon width:24 height:24 label:no preserveAspectRatio:yes>>";
var timestamp = "[<<view modified date '0hh:0mm'>>]";
var replyLink = "<<view server.title replyLink>>";
config.shadowTiddlers.ActivityStreamTemplates = [
	"!notify\n%3 {{notification{%0 %1 has modified %2 in %0 %1 and flagged it for your attention!}}} %8\n",
	"!reply\n%3 {{notification{%0 %1 replied with %2 to your %4 %5 post.}}} %8\n",
	"!userSiteIcon\n%3 %6 %7 has a new ~SiteIcon.\n",
	"!spaceSiteIcon\n%3 %6 %7 updated the SiteIcon for the %0 %1 space.\n",
	"!image\n%3 %6 %7 drew the image %2 in the %1 space.\n",
	"!plugin\n%3 %6 %7 modified a plugin called %2 in the %0 %1 space.\n",
	"!shadow\n%3 %6 %7 modified a shadow tiddler %2 in the %0 %1 space.\n",
	"!geo\n%3 %6 %7 modified a geo tiddler called %2 in the %0 %1 space <<view title maplink 'view on map'>>. %8\n",
	"!followYou\n%3 %0 %1 is now following you.\n",
	"!follow\n%3 %0 %1 is now following %4 %5 <<view server.title link follow>>\n",
	"!siteInfo\n%3 %6 %7 <<view server.bag spaceLink server.title label:described>> the %0 %1 space.\n",
	"!video\n%3 %6 %7 modified a video entitled %2 in the %0 %1 space. %8\n",
	"!standard\n%3 %6 %7 modified %2 in the %0 %1 space. %8\n"
	].join("").format(bagSiteIcon, bagSpaceLink, spaceTiddlyLink, timestamp,
		"<<view server.title SiteIcon width:24 height:24 label:no preserveAspectRatio:yes>>", "<<view server.title spaceLink>>",
		modifierSiteIcon, modifierSpaceLink, replyLink);
story.refreshTiddler("ActivityStreamTemplates", null, true);
config.annotations.ActivityStreamTemplates = "This is a special tiddler used by the ActivityStreamPlugin. It is used for templating notifications. Templates at the top have preference over templates at the bottom.";

var macro = config.macros.activity = {
	default_limit: 50,
	templates: [],
	init: function() {
		var templates = [];
		var regex = new RegExp(/^!(.*)\n/gm);
		var text = store.getTiddlerText("ActivityStreamTemplates");
		var match = regex.exec(text);
		while(match) {
			templates.push(match[1]);
			match = regex.exec(text);
		}
		macro.templates = templates;
	},
	// order matters - earlier templates override older ones
	RECENTNESS: 2, // in days
	TIMESTAMP_FORMAT: "<0hh:0mm>",
	info: {},
	locale: {
		pleaseWait: "please wait while we load your stream...",
		errorLoading: "The activity stream failed to load. Please make sure you have an internet connection and try again.",
		userHeading: "Below is the activity stream for spaces that this space follows with the follow tag. (%0/%1 spaces have been loaded)",
		emptyStream: "Activity stream currently empty. (%0/%1 loaded)"
	},
	getTimeStamp: function() {
		var today = new Date();
		macro._lastRun = today.getTime();
		var previous = new Date(today.setDate(today.getDate() - macro.RECENTNESS));
		return previous.convertToYYYYMMDDHHMM();
	},
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		var container = $("<div />").text(macro.locale.pleaseWait).appendTo(place).
			attr("refresh", "macro").attr("macroName", macroName).attr("paramString", paramString);
		var space = tiddlyspace.currentSpace.name;
		var options = macro.getOptions(paramString);
		$(container).attr("activity-limit", options.limit);
		macro._session = Math.random();
		var activityType;
		var sourceActivity = function(user) {
			macro.CURRENT_USER = user.name;
			macro.USER_AT_TAG = "@%0".format(user.name);
			followMacro.getFollowers(function(users) {
				macro.getActivity(container, users, activityType, options);
			}, macro.CURRENT_USER);
			container.attr("activity-type", activityType);
			macro._renderStream(container, activityType, options);
		};

		if(options.user) {
			sourceActivity({name: options.user});
		} else {
			sourceActivity({ name: tiddlyspace.currentSpace.name });
		}
	},
	getOptions: function(paramString) {
		var options = {};
		var args = paramString.parseParams("name")[0];
		var toMap = ["timestampFormat", "headingFormat", "limit", "user"];
		var i;
		for(i = 0; i < toMap.length; i++) {
			var map = toMap[i];
			options[map] = args[map] ? args[map][0] : false;
		}
		var supress = args.supress || [];
		var templates = [];
		var show = args.show ? args.show : macro.templates;
		for(i = 0; i < show.length; i++) {
			var template = show[i];
			if(supress.indexOf(template) === -1) {
				templates.push(template);
			}
		}
		options.ignore = args.ignore || [];
		options.templates = templates;
		return options;
	},
	_getActivityQuery: function(user, timestamp) {
		timestamp = timestamp || macro.getTimeStamp();
		if(user) {
			return "/bags/%0_public/tiddlers?select=modified:>%1".format(user, timestamp);
		} else {
			return false;
		}
	},
	refresh: function(container) {
		var type = $(container).attr("activity-type");
		var limit = $(container).attr("activity-limit");
		var options = macro.getOptions($(container).attr("paramString"));
		options.limit = parseInt(limit, 10);
		macro.renderStream(container, type, options);
	},
	getActivity: function(place, users, type, options) {
		var i;
		var timestamp = macro.activityTimestamp;
		var firstRun =  timestamp ? false : true;
		macro.info.loaded = firstRun ? 0 : macro.info.loaded;
		var afterAjax = function(tiddlers) {
			if(firstRun) {
				macro.info.loaded += 1;
			}
			macro.updateStream(tiddlers, type, options);
			macro.renderStream(place, type, options);
		};
		var success = function(tiddlers) {
			afterAjax(tiddlers);
		};
		var error = function() {
			afterAjax([]);
		};
		if(macro._lastRun > new Date().getTime() - 300000) { // leave 5 minutes between calls
			afterAjax([]);
			return;
		}
		macro.info.queries = users.length;
		for(i = 0; i < users.length; i++) {
			var user = users[i];
			ajaxReq({
				url: macro._getActivityQuery(user, timestamp),
				dataType: "json", success: success, error: error
			});
		}
		macro.activityTimestamp = new Date().convertToYYYYMMDDHHMM();
	},
	reportError: function(place) {
		var error = $("<div />").addClass("error").text(locale.errorLoading);
		$(place).empty().append(error);
	},
	createFeedEntry: function(container, tiddler, options) {
		var item = $("<li />").addClass("feedItem");
		var content = $("<div />").appendTo(item);
		var wikifyPlace = $("<span />").appendTo(content)[0];
		var author = tiddler.modifier;
		if(author && !options.ignore.contains(author)) {
			$(container).append(item);
			config.macros.view.views.activityItem(null, wikifyPlace, null, null, null, tiddler);
			return item;
		}
		return false;
	},
	renderStream: function(place, type, options) {
		window.clearTimeout(macro._renderTimeout);
		macro._renderTimeout = window.setTimeout(function() {
			macro._renderStream(place, type, options);
		}, 100);
	},
	_renderStream: function(place, type, options) {
		$(place).empty();
		var limit = options.limit;
		var container = $("<ul />").addClass("activityStream").appendTo(place);
		var textHeading = macro.locale.userHeading.format(macro.info.loaded, macro.info.queries);
		$("<li />").addClass("listTitle").text(textHeading).appendTo(container);
		var tiddlers = store.sortTiddlers(store.filterTiddlers("[server.activity[true]]"), "-modified"); // TODO: sort headings instead if possible (conflicts with limit)
		var headings = [];
		var groups = {};
		var processed = 0, i, j;
		var atEndOfActivityFeed = true;
		for(i = 0; i < tiddlers.length; i++) {
			var tiddler = tiddlers[i];
			if(options.templates.contains(tiddler.fields["server.activity.type"])) {
				if(!limit || processed < limit) {
					var modified = tiddler.modified;
					if(modified) {
						// format date.
						var modifiedString = modified.formatString(options.headingFormat || config.macros.timeline.dateFormat);
						if(headings.contains(modifiedString)) {
							groups[modifiedString].push(tiddler);
						} else {
							headings.push(modifiedString);
							groups[modifiedString] = [ tiddler ];
						}
					}
					processed += 1;
				} else {
					atEndOfActivityFeed = false;
				}
			}
		}
		var somethingRendered;
		for(i = 0; i < headings.length; i++) {
			var heading = headings[i];
			var _tiddlers = store.sortTiddlers(groups[heading], "-modified");
			var headingEl;
			if(_tiddlers.length > 0) {
				headingEl = $("<li />").addClass("listTitle activityGroupTitle").text(heading).appendTo(container);
			}
			var rendered = [];
			for(j = 0; j < _tiddlers.length; j++) {
				var item = macro.createFeedEntry(container, _tiddlers[j], options);
				if(item) {
					rendered.push(item);
				}
			}
			if(rendered.length === 0) {
				headingEl.remove();
			} else {
				somethingRendered = true;
			}
		}
		if(!somethingRendered) {
			var msg;
			if(macro.gotActivity) { // it has been run before
				msg = macro.locale.emptyStream.format(macro.info.loaded, macro.info.queries);
			} else {
				msg = macro.locale.pleaseWait;
			}
			$(container).text(msg);
		}
		if(!atEndOfActivityFeed) { // show more button
			$("<input />").attr("type", "button").val("more").click(function(ev) {
				var currentLimit = $(place).attr("activity-limit");
				var newLimit = parseInt(currentLimit, 10) + 50;
				macro.default_limit = newLimit;
				$(place).attr("activity-limit", newLimit);
				macro.refresh(place);
			}).appendTo(place);
		}
		this.gotActivity = true;
	},
	updateStream: function(jstiddlers, type, options) {
		// assume already sorted.
		var tiddlers = scanMacro._tiddlerfy(jstiddlers, options);
		var _dirty = store.isDirty();
		$.each(tiddlers, function(i, tid) {
			var info = config.macros.view.activity.getActivityInfo(tid, options);
			tid.fields["server.activity.type"] = info.type;
			tid.fields["server.activity"] = "true";
			if(!tid.tags.contains("excludeLists")) {
				tid.title = tiddlyspace.getLocalTitle(tid.title, tid.fields["server.workspace"]);
				tid.tags = tid.tags.concat(["excludeLists", "excludeMissing", "excludeSearch"]);
				tid.fields.doNotSave = "true";
				store.addTiddler(tid); // save caused unsaved changes alert and slowdown
			}
		});
		store.setDirty(_dirty);
	}
};

config.macros.view.views.activityItem = function(value, place, params, wikifier,
	paramString, tiddler) {
	var info = config.macros.view.activity.getActivityInfo(tiddler, {});
	wikify(info.template, place, null, tiddler);
};

var helper = config.macros.view.activity = {
	_isNotification: function(tiddler) {
		return tiddler.tags.contains(macro.USER_AT_TAG) || tiddler.tags.contains("@all");
	},
	_repliesOn: function() {
		return tiddlyspace.currentSpace.name === macro.CURRENT_USER;
	},
	types: {
		video: function(tiddler) {
			return tiddler.tags.contains("video");
		},
		geo: function(tiddler) {
			return tiddler.fields["geo.lat"] && tiddler.fields["geo.long"];
		},
		siteInfo: function(tiddler) {
			var title = tiddler.fields["server.title"];
			return title === "SiteInfo";
		},
		userSiteIcon: function(tiddler) {
			var modifierBag = "%0_public".format(tiddler.modifier);
			var title = tiddler.fields["server.title"];
			return title === "SiteIcon" && modifierBag === tiddler.fields["server.bag"];
		},
		spaceSiteIcon: function(tiddler) {
			var title = tiddler.fields["server.title"];
			return title === "SiteIcon"; // note userSiteIcon above does the bag check
		},
		shadow: function(tiddler) {
			var title = tiddler.fields["server.title"];
			return title in config.shadowTiddlers;
		},
		plugin: function(tiddler) {
			return tiddler.tags.contains("systemConfig");
		},
		followYou: function(tiddler) {
			var title = tiddler.fields["server.title"];
			title = title.indexOf("@") === 0 ? title.substr(1) : title;
			return tiddler.tags.contains("follow") && title === macro.USER_AT_TAG;
		},
		follow: function(tiddler) {
			return tiddler.tags.contains("follow");
		},
		reply: function(tiddler) {
			var title = tiddler.fields["server.title"];
			var myTiddler = store.getTiddler(tiddler.title);
			var myTiddlerIsOlder = myTiddler && myTiddler.modified < tiddler.modified;
			return store.tiddlerExists(title) && myTiddlerIsOlder && helper._repliesOn(tiddler);
		},
		notify: function(tiddler) {
			var title = tiddler.fields["server.title"];
			var myTiddler = store.getTiddler(title);
			var myTiddlerIsNewer = myTiddler && myTiddler.modified > tiddler.modified;
			return helper._isNotification(tiddler) && helper._repliesOn(tiddler) && !myTiddlerIsNewer;
		},
		standard: function(tiddler) {
			return true;
		},
		image: function(tiddler) {
			return config.macros.image.isImageTiddler(tiddler);
		}
	},
	// each type should point to a slice in ActivityStreamTemplates tiddler
	getActivityInfo: function(tiddler, options) {
		var repliesOn = tiddlyspace.currentSpace.name === macro.CURRENT_USER;
		var activityType, i;
		if(tiddler) {
			for(i = 0; i < macro.templates.length; i++) {
				var type = macro.templates[i];
				if(!activityType && helper.types[type]) {
					if(helper.types[type](tiddler)) {
						activityType = type;
					}
				}
			}
		}
		template = store.getTiddlerText("ActivityStreamTemplates##" + activityType) || locale.standardTemplate;
		return activityType ? { template: template, type: activityType } : false;
	}
};

config.macros.view.views.link = function(value, place, params, wikifier,
		paramString, tiddler) {
		var el = createTiddlyLink(place,value,true);
		if(params[2]) {
			$(el).text(params[2]);
		}
};

config.macros.view.views.maplink = function(value, place, params, wikifier,
		paramString, tiddler) {
		var lat = tiddler.fields["geo.lat"];
		var lng = tiddler.fields["geo.long"];
		var label  = params[2] || value;
		if(lat && lng) {
			$("<a />").attr("href", "http://maps.google.com/maps?saddr=%0,%1".format(lat, lng)).text(label).appendTo(place);
		}
};

var _displayS = tiddlyspace.displayServerTiddler;
tiddlyspace.displayServerTiddler = function(src, title, workspace, callback) {
	var localTitle = tiddlyspace.getLocalTitle(title, workspace);
	var localTiddler = store.getTiddler(localTitle);

	var _callback = function(src, tiddler) {
		if(callback) {
			callback(src, tiddler);
		}
		if(localTiddler) {
			tiddler.fields["server.activity"] = "true";
			tiddler.fields["server.activity.type"] = localTiddler.fields["server.activity.type"];
		}
	};
	return _displayS.apply(this, [ src, title, workspace, _callback ]);
};
}(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);
//}}}
Joined the local "space-news" today ... \o/
!Spaces
<<groupBy server.bag>>

!Private
<<list filter [is[private]]>>

!Public
<<list filter [is[public]]>>

!Drafts
<<list filter [is[draft]]>>
!URL
http://css3please.com/

!Description
CSS3, Please! The Cross-Browser CSS3 Rule Generator
/***
|''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
.publicLightText {
	color: #C0E5FC;
}

.privateLightText {
	color: #E2C1D6;
}

.tiddler .error.annotation .button{
	display: inline-block;
}

#backstageArea #backstageToolbar a.task_tiddlyspace {
	margin: 0px auto auto -75px;
	font-weight: bold;
	width: 150px;
	line-height:24px;
	font-size: 1.2em;
	padding: 0;
	top: 0;
	position: absolute;
	left: 50%;
}

.task_tiddlyspace .image,
.task_tiddlyspace .svgIcon {
	display: inline;
}

.task_tiddlyspace .svgIconText {
	display: none;
}

.task_tiddlyspace .logoText {
	position: absolute;
	top: 0px;
	margin-left: 5px;
}

#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;
}

.backstageBackground {
	fill: black;
}

#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 .tabContents ol,
#backstage .tabContents ul {
	padding: auto;
}

#backstageButton a {
	margin: 0;
}

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

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

#backstageToolbar a {
	position: relative;
}

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

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

.backstageTask .txtUserName,
.backstageTask .spaceName {
	color: #fff;
}

.backstageSelTab .txtUserName,
.backstageSelTab .spaceName,
a:hover .txtUserName,
a:hover .spaceName {
	color: #000;
}

.spaceSiteIcon {
	margin-right: 10px;
}

.userSiteIcon {
	margin-left: 10px;
}

#backstageToolbar .task_space {
	position: absolute;
	top: 0px;
	left: 0%;
}

#backstageToolbar .task_user,
#backstageToolbar .task_login {
	display: block;
	position: absolute;
	top: 0px;
	right: 5%;
}

#backstageToolbar .task_login img {
	position: relative;
	display: inline;
}

#backstageToolbar .task_login img,
#backstageToolbar .task_user img {
	float: right;
}

#backstageToolbar .task_space .svgIcon {
	float: left;
	position: relative;
	z-index: 2;
}

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

#backstageToolbar .spaceSiteIcon {
	float: left;
}

a.backstageTask {
	display: block;
}

#backstageToolbar a span.txtUserName,
#backstageToolbar a .txtUserName span {
	display: inline;
	float: none;
}

#backstage .deleteButton {
	margin-left: 0.3em;
	font-weight: bold;
	color: red;
	font-size: 1.6em;
}

#backstage .deleteButton:hover {
	background: none;
}

#backstageArea .siteIcon {
	display: inline;
}

#backstagePanel .TiddlySpaceLogin {
	display: inline;
}

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

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

#backstage .tabContents {
	padding: 1.5em;
	text-align: left;
}

#backstage table {
	margin: auto;
}

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

#backstage .txtSpaceTab li {
	border: 1px solid #ddd;
	background: #eee;
	list-style: none;
	margin: 0.5em;
	padding: 0.5em;
	width: 80%;
}

#backstage .txtSpaceTab li.annotation {
	border: 2px solid [[ColorPalette::SecondaryMid]];
}

#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 div.txtSpaceTab li .deleteButton {
	float: right;
}

#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;
}

a.baskstageTask.task_login,
a.baskstageTask.task_user {
	_width: 200px;
	_text-align: right;
}

#backstageArea #backstageToolbar .task_login img,
#backstageArea #backstageToolbar .task_user img {
	_display: inline;
	_float: none;
}

#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;
}

#backstage iframe {
	height: 600px;
	width: 100%;
	border: 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_tabs_for_nonmembers = ["PluginManager", "Backstage##FileImport",
	"Backstage##BatchOps", "Backstage##SpaceMembers",
	"TiddlySpaceTabs##Private", "TiddlySpaceTabs##Drafts"];
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 = true;
}

config.tasks.user = {
	text: "user: ",
	tooltip: "user control panel",
	unpluggedText: "unplugged user",
	content: "<html><iframe frameBorder='0' src='" + config.extensions.tiddlyweb.host + "/_account'></iframe></html>"
};

config.tasks.space = {
	text: "space: ",
	tooltip: "space control panel",
	className: "right"
};

config.tasks.tiddlyspace = {
	text: "",
	tooltip: "",
	content: "<<tiddler Backstage##Menu>>"
};

if(window.location.protocol == "file:") {
	config.unplugged = true; // TODO: move into extensions.tiddly{web/space} namespace!?
	config.tasks.space.content = "<<tiddler Backstage##SpaceUnplugged>>";
} else {
	config.tasks.space.content = "<html><iframe frameBorder='0' src='/_space'></iframe></html>";
}
config.backstageTasks = ["tiddlyspace", "user", "space"];

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();
	if(!config.unplugged) {
		tweb.getUserInfo(function(user) {
			if(user.anon) {
				$(".task_user", tasks).hide();
				tiddlyspace.disableTab(disabled_tabs_for_nonmembers);
			} else {
				$(".task_login", tasks).hide();
			}
		});
	}
	// display backstage
	return _show.apply(this, arguments);
};
if(readOnly) {
	tiddlyspace.disableTab(disabled_tabs_for_nonmembers);
}

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

// mock out renderAvatar if unavailable -- XXX: temporary hotfix, not a permanent solution!
tiddlyspace.renderAvatar = tiddlyspace.renderAvatar || function() {};

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."
	},
	checkSyncStatus: function(tiddler) {
		var bs = backstage.tiddlyspace;
		var t = store.filterTiddlers("[is[unsynced]]");
		var unsyncedList = $("#backstage .tiddlyspaceMenu .unsyncedList");
		if(t.length > 0 && !readOnly) {
			bs.tweakMiddleButton("unsyncedIcon");
			$("#backstage").addClass("unsyncedChanges");
		} else {
			bs.tweakMiddleButton();
			$("#backstage").removeClass("unsyncedChanges");
		}
		refreshElements($("#backstage")[0]);
		if(tiddler) {
			var title = typeof(tiddler) === "string" ? tiddler : tiddler.title;
			var el = story.getTiddler(title) || false;
			if(el) {
				refreshElements(el);
			}
		}
	},
	userButton: function(backstageArea, user) {
		// override user button (logged in) to show username
		var userBtn = $("[task=user]", backstageArea).empty();
		if(config.unplugged && user.anon) {
			$("<span />").text(tasks.user.unpluggedText).appendTo(userBtn);
		} else if(!config.unplugged && user.anon) {
			userBtn.remove();
		} else {
			$("<span />").text(tasks.user.text).appendTo(userBtn);
			$("<span />").addClass("txtUserName").text(user.name).appendTo(userBtn);
			var container = $("<span />").appendTo(userBtn)[0];
			tiddlyspace.renderAvatar(container, user.name,
				{ imageOptions: { imageClass:"userSiteIcon", height: 24, width: 24 },
				labelOptions: { include: false } });
		}
	},
	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];
		altText = $(hideBtn).text();
		$(hideBtn).empty();
		imageMacro.renderImage(hideBtn, "close.svg",
			{ altImage: commonUrl.format("close.png"), alt: altText, width: 24, height: 24 });
	},
	middleButton: function(backstageArea, user) {
		var bs = backstage.tiddlyspace;
		var backstageToolbar = $("#backstageToolbar", backstageArea)[0];
		if(config.unplugged) {
			config.messages.memberStatus = bs.locale.unplugged;
		} else if(!user.anon) {
			config.messages.memberStatus = readOnly ? bs.locale.nonmember : bs.locale.member;
		} else {
			config.messages.memberStatus = bs.locale.loggedout;
		}
		// construct the tiddlyspace logo
		var backstageLogo = $("#[task=tiddlyspace]").empty()[0];
		$("<span />").addClass("iconContainer").appendTo(backstageLogo);
		$('<span class="logoText"><span class="privateLightText">tiddly</span>' +
				'<span class="publicLightText">space</span></span>').
			appendTo(backstageLogo);
		bs.tweakMiddleButton();
	},
	tweakMiddleButton: function(iconName) {
		var backstageLogo = $("#[task=tiddlyspace] .iconContainer").empty()[0];
		var backstageToolbar = $("#backstageToolbar");
		var plugin = backstage.tiddlyspace;
		if(!iconName) {
			iconName = readOnly ? "publicIcon" : "privateAndPublicIcon";
		}
		config.macros.image.renderImage(backstageLogo, iconName, { width: 24, height: 24 });
	},
	spaceButton: function(backstageArea, user) {
		// override space button to show SiteIcon
		var btn = $("[task=space]", backstageArea).show();
		if(user && user.anon && config.unplugged) {
			btn.hide();
			return;
		}
		btn.empty();
		tiddlyspace.renderAvatar(btn[0], currentSpace,
			{ imageOptions: { imageClass:"spaceSiteIcon", height: 24, width: 24 },
			labelOptions: { include: false } });
		$("<span />").text(tasks.space.text).appendTo(btn);
		$("<span />").addClass("spaceName").text(currentSpace).appendTo(btn);
	},
	addClasses: function(backstageArea) {
		var tasks = $(".backstageTask", backstageArea);
		for(var i = 0; i < tasks.length; i++) {
			var btn = $(tasks[i]);
			var taskName = btn.attr("task");
			btn.addClass("task_%0".format(taskName));
		}
	}
};

var _init = backstage.init;
backstage.init = function() {
	_init.apply(this, arguments);
	var init = function(user) {
		var backstageArea = $("#backstageArea")[0];
		var bs = backstage.tiddlyspace;
		store.addNotification(null, bs.checkSyncStatus);
		bs.userButton(backstageArea, user);
		bs.showButton();
		bs.hideButton();
		bs.middleButton(backstageArea, user);
		bs.spaceButton(backstageArea, user);
		bs.addClasses(backstageArea); // for IE styling purposes
		bs.checkSyncStatus();
	};
	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);
	}
};

$.extend(config.messages, {
	syncExplanation: "You are currently viewing an offline version of this TiddlySpace. From here you can sync your offline copy with the online version.",
	syncListHeading: "Unsaved tiddlers listed below"});

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

})(jQuery);
//}}}
Hi

I saw a note about non-functional links on:
http://tiddlywiki.tiddlyspace.com/#ccTiddly [[ccTiddly Alpha Release Notes]]
I fixed some with oldwiki.tiddlywiki.org links...(the download links)

Continuing reading I saw there are many cctiddly-pages that still need migration from oldwiki,  but as I remember both people from gtd and cctiddly where asked to migrate these projects to the new .org ...
Did that happen...? whats the status on gtd migration?...and what to do with cctiddly?

Bauwe
 
/***
|''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);
//}}}
/***
|''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);
//}}}
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
Hi Jon
On @tiddlywiki ( http://tiddlywiki.tiddlyspace.com ) there seems to be some changes I'm not sure about...
The sidebarTabs are removed...and backstage is empty so I could not discover what happened...
Could you confirm if either, someone messed up, or that the changes are for a purpose? (perhaps I missed the notification about it).

Bauwe
http://futurama-stream.com/season-6/episode-3-attack-of-the-killer-app
crowd computing: http://www.southpark.nl/episodes/1404/?autoplay=false
<!--{{{-->
<link href="/bags/bauwebijl_public/tiddlers.atom?select=tag:blog&sort=-created&limit=20"
	rel="alternate" type="application/atom+xml" title="bauwebijl's public feed" />
<!--}}}-->
Hi...
A while ago I posted on tw-groups a question regarding (rss)-feeds...no response yet...
//I'll paste the text here://
<<<
I'm looking for an Atom feed adaptor

Already found:
RSSReaderPlugin
The rss reader plugin loads streams in tw

RSSAdaptor
The adaptor is used via import (backstage) to import articles in
tiddlers. Not only from tw-rss-feeds but any.

''However...atom is used in TiddlySpace ..... also the feed from gmail is atom (and it's nice to make/import tiddlers from gmail-atom-feed)''

Question:
Where can I find:
# AtomAdaptor
# AtomReaderPlugin
If existing?

I created a MTC (to test local):
http://dl.dropbox.com/u/9670094/zandkasteel/newsfeed.html/#Question
<<<
----
Then the "remotebag" was anounced:
<<<
It allows including content from other servers in your recipes. If that other server happens to support the TiddlyWeb API then the stuff is treated as tiddlers in a bag.
Otherwise the content on the other end is treated as a single tiddler. The code is extensible such that adaptor code can be made to process the remote content into reasonable tiddlers. See https://github.com/cdent/tiddlywebplugins.atombag for an example. 
<<<

Question(s):
# Is the remotebag going to give me the possibility to import tiddlers from atom (like the unread-gmail is in atom-feed format)
# I this a serverside solution? (I'm looking for a tw-plugin)
//I already found some javascript and jquery solutions that combine rss and atom in the "normal-non-tw"-world so I can imagine such could also work in tw//

B-) 

Hello Colm

I just tested the Preso Bookmarklet...very nice! (collecting all sort of bookmarklets here...cannot have enough of them...)
As I understand this bookmarklet only works on tiddlyspace...

Are there plans/possibility to make it work on any tw ... like tiddlyweb or a local tw (just like other bookmarklets do) ?

Would it be possible to override themes? I tested on my @bauwebijl space where a theme is active ( @basalt )...some preso magic happens but the sidebar, header and toolbarbuttons remain..which makes it less elegant...
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
/***
|''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($) {

var ctfield = "server.content-type";

var plugin = config.extensions.BinaryTiddlersPlugin = {
	isWikiText: function(tiddler) {
		var ctype = tiddler.fields[ctfield];
		if(ctype) {
			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 && !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);
//}}}
/***
|''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);
//}}}
@mitchke
Ook een Hollander.
/*{{{*/
Background: #fff
Foreground: #000
PrimaryPale: #929292
PrimaryLight: #5B5B5B
PrimaryMid: #369
PrimaryDark: #292929
SecondaryPale: #f9f9f9
SecondaryLight: #e2e2e2
SecondaryMid: #af0000
SecondaryDark: #af0000
TertiaryPale: #F3F3F3
TertiaryLight: #B5B5B5
TertiaryMid: #ADADAD
TertiaryDark: #666
Error: #f88
MidGrey: #383838
LightGrey: #D8D8D8
HoverGrey: #737373
/*}}}*/
Unless you're delighted with the default scheme 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>>
<html><hr><html>
:)
<?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>
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
<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>
<html><div align="center"><iframe src="http://mugtug.com/sketchpad/" " frameborder="0" width="100%" height="500"></iframe></div></html>
<!DOCTYPE html>
<html>
<!-- removed for now, causes problems in Firefox: manifest="svg-editor.manifest" -->
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="chrome=1"/>
<link rel="icon" type="image/png" href="http://svg-edit.tiddlyspace.com/logo.png"/>
<link rel="stylesheet" href="http://svg-edit.tiddlyspace.com/jPicker-1.0.12.css" type="text/css"/>
<link rel="stylesheet" href="http://svg-edit.tiddlyspace.com/jgraduate.css" type="text/css"/>
<link rel="stylesheet" href="http://svg-edit.tiddlyspace.com/svg-editor.css" type="text/css"/>
<link rel="stylesheet" href="http://svg-edit.tiddlyspace.com/JQuerySpinBtn.css" type="text/css"/>

<!-- Release version of script tags: -->
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/jquery.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/jquery.hotkeys.min.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/jquery.jgraduate.min.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/jquery.svgicons.min.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/jquery.bbq.min.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/JQuerySpinBtn.min.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/svgcanvas.min.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/svg-editor.min.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/locale.min.js"></script>

<!-- See http://code.google.com/p/svg-edit/wiki/ConfigOptions for configuration options -->

<!-- you can load extensions here -->
<script ="text/javascript" src="/twconfig.js"></script>
<!-- <script type="text/javascript" src="http://svg-edit.tiddlyspace.com/ext-helloworld.js"></script> -->


<!-- Development version of script tags: 
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/jquery.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/jquery.hotkeys.min.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/jquery.jgraduate.min.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/jquery.svgicons.min.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/jquery.bbq.min.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/JQuerySpinBtn.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/svgcanvas.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/svg-editor.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/locale.js"></script>
-->

<!-- always minified scripts -->
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/jquery-ui-1.8.custom.min.js"></script>
<script type="text/javascript" src="http://svg-edit.tiddlyspace.com/jpicker-1.0.12.min.js"></script>

<!-- feeds -->
<link rel="alternate" type="application/atom+xml" title="SVG-edit General Discussion" href="http://svg-edit.tiddlyspace.com/atom_v1_0_msgs.xml" />
<link rel="alternate" type="application/atom+xml" title="SVG-edit Updates (Issues/Fixes/Commits)" href="http://svg-edit.tiddlyspace.com/basic" />

<!-- Add script with custom handlers here -->
<title>SVG-edit</title>
</head>
<body>
<div id="svg_editor">

<div id="workarea">
<style id="styleoverrides" type="text/css" media="screen" scoped="scoped"></style>
<div id="svgcanvas"></div>
</div>

<div id="sidepanels">
	<div id="layerpanel">
		<h3 id="layersLabel">Layers</h3>
		<fieldset id="layerbuttons">
			<div id="layer_new" class="layer_button"  title="New Layer"></div>
			<div id="layer_delete" class="layer_button"  title="Delete Layer"></div>
			<div id="layer_rename" class="layer_button"  title="Rename Layer"></div>
			<div id="layer_up" class="layer_button"  title="Move Layer Up"></div>
			<div id="layer_down" class="layer_button"  title="Move Layer Down"></div>
		</fieldset>
		
		<table id="layerlist">
			<tr class="layer">
				<td class="layervis"></td>
				<td class="layername">Layer 1</td>
			</tr>
		</table>
		<span id="selLayerLabel">Move elements to:</span>
		<select id="selLayerNames" title="Move selected elements to a different layer" disabled="disabled">
			<option selected="selected" value="layer1">Layer 1</option>
		</select>
	</div>
	<div id="sidepanel_handle" title="Drag left/right to resize side panel [X]">L a y e r s</div>
</div>

<div id="main_button">
	<div id="main_icon" class="buttonup" title="Main Menu">
		<span></span>
		<div id="logo"></div>
		<div class="dropdown"></div>
	</div>
		
	<div id="main_menu"> 
	
		<!-- File-like buttons: New, Save, Source -->
		<ul>
			<li id="tool_clear">
				<div></div>
				New Image [N]
			</li>
			
			<li id="tool_open" style="display:none;">
				<div id="fileinputs">
					<div></div>
				</div>
				Open Image [O]
			</li>
			
			<li id="tool_import" style="display:none;">
				<div id="fileinputs_import">
					<div></div>
				</div>
				Import SVG
			</li>
			
			<li id="tool_save">
				<div></div>
				Save Image [S]
			</li>
			
			<li id="tool_export">
				<div></div>
				Export as PNG
			</li>
			
			<li id="tool_docprops">
				<div></div>
				Document Properties [P]
			</li>
		</ul>
		
		<p>
			<a href="http://svg-edit.googlecode.com/" target="_blank">
				SVG-edit Home Page
			</a>
		</p>

	</div>
</div>



<div id="tools_top" class="tools_panel">
	
	<div id="editor_panel">
		<div class="push_button" id="tool_source" title="Edit Source [U]"></div>
		<div class="tool_button" id="tool_wireframe" title="Wireframe Mode [F]"></div>
	</div>

    <!-- History buttons -->
	<div id="history_panel">
		<div class="tool_sep"></div>
		<div class="push_button tool_button_disabled" id="tool_undo" title="Undo [Z]"></div>
		<div class="push_button tool_button_disabled" id="tool_redo" title="Redo [Y]"></div>
	</div>
	
	<!-- Buttons when a single element is selected -->
	<div id="selected_panel">
		<div class="toolset">
			<div class="tool_sep"></div>
			<div class="push_button" id="tool_clone" title="Clone Element [C]"></div>
			<div class="push_button" id="tool_delete" title="Delete Element [Delete/Backspace]"></div>
			<div class="tool_sep"></div>
			<div class="push_button" id="tool_move_top" title="Move to Top [Shift+Up]"></div>
			<div class="push_button" id="tool_move_bottom" title="Move to Bottom [Shift+Down]"></div>
			<div class="push_button" id="tool_topath" title="Convert to Path"></div>
			<div class="push_button" id="tool_reorient" title="Reorient path"></div>
			<div class="tool_sep"></div>
			<label id="idLabel" title="Identify the element">
				<span>id:</span>
				<input id="elem_id" class="attr_changer" data-attr="id" size="10" type="text"/>
			</label>
		</div>

		<label id="tool_angle" title="Change rotation angle">
			<span id="angleLabel" class="icon_label"></span>
			<input id="angle" size="2" value="0" type="text"/>
		</label>
		
		<div class="toolset" id="tool_blur" title="Change gaussian blur value">
			<label>
				<span id="blurLabel" class="icon_label"></span>
				<input id="blur" size="2" value="0" type="text"/>
			</label>
			<div id="blur_dropdown" class="dropdown">
				<button></button>
				<ul>
					<li class="special"><div id="blur_slider"></div></li>
				</ul>
			</div>
		</div>
		
		<div class="dropdown toolset" id="tool_position" title="Align Element to Page">
				<div id="cur_position" class="icon_label"></div>
				<button></button>
		</div>		

		<div id="xy_panel" class="toolset">
			<label>
				x: <input id="selected_x" class="attr_changer" title="Change X coordinate" size="3" data-attr="x"/>
			</label>
			<label>
				y: <input id="selected_y" class="attr_changer" title="Change Y coordinate" size="3" data-attr="y"/>
			</label>
		</div>
	</div>

	<!-- Buttons when multiple elements are selected -->
	<div id="multiselected_panel">
		<div class="tool_sep"></div>
		<div class="push_button" id="tool_clone_multi" title="Clone Elements [C]"></div>
		<div class="push_button" id="tool_delete_multi" title="Delete Selected Elements [Delete/Backspace]"></div>
		<div class="tool_sep"></div>
		<div class="push_button" id="tool_group" title="Group Elements [G]"></div>
		<div class="push_button" id="tool_alignleft" title="Align Left"></div>
		<div class="push_button" id="tool_aligncenter" title="Align Center"></div>
		<div class="push_button" id="tool_alignright" title="Align Right"></div>
		<div class="push_button" id="tool_aligntop" title="Align Top"></div>
		<div class="push_button" id="tool_alignmiddle" title="Align Middle"></div>
		<div class="push_button" id="tool_alignbottom" title="Align Bottom"></div>
		<label id="tool_align_relative"> 
			<span id="relativeToLabel">relative to:</span>
			<select id="align_relative_to" title="Align relative to ...">
			<option id="selected_objects" value="selected">selected objects</option>
			<option id="largest_object" value="largest">largest object</option>
			<option id="smallest_object" value="smallest">smallest object</option>
			<option id="page" value="page">page</option>
			</select>
		</label>
		<div class="tool_sep"></div>

	</div>

	<div id="g_panel">
		<div class="tool_sep"></div>
		<div class="push_button" id="tool_ungroup" title="Ungroup Elements [G]"></div>
	</div>

	<div id="rect_panel">
		<div class="toolset">
			<label id="rect_width_tool" title="Change rectangle width">
				<span id="rwidthLabel" class="icon_label"></span>
				<input id="rect_width" class="attr_changer" size="3" data-attr="width"/>
			</label>
			<label id="rect_height_tool" title="Change rectangle height">
				<span id="rheightLabel" class="icon_label"></span>
				<input id="rect_height" class="attr_changer" size="3" data-attr="height"/>
			</label>
		</div>
		<label id="cornerRadiusLabel" title="Change Rectangle Corner Radius">
			<span class="icon_label"></span>
			<input id="rect_rx" size="3" value="0" type="text" data-attr="Corner Radius"/>
		</label>
	</div>

	<div id="image_panel">
	<div class="toolset">
		<label><span id="iwidthLabel" class="icon_label"></span>
		<input id="image_width" class="attr_changer" title="Change image width" size="3" data-attr="width"/>
		</label>
		<label><span id="iheightLabel" class="icon_label"></span>
		<input id="image_height" class="attr_changer" title="Change image height" size="3" data-attr="height"/>
		</label>
	</div>
	<div class="toolset">
		<label id="tool_image_url">url:
			<input id="image_url" type="text" title="Change URL" size="35"/>
		</label>
		<label id="tool_change_image">
			<button id="change_image_url" style="display:none;">Change Image</button>
			<span id="url_notice" title="NOTE: This image cannot be embedded. It will depend on this path to be displayed"></span>
		</label>
	</div>
  </div>

	<div id="circle_panel">
		<div class="toolset">
			<label id="tool_circle_cx">cx:
			<input id="circle_cx" class="attr_changer" title="Change circle's cx coordinate" size="3" data-attr="cx"/>
			</label>
			<label id="tool_circle_cy">cy:
			<input id="circle_cy" class="attr_changer" title="Change circle's cy coordinate" size="3" data-attr="cy"/>
			</label>
		</div>
		<div class="toolset">
			<label id="tool_circle_r">r:
			<input id="circle_r" class="attr_changer" title="Change circle's radius" size="3" data-attr="r"/>
			</label>
		</div>
	</div>

	<div id="ellipse_panel">
		<div class="toolset">
			<label id="tool_ellipse_cx">cx:
			<input id="ellipse_cx" class="attr_changer" title="Change ellipse's cx coordinate" size="3" data-attr="cx"/>
			</label>
			<label id="tool_ellipse_cy">cy:
			<input id="ellipse_cy" class="attr_changer" title="Change ellipse's cy coordinate" size="3" data-attr="cy"/>
			</label>
		</div>
		<div class="toolset">
			<label id="tool_ellipse_rx">rx:
			<input id="ellipse_rx" class="attr_changer" title="Change ellipse's x radius" size="3" data-attr="rx"/>
			</label>
			<label id="tool_ellipse_ry">ry:
			<input id="ellipse_ry" class="attr_changer" title="Change ellipse's y radius" size="3" data-attr="ry"/>
			</label>
		</div>
	</div>

	<div id="line_panel">
		<div class="toolset">
			<label id="tool_line_x1">x1:
			<input id="line_x1" class="attr_changer" title="Change line's starting x coordinate" size="3" data-attr="x1"/>
			</label>
			<label id="tool_line_y1">y1:
			<input id="line_y1" class="attr_changer" title="Change line's starting y coordinate" size="3" data-attr="y1"/>
			</label>
		</div>
		<div class="toolset">
			<label id="tool_line_x2">x2:
			<input id="line_x2" class="attr_changer" title="Change line's ending x coordinate" size="3" data-attr="x2"/>
			</label>
			<label id="tool_line_y2">y2:
			<input id="line_y2" class="attr_changer" title="Change line's ending y coordinate" size="3" data-attr="y2"/>
			</label>
		</div>
	</div>

	<div id="text_panel">
		<div class="toolset">
			<div class="tool_button" id="tool_bold" title="Bold Text [B]"><span></span>B</div>
			<div class="tool_button" id="tool_italic" title="Italic Text [I]"><span></span>i</div>
		</div>
		
		<div class="toolset" id="tool_font_family">
			<label>
				<!-- Font family -->
				<input id="font_family" type="text" title="Change Font Family" size="12"/>
			</label>
			<div id="font_family_dropdown" class="dropdown">
				<button></button>
				<ul>
					<li style="font-family:serif">Serif</li>
					<li style="font-family:sans-serif">Sans-serif</li>
					<li style="font-family:cursive">Cursive</li>
					<li style="font-family:fantasy">Fantasy</li>
					<li style="font-family:monospace">Monospace</li>
				</ul>
			</div>
		</div>

		<label id="tool_font_size" title="Change Font Size">
			<span id="font_sizeLabel" class="icon_label"></span>
			<input id="font_size" size="3" value="0" type="text"/>
		</label>
		
		<!-- Not visible, but still used -->
		<input id="text" type="text" size="35"/>
	</div>
	
	<div id="path_node_panel">
		<div class="tool_sep"></div>
		<div class="tool_button" id="tool_node_link" title="Link Control Points"></div>
		<div class="tool_sep"></div>
		<label id="tool_node_x">x:
			<input id="path_node_x" class="attr_changer" title="Change node's x coordinate" size="3" data-attr="x"/>
		</label>
		<label id="tool_node_y">y:
			<input id="path_node_y" class="attr_changer" title="Change node's y coordinate" size="3" data-attr="y"/>
		</label>
		
		<select id="seg_type" title="Change Segment type">
			<option id="straight_segments" selected="selected" value="4">Straight</option>
			<option id="curve_segments" value="6">Curve</option>
		</select>
		<div class="tool_button" id="tool_node_clone" title="Clone Node"></div>
		<div class="tool_button" id="tool_node_delete" title="Delete Node"></div>
		<div class="tool_button" id="tool_openclose_path" title="Open/close sub-path"></div>
		<div class="tool_button" id="tool_add_subpath" title="Add sub-path"></div>
	</div>
	
</div> <!-- tools_top -->

<div id="tools_left" class="tools_panel">
	<div class="tool_button" id="tool_select" title="Select Tool [1]"></div>
	<div class="tool_button" id="tool_fhpath" title="Pencil Tool [2]"></div>
	<div class="tool_button" id="tool_line" title="Line Tool [3]"></div>
	<div class="tool_button flyout_current" id="tools_rect_show" title="Square/Rect Tool [4/Shift+4]">
		<div class="flyout_arrow_horiz"></div>
	</div>
	<div class="tool_button flyout_current" id="tools_ellipse_show" title="Ellipse/Circle Tool [5/Shift+5]">
		<div class="flyout_arrow_horiz"></div>
	</div>
	<div class="tool_button" id="tool_path" title="Path Tool [7]"></div>
	<div class="tool_button" id="tool_text" title="Text Tool [6]"></div>
	<div class="tool_button" id="tool_image" title="Image Tool [8]"></div>
	<div class="tool_button" id="tool_zoom" title="Zoom Tool [Ctrl+Up/Down]"></div>
	
	<div style="display: none">
		<div id="tool_rect" title="Rectangle"></div>
		<div id="tool_square" title="Square"></div>
		<div id="tool_fhrect" title="Free-Hand Rectangle"></div>
		<div id="tool_ellipse" title="Ellipse"></div>
		<div id="tool_circle" title="Circle"></div>
		<div id="tool_fhellipse" title="Free-Hand Ellipse"></div>
	</div>
</div> <!-- tools_left -->

<div id="tools_bottom" class="tools_panel">

    <!-- Zoom buttons -->
	<div id="zoom_panel" class="toolset" title="Change zoom level">
		<label>
		<span id="zoomLabel" class="zoom_tool icon_label"></span>
		<input id="zoom" size="3" value="100" type="text" />
		</label>
		<div id="zoom_dropdown" class="dropdown">
			<button></button>
			<ul>
				<li>1000%</li>
				<li>400%</li>
				<li>200%</li>
				<li>100%</li>
				<li>50%</li>
				<li>25%</li>
				<li id="fit_to_canvas" data-val="canvas">Fit to canvas</li>
				<li id="fit_to_sel" data-val="selection">Fit to selection</li>
				<li id="fit_to_layer_content" data-val="layer">Fit to layer content</li>
				<li id="fit_to_all" data-val="content">Fit to all content</li>
				<li>100%</li>
			</ul>
		</div>
		<div class="tool_sep"></div>
	</div>

	<div id="tools_bottom_2">
		<div id="color_tools">
			<div class="color_tool" id="tool_fill">
				<label class="icon_label" for="fill_color" title="Change fill color"></label>
				<div class="color_block">
					<div id="fill_bg"></div>
					<div id="fill_color" class="color_block"></div>
				</div>
			</div>
		
			<div class="color_tool" id="tool_stroke">
				<div class="color_block">
					<label class="icon_label" title="Change stroke color"></label>
				</div>
				<div class="color_block">
					<div id="stroke_bg"></div>
					<div id="stroke_color" class="color_block" title="Change stroke color"></div>
				</div>
				
				<label>
					<input id="stroke_width" title="Change stroke width by 1, shift-click to change by 0.1" size="2" value="5" type="text" data-attr="Stroke Width"/>
				</label>
				
				<label class="stroke_tool">
					<select id="stroke_style" title="Change stroke dash style">
						<option selected="selected" value="none">&mdash;</option>
						<option value="2,2">...</option>
						<option value="5,5">- -</option>
						<option value="5,2,2,2">- .</option>
						<option value="5,2,2,2,2,2">- ..</option>
					</select>
				</label>	

 				<div class="stroke_tool dropdown" id="stroke_linejoin">
 					<div>
						<div id="cur_linejoin" title="Linejoin: Miter"></div>
						<button></button>
					</div>
 				</div>
 				
 				<div class="stroke_tool dropdown" id="stroke_linecap">
 					<div>
						<div id="cur_linecap" title="Linecap: Butt"></div>
						<button></button>
					</div>
 				</div>
			
				<div id="toggle_stroke_tools" title="Show/hide more stroke tools">
					&gt;&gt;
				</div>
				
			</div>
		</div>
	
		<div class="toolset" id="tool_opacity" title="Change selected item opacity">
			<label>
				<span id="group_opacityLabel" class="icon_label"></span>
				<input id="group_opacity" size="3" value="100" type="text"/>
			</label>
			<div id="opacity_dropdown" class="dropdown">
				<button></button>
				<ul>
					<li>0%</li>
					<li>25%</li>
					<li>50%</li>
					<li>75%</li>
					<li>100%</li>
					<li class="special"><div id="opac_slider"></div></li>
				</ul>
			</div>
		</div>

	</div>

	<div id="tools_bottom_3">
		<div id="palette_holder"><div id="palette" title="Click to change fill color, shift-click to change stroke color"></div></div>
	</div>
	<div id="copyright"><span id="copyrightLabel">Powered by</span> <a href="http://svg-edit.googlecode.com/" target="_blank">SVG-edit v2.5.1</a></div>
</div>

<div id="option_lists">
	<ul id="linejoin_opts">
		<li class="tool_button current" id="linejoin_miter" title="Linejoin: Miter"></li>
		<li class="tool_button" id="linejoin_round" title="Linejoin: Round"></li>
		<li class="tool_button" id="linejoin_bevel" title="Linejoin: Bevel"></li>
	</ul>
	
	<ul id="linecap_opts">
		<li class="tool_button current" id="linecap_butt" title="Linecap: Butt"></li>
		<li class="tool_button" id="linecap_square" title="Linecap: Square"></li>
		<li class="tool_button" id="linecap_round" title="Linecap: Round"></li>
	</ul>
	
	<ul id="position_opts" class="optcols3">
		<li class="push_button" id="tool_posleft" title="Align Left"></li>
		<li class="push_button" id="tool_poscenter" title="Align Center"></li>
		<li class="push_button" id="tool_posright" title="Align Right"></li>
		<li class="push_button" id="tool_postop" title="Align Top"></li>
		<li class="push_button" id="tool_posmiddle" title="Align Middle"></li>
		<li class="push_button" id="tool_posbottom" title="Align Bottom"></li>
	</ul>
</div>


<!-- hidden divs -->
<div id="color_picker"></div>

</div> <!-- svg_editor -->

<div id="svg_source_editor">
	<div id="svg_source_overlay"></div>
	<div id="svg_source_container">
		<div id="tool_source_back" class="toolbar_button">
			<button id="tool_source_save">Apply Changes</button>
			<button id="tool_source_cancel">Cancel</button>
		</div>
		<form>
			<textarea id="svg_source_textarea" spellcheck="false"></textarea>
		</form>
	</div>
</div>

<div id="svg_docprops">
	<div id="svg_docprops_overlay"></div>
	<div id="svg_docprops_container">
		<div id="tool_docprops_back" class="toolbar_button">
			<button id="tool_docprops_save">OK</button>
			<button id="tool_docprops_cancel">Cancel</button>
		</div>


		<fieldset id="svg_docprops_docprops">
			<legend id="svginfo_image_props">Image Properties</legend>
			<label>
				<span id="svginfo_title">Title:</span>
				<input type="text" id="canvas_title" size="24"/>
			</label>			
	
			<fieldset id="change_resolution">
				<legend id="svginfo_dim">Canvas Dimensions</legend>

				<label><span id="svginfo_width">width:</span> <input type="text" id="canvas_width" size="6"/></label>
					
				<label><span id="svginfo_height">height:</span> <input type="text" id="canvas_height" size="6"/></label>
				
				<label>
					<select id="resolution">
						<option id="selectedPredefined" selected="selected">Select predefined:</option>
						<option>640x480</option>
						<option>800x600</option>
						<option>1024x768</option>
						<option>1280x960</option>
						<option>1600x1200</option>
						<option id="fitToContent" value="content">Fit to Content</option>
					</select>
				</label>
			</fieldset>

			<fieldset id="image_save_opts">
				<legend id="includedImages">Included Images</legend>
				<label><input type="radio" name="image_opt" value="embed" checked="checked"/> <span id="image_opt_embed">Embed data (local files)</span> </label>
				<label><input type="radio" name="image_opt" value="ref"/> <span id="image_opt_ref">Use file reference</span> </label>
			</fieldset>			


		</fieldset>

		<fieldset id="svg_docprops_prefs">
			<legend id="svginfo_editor_prefs">Editor Preferences</legend>

			<label><span id="svginfo_lang">Language:</span>
				<!-- Source: http://en.wikipedia.org/wiki/Language_names -->
				<select id="lang_select">
				  <option id="lang_ar" value="ar">العربية</option>
					<option id="lang_cs" value="cs">Čeština</option>
					<option id="lang_de" value="de">Deutsch</option>
					<option id="lang_en" value="en" selected="selected">English</option>
					<option id="lang_es" value="es">Español</option>
					<option id="lang_fa" value="fa">فارسی</option>
					<option id="lang_fr" value="fr">Français</option>
					<option id="lang_fy" value="fy">Frysk</option>
					<option id="lang_hi" value="hi">&#2361;&#2367;&#2344;&#2381;&#2342;&#2368;, &#2361;&#2367;&#2306;&#2342;&#2368;</option>
					<option id="lang_ja" value="ja">日本語</option>
					<option id="lang_nl" value="nl">Nederlands</option>
					<option id="lang_pt-BR" value="pt-BR">Português (BR)</option>
					<option id="lang_ro" value="ro">Româneşte</option>
					<option id="lang_ru" value="ru">Русский</option>
					<option id="lang_sk" value="sk">Slovenčina</option>
					<option id="lang_zh-TW" value="zh-TW">繁體中文</option>
				</select>
			</label>

			<label><span id="svginfo_icons">Icon size:</span>
				<select id="iconsize">
					<option id="icon_small" value="s">Small</option>
					<option id="icon_medium" value="m" selected="selected">Medium</option>
					<option id="icon_large" value="l">Large</option>
					<option id="icon_xlarge" value="xl">Extra Large</option>
				</select>
			</label>

			<fieldset id="change_background">
				<legend id="svginfo_change_background">Editor Background</legend>
				<div id="bg_blocks"></div>
				<label><span id="svginfo_bg_url">URL:</span> <input type="text" id="canvas_bg_url" size="21"/></label>
				<p id="svginfo_bg_note">Note: Background will not be saved with image.</p>
			</fieldset>
			
		</fieldset>

	</div>
</div>

<div id="dialog_box">
	<div id="dialog_box_overlay"></div>
	<div id="dialog_container">
		<div id="dialog_content"></div>
		<div id="dialog_buttons"></div>
	</div>
</div>

</body>
</html>
!!!This is the modified version of the ~TiddlySpace "Basalt"-theme for the @howtoos "website".
;Changes:
:In addition to the basalt-theme the howtoos-theme contains a footer
!!!Installation
;Manual:
*Copy the HowtoosTheme tiddler to your ~TiddlySpace
*Create a tiddler ''zzConfig'' with inside: {{{config.options.txtTheme = "HowtoosTheme";}}}
*Add the tag {{{systemConfig}}} to the ''zzConfig'' tiddler
*Create the tiddler ''~SecMenu'' (to contain your secondary menu items)
*Create the tiddler ''~SiteFooter'' (to contain the footer content)
*Copy the following colors to your ''~ColorPalette''-tiddler:
/*{{{*/
Background: #fff
Foreground: #000
PrimaryPale: #929292
PrimaryLight: #5B5B5B
PrimaryMid: #369
PrimaryDark: #292929
SecondaryPale: #f9f9f9
SecondaryLight: #e2e2e2
SecondaryMid: #af0000
SecondaryDark: #af0000
TertiaryPale: #F3F3F3
TertiaryLight: #B5B5B5
TertiaryMid: #ADADAD
TertiaryDark: #666
Error: #f88
MidGrey: #383838
LightGrey: #D8D8D8
HoverGrey: #737373
/*}}}*/
!!!Updates:
;11-11-2010
:Added "replyLink" to the ~ViewTemplate
Enjoy!
<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>
Hoi Sietske...
Hier wat info over active support gestuurd via het following mechaniek in tiddlyspace.
FF kijken hoe of dit gaat werken voor jou ok?
Ik hoor het wel.

!!Deinstitutionalisation and community living: An international perspective

Mansell, Jim

Abstract

This paper reviews progress in deinstitutionalisation and community living

for people with learning disabilities. The effects of replacing institutional

care on residents are summarised and some emerging problems

identified.

Introduction

Tizard's Brooklands experiment is, in the British context, a defining point

of departure for deinstitutionalisation and community living (Tizard,

1960). It was among the earliest attempts anywhere to show that it was

possible to care for people with learning disabilities in smaller, more

homely circumstances in the community, rather than in institutions.

Together with pilot projects in Sweden (Grunewald, 1974) and the USA

(Casey et al, 1985), it helped demonstrate that alternatives to institutions

were possible at a time when policymakers were receptive to this

message. By the late 1960s and early 1970s, the policy goal of

deinstitutionalisation - the complete replacement of institutions by services

in the community - was articulated (Campaign for the Mentally

Handicapped, 1972; Kugel & Wolfensberger, 1969) and then pursued. In

North America, Scandinavia, Britain and Australia this has been probably

the most important change in policy and the pattern of service provision in

learning disability in the last 50 years (Mansell & Ericsson, 1996b).

Progress in deinstitutionalisation and community living

The replacement of large residential institutions by a network of

community-based services is well under way in North America, Europe

and Australasia. The leaders in this field have probably been Sweden and

Norway, which appear to have replaced all institutional provision and

enacted laws that enshrine the right to community services (Ericsson,

2002; Tossebro, 2004). For Sweden, for example, Figure 1, opposite,

shows the shift in pattern of services for people with intellectual disabilities

over the last 30 years. The data are presented as rates per 100,000 total

population to permit international comparison taking account of

differences in population size and are taken from Grunewald (2003). All

institutions have been closed and replaced with services in the community.

In North America, the UK and Australasia, much progress has been made

in closing institutions, but continuing efforts are required to complete their

replacement by services in the community. Figure 2, below, presents data

for the USA (Braddock et al, 1995; Braddock, Hemp & Rizzolo, 2004),

showing the same pattern as for Sweden, but at a rather lower level of

provision and without the complete abolition of institutions yet being

achieved.

Replacing institutions includes the task of closing the last remaining long-

stay institutions and the replacement of some of the smaller institutional

campuses that were built when the policy of denstitutionalisation was first

promoted. The data for England (DoH, 2004; Mansell, 1997), given in

Figure 3, overleaf, show the same pattern as in the USA. In 2004, there

were about 750 places left in the old long-stay institutions for people with

intellectual disabilities (Ladyman, 2003), but there were also several

thousand places in 'campus' developments and new private institutions

(DoH, 2004).

The pattern of change in service models in these countries has generally

been consistent. Early initiatives to replace institutions produced relatively

large residential homes, such as the intermediate care programme in the

USA (Rotegard et al, 1984), the Wessex experiment in England (Kushlik,

1976) and the residential home VÃ¥rdhem programme in Sweden

(Ericsson, 1996). These larger models were superseded by group homes

in which between three and eight people, including people needing high

levels of support, lived together with help from staff. Demonstration

projects of this type include those developed in Andover in England (Felce

Et Toogood, 1988; Mansell et al, 19687), Cardiff in Wales (Lowe & de

Paiva, 1991), Oregon (Borner et al, 1996), Sweden and Norway (Ericsson,

1996; Tossebro et al, 1996). This is now the dominant form of community

provision. More recently, dissatisfaction with group homes has led to the

development of what is generally called 'supported living'. This separates

housing and support, so that people live with individuals they choose, in

housing they own or rent, receiving staff support from agencies which do

not control the accommodation (Allard, 1996; Kinsella, 1993; Stevens,

2004).

In other European countries, such as Belgium, the Netherlands, Germany,

Spain and Greece, community-based services are beginning to be

developed, although existing service structures are still dominated by

institutional models (European Learning Disability Network, 2003). In the

countries of the former Soviet bloc, this process has only just started, and

there is still a large legacy of very poor-quality institutional care to

address (Mansell, Beadle-Brown & Clegg, 2004).

Evaluation that compares community-based models of care with the

institutions they replace generally shows a relatively clear picture.

Research has consistently shown that community-based services are

better than institutions. Two recent reviews illustrate typical findings. Kim,

Larson and Lakin (2001) reviewed comparative and longitudinal American

studies between 1980 and 1999. They found that, in terms of adaptive

behaviour:

* 19 studies showed significant improvements

* seven studies showed improvements which were not statistically

significant

* one study showed decline which was not significant

* two studies showed significant decline.

In terms of challenging behaviour:

* five studies found significant improvements

* eight studies found improvement that was not statistically significant

* six studies found worsening of behaviour that was not statistically

significant

* two studies found a significant worsening.

Young et al (1998) reviewed Australian studies of deinstitutionalisation in

relation to a wider range of outcomes (Figure 4, opposite). In six of the

nine areas, the majority of studies report positive effects, and in the

remaining three the majority report no change.

Problems of community services

However, this generally positive picture is complicated, because research

studies also show marked variation in results. Different services of the

same type achieve widely differing results when compared on the same

measures. Comparing different models of service, the ranges of scores

achieved overlap considerably. Figure 5, opposite, for example, shows the

mean and range of scores for resident engagement in meaningful activity

reported in Emerson and Ration's (1994) review of 46 British studies of

2,350 people. It shows that, on average, supported housing achieves

better results than small institutions, which in turn achieve better results

than large institutions. But the overlap in scores shows that better large

institutions can produce outcomes as good as weaker smaller settings,

and that better small institutions can achieve outcomes as good as weaker

supported housing.

This variation undermines the consensus supporting deinstitutionalisation

and community living. It removes the powerful incentive that unequivocal

evidence would provide. It casts doubt on the value of the investment

community services require, by suggesting that congregate care facilities

can achieve results as good, even though they provide fewer staff and

therefore cost less.

Variation reflects, in part, the range of abilities and characteristics of

residents. People with higher support needs - whether because of the

nature of their learning and physical disabilities, their challenging

behaviour or their social impairment - experience less good outcomes

than people who are more independent.

However, variation does not reflect only resident characteristics.

Demonstration projects have shown that it is possible greatly to increase

the level of outcomes achieved for the most disabled people (Hatton et al,

1995; Mansell et al, 2001). Variation also reflects characteristics of the

design of the services themselves. Most important, it reflects differences in

staff performance; the way staff provide support to the people they serve

has been singled out as a key determinant of outcome. This result has

been found in comparative studies of houses versus other settings (Felce,

1996, 1998; Felce et al, 1986; Felce et al, 1991; Mansell, 1994, 1995;

Mansell et al, 1984), in experimental studies within houses (Bradshaw et

al, 2004; Jones et al, 2001 ; Jones et al, 1999; Mansell et al, 2002) and

in regression studies (Felce et al, 2000; Hatton et al, 1996; Mansell et al,

2003). This issue can also be traced back to Tizard's work - in this case

the study of the features of institutional care published by King, Raynes

and lizard (1971).

Once the material and social deprivation found in institutions has been

addressed by replacing them by small-scale services in the community, it

appears that the main predictors of at least some important outcomes are

resident need for support (ie their adaptive behaviour) and the care

practices of staff (particularly the extent to which they provide facilitative

assistance or 'active support' [Jones et al, 1996; Mansell, 1998; Mansell et

al, 2004]).

Why are community-based services so variable in their performance?

Broadly, two interpretations for this failure have been offered (Mansell &

Ericsson, 1996a). Some authors (Ericsson, 1996; Stevens, 2004) have

argued that the ideology of institutions persists in group homes and can

only be overcome by a further move to supported living. Others have

argued that variable results can be seen as a problem of weak

implementation (eg Emerson & Hatton, 1994; Mansell, 1996; McGill &

Mansell, 1995), rather than something intrinsic to the model. Some

support for this view comes from the study by Emerson et al (1999)

comparing village communities, dispersed housing schemes and hospital

campuses. This study found that dispersed housing (ie supported living),

selected for the study as exemplary, achieved no better results than

institutional care in resident engagement in meaningful activity.

Better implementation requires a renewed focus on training and the

motivation of front-line support staff. This has been an increased focus of

attention in the USA (Larson et al, 1998; Rice & Rosen, 1991) and Britain

(Great Britain, 2000). However, there is some evidence in Britain that most

training covers minimum statutory requirements, such as health and

safety, or very basic introductory material (Carnaby 2003; Ward, 1999),

and that the motivational framework within which staff work seems to

prioritise administration over enabling service users to engage in

meaningful activity and relationships (Mansell [maps to] Elliott, 2001).

The current context for service development

In those countries which have made most progress in deinstitutionalisation

and community living, three changes are taking place, to varying degrees.

These changes, taken together, provide the context within which the

performance of community services is likely to be judged in future. They

are:

* the rise of market-based approaches to service development

* the replacement of special arrangements for learning disability services

by generic policies, responsibilities and practices (what is called

'dedifferentiation' (Sandvin, 1996)

* a changed perspective on disability which emphasises rights and

empowerment, apparently (though perhaps inadvertently) at the expense

of addressing the impairments people have.

The rise of market-based approaches to resource allocation and

decision-making puts service models in competition with each other.

There is less commitment to particular philosophies and models a pnori,

with increased willingness to judge services on the basis of 'payment by

results'. Eligibility criteria are used to ration availability of services. There

tends to be a focus on 'value for money', emphasising basic, general,

minimum standards as 'good enough', rather than good outcomes for

everyone (including those with the highest support needs). Market-based

models also entail reduced emphasis on planning, on service models and

on locality in favour of 'choice'.

De-differentiation has added competition for attention and resources from

other groups. Not only are service models in competition with each other;

now different client groups compete. It has also created obstacles and

hurdles through One size fits all' policies. Dedifferentiation has also made

it harder to identify the special situation of people with intellectual

disabilities.

The rise of the social model of disability has de-emphasised intervention

to help people gain skills and independence. Staff training emphasises

anti-discriminatory practice and the promotion of choice and opportunity

for people who can express clear intentions - not the skilled professional

support required to enable people with significant intellectual disabilities

to continue to grow and develop throughout their lives.

The implications of these broad changes in context are important.

Deinstitutionalisation and community living have very largely been

sustained, in the policy arena, through promotion of a particular

philosophy. Great changes have been carried through on the assumption

that community-based services are better than the institutions. This is

unlikely to be enough in a harsher, more sceptical policy climate. The

pursuit of more staff, smaller services and tenancy status rather than

group homes, in the absence of any evidence at all that these things make

a difference, is unlikely to carry sway. If community services continue to

provide very variable results, and overall if they are not much better than

sanitised institutions, then they will lose out in the policy marketplace.

Furthering the improvement of services for people with intellectual

disabilities based in the community, and perhaps even holding on to the

gains that have already been made, is likely to depend on being able to

demonstrate that the potential they offer is achieved in practice. The

pressures on decisionmakers, in a market-based system, will be to focus

on price and volume rather than quality, and to under-invest in planning

and infrastructure. Given this, people representing service user interests

and service providers need to combine the rights-based discourse that

identifies quality as well as quantity as essential with evidence that

services really can achieve it. Critical in this will be redefining the role of

front-line staff as skilled enablers of user participation and development.

This implies a much more empirical approach to justifying service

development. It means judging services by their results, not by the

intentions of those who set them up. It means rediscovering the

educational and facilitative role of staff and shaping staff performance

through leadership and training. The goal is that one should be able to

take families, or politicians, to visit people with intellectual disabilities

living in the community and they should see something so strikingly

different from institutional care, so evidently skilful in the way it creates

opportunities in spite of complex needs, that they are unable to resist

giving it their support.
----
[[Follow this link to read more:|http://bauwe.tiddlyspace.com/#Personal-stuff]]
@maans
Hi Jon
I'm sure I was creating a public tiddler.
...But it seems it's ok now (I just checked and ''can save again''!!)...
...strange...
proxy:
93.189.5.138 8080

http://www.bbc.co.uk/iplayer/episode/b012hd0h/Gardeners_World_2011_2012_Episode_14/
/***
|''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);
//}}}
/%
!legal
|Name|TwitterTabs|
|Source|http://www.TiddlyTools.com/#TwitterTabs|
|Version|2.0.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|transclusion|
|Description|Find recent tweets by keyword or username and show results in tabs|
!end
- - - - - DO NOT EDIT ABOVE THIS LINE - - - - -


- - - - - TABSET SECTION - - - - -
!tabset
<<tabs txtTwitterTabs
'TiddlySpace'		'show tweets from @tiddlyspace'	[[TwitterTabs##TiddlySpace]]
'find...'		'find tweets containing...'	[[TwitterTabs##search]]
'from...'		'show tweets from...'		[[TwitterTabs##user]]
'TwitterTabsInfo'	'documentation for TwitterTabs' [[TwitterTabs##info]]
>>
!TiddlySpace
<<tiddler [[TwitterTabs##showUserResults]] with: TiddlySpace>>
!end

- - - - - TWEETFORMAT SECTION - - - - -
reminder: %0=image, %1=name, %2=text, %3=timestamp
!tweetformat
@@font-size:8pt;display:block;line-height:110%;
~~[<img[%0]]''[[%1|http://twitter.com/%1]] //%3//:''~~
 %2 {{tagClear{
}}}@@
!end


- - - - - DO NOT EDIT BELOW THIS LINE - - - - -
!info
<<tiddler TwitterTabs##legal>>Usage
<<<
{{{
<<tiddler TwitterTabs>>
}}}
<<<
Configuration
<<<
Copy TwitterTabs into your document. Then, ''edit the tiddler to suit your preferences'' by adding/removing definitions from the ''tabset'' and related sections:<<tiddler TwitterTabs##showcode with: tabset>><<tiddler TwitterTabs##showcode with: tiddlytools>><<tiddler TwitterTabs##showcode with: jermolene>>You can also customize the appearance of the individual tweets by editing the ''tweetformat'' section, which uses //replacement markers// to insert values extracted from each tweet returned by Twitter's search results, where ''%0=user image, %1=user name, %2=tweet content,'' and ''%3=tweet timestamp''<<tiddler TwitterTabs##showcode with: tweetformat>>The most recently entered 'find... and 'from... search terms are automatically saved as TiddlyWiki cookie-based option values.  You can override these values by placing the following statements into a tiddler tagged with 'systemConfig'.  Each time you reload your document, the default inputs will be reset to these hard-coded values, rather than using the last value entered.
{{{
config.options["txtTweetSearch"]="search text";
config.options["txtTweetUser"]="username";
}}}
!showcode
<<tiddler TwitterTabs##out with: {{'!$1\n'+store.getTiddlerText('TwitterTabs##$1').replace(/\n\}\}\}/g,'\n}\}\}')}}>>
!out
{{{
$1
}}}
!end

!search
<<tiddler [[TwitterTabs##showSearchForm]] with: {{config.options.txtTweetSearch||'TiddlyWiki'}}>>
!user
<<tiddler [[TwitterTabs##showUserForm]] with: {{config.options.txtTweetUser||'TiddlyWiki'}}>>
!end

!showSearchForm
{{small smallform{
search for tweets containing: <<option {{config.options.txtTweetSearch='$1';'txtTweetSearch'}}>><html>
<nowiki><input type='button' value='search' onclick="
	var target=this.parentNode.parentNode.parentNode;
	var out='\<\<tiddler [[TwitterTabs##showSearchForm]] with: {{config.options.txtTweetSearch}}\>\>';
	removeChildren(target); wikify(out,target); return false;
"></html>@@display:block;white-space:normal;<<tiddler [[TwitterTabs##showSearchResults]]
	with: {{config.options.txtTweetSearch}}>>@@}}}
!end

!showUserForm
{{small smallform{
show tweets from: <<option {{config.options.txtTweetUser='$1';'txtTweetUser'}}>><html>
<nowiki><input type='button' value='search' onclick="
	var target=this.parentNode.parentNode.parentNode;
	var out='\<\<tiddler [[TwitterTabs##showUserForm]] with: {{config.options.txtTweetUser}}\>\>';
	removeChildren(target); wikify(out,target); return false;
"></html>@@display:block;white-space:normal;<<tiddler [[TwitterTabs##showUserResults]]
	with: {{config.options.txtTweetUser}}>>@@}}}
!end

!showSearchResults
<<tiddler TwitterTabs##callback>>{{toolbar{<html><a href='javascript:;' onclick="
	var target=this.parentNode.parentNode.parentNode;
	var out='<<tiddler [[TwitterTabs##showSearchResults]] with: [[$1]]>>';
	removeChildren(target); wikify(out,target); return false;
">refresh</a><nowiki></html>}}}~~__[[Recent tweets about: "$1"|http://search.twitter.com/search?q=$1]]__~~
<hr>@@display:block;height:20em;overflow:auto;<<tiddler {{
	window.twitterPlace=null;
'';}}>><<tiddler {{
	if (!window.twitterPlace) { window.twitterPlace=place;
		place.innerHTML='connecting to twitter.com...';
		var s=document.createElement("script");
		s.src="http://search.twitter.com/search.json?q=$1&rpp=25&callback=twitterCallback";
		document.body.appendChild(s);
		document.body.removeChild(s);
	}
'';}}>>@@@@display:block;text-align:right;^^scroll for more...^^@@
!end

!showUserResults
<<tiddler TwitterTabs##callback>>{{toolbar{<html><a href='javascript:;' onclick="
	var target=this.parentNode.parentNode.parentNode;
	var out='<<tiddler [[TwitterTabs##showUserResults]] with: [[$1]]>>';
	removeChildren(target); wikify(out,target); return false;
">refresh</a><nowiki></html>}}}~~__[[Recent tweets from $1|http://twitter.com/$1]]__~~
<hr>@@display:block;height:20em;overflow:auto;<<tiddler {{
	window.twitterPlace=null;
'';}}>><<tiddler {{
	if (!window.twitterPlace) { window.twitterPlace=place;
		place.innerHTML='connecting to twitter.com...';
		var s=document.createElement("script");
		s.src="http://twitter.com/statuses/user_timeline/$1.json?callback=twitterCallback";
		document.body.appendChild(s);
		document.body.removeChild(s);
	}
'';}}>>@@@@display:block;text-align:right;^^scroll for more...^^@@
!end

!callback
<<tiddler {{
window.twitterCallback=function(data){ // data object returned from twitter.com
	var fmt=store.getTiddlerText('TwitterTabs##tweetformat');
	if (data.results) data=data.results; // for SEARCH results
	removeChildren(window.twitterPlace);
	for (var i=0; i<data.length; i++) { var item=data[i];
		var img=item.user? item.user.profile_image_url : item.profile_image_url;
		var who=item.user? item.user.screen_name : item.from_user;
		wikify(fmt.format([img,who,item.text,item.created_at]),window.twitterPlace);
	}
}
'';}}>>
!end

%/<<tiddler {{tiddler&&tiddler.title=='TwitterTabs'?'HideTiddlerBackground':''}}>>/%
%/<<tiddler {{tiddler&&tiddler.title=='TwitterTabs'?'HideTiddlerTags':''}}>>/%
%/<<tiddler TwitterTabs##tabset>>
''Thanks for fixing.
Both @singletiddler and @ganalytics are working fine now!''
----
On one of my spaces ( @howtoos ) the @ganalitics space disables the @singletiddler space.
In the space are included:
system-plugins
system-info
system-images
system-theme
inclusionsort
website
basalt
singletiddler

When I include ganalytics the singletiddler function is not working.
Sorting the inclusion order does not help either.

A manual copy of the ~CustomTrackerPlugin results in the same issue. 

Are there any known conflicts between these two plugins/spaces?
[[Projects]]<<setIcon http://www.clker.com/cliparts/1/u/d/Z/I/c/speech-bubble-md.png "width:100px;height:100px" notext>>

A compact igneous rock, of gray to black colour, consisting chiefly of lime-feldspar, augite and iron embedded in glass or crystallites; igneous rock, blackish, very compact and extremely hard.
in reply to @jermolene:
<<<
Hello to @bauwebijl good to see you on @tiddlyspace
<<<
Hi
...I still had to reply (and checked reply with a private-tiddler)
----
A while later.....
And forgot after that so now the tiddler is published
----
And today.....lol...
I found myself replying to @jeremy
ok thats solved.... ;-)
/*{{{*/
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 .modifierIcon img,
.viewRevision .modifierIcon svg {
	margin-right: 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,
	.followPlaceHolder,
	#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]]
in reply to @matias:
<<<
Type the text for 'TestHello'
<<<

yeah!!!
hey hello
Thanks for fixing B-)
----
Jon,
I'm interested in the tagcloud (still looking for a replacement of {{{<<allTags>>}}} ).
But it shows an error in firefox....safari shows the cloud ok!.
I report this just in case you are you are not aware of this and hope it will be fixed.
Hi this is my new journal.
!!!This is the "Headless" ~TiddlySpace-theme
;Features:
*The header is minimized (just some space for the search box)
*The SiteTitle and SiteSubtitle are in a "hidden" state (not visible in the header but visible in the browser frame/search results).
*Sidebartabs are attached to a slider and act in the "mainmenu" (leaving more space for the tiddler).
*Tabs are inline with the SideBarOptions. 
!!!Installation
;Automatic:
Add the @headless space to your TiddlySpace with the include-mechanism (and continue with adjusting the SiteTitle and SiteSubtitle as described below)
;Manual:
*Copy the HeadlessTheme tiddler to your ~TiddlySpace
*Create a tiddler ''zzConfig'' with inside: {{{config.options.txtTheme = "HeadlessTheme";}}}
*Add the tag {{{systemConfig}}} to the ''zzConfig'' tiddler
!!!Adjust the SiteTitle and SiteSubtitle with css to prevent displaying the text:
{{{@@display:none;YOUR-TITLE-HERE@@}}} (the browserframe will still show them)
*Copy the following colors to your ''~ColorPalette''-tiddler:
/*{{{*/
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #04b
PrimaryDark: #014
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #639
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
/*}}}*/
!!!Changes:
;11-11-2010
:Added "replyLink" to the ~ViewTemplate
Enjoy!
(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);
If you like to hack on the android os (or simply validate sites with android) and don't have a tablet or other device...you might try android(x86) from here: http://www.android-x86.org
I use the generic iso:
[[genericiso|http://android-x86.moonman.dk/index.php?folder=Z2VuZXJpYw==]]
Works on real iron as live boot (or installed)
...here installed on vm...
Have fun!
Sender:
E/
E-
E\
Receiver: 
/3
-3
\3
|!~TiddlySpace:|!Hoster:|!Dropbox:|!~TiddlySpot:|
|<<tiddler MyTiddlySpaceProjects>>|<<tiddler TiddlyWeb>>|some more|
<<MySpaces>>
<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>
/***
|''Name''|TiddlySpaceFollowingWizard|
|''Version''|0.7.0|
|''Description''|Provides a following wizard macro and deleteButton view type|
|''Author''|Jon Robson|
|''Requires''|TiddlySpaceConfig TiddlySpaceFollowingPlugin TiddlySpaceTiddlerIconsPlugin|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
!Usage
{{{ <<followWizard>> }}}
!StyleSheet
.followWizard ul,
.followWizard li .siteIcon,
.followWizard li {
	list-style: none;
	display: inline-block;
}

.followWizard li {
	margin-right: 8px;
	background-color: #eee;
	-moz-border-radius: 5px;
	-webkit-border-radius: 5px;
	padding: 4px;
}
!Code
***/
//{{{
(function($) {

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

var shadows = config.shadowTiddlers;
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>> <<view title deleteButton>>";

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

var wizard = config.macros.followWizard = {
	locale: {
		mission: "Which user or space would you like to follow?",
		badpermissions: "Only members of the space can maintain followers.",
		follow: "follow"
	},
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		var locale = wizard.locale;
		var container = $("<div />").addClass("followWizard").appendTo(place)[0];
		if(!readOnly) {
			var form = $("<form />").addClass("followForm").appendTo(container)[0];
			$("<span />").text(locale.mission).appendTo(form);
			var input = $("<input />").attr("name", "space").attr("type", "text").appendTo(form);
			$("<input />").attr("type", "submit").val(locale.follow).appendTo(form).click(function(ev) {
				wizard.addFollowing(ev, input.val());
				ev.preventDefault();
			});
		} else {
			$(container).addClass("annotation").text(locale.badpermissions);
		}
	},
	addFollowing: function(ev, space) {
		var name = tiddlyspace.resolveSpaceName(space);
		if(!name) {
			alert("That doesn't appear to be a valid space name. Please check and try again.");
			return;
		}
		var title = "@" + name;
		var tiddler = store.getTiddler(title);
		if(tiddler) {
			tiddler.tags.push("follow");
		} else {
			tiddler = new Tiddler(title);
			tiddler.tags.push("follow");
			merge(tiddler.fields, config.defaultCustomFields);
		}
		store.saveTiddler(tiddler);
		autoSaveChanges();
	}
};

config.macros.view.views.deleteButton = function(value,place,params,wikifier,paramString,tiddler) {
	var tid = store.getTiddler(value)
	if(tid && config.commands.deleteTiddler.isEnabled(tid)) {
		var handler = function(ev) {
			config.commands.deleteTiddler.handler(ev,ev.target,value);
		};
		createTiddlyButton(place, "X", "delete this tiddler", handler);
	}
};

})(jQuery);
//}}}
!Followers
<<followers>>
!Activity
[[Replies and Notifications]]

<<activity>>
!Following
All spaces tagged follow
<<list filter [tag[follow]][sort[title]]>>

<<followSuggestions>>
<<tiddler AboutMe>>
/***
|''Name''|BasaltTheme|
|''Source''|http://bauwebijl.tiddlyspace.com/#BasaltTheme|
|''Version:''|0.3|
|''Author:''|Bauwe Bijl|
|''Date:''|October 22nd, 2010|
|''License:''|[[BSD License|http://bauwebijl.tiddlyspace.com/#LegalStatements]]|
|''Comments:''|Please make comments at http://groups.google.nl/group/TiddlyWiki|
|''~CoreVersion:''|2.6.0|
|''Type''|CSS|
|''Description''|a ''~TiddlySpace'' theme: http://bauwebijl.tiddlyspace.com/#BasaltThemeInfo|
|''PageTemplate:''|##PageTemplate|
|''ViewTemplate:''|##ViewTemplate|
|''EditTemplate:''|##EditTemplate|
|''StyleSheet:''|##StyleSheet|
***/
!PageTemplate
<!--{{{-->
<div id='secondaryMenu' refresh='content' tiddler='SecMenu'></div>
<div class='header'>
	<div id='sidebarSearch'>
		<span macro='search search'></span>
	</div>
	<div class='headerForeground'>
		<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
		<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
	</div>
	<div class='clearFloat'></div>
</div>
<div id='menuBar'>
	<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
	<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
</div>
<div id='displayArea'>
	<div id='messageArea'></div>
	<div id='tiddlerDisplay'></div>
	<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<!--}}}-->
!ViewTemplate
<!--{{{-->
<div class='toolbar' 
	macro='toolbar [[ToolbarCommands::ViewToolbar]] icons:yes height:16 width:16 more:popup'>
</div>
<div class='title' macro='view title text'></div>
<div class='heading'>
	<span class='spaceSiteIcon' 
		macro='tiddlerOrigin label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
	</span>
	<span class="titleBar">		
		<div class="subtitle" macro='viewRevisions page:5'>
			last modified on
			<span macro="view modified date"></span>
		</div>
		<div macro="view title replyLink"></div>
	</span>
	<span class='followPlaceHolder' macro='followTiddlers'></span>
	<span class='modifierIcon'
		macro='view modifier SiteIcon label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
	</span>
	<div class='tagClear'></div>
</div>
<div class='content'>
	<div class='viewer' macro='view text wikified'></div>
</div>
<div class='tagInfo'>
	<div class='tidTags' macro='tags'></div>
	<div class='tagging' macro='tagging'></div>
</div>
<!--}}}-->
!EditTemplate
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]] icons:yes'></div>
<div class='editor title' macro='edit title'></div>
<div class='heading editorHeading'>
		<div class='tagClear'></div>
</div>
<div class='annotationsBox' macro='annotations'>
<div class='editSpaceSiteIcon' macro='tiddlerOrigin height:16 width:16 label:no'></div>
	<div class="privacyEdit" macro='setPrivacy label: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>
<!--}}}-->
!StyleSheet
/*{{{*/
[[StyleSheet]]
.siteTitle, .siteSubtitle, .siteTitle .tiddlyLink, .siteTitle .tiddlyLinkNonExisting, .siteSubtitle .tiddlyLink, .siteSubtitle .tiddlyLinkNonExisting { color:[[ColorPalette::LightGrey]];}
.header, .headerForeground { background-color:[[ColorPalette::MidGrey]];}
#secondaryMenu { height: 22px; background-color:[[ColorPalette::PrimaryLight]]; padding-left:72px; padding-top:7px; }
#secondaryMenu a, #secondaryMenu .tiddlyLink, #secondaryMenu .button { background-color:[[ColorPalette::PrimaryLight]]; color:[[ColorPalette::TertiaryLight]]; font-size:100%; padding:7px 5px; position: relative; border-right-width:1px; margin-right:1px; border-right-color:[[ColorPalette::MidGrey]]; border-right-style:solid; }
#secondaryMenu a:hover, #secondaryMenu .tiddlyLink:hover, #secondaryMenu .button:hover, #secondaryMenu .button:active, #secondaryMenu .highlight { color:[[ColorPalette::TertiaryLight]]; text-decoration:none; background-color:[[ColorPalette::HoverGrey]]; }
#menuBar { height: 17px; background-color: [[ColorPalette::PrimaryDark]]; border-bottom-style:solid; border-bottom-width: 5px; border-color: [[ColorPalette::PrimaryPale]]; }
#sidebarOptions a:active { background:[[ColorPalette::TertiaryPale]]; }
#menuBar a, #menuBar .tiddlyLink, #menuBar .button, #sidebarOptions a.button { color:[[ColorPalette::TertiaryMid]]; font-size:100%; padding: 8px 8px; position: relative; margin: 0px 1px 0px 0px; border-width: 0px 1px 0px 0px; border-right-color:[[ColorPalette::PrimaryPale]]; border-right-style:solid; }
#menuBar a:hover, #menuBar .tiddlyLink:hover, #menuBar .button:hover, #menuBar .button:active, #menuBar .highlight, #sidebarOptions a.button:hover, #sidebarOptions a:active { color:[[ColorPalette::PrimaryLight]]; text-decoration:none; background-color:[[ColorPalette::TertiaryPale]]; }
#sidebarOptions { height:29px; margin-top:-4px; }
#sidebarOptions a.button { font-size:80%; top:-4px; height:17px; border-bottom-width:0; border-top-width:0; border-left-width:0; margin-left: 0; }
.tiddler .title { background-color: [[ColorPalette::TertiaryLight]]; padding:7px 7px 7px 7px; margin-top:none; border-width:1px 0px 1px 0px; border-top-color: [[ColorPalette::TertiaryPale]]; border-top-style:solid; border-bottom-color: [[ColorPalette::Foreground]]; border-bottom-style:solid; }
.tiddler { position: relative; -moz-box-shadow: 2px 2px 8px black;	-webkit-box-shadow: 2px 2px 8px black;	filter: progid: DXImageTransform.Microsoft.Shadow(color='#000000', Direction=135, Strength=3); box-shadow: 2px 2px 8px black; border-color:[[ColorPalette::Foreground]]; border-width:1px; border-style:solid; padding: 0px 0px 0px 0px; margin-bottom: 20px; }
.tiddler .viewer { margin: 0 72px 0 72px; line-height: normal; padding-bottom:16px; }
body, .tiddler { background-color:[[ColorPalette::TertiaryPale]]; }
div.toolbar { height:30px; padding-top:10px; top:-5px; right:-6px; visibility:visible; }
.tiddler .toolbar .button { padding:6px 6px 2px 6px; margin:1px 6px 0 0; -moz-border-radius:24px 24px 24px 24px / 24px 24px 24px 24px; background:-moz-linear-gradient(center top ,[[ColorPalette::TertiaryPale]], [[ColorPalette::TertiaryMid]]) repeat scroll 0 0 transparent; border:1px solid [[ColorPalette::MidGrey]] !important; -webkit-border-radius:14px; background: -webkit-gradient(linear, center bottom, center top, color-stop(0, [[ColorPalette::TertiaryMid]]), color-stop(1, [[ColorPalette::TertiaryPale]])); }
.tiddler .toolbar .button:hover { padding:6px 6px 2px 6px; margin:1px 6px 0 0; -moz-border-radius:24px 24px 24px 24px / 24px 24px 24px 24px; background:-moz-linear-gradient(center top ,[[ColorPalette::TertiaryPale]], [[ColorPalette::TertiaryMid]]) repeat scroll 0 0 transparent; -webkit-border-radius:14px; background: -webkit-gradient(linear, center bottom, center top, color-stop(0, [[ColorPalette::TertiaryMid]]), color-stop(1, [[ColorPalette::TertiaryPale]])); border:1px solid [[ColorPalette::Foreground]] !important; }
.tiddler .toolbar .button:active { -moz-box-shadow:0px 2px 8px 0.1px black inset; -webkit-box-shadow: 0px 2px 8px 0.1px black inset; filter: progid:  DXImageTransform.Microsoft.Shadow(color='#000000', Direction=90, Strength=1); box-shadow: inset 0px 2px 8px 1px black; }
.toolbar { padding: 7px 7px 0px 0px; }
.toolbar svg .glyph, .toolbar a:hover .glyph, .toolbar a:active .glyph { fill: #111; }
.toolbar svg { height: 15px; width: 15px; }
.heading { margin-right: 7px;  margin-left: 7px; }
#sidebarTabs .tabsetWrapper .tabset .tab { color:[[ColorPalette::TertiaryMid]]; background-color: [[ColorPalette::MidGrey]];}
#sidebarTabs .tabsetWrapper .tabset .tabSelected, 
#sidebarTabs .tabsetWrapper .tabset .tabSelected:hover { color:[[ColorPalette::PrimaryMid]]; background-color:[[ColorPalette::PrimaryDark]]; border-color: [[ColorPalette::PrimaryDark]];}
#sidebarTabs .tabsetWrapper .tabset a:hover { color: [[ColorPalette::PrimaryLight]]; background-color:[[ColorPalette::TertiaryPale]];}
#sidebarTabs .tabsetWrapper .tabContents { border-color: [[ColorPalette::PrimaryDark]]; background-color:[[ColorPalette::PrimaryDark]];}
#sidebarTabs .tabContents li a:hover { color: [[ColorPalette::SecondaryDark]]; background-color:[[ColorPalette::PrimaryDark]]; }
#sidebarTabs .tabContents li a { background-color:[[ColorPalette::PrimaryDark]]; margin-bottom:0;}
#sidebarTabs .timeline li.listTitle, #sidebarTabs .tabContents li {color: [[ColorPalette::TertiaryMid]]; background-color:[[ColorPalette::PrimaryDark]];}
#sidebarTabs .tabContents li, .tabContents .button, 
#sidebarTabs .tabsetWrapper .tabContents {color: [[ColorPalette::TertiaryMid]]; background-color:[[ColorPalette::PrimaryDark]];}
.tabContents .button:hover {color:[[ColorPalette::SecondaryDark]]; }
.tiddlyLinkNonExisting:hover, .tiddlyLinkExisting:hover { color:[[ColorPalette::SecondaryDark]]; background: none; }
.tagInfo {margin-left:0;}
/*}}}*/
I noticed the latest addition to the viewtemplate:
{{{		<div macro="view title replyLink"></div>
	</span>
}}}
And of cource I would like to add this feature to my themes.
But whats carefully created in my themes is ruined by adding the replylink.
(my toolbar moves down in @basalt @drop @howtoos......sigh)
Patently as I am I seriously consider rebuilding all themes so "reply" is included. But I already did such a rebuild when new-eee was replaced with lattice. And now my themes have several versions there is some more overhead (and annoyance).

//I silently fixed my button replacements when the {{{.tagInfo}}} was pruned back to a smaller size before//

''My options:''
*Leave the old themes as they are (loose compatibility with with new features added to tiddlyspace, and risk the themes are never ever used by others)
*Rebuild all themes (until the new change)
*Give up on the invitation to develop and create on ~TiddlySpace themes
----
!!!And later this evening....
I did change __all__  themes except the theme that's build on new-eee ( @bubble ) 
It was more or less an easy job after a correct placement in the viewtemplates. Nevertheless it took some time to implement and adjust.
This ''official'' theme-ing (<<tag theme>>), with info-tiddlers and revision/updates data, takes also some extra time (wonder if this is well spend time...)

@ @pmario :
Thanks for the reply and mental support. (I usually don't complain...it's just the lack of time)
Hi the new default theme brakes the "nieuwe tiddler" command-view in the @dutch .
Because of the length....... "new tiddler" fits.
Could this be fixed in the new-default-theme? Otherwise I have to put some styling with the translation to make it fit. But there might be others that run into a similar issue.
solution from @jon ...thanks!
Feedback for TspaceFromOutside
Best solution is to create a tiddler called HtmlJavascript with the following text:
{{{
http://htmljs.tiddlyspace.com/jquery.js
http://htmljs.tiddlyspace.com/htmljs-wikiupgrade.js
}}}
This will add an annotation to the top of the page pointing to the correct link and won't assume too much of what the reader's intentions are.
----
I found an issue on some tiddlyspace's which I hope can be solved...

This is related to readers/visitors that come from outside via a google search for example (but also via links on space feeds)
It is hard to reproduce the issue but I try to give some directions to experience this.

lets go to googlesearch and look for:
osx-10.5.4 acer
pick the link to howtoos.nl ... hosted on tiddlyspace (it's on the first page here)
This will bring you to http://www.howtoos.nl/osx-10.5.4 (html-space)
When people click the article-tiddler-title they will get to the @howtoos space
But...if they don't know this they probably will check the collection link (...in this collection):
http://www.howtoos.nl/recipes/howtoos_public/tiddlers
to view what else is available...
(clicking a title will give them a html-tiddler again)
...so far so good...

Issue...
When people use the link to "wiki" they will get to see a proper tiddlyspace with the intended theme...
But when they use this wiki-link to get to tiddlyspace after viewing other articles via html-tiddlers they will get a space that is "broken" (colorpalette is rendered but the space looks broken/damaged)
they will see the bags wiki:
http://www.howtoos.nl/bags/howtoos_public/tiddlers.wiki
while the recipes wiki shows properly
http://www.howtoos.nl/recipes/howtoos_public/tiddlers.wiki#Welcome

This is the same with clicking a title in feeds.
Lets play with @pmario
http://pmario.tiddlyspace.com/
Click the feed icon in the navigation toolbar to go to the feed.
click a title (you get the html tiddler)>
http://pmario.tiddlyspace.com/bags/pmario_public/tiddlers/Projects
for example...>
click "this collection of tiddlers" (you go here:  http://pmario.tiddlyspace.com/bags/pmario_public/tiddlers )
click wiki (this list of tiddlers as "wiki"):
you go here :
http://pmario.tiddlyspace.com/bags/pmario_public/tiddlers.wiki
while this looks better:
http://pmario.tiddlyspace.com/recipes/pmario_public/tiddlers.wiki

Question...is it possible to always go to recipes instead of bags?
...or some other solution...
Test hello

hello again
/***
|Name|SVGEditorPlugin|
|Description|Provides gui editing for svg files using svg-edit|
|Version|0.1.4|
***/
//{{{
(function($){

var _saveTiddler = TiddlyWiki.prototype.saveTiddler;
TiddlyWiki.prototype.saveTiddler = function(title, newTitle, newBody, modifier,
		modified, tags, fields, clearChangeCount, created, creator) {
	var el = $(story.findContainingTiddler(story.getTiddler(title)));
	var iframe = fields && fields._iframe ? document.getElementById(fields._iframe) : $("iframe", el)[0];
	if(iframe) {
		newBody = config.macros.svgedit.save(iframe);
	}
	return _saveTiddler.apply(this, [title, newTitle, newBody, modifier,
		modified, tags, fields, clearChangeCount, created, creator]);
};
var _edit = config.macros.edit.handler;
config.macros.edit.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	var field = params[0];
	var isSVGTiddler = tiddler && tiddler.fields["server.content-type"] && tiddler.fields["server.content-type"] == "image/svg+xml";
	var ctx = this;
	if(field == "text") {
		window.setTimeout(function() {
			var el = story.findContainingTiddler(place);
			isSVGTiddler = isSVGTiddler || $("[edit='server.content-type']", el).length > 0;
			if(isSVGTiddler) {
				config.macros.svgedit.render(place, tiddler);
			} else {
				_edit(place,macroName,params,wikifier,paramString,tiddler);
			}
		},  10);
	} else {
		_edit.apply(this, arguments);
	}
}
var macro = config.macros.svgedit = {
	handler: function(place, macroName, params, wikifier, paramString, tiddler){
		macro.render(place);
	},
	save: function(iframe) {
		var frameId = $(iframe).attr("id");
		var el = story.findContainingTiddler(iframe);
		var frame = window[frameId] || window.frames[frameId];
                var source = frame.svgCanvas.getSvgString();
		$("[edit=text]", el).val(source);
		return source;
	},
	id: function() {
		var last = this._id;
		last = last ? last + 1 : 1;
		this._id = last;
		return last;
	},
	render: function(place, tiddler) {
		var frameId = macro.id();
		var iframe = document.createElement("iframe");
		var src = "svg-editor";
		if(tiddler) {
		 src = "svg-editor?resource=/bags/%0/tiddlers/%1".format([tiddler.fields["server.bag"], tiddler.title]);
		}
		iframe.src = src;
		var width = $(place).width() || 750;
		var height = 400;
		iframe.setAttribute("width", width);
		iframe.setAttribute("height", height);
		iframe.setAttribute("edit-type", "svg-editing");
		var id = "svgeditor-%0".format([frameId]);
		iframe.setAttribute("id", id);
		iframe.setAttribute("name", id);
		$(place).append(iframe);
		if(!tiddler) {
			macro.saveAsButton(place, id);
		} else {
			$("<input />").attr("type", "hidden").attr("edit", "_iframe").val(id).appendTo(place);
			$("<input />").attr("type", "hidden").attr("edit", "text").appendTo(place);
			$("<input />").attr("type", "hidden").attr("edit", "server.content-type").val("image/svg+xml").appendTo(place);
		}
	},
	saveAsButton: function(place, frameId) {
		$("<button />").text("save as").click(function(e){
			var title = prompt("Please enter a name to save this tiddler as");
			if(title) {
				var newTiddler = new Tiddler(title);
				newTiddler.text = window.frames[frameId].svgCanvas.getSvgString();
				newTiddler.fields = {};
				merge(newTiddler.fields, config.defaultCustomFields);
				newTiddler.fields["server.content-type"] = "image/svg+xml";
				newTiddler = store.saveTiddler(newTiddler);
				autoSaveChanges(null, [newTiddler]);
			}
		}).appendTo(place);
	}
}
})(jQuery);
//}}}
The activity feed is best for sharing opinions on something. To make best use of it create a tiddler and tag it with a username you would like to share thought with on this subject.

For instance I might create a tiddler called [[Animal I'd least like to be stuck in a cage with]]. I might say 
<<<
I would least like to be stuck in a cage with a lion as it could tear me apart amongst other reasons.
<<<
I then tag it @matias to get @matias's attention to see what he think. This flags it in @matias's activity feed and tells him that I am interested in his thoughts. Of course @matias can ignore it, and if he is not using the activity feed feature he may not even know about the message. If he wants to respond all @matias then has to do is create his own tiddler [[Animal I'd least like to be stuck in a cage with]]. Matias might say
<<<
A lion would be not as bad as a great white shark... not only would you be stuck in a cage with it but you would  be underwater with a likelihood of drowning to increase suffering.
<<<
It's not over yet.. now I can refine my original post with the thoughts of Matias. I might think mm, @matias has got a point there with the water, but I think a crocodile would more likely eat me then a great white shark and I fancy my chances with the great white.

I then update my tiddler to say 
<<<
I would least like to be stuck in a cage with a crocodile as it could tear me apart amongst other reasons. A lion would also be scary however I'm not a good swimmer so would be less likely to be able to make an escape. A crocodile is worse than a shark as shark attacks on humans are rare, so I'd fancy my chances.
<<<

We continue replying this way revising our tiddlers till the process finishes and I have a tiddler which clearly explains the [[Animal I'd least like to be stuck in a cage with]] with very detailed reasoning.
I've been messing with this..
Created @seticonplugin space.
To use it:
Add @seticonplugin space
Create a new tiddler ''~TestNew''
inside {{{<<newJournal "DD MMM YYYY" "journal">>}}}
(which can be a customcommand too...like Tobias"s ''newhere'')
And create another tiddler:
''~SampleName''
With inside {{{<<tiddler TestNew>><<setIcon SiteIcon "" notext>>}}}
I used the site icon here because it's .png.....but...
it would be great to use svg.

html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, 
p, blockquote, pre, a, abbr, address, cite, code, del, dfn, em, 
img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, hr, 
dl, dt, dd, ol, ul, li, fieldset, form, label, legend, 
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figure, figcaption, hgroup, 
menu, footer, header, nav, section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
}

article, aside, canvas, figure, figure img, figcaption, hgroup,
footer, header, nav, section, audio, video {
	display: block;
}

a img {border: 0;}



/*	Typography presets
	------------------	*/

.gigantic {
	font-size: 123px;
	line-height: 132px;
	letter-spacing: -2px;
}

.huge, h1 {
	font-size: 76px;
	line-height: 84px;
	letter-spacing: -1px;
}

.large, h2 {
	font-size: 47px;
	line-height: 48px;
}

.bigger, h3 {
	font-size: 29px;
	line-height: 36px;
}

.big, h4 {
	font-size: 25px;
	line-height: 30px;
}

body {
	font: 18px/24px "Times New Roman", Times, serif;
}

.small, small {
	font-size: 13px;
	line-height: 18px;
}

/* Selection colours (easy to forget) */

::selection 	 	{background: rgb(255,255,158);}
::-moz-selection 	{background: rgb(255,255,158);}
img::selection 		{background: transparent;}
img::-moz-selection	{background: transparent;}
body {-webkit-tap-highlight-color: rgb(255,255,158);}



/*		Default Layout: 992px. 
		Gutters: 24px.
		Outer margins: 48px.
		Leftover space for scrollbars @1024px: 32px.
-------------------------------------------------------------------------------
cols    1     2      3      4      5      6      7      8      9      10
px      68    160    252    344    436    528    620    712    804    896    */

body {
	width: 896px;
	padding: 72px 48px 84px;
	background: rgb(232,232,232);
	color: rgb(60,60,60);
	-webkit-text-size-adjust: 100%; /* Stops Mobile Safari from auto-adjusting font-sizes */
}



/*		Tablet Layout: 768px.
		Gutters: 24px.
		Outer margins: 28px.
		Inherits styles from: Default Layout.
-----------------------------------------------------------------
cols    1     2      3      4      5      6      7      8
px      68    160    252    344    436    528    620    712    */

@media only screen and (min-width: 768px) and (max-width: 991px) {
	
	body {
		width: 712px;
		padding: 48px 28px 60px;
	}
}



/*		Mobile Layout: 320px.
		Gutters: 24px.
		Outer margins: 34px.
		Inherits styles from: Default Layout.
---------------------------------------------
cols    1     2      3
px      68    160    252    */

@media only screen and (max-width: 767px) {
	
	body {
		width: 252px;
		padding: 48px 34px 60px;
	}
	
}



/*		Wide Mobile Layout: 480px.
		Gutters: 24px.
		Outer margins: 22px.
		Inherits styles from: Default Layout, Mobile Layout.
------------------------------------------------------------
cols    1     2      3      4      5
px      68    160    252    344    436    */

@media only screen and (min-width: 480px) and (max-width: 767px) {
	
	body {
		width: 436px;
		padding: 36px 22px 48px;
	}
	
}


/*	Retina media query.
	Overrides styles for devices with a 
	device-pixel-ratio of 2+, such as iPhone 4.
-----------------------------------------------    */

@media 
	only screen and (-webkit-min-device-pixel-ratio: 2),
	only screen and (min-device-pixel-ratio: 2) {
	
	body {
	
	}
	
}
Jon...about my feedback before:
It seems firefox (3.6.18) does not show the formfields (chrome does..."name"+"again" etc.)
----
Hi Jon...
I had a look at the front...I like the styling...but about the login "note" I miss some things.
First as it is now:
*mouse over on both "Register" ... (and after I was logged in...the "Log Out"...)..."button"

{{{
cursor: pointer;
}}}
 
...or something similar...
*About "register"... if the order is turned then "or" can be used..like:
REGISTER--OR--OPENID 
(now the word "Register" seems like a promotion rather the a function (also because it's not a clear button)
...anyway...REGISTER--OR--OPENID //"yourself in"// seems more logic to me
*Perhaps it's an idea to use some sort of field indication so people can see it's a form instead of a empty part of paper...
How would it look as here where some folding lines on the paper so the form-fields are more visible?
@tscount
!!Welcome at Bauwe Bijl's space
<<slider chkHistory MyName "My name" "About my name">>
----
<<slider chkHistory KeyWords "Some keywords" "keywords">>
----
<<slider chkHistory More "More about me?" "read more about me">>
----

Lately when I surf to my space I get a message area with "here" (and a "close" function on top).
Happens while logged-in and logged-out.
Why is this? ... and what to do about this? (seems a meaningless popup to me)...

... I used the search function middle-top-backstage to find a/the answer for this ... but this jammed my firefox badly (had to force quit firefox here on osx)
/***
|''Name:''|TiddlySpaceIntraSpaceInclusion|
|''Description:''|Provides support for {{{<<tiddler Foo@bar>>}}} and {{{<<tiddler [[Foo]]@bar>>}}}|
|''Author:''|Jon Robson|
|''Source:''|https://github.com/jdlrobson/TiddlyWikiPlugins/raw/master/plugins/TiddlySpaceIntraSpaceInclusion/TiddlySpaceIntraSpaceInclusion.js|
|''Version:''|0.3.8a|
|''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|
***/
//{{{
(function() {
	var _tidtext = TiddlyWiki.prototype.getTiddlerText;
	var cache = {};

	// allmost the same regExp as in TiddlySpaceLinkPlugin but .. no "mg" parameter, because it didn't work for this usecase.
	config.textPrimitives.spacenameLinkRegExp = new RegExp(config.textPrimitives.unWikiLink + 
													 "?(" + config.textPrimitives.bareTiddlerLetter + "*)@(" + config.textPrimitives.spaceName + ")", "");
	config.textPrimitives.tiddlyLinkSpacenameLinkRegExp = new RegExp("\\[\\[(.*?)(?:\\|(.*?))?\\]\\]@(" + config.textPrimitives.spaceName + ")", "");
	
	TiddlyWiki.prototype.getTiddlerText = function(title, defaultText) {
		var ct = config.textPrimitives;
		var match = ct.spacenameLinkRegExp.exec(title);	// foo@bar
		var match2 = ct.tiddlyLinkSpacenameLinkRegExp.exec(title); 	// [[foo]]@bar
		
		if(match || match2) {
		//	console.log('inner: ', 'spacename: ', match, 'tiddlyLink: ', match2, 'place: ');
			var tidtitle, space;
			if(match[1] && match.length === 3) {
				tidtitle = match[1];
				space = match[2];
			} else if(match2 && match2.length === 4) {
				tidtitle = match2[1];
				space = match2[3];
			}
			var newtitle = tidtitle + "@" + space;
			if(tidtitle && space) {
				title = newtitle;
			}
			if(tidtitle && space && !store.getTiddler(newtitle)) {
				var tiddler = new Tiddler(title);
				// get the tiddler, where the macro is rendered. //XXX will need more testing
				var el = story.findContainingTiddler(place);
				var refreshTitle = (el) ? el.getAttribute('tiddler') : null;

				tiddler.text = "//retrieving from server//";
				tiddler.fields.doNotSave = "true";
				tiddler.tags = ["excludeLists", "excludeSearch", "excludeMissing"];
				merge(tiddler.fields, config.defaultCustomFields);
				tiddler.fields["server.bag"] = space + "_public";
				tiddler = store.addTiddler(tiddler);
				ajaxReq({ url: "/bags/" + space + "_public/tiddlers/" + tidtitle,
					dataType: "json",
					success: function(tid) {
						var tiddler = store.getTiddler(title);
						tiddler.text = tid.text;
						store.addTiddler(tiddler);
						// store.notify(title,true);
						story.refreshTiddler(refreshTitle,null,true);
						// story.refreshAllTiddlers(); // hacky but above link doesn't always seem to work!
					},
					error: function() {
						var tiddler = store.getTiddler(title);
						tiddler.text = "//error retrieving tiddler {{{" + title + "}}} from space @" + space + "//";
						store.addTiddler(tiddler);
						// store.notify(title,true);
						story.refreshTiddler(refreshTitle,null,true);
						// story.refreshAllTiddlers(); // hacky but above link doesn't always seem to work!
					}
				});
			}
		}
		return _tidtext.apply(this, [title, defaultText]);
	}
})();
//}}}

@alexhough
<<tiddler HtmlCss-changing>>
byod
<<activity show:reply show:notify>>
in reply to @jon:
<<<
See... Linking@bauwebijl
.... if you right click on this link and click open link in new tab you will get the permalink.
The following plugin comes packaged with [[ImportExternalLinksPlugin]]@following which upgrades these links to javascript links. If you don't like the links opening in your TiddlySpace you can disable this plugin in your space by editing ImportExternalLinksPlugin and removing the systemConfig tag.
<<<
hmmm
A rightclick on Linking@bauwebijl does not work...

But I'm also not sure if I formulated my issue properly.
Could you create a tiddler and put a link in it to NewLink@bauwe ?
So I can recheck and/or reformulate my question?

----
re-edit ...
I already checked by clicking the link myself....so you dont have create a tiddler...
But this link might show my issue....
<<closeAll>><<permaview>><<newTiddler>> <<newTiddler fields:"server.content-type:image/svg+xml" label:"new image">>
/***
|''Name''|TiddlySpaceFollowingSuggestions|
|''Version''|0.2.5dev|
|''Description''|Provides a following macro|
|''Author''|Jon Robson|
|''Requires''|TiddlySpaceFollowingPlugin|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
!Usage

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

var tweb = config.extensions.tiddlyweb;
var tiddlyspace = config.extensions.tiddlyspace;
var followMacro = config.macros.followTiddlers;

var followSuggestions = config.macros.followSuggestions = {
	cache: {},
	handler: function(place, macroName, params) {
		// to do - limit results
		place = $('<div class="suggestions" />').appendTo(place)[0];
		var currentSpace = tiddlyspace.currentSpace.name;
		var user = params[0] || currentSpace;
		var pleaseWait = $("<div class='loading' />").text("please wait..").appendTo(place);
		tweb.getUserInfo(function(activeUser) {
			if(activeUser.name != tiddlyspace.currentSpace.name) {
				pleaseWait.hide();
				return;
			}
			followMacro.getFollowers(function(users) {
				// suggestions are followers of people that you follow that you don't follow
				var bags = followMacro._getFollowerBags(users);
				var _bags = [];
				for(var i = 0; i < bags.length; i++) {
					_bags.push("bag:%0".format([bags[i]]));
				}
				var bagString = _bags.join(" OR ");
				ajaxReq({
					beforeSend: followMacro.beforeSend,
					url: "/search?q=(%0)&select=title:!%1&select=title:!@%1".format([bagString, activeUser.name]),
					dataType: "json",
					success: function(tiddlers) {
						pleaseWait.hide();
						var suggestions = [];
						for(var i = 0; i < tiddlers.length; i++) {
							var tiddler = tiddlers[i];
							if(tiddler.tags.contains("follow")) {
								var title = tiddler.title;
								if(title.indexOf("@") === 0) {
									title = title.substr(1);
								}
								if(!users.contains(title)) {
									suggestions.pushUnique(title);
								}
							}
						}
						$(place).append("<div>suggestions:</div>");
						var suggestionArea = $("<div class='suggestionArea' />").appendTo(place)[0];
						var id = "more_%0".format([Math.random()]);
						var more = $("<div class='moreButton' />").text("more...").appendTo(place).attr("id", id);
						followSuggestions.cache[id] = suggestions;
						var limit = suggestions.length;
						more.click(function(ev) {
							var suggestions = config.macros.followSuggestions.cache[id];
							var newSuggestions = followSuggestions.suggest(place, suggestions, limit);
							config.macros.followSuggestions.cache[id] = newSuggestions;
						});
						followSuggestions.suggest(place, suggestions, limit);
					
					}
				});
			
			}, user);
		});
	},
	randomize: function(a, b) {
		if(Math.random() < Math.random()) {
			return -1;
		} else {
			return 1;
		}
	},
	suggest: function(place, suggestions, limit) {
		var currentSpace = tiddlyspace.currentSpace.name;
		suggestions = suggestions.sort(followSuggestions.randomize);
		var suggestionsArea = $(".suggestionArea", place)[0];
		if(suggestions.length === 0) {
			$("<span />").text("no suggestions..").appendTo(suggestionsArea);
			return;
		}
		limit = limit < suggestions.length ? limit : suggestions.length;
		for(var j = 0; j < limit; j++) {
			var link = $("<span />").appendTo(suggestionsArea)[0];
			var title = suggestions[j];
			var newTiddler = '@%0 <<newTiddler title:"@%0" fields:"server.workspace:bags/%1_public" tag:follow label:"follow">>\n'.format([title, currentSpace]);
			wikify(newTiddler, link);
		}
		var newSuggestions = suggestions.slice(limit, suggestions.length);
		var more = $(".moreButton", place);
		if(newSuggestions.length == 0) {
			more.remove();
		}
		return newSuggestions;
	}
};
})(jQuery);
//}}}
<<tiddler Mailto with:bauwebijl>>
I created a contact form to experiment with email.
I didn't want to use php mailer scripts on a server somewhere else and since most of the guy's here do have a google account it seems logical to explore that path.
!What I did:
#Go here: http://www.google.com/ig/adde?synd=open&moduleurl=www.formlogix.com/Gadgets/Contact_Us_V1_Form_Gadget.xml
#Click the button to add the form to iGoogle
#Your gmail gives access to iGoogle (gmail>top-left>''web'')
#When the contact-form is added in iGoogle, fill in an email address in the edit-settings.
#The form is functional now
#Right-click and select >this Frame>show only this frame
#Copy the url in an iframe in your ''Contact tiddler''
Like [[this example here|Contact]]
Type the text for 'tobibeer'
Jon...
The gradient in the html presentation is covering the enhance this page note...
...no access to the link...
Perhaps adding 
.gradient {
    margin-top: 80px;
}
to:
http://htmljs.tiddlyspace.com/htmljs-wikiupgrade.js
is a solution??

example: http://howtoos.tiddlyspace.com/bags/howtoos_public/tiddlers/acer-aspire

Bauwe
cdent
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
@sietske
<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>
config.options.txtTheme = "BasaltTheme";
config.evaluateMacroParameters = "full";
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
/***
|''Name''|DropTheme|
|''Source''|http://bauwebijl.tiddlyspace.com/#DropTheme|
|''Version:''|0.2|
|''Author:''|Bauwe Bijl|
|''Date:''|October 22nd, 2010|
|''License:''|[[BSD License|http://bauwebijl.tiddlyspace.com/#LegalStatements]]|
|''Comments:''|Please make comments at http://groups.google.nl/group/TiddlyWiki|
|''~CoreVersion:''|2.6.0|
|''Type''|CSS|
|''Description''|a ''~TiddlySpace'' theme: http://bauwebijl.tiddlyspace.com/#DropThemeInfo|
|''PageTemplate:''|##PageTemplate|
|''ViewTemplate:''|##ViewTemplate|
|''EditTemplate:''|##EditTemplate|
|''StyleSheet:''|##StyleSheet|
***/
!PageTemplate
<!--{{{-->
<div id='secondaryMenu' refresh='content' tiddler='SecMenu'></div>
<div class='header'>
	<div id='sidebarSearch'>
		<span macro='search search'></span>
	</div>
	<div class='headerForeground'>
		<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
		<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
	</div>
	<div class='clearFloat'></div>
</div>
<div id='menuBar'>
	<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
	<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
</div>
<div id='displayArea'>
	<div id='messageArea'></div>
	<div id='tiddlerDisplay'></div>
	<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<!--}}}-->
!ViewTemplate
<!--{{{-->
<div class='toolbar' 
	macro='toolbar [[ToolbarCommands::ViewToolbar]] icons:yes height:16 width:16 more:popup'>
</div>
<div class='title' macro='view title text'></div>
<div class='heading'>
	<span class='spaceSiteIcon' 
		macro='tiddlerOrigin label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
	</span>
	<span class="titleBar">		
		<div class="subtitle" macro='viewRevisions page:5'>
			last modified on
			<span macro="view modified date"></span>
		</div>
<div macro="view title replyLink"></div>
</span> 
	<span class='followPlaceHolder' macro='followTiddlers'></span>
	<span class='modifierIcon'
		macro='view modifier SiteIcon label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
	</span>
	<div class='tagClear'></div>
</div>
<div class='content'>
	<div class='viewer' macro='view text wikified'></div>
</div>
<div class='tagInfo'>
	<div class='tidTags' macro='tags'></div>
	<div class='tagging' macro='tagging'></div>
</div>
<!--}}}-->
!EditTemplate
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]] icons:yes'></div>
<div class='editor title' macro='edit title'></div>
<div class='heading editorHeading'>
		<div class='tagClear'></div>
</div>
<div class='annotationsBox' macro='annotations'>
<div class='editSpaceSiteIcon' macro='tiddlerOrigin height:16 width:16 label:no'></div>
	<div class="privacyEdit" macro='setPrivacy label: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>
<!--}}}-->
!StyleSheet
/*{{{*/
[[StyleSheet]]
#secondaryMenu { height: 22px; background-color:[[ColorPalette::PrimaryLight]]; padding-left:72px; padding-top:7px; }
#secondaryMenu a, #secondaryMenu .tiddlyLink, #secondaryMenu .button { background-color:[[ColorPalette::PrimaryLight]]; color:[[ColorPalette::PrimaryMid]]; font-size:100%; padding:7px 5px; position: relative; border-right-width:1px; margin-right:1px; border-right-color:[[ColorPalette::PrimaryMid]]; border-right-style:solid; }
#secondaryMenu a:hover, #secondaryMenu .tiddlyLink:hover, #secondaryMenu .button:hover, #secondaryMenu .button:active, #secondaryMenu .highlight { color:[[ColorPalette::PrimaryMid]]; text-decoration:none; background-color:[[ColorPalette::PrimaryPale]]; }
#menuBar { height: 17px; background-color: [[ColorPalette::PrimaryDark]]; border-bottom-style:solid; border-bottom-width: 5px; border-color: [[ColorPalette::PrimaryPale]]; }
#sidebarOptions a:active { background:[[ColorPalette::Background]]; }
#menuBar a, #menuBar .tiddlyLink, #menuBar .button, #sidebarOptions a.button { color:[[ColorPalette::PrimaryPale]]; font-size:100%; padding: 8px 8px; position: relative; margin: 0px 1px 0px 0px; border-width: 0px 1px 0px 0px; border-right-color:[[ColorPalette::PrimaryPale]]; border-right-style:solid; }
#menuBar a:hover, #menuBar .tiddlyLink:hover, #menuBar .button:hover, #menuBar .button:active, #menuBar .highlight, #sidebarOptions a.button:hover{ color:[[ColorPalette::PrimaryDark]]; text-decoration:none; background-color:[[ColorPalette::Background]]; }
#sidebarOptions { height:29px; margin-top:-4px; }
#sidebarOptions a.button { font-size:80%; top:-4px; height:17px; border-bottom-width:0; border-top-width:0; border-left-width:0; margin-left: 0; }
.heading { margin-right: 7px;  margin-left: 7px; }
.tiddler .viewer { margin: 0 72px 0 72px; line-height: normal; padding-bottom:16px; }
.tiddler .title { background-color: [[ColorPalette::PrimaryPale]]; padding:7px 7px 7px 7px; margin-top:none; border-width:1px 0px 1px 0px; border-top-color: [[ColorPalette::Background]]; border-top-style:solid; border-bottom-color:[[ColorPalette::Foreground]]; border-bottom-style:solid; }
.tiddler { position: relative; -moz-box-shadow: 2px 2px 8px black; -webkit-box-shadow: 2px 2px 8px black; 	filter: progid: XImageTransform.Microsoft.Shadow(color='#000000', Direction=135, Strength=3); box-shadow: 2px 2px 8px black; border-color:[[ColorPalette::Foreground]]; border-width:1px; border-style:solid; padding: 0px 0px 0px 0px; margin-bottom: 20px; } 
div.toolbar { height:30px; padding-top:10px; top:-5px; right:-6px; visibility:visible; }
.tiddler .toolbar .button { padding:6px 6px 2px 6px; margin:1px 6px 0 0; -moz-border-radius:24px 24px 24px 24px / 24px 24px 24px 24px; background:-moz-linear-gradient(center top ,[[ColorPalette::TertiaryPale]], [[ColorPalette::TertiaryMid]]) repeat scroll 0 0 transparent; -webkit-border-radius:14px; background: -webkit-gradient(linear, center bottom, center top, color-stop(0, [[ColorPalette::TertiaryMid]]), color-stop(1, [[ColorPalette::TertiaryPale]])); border:1px solid [[ColorPalette::PrimaryMid]] !important; }
.tiddler .toolbar .button:hover { padding:6px 6px 2px 6px; margin:1px 6px 0 0; -moz-border-radius:24px 24px 24px 24px / 24px 24px 24px 24px; background:-moz-linear-gradient(center top ,[[ColorPalette::TertiaryPale]], [[ColorPalette::TertiaryMid]]) repeat scroll 0 0 transparent; -webkit-border-radius:14px; background: -webkit-gradient(linear, center bottom, center top, color-stop(0, [[ColorPalette::TertiaryMid]]), color-stop(1, [[ColorPalette::TertiaryPale]])); border:1px solid [[ColorPalette::PrimaryDark]] !important; }
.tiddler .toolbar .button:active { -moz-box-shadow:0px 2px 8px 0.1px black inset; -webkit-box-shadow: 0px 0px 5px 1px black inset; filter: progid:  DXImageTransform.Microsoft.Shadow(color='#000000', Direction=90, Strength=1); box-shadow: inset 0px 0px 5px 1px black; }
.toolbar { padding: 7px 7px 0px 0px; }
.toolbar svg .glyph, .toolbar a:hover .glyph, .toolbar a:active .glyph { fill: #111; }
.toolbar svg { height: 15px; width: 15px; }
.tagInfo {margin-left:0;}
/*}}}*/
<<popup BLOG [[<<tiddler Blog$))]]>><<popup TOOLS [[<<tiddler Tools$))]]>><<popup NEWS [[<<tiddler NEWS$))]]>>[[UsefulSpaces]]
@tiddlyworld
Hi
I noticed some change in the following list and I wonder if this is something that should be changed by the user or if this is some other issue.
Simple check:
I follow sietske ( @sietske ) and she follows me.
On my space the link is not in the followers tab...and also my link not at the followers tab on @sietske
in reply to @cdent:
<<<
Also, if you look at the web stats, most traffic right now comes from the UK and the Netherlands with fewer from the US than I would have expected.
<<<
Not just my ip I hope.....

<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>
/***
|''Name''|LoadMissingExternalTiddler|
|''Version''|0.1.0|
|''Author''|Jon Robson|
***/
//{{{
var _loadMissing = Story.prototype.loadMissingTiddler;
Story.prototype.loadMissingTiddler = function(title,fields,callback) {
	var matches = title.match(/([^\*]*) \*\(@([^\)]*)\)\*/);
	if(matches && matches.length > 0) {
		var sTitle = matches[1];
		var space = matches[2];		config.extensions.tiddlyspace.displayServerTiddler(story.getTiddler(title),
			sTitle, "bags/%0_public".format(space));
	} else {
	_loadMissing.apply(this, arguments)
	}
};
//}}}
/***
https://github.com/tiddlyweb/chrjs/raw/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));
//}}}
Hi
I was about to write some info about the oldwiki (and the transfer of information) on dot-org. I see many questions about this on the googlegroups.
But I got an error saving a new tiddler in @tiddlywiki
{{{"NetworkError: 403 Forbidden}}}
AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATIaBTAVXw54B2sHmwdrB5sNYxB4BUEhMQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALBcEKX5HCb+waAv/S6Ub/w62Dv8Otg7/HME5/w3ThP8JmlvABDgfKwAAAAAAAAAAAAAAAAAAAAAAAAAAPhkNQ6ZiDvK2cw7/u30R/3+hH/8VwhX/FcIV/yDRZf8T2ZX/ENaN/w/HfPMPVEtFAAAAAAAAAAAAAAAAKAgEIqMkC/C8Vx7/wIYW/8eTF/+3piP/HM8c/xzPHP8m35j/GuCn/xjcnf8i7dT/Defn8QU+PiQAAAAAAAAAAHQYCK62Mw7/wEgT/8x3JP/Spx//1bZM/4zViP+H1oj/UePC/yLmuP8p8d3/GPj4/xL39/8Kq6uwAAAAACUODByvKw/8vD8R/8dXF//SbR7/3beF/+fn5//n5+f/5+fn/+fn5/+J7eX/Jfr6/x35+f8V+Pj/D/T0/Qo2Nh5TBgpbuBsk/8MxLP/OTy3/24ZL//f39//4+Pj/+Pj4//j4+P/4+Pj/9/j4/0/3+v8p6/n/JNn4/x7B9/8IVX1eYQgNebcPHf/DFSz/0Bw7/+h/k//+/v7//v7+//7+/v/+/v7//v7+//7+/v+G6Pz/I9D6/xrE+P8St/f/CGOPfGEIDXS3Dx3/wxUs/9AfPf/me5n/////////////////////////////////geT8/yXR+v8axPj/Erf3/wlhjXdNChFNuRxB/8MgZf/OIY7/2jOu//zy+f//////////////////////8/r+/zu7+/8op/r/JKL4/x+j9/8LSnJQDwIGDaYMUPO9Em3/yBiG/9Mgnv/LYtr/9+78////////////7/b+/2i7/P8nrfr/Hpn5/xaE+P8PaOr0AwodDwAAAABkCC2Ktw9h/8EXef+hJb//lyDe/6cv4/9tZ/r/ZWf8/zeW+/8mhvr/K4f5/xuN+P8Seff/CTyQjAAAAAAAAAAAEwMIDI8PR9KDH6z/bRXQ/34Z1v9+Jt//JCT6/yQk+v8qZ/r/Hmv5/xla+P8jZfj/EFrL1AMLHg0AAAAAAAAAAAAAAAAYDCgcOgubz1YQyf9kE83/UiLi/xsb+f8bG/n/JED4/xZQ+P8SQff/DSnF0AsSNx0AAAAAAAAAAAAAAAAAAAAAAAAAAAUCEAklCGh7Qgyt5zIf6f8SEvf/EhL3/x0k9/8RMtznCRqHfAIEFwkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsLDgkODql4CwvJmgsLyZoODql4FBQvHAAAAAAAAAAAAAAAAAAAAAAAAAAA8A+sQeAHrEHAA6xBgAGsQYABrEEAAKxBAACsQQAArEEAAKxBAACsQQAArEGAAaxBgAGsQcADrEHgB6xB+B+sQQ==
/***
|''Name''|BinaryUploadPlugin|
|''Version''|0.3.15|
|''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" /></div>').
			submit(function(ev) {
				this.target = iframeName;
				options.target = iframeName;
				macro.uploadFile(place, baseURL, workspace, options);
			});
		$('<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);
//}}}
in reply to @jon:
<<<
Putting a meta description tag in your MarkupPreHead tiddler
{{{
<meta name="description" content="Jon's personal space" />
}}}
allows you to control the text shown in google search results under your space name.

<<<

Thanks!! will do that
This week I migrated a drupal site to ~TiddlySpace.
The preparations where already started before with the development of a theme (mainly to test if this could be achieved).... @cement and the improved @basalt version.
Combined with @website theme and @singletiddler the target space was ready for "production".
I changed the cname on my dns service to point at the target space. (on the tiddlyspace side @cdent adjusted some config.......becomes available for users later!)

The space @howtoos is now available as ''howtoos.nl'' and ''www.howtoos.nl''.
|!Record-name|!CNAME|
|www.howtoos.nl|howtoos.nl|
|howtoos.nl|tiddlyspace.com|

The next day's/week will show how the space is re-indexed (the paths to the tiddlers, the old pages, are changed because of the # and [ [ ] ] )

But for now I'm very pleased with the results, a unimaginable goal a year ago is now a fact!

The links:
@howtoos (tiddlyspace link)
http://howtoos.nl/ (domain-name)
http://www.howtoos.nl/ (domain-name)
[[google|http://lmgtfy.com/?q=howtoos]] ;-)
<!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="write"><a href="/takenote">
								<img src="/bags/common/tiddlers/pencil_blue.png" alt="Icon for Takenote" class="app-img" />
								WRITE
								</a>
							</li>
							<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="links">
								<a href="/links">
									<img src="/bags/common/tiddlers/share_blue.png" alt="Icon for the Links App" class="app-img" />
									SHARE
								</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="writedesc"><p>write your notes on the web.  Link them, tag them, share them.  Your notes are available everywhere, on and offline.</p></li>
							<li class="htmlserialisationdesc"><p>an easy to understand HTML representation of your content.</p></li>
							<li class="linksdesc"><p>share direct links to your content. The share app provides you with quick and easy access to the key links within your TiddlySpace.</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>
!!Willem (heeft een ernstige verstandelijke beperking en) kiest zelf zijn broodbeleg. Door jou!
''“Vroeger dekten we de ontbijttafel als begeleiders. Met Active Support doet een aantal cliënten dat nu zelf. Dat is een leuke luxe”, zegt Cees de Greef met een glimlach. Sinds 2003 coacht hij begeleiders bij Woonvoorziening De Cimbaal in de methode Active Support.  “De bewoners genieten ervan. Willem kiest bijvoorbeeld tegenwoordig zelf zijn broodbeleg. Soms kijkt een bewoner je nog fronsend aan. ‘Mag dat echt?’, zie je hem dan denken. ‘Ja dat mag, dat heb je hartstikke goed gedaan’, zeggen we dan.”''

;Resultaten boeken
:Kijken naar wat mensen met ernstige verstandelijke beperkingen wél kunnen: dat doet Active Support. Dat vraagt om begeleiders die goed kunnen kijken, positief zijn, mensenkennis hebben én geduldig zijn. “En dan worden er echte resultaten geboekt. Het is fantastisch om te zien dat iemand zo vooruit gaat. Dan weet je als begeleider dat je echt het verschil kunt maken”, zegt Cees.

;Een eigen appartement
:Cees vertelt over Willem Doornkamp. Willem heeft een ernstig verstandelijke beperking en moeilijk verstaanbaar gedrag. Hij ziet weinig en heeft een autistische stoornis. “Vier jaar geleden zat Willem nog in een gesloten ruimte met tralies. Nu heeft hij een eigen appartement en gaat hij eens in de twee weken bij zijn broer in Driebergen op bezoek.

;Mijlpalen bereiken
:”Het was voor Willem bijvoorbeeld een hele opgave om van huis naar de taxibus te lopen.
Met Active Support hebben we toen de volledige route gedetailleerd beschreven: hoeveel voetstappen het is tot de deur, hoeveel stappen tot de bus. We legden ook vast waar de begeleider loopt en wat de begeleider tegen Willem zegt. Door die structuur kan Willem nu redelijk zelfstandig naar de auto lopen, terwijl we vroeger iedere pas moesten tellen.
Stap voor stap

Als begeleider moet je dus goed kijken naar wat iemand vraagt of aangeeft. Vervolgens breng je de vraag onder in een plan waarin wordt onderzocht wat de cliënt nog meer wil en kan. “Vroeger namen we bijvoorbeeld de koffiepot over als een cliënt die wilde pakken”, vertelt Cees, “tegenwoordig stimuleren we juist dat de cliënt zelf inschenkt. Er wordt wel gemorst, maar het gaat erom dat hij aangeeft iets te willen doen. Misschien wil hij wel leren koffiezetten. Als dat zo is, schrijven we een instructieplan waarin hij dit stap voor stap leert”.

;Mensenkennis en professionaliteit
:Behalve structuur aangeven is het bij Active Support ook belangrijk om los te laten. “Vroeger waren we toch allemaal een beetje Florence Nightingale. We wilden altijd maar helpen. Zo namen we bijna alle taken uit handen. Natuurlijk geven we nu nog alle steun en hulp, maar we onderzoeken nu wat de cliënt zelf kan. Je moet als begeleider kunnen vertrouwen op je mensenkennis en professionaliteit.”

;Elke dag is afwisselend
:Ook moet je creatief zijn. Je onderzoekt welke activiteiten een cliënt vraagt en wat hij zou kunnen leren, op welk niveau en met welk doel. “Dat zijn precies de kernvragen”, zegt Cees, “die elke dag weer afwisselend maken.”
<!--{{{-->
<div class='header'>
	<div id='sidebarSearch'>
		<span macro='search'></span>
	</div>
	<div class='headerForeground'>
		<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
		<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
	</div>
	<div class='clearFloat'></div>
</div>

<div id='menuBar'>
	<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
	<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
</div>
<div id='displayArea'>
	<div id='messageArea'></div>
	<div id='tiddlerDisplay'></div>
	<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<!--}}}-->
Type the text for 'bengillies'
<<tsScan mama tag:@news searchField:"modifier" template:"SearchTemplate">>
/***
|''Name''|TiddlySpaceInitialization|
|''Version''|0.7.2|
|''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 rel="shortcut icon" href="/recipes/%0_public/tiddlers/favicon.ico" />
<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);
	},
	setupMarkupPreHead: function() {
		var pubWorkspace = tiddlyspace.getCurrentWorkspace("public");
		var existing = store.getTiddler("MarkupPreHead");
		if(!existing || existing.fields["server.workspace"] != pubWorkspace) {
			tweb.getStatus(function(status) {
				var tid = new Tiddler("MarkupPreHead");
				tid.text = markupPreHead.format(currentSpace.name, tiddlyspace.getHost(status.server_host,
					currentSpace.name));
				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]);
			});
		}
	}
};

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

})(jQuery);
//}}}
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
in reply to @fnd:
<<<
after excessive and lengthy research, I've finally decided to buy [[AeroFly|http://www.aerofly.com]] (rather than [[RealFlight|http://www.realflight.com]], [[Reflex RTX|http://www.modelrectifier.com/rc-products/flight-simulators.asp]], [[Phoenix|http://www.phoenix-sim.com]] or [[PRE-Flight|http://www.preflightsim.com]]) - this better be worth it
<<<
Fred....
Once Falcon was famous for it's flightmodel......pilots of the f16 confirmed this (in fact the sim was scaring real and the flightmodels-software was not supposed to get to the consumers)

I fly with gliders and to stay current in the winterseason I use [[Condor|http://www.condorsoaring.com/]] (yes only for this purpose I do have a partition with xp...B-)
Can confirm from my own experience that it ain't that bad.

Happy [[ppl|http://en.wikipedia.org/wiki/Private_Pilot_License]]-g

(if you like it....mail me for the crack-code if needed ok!)
!!!20-5
<<<
@cdent :
For now observing seems to be our best defense against spam in the space, if we want to preserve the ability for all members to edit. Another option is to switch to having a "ask to be an editor" process in the tiddlywiki google group.
<<<
Yes simply by following the @tiddlywiki it is doable to monitor the space activity
..."ask to be an editor" ... the charm is that this is not needed now ... //how about a "portal" where members post a tiddler...viewable in @tiddlywiki but not "burned-in"...where a second member "aproves"...something like a shared publish responsibility. Where everybody can be the curator except on their own writings?//

<<<
I'm not sure how good any of these options are, as they would be non-problems if the content there was actively maintained and watched by a committed group of volunteers. That such a group does not exist suggests that a centralized wiki is not really needed or wanted. Is that too extreme a statement?
<<<
I think it's a great tool to answer to the groups with related links (that's how I use @tiddlywiki )
Also ...now it's on TiddlySpace I can imagine the combination with a av-member/robot (...just like the Drupalicon member #drupal (irc) spitting out plugin links when asked (besides saying hello), I miss that...)...content on @tiddlywiki needs to be top quality in such case...
!!!19-5
Hi...
Today I found that my edits (and spam-corrections) on @tiddlywiki where removed again. (not sure if this is a action from one of you?...since I had no report from that)
//...makes me think...why would someone put nonsense on tiddlywiki.org...since they can publish allover tiddlyspace with @news //
Is there any way for you guy's to block the notorious...so that tiddlywiki.org is free from crap and corrections remain?
The spam I saw yesterday (and removed) was a tiddler with some beach-story...created by a user with an empty tspace...(an ad-hoc account...to get access...I guess)
...thinking about how to avoid all this...
----
Hello
I found some spam tiddlers on org.
The {{{Tag Macro}}} tiddler was overwritten with some of-topic text...
I replaced this with the version before...however the title remained the same.
By renaming the title again I got a saving error.
Reloading the page...resulted in 2 tiddlers with the same title:
http://tiddlywiki.tiddlyspace.com/#[[Tag%20macro]]%20[[Tag%20Macro]]

Could one be removed?

Bauwe
The website-theme ( @website ) was thought out with the idea "how not to scare away your grandparents from your home-page".<br>To take out some "disturbing" factors on tiddlyspace (tw) to increase the readability the backstage was my first victim.<br>I emptied the backstage image tiddler (so the image-tiddler still exists but without content), still there is the active field for backstage access, which is set to 0px in the stylesheet.<br><br>I also like to present a more static content (the website should not have more then about 7 pages) which can be visited via the mainmenu, so the sidebartabs had to move.<br><br>To get access to the backstage content and the sidebar I figured a "Private" Dashboard-tiddler (containing these two) could be of use.<br>But to include this function-tiddler in the inclusion mechanism (add the theme) I had to make it "public" so it got shipped to the target site.<br><br>And there stuff got messy.<br>The ~DashBoard (still public) in the target-site had to be made private again (to not to distract viewers from the content). But this privatizing action did not work.<br>While logged out, the ~DashBoard still opened (there already was a version in the public_bag of that space).<br><br>A rename of the, already private, ~DashBoard didn't work either (I kept having saving errors).<br><br>The only solution, as a workaround, seemed to start a new tiddler with the dashboard content copied in. (and never make public).<br>The ~PrivateDashBoard-link on the mainmenu is now opening that private tiddler (and a "not exist" for viewers). But it seems a little more work for people to include this theme properly.<br><br>//One other "more hidden" solution is the dot at the end of the [[SiteSubtitle|http://website.tiddlyspace.com/#SiteSubtitle]] (which is also not shipped with inclusion b.t.w...which seems logical)//
Hi....I like the conveyorbelt
And I was wondering....if a reply on a plugin itself would be desired.....?
Just to be sure I'm writing a new tiddler instead...
Bauwe
/***
|''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));
//}}}
I usually work with InkScape to create svg's.
Today some checks with the ~TiddlySpace @svg-editor .
Seems to work fine  ... (experience from before with the svg-edit firefox addon where worse ... )
!!!Results
<<image Fiets>>
<<image WebPage>>
!!!This is the modified version of the ~TiddlySpace "Cement"-theme overhauled to "dance" with the randomcolor plugin.
;Changes:
:All elements are wrapped in a systemTheme Tiddler
:Colors in the ~StyleSheet are pointing to the ColorPalette
:Improved toolbar buttons
!!!Installation
;Automatic:
Add the @drop space to your ~TiddlySpace with the include-mechanism
----
;By hand:
*Copy the DropTheme tiddler to your ~TiddlySpace
*Create a tiddler ''zzConfig'' with inside: {{{config.options.txtTheme = "DropTheme";}}}
*Add the tag {{{systemConfig}}} to the ''zzConfig'' tiddler
*Create the tiddler ''~SecMenu'' (to contain your secondary menu items)
*Change colors as many times as you like here: [[GettingStarted]]

!!!Changes:
;11-11-2010
:Added "replyLink" to the ~ViewTemplate
Enjoy!
/***
|Name|RearrangeTiddlersPlugin|
|Source|http://www.TiddlyTools.com/#RearrangeTiddlersPlugin|
|Version|2.0.0|
|Author|Eric Shulman|
|OriginalAuthor|Joe Raii|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|drag tiddlers by title to re-order story column display|

adapted from: http://www.cs.utexas.edu/~joeraii/dragn/#Draggable
changes by ELS:
* hijack refreshTiddler() instead of overridding createTiddler()
* find title element by className instead of elementID
* set cursor style via code instead of stylesheet
* set tooltip help text
* set tiddler "position:relative" when starting drag event, restore saved value when drag ends
* update 2006.08.07: use getElementsByTagName("*") to find title element, even when it is 'buried' deep in tiddler DOM elements (due to custom template usage)
* update 2007.03.01: use apply() to invoke hijacked core function
* update 2008.01.13: only hijack core function once.  (allows for dynamic loading of plugin via bookmarklet)
* update 2008.10.19: added onclick popup menu with 'move to top' and 'move to bottom' commands

***/
//{{{

if (Story.prototype.rearrangeTiddlersHijack_refreshTiddler===undefined) {
Story.prototype.rearrangeTiddlersHijack_refreshTiddler = Story.prototype.refreshTiddler;
Story.prototype.refreshTiddler = function(title,template)
{
	this.rearrangeTiddlersHijack_refreshTiddler.apply(this,arguments);
	var theTiddler = document.getElementById(this.idPrefix + title); if (!theTiddler) return;
	var theHandle;
	var children=theTiddler.getElementsByTagName("*");
	for (var i=0; i<children.length; i++) if (hasClass(children[i],"title")) { theHandle=children[i]; break; }
	if (!theHandle) return theTiddler;

	Drag.init(theHandle, theTiddler, 0, 0, null, null);
	theHandle.style.cursor="move";
	theHandle.title="drag title to re-arrange tiddlers, click for more options..."
	theTiddler.onDrag = function(x,y,myElem) {
		if (this.style.position!="relative")
			{ this.savedstyle=this.style.position; this.style.position="relative"; }
		y = myElem.offsetTop;
		var next = myElem.nextSibling;
		var prev = myElem.previousSibling;
		if (next && y + myElem.offsetHeight > next.offsetTop + next.offsetHeight/2) { 
			myElem.parentNode.removeChild(myElem);
			next.parentNode.insertBefore(myElem, next.nextSibling);//elems[pos+1]);
			myElem.style["top"] = -next.offsetHeight/2+"px";
		}
		if (prev && y < prev.offsetTop + prev.offsetHeight/2) { 
			myElem.parentNode.removeChild(myElem);
			prev.parentNode.insertBefore(myElem, prev);
			myElem.style["top"] = prev.offsetHeight/2+"px";
		}
	};
	theTiddler.onDragEnd = function(x,y,myElem) {
		myElem.style["top"] = "0px";
		if (this.savedstyle!=undefined)
			this.style.position=this.savedstyle;
	};
	theHandle.onclick=function(ev) {
		ev=ev||window.event;
		var p=Popup.create(this); if (!p) return;
		var b=createTiddlyButton(createTiddlyElement(p,"li"),
			"\u25B2 move to top of column ","move this tiddler to the top of the story column",
			function() {
				var t=story.getTiddler(this.getAttribute("tid"));
				t.parentNode.insertBefore(t,t.parentNode.firstChild); // move to top of column
				window.scrollTo(0,ensureVisible(t));
				return false;
			});
		b.setAttribute("tid",title);
		var b=createTiddlyButton(createTiddlyElement(p,"li"),
			"\u25BC move to bottom of column ","move this tiddler to the bottom of the story column",
			function() {
				var t=story.getTiddler(this.getAttribute("tid"));
				t.parentNode.insertBefore(t,null); // move to bottom of column
				window.scrollTo(0,ensureVisible(t));
				return false;
			});
		b.setAttribute("tid",title);
		Popup.show();
		ev.cancelBubble=true; if (ev.stopPropagation) ev.stopPropagation(); return(false);
	};
	return theTiddler;
}
}

/**************************************************
 * dom-drag.js
 * 09.25.2001
 * www.youngpup.net
 **************************************************
 * 10.28.2001 - fixed minor bug where events
 * sometimes fired off the handle, not the root.
 **************************************************/

var Drag = {
	obj:null,

	init:
	function(o, oRoot, minX, maxX, minY, maxY) {
		o.onmousedown = Drag.start;
		o.root = oRoot && oRoot != null ? oRoot : o ;
		if (isNaN(parseInt(o.root.style.left))) o.root.style.left="0px";
		if (isNaN(parseInt(o.root.style.top))) o.root.style.top="0px";
		o.minX = typeof minX != 'undefined' ? minX : null;
		o.minY = typeof minY != 'undefined' ? minY : null;
		o.maxX = typeof maxX != 'undefined' ? maxX : null;
		o.maxY = typeof maxY != 'undefined' ? maxY : null;
		o.root.onDragStart = new Function();
		o.root.onDragEnd = new Function();
		o.root.onDrag = new Function();
	},

	start:
	function(e) {
		var o = Drag.obj = this;
		e = Drag.fixE(e);
		var y = parseInt(o.root.style.top);
		var x = parseInt(o.root.style.left);
		o.root.onDragStart(x, y, Drag.obj.root);
		o.lastMouseX = e.clientX;
		o.lastMouseY = e.clientY;
		if (o.minX != null) o.minMouseX = e.clientX - x + o.minX;
		if (o.maxX != null) o.maxMouseX = o.minMouseX + o.maxX - o.minX;
		if (o.minY != null) o.minMouseY = e.clientY - y + o.minY;
		if (o.maxY != null) o.maxMouseY = o.minMouseY + o.maxY - o.minY;
		document.onmousemove = Drag.drag;
		document.onmouseup = Drag.end;
		Drag.obj.root.style["z-index"] = "10";
		return false;
	},

	drag:
	function(e) {
		e = Drag.fixE(e);
		var o = Drag.obj;
		var ey = e.clientY;
		var ex = e.clientX;
		var y = parseInt(o.root.style.top);
		var x = parseInt(o.root.style.left);
		var nx, ny;
		if (o.minX != null) ex = Math.max(ex, o.minMouseX);
		if (o.maxX != null) ex = Math.min(ex, o.maxMouseX);
		if (o.minY != null) ey = Math.max(ey, o.minMouseY);
		if (o.maxY != null) ey = Math.min(ey, o.maxMouseY);
		nx = x + (ex - o.lastMouseX);
		ny = y + (ey - o.lastMouseY);
		Drag.obj.root.style["left"] = nx + "px";
		Drag.obj.root.style["top"] = ny + "px";
		Drag.obj.lastMouseX = ex;
		Drag.obj.lastMouseY = ey;
		Drag.obj.root.onDrag(nx, ny, Drag.obj.root);
		return false;
	},

	end:
	function() {
		document.onmousemove = null;
		document.onmouseup = null;
		Drag.obj.root.style["z-index"] = "0";
		Drag.obj.root.onDragEnd(parseInt(Drag.obj.root.style["left"]), parseInt(Drag.obj.root.style["top"]), Drag.obj.root);
		Drag.obj = null;
	},

	fixE:
	function(e) {
		if (typeof e == 'undefined') e = window.event;
		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;
		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;
		return e;
	}
};
//}}}
Hi ... interspace-mail B-)
|~ViewToolbar|+editTiddler +cloneTiddler > fields refreshTiddler changeToPublic changeToPrivate revisions syncing permalink references jump closeOthers < closeTiddler|
|~EditToolbar|+saveTiddler saveDraft -cancelTiddler deleteTiddler|
|~RevisionToolbar|> fields revert|
Type the text for 'dickon'
!!!News inside ~TiddlySpace
click it -> News@news
!!!Bauwe's News
<<tsScan bauwebijl tag:@news searchField:"modifier" template:"SearchTemplate">>
Hi
Meanwhile I had a look in the toolstore and found this one:
@trashplugin
Jon:
you have a point here with:
<<<
However sometimes that user may want delete to mean delete. What if they accidentally wrote sensitive information they shouldn't have and want to remove all traces asap?
<<<
...with the trashplugin this is possible:
<<<
#
To bypass the trash can and use the normal delete handling (with the usual confirmation messages, if chkConfirmDelete is enabled), hold CTRL while clicking 'delete'
#
To bypass both the trash can and the confirmation message and immediately delete the tiddler without any further interaction, hold CTRL+SHIFT while clicking 'delete'
<<<
...also a user might remove the text and toggle private/public to remove history in such case...

I'm not sure if this is actually what you all are looking for...it's not a solution "under the floorboards"...perhaps a model to look at?
----
Chris
I noticed your post about the removal of the welcome page at the .org
//Had a quick look and brought back the tagcloud again.//

I guess someone removed the welcome page by mistake (not sure what else is missing).

More dangerous thing would have been someone loading the tiddlertweaker as bookmarket...select all...and click delete. (all removed in 3 steps!)

Some thinking.......:
As I understand you restricted deletion.
How could other spaces do that? (lets say there is some other space for a community...bigger then the "small trusted group" idea...like .org)
Could delete-tiddler change the tiddler to a removed state (for a week...so others can review/reset the action)?
and:
How about the usage of bookmarklets ...like scrubbing nodes, the tweaker, reset changecounter etc. (not all work of course on the server, but someone could go testing bookmarklets and damage stuff)?

For me a "small trusted" group is about 3 to 5 people.
As example:
A family-space with 4 people (parents and 2 children) is in my opinion already beyond that scope (ideally it should be "trusted" of course)...but a small fallback for all users on "accidental " deletion would be great in such case.
Not moderating but just a {{{@delay}}} on deleting.
!!!A list with useful stuff I don't want to forget...and use another time:

@questionnaire
@jquery-gchart

@apps
The @apps space adds an /Applications url application to your space which will expose applications (html pages) installed in your space. Please include it into your space.
It comes with a [[configure|/configure]] application which will allow you set things like SiteTitle, SiteInfo and SiteIcon outside TiddlySpace.
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
/***
|''Name''|MySpacesPlugin|
|''Author''|Jon Robson|
|''Version''|0.2.4|
|''Requires''|ImageMacroPlugin|
|''Description''|An attempt to make it easier to organise your spaces|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
!Code
***/
//{{{

(function($) {

var macro = config.macros.MySpaces = {
	spaces: {},
	handler: function(place) {
		place = $("<div class='spacePlace' />").appendTo(place);
		$("<div />").text("Filter spaces by tag:").appendTo(place);
		var filterer = $("<div class='filterArea' />").appendTo(place);
		var container = $("<div />").appendTo(place);
		$("<a />").text("reset").click(function(ev) {
			ev.preventDefault();
			$("a", ".filterArea").removeClass("active");
			macro.activeTags = [];
			macro.hideWithoutActiveTag(place);
		}).appendTo(container);
		
		var showSiteInfo = function(ev) {
			var target = ev.target;
			ev.preventDefault();
			ev.stopPropagation();
			var popup = Popup.create(target,"div");
			var icon = $(target).parents().filter(".icon");
			var spaceName = icon.attr("name");
			var space = macro.spaces[spaceName];
			//console.log(spaceName, space, macro.spaces);
			var content = $("<div class='spaceInfo' />")[0];
			if(space && space.tiddler) {
				wikify(space.tiddler.text, content);
		  } else {
				$(content).text("No SiteInfo tiddler for this site.");
			}
			$(popup).append(content);

			Popup.show();
			return false;
		};
		
		var spacePlace = $("<div class='myspaces' />").appendTo(place)[0];
		$("<div />").addClass("myspaceclear").appendTo(spacePlace);
		ajaxReq({url:"/spaces?mine=1", dataType:"json", success: function(r) {
			var bags = [];
			r = r.sort(function(a, b) {
				return a.name < b.name ? 1 : -1;
			});

			for(var i=0; i < r.length; i++) {
				var space = r[i];
				var name = space.name;
				var container = $("<div class='space'/>").attr("name", name).
					prependTo(spacePlace)
				var imageContainer = $("<div class='icon' />").attr("name", name).
  				click(function(ev) {
  					showSiteInfo(ev);
  				}).appendTo(container);
				var publicBag = "%0_public".format([name]);
				bags.push(publicBag);
				var imageURI = "http://tiddlyspace.com/bags/%0/tiddlers/SiteIcon".format([publicBag]);
				config.macros.image.renderImage(imageContainer, imageURI, {width:48, height:48});
				macro.spaces[name] = space;
				$("<a class='label' />").attr("href",space.uri).text(name).appendTo(container);
			}
			macro.findSiteInfo(place, bags);
		 }});
		
	},
	findSiteInfo: function(place, bags) {
		$.ajax({
			beforeSend: function(xhr) {
				xhr.setRequestHeader("X-ControlView", "false");
			},
			dataType: "json",
			url: '/search?q=ftitle:SiteInfo (bag:%0) &fat=y'.format([bags.join(" OR bag:")]),
			success: function(tiddlers) {
				var tags = [];
				for(var i=0; i < tiddlers.length; i++) {
					var tiddler = tiddlers[i];
					tiddler.fields.doNotSave = "true";
					var space = tiddler.bag.replace("_public", "");
					tiddler.title = "SiteInfo [%0]".format([space]);
					var tiddlerTags = tiddler.tags;
					for(var j=0; j < tiddlerTags.length; j++) {
						tags.pushUnique(tiddlerTags[j]);
					}
					if(macro.spaces[space]) {
						macro.spaces[space].tiddler = tiddler;
					}
				}
				tags = tags.sort();
				var filterer = $(".filterArea", place);
				for(var i=0; i < tags.length; i++) {
					$('<a href="#" />').text(tags[i]).click(function(ev) {
						ev.preventDefault();
						var target = $(ev.target);
						var tag = target.text();
						if(target.hasClass("active")) {
							target.removeClass("active");
							var oldTags = macro.activeTags;
							var newTags = [];
							for(var i=0; i < oldTags.length; i++) {
								var activeTag = oldTags[i];
								if(activeTag != tag) {
									newTags.push(activeTag);
								}
							}
							macro.activeTags = newTags;
						} else {
							target.addClass("active");
							macro.activeTags.push(tag);
						}
						macro.hideWithoutActiveTag(place);
					}).appendTo(filterer);
				}
				
			}
		})
	},
	activeTags: [],
	hideWithoutActiveTag: function(place) {
		$(".space", place).show(); // reset a previous search
		var activeTags = macro.activeTags;
		$(".space", place).each(function(i, el) {
			var name = $(el).attr("name");
			var space = macro.spaces[name];
			if(space) {
				if(space.tiddler) {
					var tags = space.tiddler.tags;
					for(var i=0; i < activeTags.length; i++) {
						var activeTag = activeTags[i];
						if(!tags.contains(activeTag)) {
							$(el).hide();
						}
					}
				} else if(activeTags.length > 0) {
					$(el).hide();
				}
			} 
		});
	}
};
	
var css = [".myspaces .space {\nfloat: left;}", ".space .label {text-align: center;}", 
	".filterArea {word-wrap:break-word;}",
	".myspaceclear { clear: both }",
	".filterArea a {margin-right: 5px;}",
	".icon {width: 6em; height:48px; text-align:center;}",
	".filterArea .active {background-color: [[ColorPalette::PrimaryPale]]; color: [[ColorPalette::PrimaryDark]];}",
	".myspaces .space {", "height:6em;margin:0.4em;text-align:center;width:6em;word-wrap:break-word;","}"];
config.shadowTiddlers.StyleSheetMySpaces = css.join("");
store.addNotification("StyleSheetMySpaces", refreshStyles);

})(jQuery);
//}}}
a TiddlySpace
!Use the contact-form below to send an email
<<image mail.svg>>
<html><div align="center"><iframe src="http://www.formlogix.com/Manager/AppPageGadget.aspx?TemplateID=22&email=$1@gmail.com" frameborder="0" width="100%" height="320px"></iframe></div></html>
Yesterday I tried to respond on a post in my activity stream.
//It was @fnd that wrote something about flightsims....I did some real hours "up there" and from experience I can recommend a good sim.//
The thing is, that I fetch fnd's activity from his space.....but he still has to do a "follow" on my site to get my responses (and communicate with me).

So the therm follow is similar as subscribing to someones space ( you can track what somebody publishes )
The people who I "track/follow" can see that I'm interested in their publications (they can see myname in the list "Followers").

But if they do not make a "return-follow"....communication is not possible.
I can imagine if you "follow/track" some 10 spaces of others, the activity stream is getting too much.
So I can understand someone simply cannot follow "everybody", just like I don't.

It might be an idea to create a filter mechanism:
"follow/track" everybody's activity concerned a certain tag (activity stream of all spacemembers tiddlers tagged "tiddlywiki" or/and tag "tiddlywikidev" and tag "tiddlyspace") 
So that I have the tabs: 
*activity tiddlywiki (groups.....all members)
*activity tiddlywikidev (groups.....all members)
*activity tiddlyspace (groups.....all members)
And the tab:
*"activity two-ways follow" (people that I follow and them following me....to work on projects/support etc.)
/***
|''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);
//}}}
install time +/-30 minutes (depending on your connection-speed)
use at own risk!
!SOME ISSUES STILL HAVE TO BE SOLVED AND ADDITIONAL INFORMATION AND EXTRA STEPS ADDED
''In the following list are all the steps to create a working setup'' //(performed on OSX 10.5.4 Leopard and ~VMware-Fusion.)//

Install a [[turnkeylinux LAMP appliance|http://www.turnkeylinux.org/lamp]] on vmware-fusion by dowloading this  => [[iso|http://www.turnkeylinux.org/download?file=turnkey-lamp-2009.10-hardy-x86.iso]]

The iso (180mb) can be installed on vmware, straight on a harddisk and boot live as cd.
Gives a ready-to-go server to work on.
!Step 0 [[Watch the virtual-installation-video-instruction!|Turnkey-LAMP-VM-Howto]]
!Step 1

Installation of the .iso on vmware >''all default settings'' >''network Bridged''
<<<
//When the installation is finished and restarted. The appliance will present a blue screen with several ip's+ports.
If you like to copy paste all the commands here, manually change the ip of the appliance to 10.0.1.4 (otherwise replace your ip in the following steps, 10.0.1.4 as example)//
<<<

!Step 2 (preparing the server)
;Login
{{{
ssh root@10.0.1.4
}}}
;Upgrade the system (takes a while)
{{{
apt-get update && apt-get -y -f dist-upgrade
}}}
;Restart when ready
{{{
init 6
}}}
;Login again
{{{
ssh root@10.0.1.4
}}}
;wget
{{{
apt-get -y --force-yes -f install wget
}}}
;libmysqlclient-dev
{{{
apt-get -y --force-yes -f install libmysqlclient15-dev
}}}
;gcc
{{{
apt-get -y --force-yes -f install gcc
}}}
;python2.5-dev
{{{
apt-get -y --force-yes -f install python2.5-dev
}}}

Go to ''webmin'' in the browser yourip:12321 or 
https://10.0.1.4:12321
login: root + the password you gave during installation

''Webmin'' >Servers >Apache Webserver >Existing Virtual Hosts
* open the Virtual Server with portnumber 80
**on the bottom (Virtual Server Details) change the port to 8080 and Save

''Webmin'' >Servers >Apache Webserver >Global configuration
* open Networking and Addresses
** on "Listen on addresses and ports" change 80 to 8080 and Save
''Apply Changes'' //(top)//

''Now the (old) virtual server is on http://10.0.1.4:8080 so we can do //twanager server yourip 80// later.''

!Step 3
{{{
mkdir /tiddlyspace && cd /tiddlyspace
}}}
{{{
wget http://pypi.python.org/packages/2.5/s/setuptools/setuptools-0.6c11-py2.5.egg
}}}
{{{
sh setuptools-0.6c11-py2.5.egg
}}}
{{{
sudo easy_install -U pip
}}}
{{{
pip install -U tiddlywebplugins.tiddlyspace
}}}
!Step 4 ''the database''
{{{
mysql -u root -p
}}}
type the password for Mysql
{{{
create database tiddlyspace \g
}}}
{{{
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password' \g
}}}
{{{
flush privileges \g
}}}
{{{
exit
}}}
edit:
/usr/lib/python2.5/site-packages/tiddlywebplugins/tiddlyspace/config.py
{{{
nano /usr/lib/python2.5/site-packages/tiddlywebplugins/tiddlyspace/config.py
}}}
and add:
{{{
'db_config': 'mysql://localhost/tiddlyspace?user=username&passwd=password&charset=utf8&use_unicode=0'}],
}}}
!Create an instance:
{{{
tiddlyspace test && cd test
}}}
{{{
nano tiddlywebconfig.py 
}}}
Add : (copy all in....and replace the secret)
{{{
# A basic configuration.
# Run "pydoc tiddlyweb.config" for details on configuration items.

config = {
    'system_plugins': ['tiddlywebplugins.tiddlyspace'],
    'secret': 'REPLACE THIS SECRET',
    'twanager_plugins': ['tiddlywebplugins.tiddlyspace'],
    'auth_systems': ['cookie_form'],
    'twanager_plugins': ['tiddlywebplugins.tiddlyspace'],
    'server_store': ['tiddlywebplugins.tiddlyspace.store', {
        'db_config': 'mysql://localhost/tiddlyspace?user=username&passwd=password&charset=utf8&use_unicode=0'}],
    'indexer': 'tiddlywebplugins.mysql',
    'server_host': {
        'scheme': 'http',
        'host': '10.0.1.4',
        'port': '80'
        }
}
}}}
!Start the server....(go to folder tiddlyspace/test)
{{{
twanager server 10.0.1.4 80
}}}
!Check
http://10.0.1.4
\o/
----
!What comes next
#wildcards for spacenames
#auto start twanager
#deploy in cloud (amazon)
#test
!Info
http://github.com/TiddlySpace/tiddlyspace/blob/master/doc/CONTRIBUTING
http://tiddlyweb.peermore.com/wiki/#[[Using%20Mod%20WSGI]]
[[Hosting your own tiddlyspace]]@cdent
[[StyleSheetTiddlySpace]]
/*{{{*/
/*tiny adjustment for the pulldown menu on this space*/
#menuBar {
height:17px;
padding-top:5px;
}
/*}}}*/
<html><iframe width="100%" height="600px" src="http://svg-edit.googlecode.com/svn/branches/2.5.1/editor/svg-editor.html"></html>
Things I like to change on @tiddlywiki ...
* disable color changing (so the page looks all-way's the same)
* disable(or hide) editor icons (more about the content and less about who created it)[1]
* don't save if there is no text changed while in edit mode[1]
----
[1] people do read a tiddler and also view the tiddler (like: "hey how is this italic text done)...while on dot.org they also might be logged in and do view while in edit mode...and closing the tiddler again might cause a save (plus now also their icon is visible...scary...).
<!DOCTYPE html>
<html manifest="/bags/common/tiddlers/takenote_manifest.appcache">
	<head>
		<title>takenote</title>
		<link type="text/css" rel="stylesheet" href="/bags/common/tiddlers/notabene.css" />
		<link type="text/css" rel="stylesheet" href="/bags/common/tiddlers/jquery-ui.custom.css">
		<link rel="apple-touch-icon" href="/bags/common/tiddlers/touchicon_takenote.png"/>
		<link rel="apple-touch-icon-precomposed" href="/bags/common/tiddlers/touchicon_takenote.png"/>
		<meta name="apple-mobile-web-app-capable" content="yes" />
		<meta name="viewport" content="width=device-width,minimum-scale=1,maximum-scale=1,user-scalable=0,initial-scale=1.0">
	</head>
	<body>
		<ul id="backstage">
			<!-- no not add a newline between li elements or you will get a margin with inline blocks -->
			<li><a href="/dashboard">dashboard</a></li><li><a href="/takenote">takenote</a></li>
			<li><a class='connectionStatus'></a></li>
		</ul>
		<div class="takenotedashboard">
		  <div class='messageArea' style="display: none;"></div>
			<div class="header">
				<div class='siteicon'></div>
			</div>
			<div class="toolpanel viewer">
				<div class='section searchSection requiresConnection'>
					<h2>All Notes</h2>
					<input class="findnote" type="search" placeholder="type search term" />
					<ul>
						<li>Access all notes in this space from <a href="/tiddlers?select=tag:!excludeLists">/tiddlers</a></li>
					</ul>
				</div>
				<div class="section incompleteSection">
					<h2>New Notes</h2>
					<ul id="createNotes"></ul>
					<h2>Recently Started Notes</h2>
					<ul id="incomplete"></ul>
					<a class='syncButton' title="save all notes in the list to the web">sync these notes</a>
				</div>
				<div class="section recentSection">
					<h2>Recently Created Notes</h2>
					<ul id="recentnotes"></ul>
				</div>
			</div>
			<div class='footer'>
				<span class='version'>v. 0.7.5</span>
			</div>
		</div>
		<noscript>
			Takenote requires javascript to work correctly. Sorry!
		</noscript>
		<script src="/bags/common/tiddlers/backstage.js" type="text/javascript" charset="utf-8"></script>
		<script src="/bags/common/tiddlers/bookmark_bubble.js" type="text/javascript" charset="utf-8"></script>
		<script src="/bags/common/tiddlers/jquery.js" type="text/javascript" charset="utf-8"></script>
		<script src="/bags/common/tiddlers/jquery-ui.custom.js" type="text/javascript" charset="utf-8"></script>
		<script src="/bags/tiddlyspace/tiddlers/chrjs" type="text/javascript" charset="utf-8"></script>
		<script src="/bags/common/tiddlers/chrjs-store.js" type="text/javascript" charset="utf-8"></script>
		<script src="/bags/common/tiddlers/jquery-json.js" type="text/javascript" charset="utf-8"></script>
		<script src="/bags/common/tiddlers/notabene.js" type="text/javascript" charset="utf-8"></script>
		<script type="text/javascript">
			dashboard($(".takenotedashboard")[0], {
				host: "/"
			});
		</script>
	</body>
</html>
!Hi
//(I hope someone could read this a la groups....very tempting to write there..."but let's stick with space")//

!!Lately I stumbled upon Harmony. An online graphics editor.

The site let's you draw very "arty" styled sketches....which can be saved when finshed (it's processed as base/64 first).
//It's basically for touchcreens like the Iphone and Ipad (wish I had some touchscreen app...) but I managed with my mousepad to work with it (first time I don't grab a mouse instead off fighting my mousepad)// 

And it seems to be a SPA too!....so I was wondering if such thing could be build in on ~TiddlySpace. I can imagine the pocketbook where several members work on a comic (story).

Perhaps we need a less art and more diagram style editor, but maybe someone wants to take a look?

I'm lacking the skills...apart from (i)framing it.

[[Check Harmony|Harmony]] 
Just tried to logout.....and got the following error message:

There was a 400 Bad Request error with the following message:

    400 Bad Request: No csrf_token supplied

Via the browsers "back" returned here again (still logged in) to create this tiddler.
----
The next day:
....(pc was switched of).....still logged-in on ~TiddlySpace!
----
''The issue seems to be solved''
The old dot-org wiki is still available here:
(read only)
http://oldwiki.tiddlywiki.org
<html><div align="center"><iframe src="http://mrdoob.com/projects/harmony/" " frameborder="0" width="100%" height="500"></iframe></div></html>
bauwebijl <<image feed-link.svg>>
A few day's ago the howtoos.nl ''tiddlyspace-site'' was re-indexed by Google (the paths in the search-results came from the drupal installation before....).

The results until now are fantastic!!!

Some details need more attention I think.

The first entry in Google search is the url http://www.howtoos.nl and the text preview shows the first lines from http://www.howtoos.nl/#acer-aspire (is this alphabetically determined?)
This entry is supposed to lead to the "landing page"...the default tiddler "Welcome"... which works fine when clicked on the link. (the text preview in google should show the first lines from this "welcome"-tiddler instead)

The other links presented are all leading to the html representation of the site except one.... the bare http://howtoos.nl which seems to go "wiki" straightaway here (how could I automatically make viewers go to the wiki representations of the other pages when they click a link on a search engine result?).

But apart from that: WOW!!
----
''Update''
Added to MarkupPreHead to fix the default text in the search index for http://www.howtoos.nl :
/*{{{*/
<meta name="description" content="OSX-86 and linux guides for Acer Aspire 5051 awxmi, servers websites, TiddlyWiki, TiddlyWeb, TiddlySpace" />
/*}}}*/
@matias
<!doctype html>
<html>
	<head>
		<title>TiddlyApp Share</title>

		<link rel="stylesheet" href="/bags/common/tiddlers/profile.css" type="text/css"/>
		<script src="/bags/common/tiddlers/jquery.js" type="text/javascript"></script>
		<script src="/bags/tiddlyspace/tiddlers/chrjs" type="text/javascript"></script>
		<script src="/bags/common/tiddlers/chrjs-store.js" type="text/javascript"></script>
		<script src="/bags/common/tiddlers/chrjs.users" type="text/javascript"></script>
		<script type="text/javascript" src="/bags/common/tiddlers/backstage.js"></script>
		<script>
			// The templates of the links to display on the page
			var links = [
				{
					title: "Tiddlers",
					info: "Show a list of all the tiddlers in this space that a visitor currently has access to.",
					href: "{host}/tiddlers"
				}, {
					title: "Public Tiddlers",
					info: "Show a list of all the public tiddlers in this space in alphabetical order.",
					href: "{host}/bags/{subdomain}_public/tiddlers?select=tag:!excludeLists;sort=title"
				}, {
					title: "Atom Feed",
					info: "Get the Atom feed of the most recently changed tiddlers.",
					href: "{host}/tiddlers.atom?select=tag:!excludeLists;sort=-modified;limit=20"
				}, {
					title: "Specific Tiddler",
					info: "Show a specific tiddler in your space (GettingStarted in this example) as HTML, JSON or just plain text.",
					href: ["{host}/GettingStarted", "{host}/GettingStarted.json", "{host}/GettingStarted.txt"],
					more: "http://tiddlyweb.peermore.com/wiki/"
				}, {
					title: "Search for text",
					info: "Search tiddlers for some text contained inside a tiddler.",
					href: "{host}/search?q={subdomain}"
				}, {
					title: "List tiddlers with a tag",
					info: "Display all the tiddlers that have the tag specified (here the tag is systemConfig).",
					href: "{host}/tiddlers?select=tag:systemConfig"
				}
			];

			$(function() {

				var subdomain = document.location.host.split(".")[0];

				// Filter curly braces to display information
				for (var i in links) {
					var href = links[i].href;

					if (typeof href === "string")
						href = [href];

					for (var j in href) {

						href[j] =  href[j].replace("{host}", (document.protocol || "http:") + "//" + document.location.host);
						href[j] =  href[j].replace("{subdomain}", subdomain);
					}

					links[i].href = href;
				}

				// Display links to user
				var insertInto = $('#share_links');

				for (var i in links) {

					var linkBody = $('<div class="share_link"></div>');

					var linkDisplay = $('<div class="link_display"></div>');

					for (var j in links[i].href) {

						var a = $('<a class="link_href" target="_blank"/>');
						a.html(links[i].href[j]);
						a.attr('href', links[i].href[j]);

						linkDisplay.append(a);
						linkDisplay.append("<br/>");
					}
					
					var linkTitle = $('<b class="link_title"/>');
					linkTitle.html(links[i].title);

					var linkInfo = $('<div class="link_info"/>');
					linkInfo.html(links[i].info);

					linkBody.append(linkTitle);
					linkBody.append('<br/>');
					linkBody.append(linkInfo);
					linkBody.append(linkDisplay);

					if (links[i].more) {
						var linkMore = $('<a class="link_more">Learn more</a>');
						linkMore.attr('href', links[i].more);
						linkBody.append(linkMore);
					}

					insertInto.append(linkBody);
				}
			});
		</script>
		<style type="text/css">
			.link_display {
				display: block;
				background: #f2f2f2;
				border: 1px solid #aaa;
				padding: 10px;
				margin-top: 4px;
				word-wrap: break-word;
			}
			.link_more {
				display: block;
				text-align: right;
			}
			.share_link {
				margin-bottom: 10px;
			}
		</style>
	</head>
	<body>
		<div id="container">
			<div id="header">
				<h1>Share Space</h1>
			</div>
			<div class="main section">
				<p>Here are a number of methods that you can use to share this Space and its content in different ways.</p>
				<span id="share_links"></span>
			</div>
		</div>
	</body>
</html>
copied from cdent's TopTiddlers@cdent
!check bottom !
| ''count'' | ''tiddler_title''   |
|  4537 | ColorPalette    |
|  2238 | StyleSheet      |
|  1871 | SiteSubtitle    |
|  1853 | activeDocument  |
|  1709 | SiteTitle       |
|  1460 | MainMenu        |
|  1215 | SiteIcon        |
|   923 | DefaultTiddlers |
|   848 | GettingStarted  |
|   642 | ViewTemplate    |
|   505 | PageTemplate    |
|   499 | MyMap           |
|   483 | SideBarOptions  |
|   440 | EditTemplate    |
|   387 | SiteInfo        |
|   291 | Welcome         |
|   285 | SideBarTabs     |
|   235 | Handbook Test   |
|   226 | ToolbarCommands |
|!   226 | !StyleSheetAxe   |

!StyleSheetAxe (blush)....and that many times....that was me learning/connecting all the #colors to the colorpalette I guess.
Resulted in @drop theme
These stats motivate for local-only messing?
----
''Bauwe:'' sounds in english like: POWER.....with a "B" instead of "P"......and without "R".....something like :"BOW...eh"
//Even here in Holland it's a strange name (my name is more common in the northern regions of Holland)
Similar names are: Bauke, Baukje (for female), Douwe (perhaps you know the Dutch coffee/tea, tobacco brand "Douwe Egberts")//

''Bijl:'' sounds in english as "bye"... from goodbye....with a "L"....."byel".
Meaning in english: axe
in reply to @pmario:
<<<
!Concerns about user tracking software, together with TiddlySpace.
!!!The story
I wanted to use tracking software for my themes and theme generators. 

Since I didn't want to have several tiddlers, I included everything into one plugin. 
If you include tracking software into a theme, it would be included into someone elses space. 
Which means, that you get all the information, from this space. Including the private stuff. 

Making everything worse is. If you download your space, you also download alien tracking code. Using the default code, it will nicely transfer your tw directory, and every tiddler save event, to the tracking server. If you are connected to the internet. 

Changing the plugin code a little bit, it will be possible to transfere the whole tiddlers text, with very low cost adjusting the tracking  server. 

!!!The/My problem
My problem as a developer now is, that it would be nice to have some tracking code inside the themes. But knowing the above, makes it impossible for me. Because at the moment, there is no possibility as a developer, to decide, which tiddlers can be included by someone else. 

In my opinion you have to tell people, that you use tracking code. But doing so, at the moment, this is equal to "This space is evil, don't include". Which is quite counterproductive for a themes space :) 
 
And if you don't, and people get it, you will gain bad reputation. 

Telling people how to disable it, is equal to "Handling this space is too complicated, don't touch."

!!!Whishes
===
As a user, I want to be able to decide per "systemConfig" tiddler, what I want to include, from a space. 
===
As a developer, I want to be able to decide per "systemConfig" tiddler, what will be includeable. Making a tiddler private is no solution, since private tracking code is not activated by a guest user. 
===

!!!What do you think?

!Others say
<<tsScan [[Concerns about user tracking software]] fat:y template:"TEMPLATES##scan" query:"select=modifier:!pmario">> 





  
<<<

I was thinking about this issues before (basically how to explain whats inclusion).
Therms that came in my mind:
STICKY
FUSION

Sticky (from the linuxworld...show something on all screens local/lan etc.) should be something like inclusion-marked-as-sticky (so people can remove all sticky tiddlers after inclusion).....like a About or Gettingstarted tiddler.

Fusion.....all more persistent stuff that needs to be shipped with a  space (for theme inclusion this would mean a zzconfig tiddler ... or the Tiddler SecMenu for the @basalt theme.....which people have to create thereselves now)

More specific:
Tracking software/tiddlers should be sticky (so a user could do: remove all sticky-tiddlers)

/***
|''Name''|tsScanCountPlugin|
|''Description''|Provides ability to count tiddlers at a given tiddlyspace url and display a button that when clicked lists them. Also upgrades tsScan to replace any options containing with $1 with the current space|
|''Version''|0.2.0|
***/
//{{{
(function($) {

var tsScan = config.macros.tsScan;
var tiddlyspace = config.extensions.tiddlyspace;

var macro = config.macros.tsScanCount = {
	cache: true,
	countCache: {},
	handler: function(place, macroName, params, w, paramString, tiddler) {
		var container = $("<a href='#' class='button' />").attr("refresh", "macro").attr("macroName", macroName).appendTo(place)[0];
		$(container).data("params", paramString);
		macro.refresh(container);
	},
	refresh: function(container) {
		var paramString = $(container).data("params");
		var options = tsScan.getOptions(paramString, tiddler);
		var url = options.url;
		options.cache = macro.cache;
		options.callback = function(tiddlers) {
				options.cache = true;
				macro.cache = true;
				var count = tiddlers[0] ? tiddlers[0].fields['server.page.revision'] : 0;
				var lastCount = macro.countCache[url] || 0;
				if(lastCount != count) {
					var interval, step = 0;
					interval = window.setInterval(function() {
						var last = step;
						step += 1;
						$(container).removeClass("step" + last);
						if(step > 10) {
							macro.countCache[url] = count;
							window.clearInterval(interval);
						} else {
							$(container).addClass("step" + step);
						}
					}, 500)
				}
				$(container).empty().addClass("enabled").text(tiddlers.length).click(function(ev) {
				$(ev.target).addClass("active");
				var target = options.popupSelector ? $(options.popupSelector)[0] : ev.target;
				var p = Popup.create(target, "div");
				var container;
				if(options.heading) {
					container = $("<div />").addClass("heading").appendTo(p)[0];
					wikify(store.getTiddlerText(options.heading) || "", container);
				}
				container = $("<div />").addClass("followTiddlersList").appendTo(p)[0];
				tsScan.scan(container, options);
				Popup.show();
				ev.stopPropagation();
				return false;
			});
		};
		tsScan.scan(container, options);
	}
}

var _getOptions = tsScan.getOptions;
config.macros.tsScan.getOptions = function(paramString, tiddler) {
	var options = _getOptions.apply(this, arguments);
	var optionsClone = {};
	for(var i in options) {
		if(typeof(options[i]) == "string") {
			optionsClone[i] = options[i].format(tiddlyspace.currentSpace.name);
		} else {
			optionsClone[i] = options[i];
		}
	}
	return optionsClone;
}

// every 5 minutes make tsScan update.
window.setInterval(function() {
	macro.cache = false;
	$("[macroName=tsScanCount]").each(function(i, el) {
		macro.refresh(el);
	});
}, 1000 * 60 * 5);
})(jQuery);
//}}}
<<list filter [tag[blog]][sort[-modified]]>>
^^Feed: [img[feed-small.png][http://bauwebijl.tiddlyspace.com/bags/bauwebijl_public/tiddlers.atom?select=tag:blog&sort=-created&limit=20]]^^
----
<<newJournal label:"new blogpost" prompt:"create a new post here" title:"MMM DD YYYY" focus:"title" tag:"blog">>
----
/***
|Name|SetIconPlugin|
|Source|http://www.TiddlyTools.com/#SetIconPlugin|
|Documentation|http://www.TiddlyTools.com/#SetIconPluginInfo|
|Version|1.8.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.3|
|Type|plugin|
|Description|add an image to a toolbar, macro, or slider link|
!!!!!Documentation
>see [[SetIconPluginInfo]]
!!!!!Configuration
<<<
<<option chkIconsShowImage>> show images on links
<<option chkIconsShowText>> include link text with images
default image style: {{stretch{<<option txtIconsCSS>>}}}
<<<
!!!!!Revisions
<<<
2008.05.11 [1.8.0] added optional 'notext' value for iconpos to force text to be hidden for specific links
| see [[SetIconPluginInfo]] for additional revision details |
2008.05.09 [1.0.0] initial release (as inline script)
<<<
!!!!!Code
***/
//{{{
version.extensions.SetIconPlugin= {major: 1, minor: 8, revision: 0, date: new Date(2008,5,11)};

if (config.options.chkIconsShowImage===undefined)
	config.options.chkIconsShowImage=true;
if (config.options.chkIconsShowText===undefined)
	config.options.chkIconsShowText=true;
if (config.options.txtIconsCSS===undefined)
	config.options.txtIconsCSS="vertical-align:middle;width:auto;height:auto";

config.macros.setIcon = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		if (!config.options.chkIconsShowImage) return; // text-only - do nothing
		if (!params[0]) return; // no image src specified - do nothing

		// find nearest link element
		var btn=place.lastChild; // look for sibling link
		while (btn && btn.nodeName!="A") btn=btn.previousSibling;
		if (!btn) { // look for child link
			var links=place.getElementsByTagName("A");
			if (links.length) btn=links[links.length-1];
		}
		if (!btn) { // look for parent link
			var btn=place.parentNode.lastChild;
			while (btn && btn.nodeName!="A") btn=btn.previousSibling;
		}
		if (!btn) { // look for cousin link
			var links=place.parentNode.getElementsByTagName("A");
			if (links.length) btn=links[links.length-1];
		}
		if (!btn) return; // can't find a link - do nothing

		// set icon and command text/tip
		var txt=btn.innerHTML;
		var src=params[0];  // default to direct URL
		if (config.macros.attach && config.macros.attach.isAttachment(src))
			src=config.macros.attach.getAttachment(src); // retrieve attachment (if any)
		var css=params[1]; if (!css||!css.length) css=config.options.txtIconsCSS;
		var after=params[2]&&params[2].toUpperCase()=="RIGHT";
		var notext=params[2]&&params[2].toUpperCase()=="NOTEXT";
		btn.innerHTML="<img src='"+src+"' style='"+css+"'>";
		if (config.options.chkIconsShowText && !notext)
			btn.innerHTML=after?txt+btn.innerHTML:btn.innerHTML+txt;
		else
			btn.title=txt.toUpperCase()+": "+btn.title; // add text to tooltip

		// adjust nested slider button text/tip
		if (btn.getAttribute("closedtext")!=null) {
			btn.setAttribute("closedtext",btn.innerHTML);
			btn.setAttribute("openedtext",btn.innerHTML);
			if (!config.options.chkIconsShowText || notext) {
				btn.setAttribute("closedtip",txt.toUpperCase()+": "+btn.getAttribute("closedtip"));
				btn.setAttribute("openedtip",txt.toUpperCase()+": "+btn.getAttribute("openedtip"));
			}
		}
	}
};
//}}}
/***
|''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);
//}}}
Hi Jon....nice theme! I was playing with the hemoglobin theme before with http://hoster.peermore.com/recipes/Dotted%20Blue/tiddlers.wiki#Blue%20[[Blue%20colors]] 
and also used blue with it.
The idea started thinking about these phone-call drawings that get blue colored from a cheap bic-pen. You know....you take a note somewhere on a piece of paper and after some initial writing all kinds of drawings appear, ending with a shiny blue piece of "art".
To get that look I used 3 different blue's and a lot of dotted actions.

Also on tiddlyspace I tried to create such a style (and struggling with a decent solution for the sidebar too b.t.w.)
here: @headless

Indeed the simplicity that makes this theme very nice.

in reply to @jon:
<<<
@tammy is yet another blog theme named after an old childhood pet, following in the footsteps of Sharky the fish and pip the hamster.

I can't take the credit for most of this work as it's one of saq's themes tweaked for TiddlySpace. But I'm loving it so far. Lots of simplicity

It crucially replaces the SideBar with currently 3 boxes - a following box to show who you follow and allow following new people, a recent edits box to show most recently edited tiddlers and a popular tags box to aid exploration.

The DefaultTiddlers are ordered by created date rather than modified date.

I'm liking it so far. As said before [[The Sidebar is overrated]].

<<<

;Twitter News:
<<list filter [tag[twitter]]>>
;~TiddlySpace News:
<<list filter "[tag[news about]]">>
/***
|''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);
//}}}
[[Hello]][[Projects]][[Contact]]
@jermolene
I'm planning to build/move a website here on tiddlyspace.
(howtoos.nl).
As I understand this it's best to use an external image service for such site?
Could someone advise me what's  the best service to put external images?

Yes I already checked if I could point the dns to here.....
Already started @howtoos , needs some cleanup....and the images are still from the old site......
Also need some option for the iso and other software that can be downloaded from the old site.
I will start with http://flickr.com ....thanks
Hi Jon (and everybody)
I'm following the interesting ''note'' development.
is the link in [[May 2011]]
{{{
@mockup
}}}
supposed to be:
{{{
@mockups
}}}
?
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
<<tsScan bauwebijl tag:@news searchField:"modifier" template:"SearchTemplate">>
Here is a nice and simple scrapwood-chair designed by [[Piet Hein Eek|http://www.pietheineek.nl/nl/collectie/sloophout]]
If you like a woodproject and actually build something useful collect yourself some old pallets and create this chair.
No complicated joints...nevertheless very strong...and it actually sits nice too!

[img[chair|http://www.pietheineek.nl/cpcatalogue/data/images/art.nr%203820.jpg]]
[img[chair|http://www.pietheineek.nl/cpcatalogue/data/images/artnr%203820.jpg]]
[img[chair|http://www.pietheineek.nl/cpcatalogue/data/images/art%20nr%203820.jpg]]
[img[pub|http://www.pietheineek.nl/cpcatalogue/data/images/barkruk%20zonder%20rug.jpg]]
[img[smaller|http://www.pietheineek.nl/cpcatalogue/data/images/c-120.05d.jpg]]
<!--{{{-->
<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>
<!--}}}-->
/***
|''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);
//}}}
<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>
/***
|''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);
//}}}
;Public:
: [[Public|http://hoster.peermore.com/bauwebijl.myopenid.com]]
;Webstuff:
: [[Dotted-Blue|http://hoster.peermore.com/recipes/Dotted%20Blue/tiddlers.wiki]]
<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>
/***
|''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);
//}}}
/***
|''Name''|ToggleTiddlerPrivacyPlugin|
|''Version''|0.7.0|
|''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;
var macro = config.macros.setPrivacy = {
	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		if(readOnly) {
			return;
		}
		var el = $(story.findContainingTiddler(place));
		var args = paramString.parseParams("name", null, true, false, true)[0];
		var container = $("<div />").addClass("privacySettings").appendTo(place)[0];
		var currentSpace = tiddlyspace.currentSpace.name;
		var currentBag = tiddler ? tiddler.fields["server.bag"] : false;
		var isNewTiddler = el.hasClass("missing") || !currentBag; // XXX: is this reliable?
		var status = tiddlyspace.getTiddlerStatusType(tiddler);
		var customFields = el.attr("tiddlyfields");
		customFields = customFields ? customFields.decodeHashMap() : {};
		if(isNewTiddler || !["public", "private", "unsyncedPrivate", "unsyncedPublic"].contains(status)) {
			var defaultValue = "public";
			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"];
			var options = config.macros.tiddlerOrigin ?
				config.macros.tiddlerOrigin.getOptions(paramString) : {};
			this.createRoundel(container, tiddler, currentSpace, defaultValue, options);
		}
	},
	updateEditFields: function(tiddlerEl, bag) {
		var saveBagField = $('[edit="server.bag"]', tiddlerEl);
		var saveWorkspaceField = $('[edit="server.workspace"]', tiddlerEl);
		var input = $("<input />").attr("type", "hidden");
		if(saveBagField.length === 0) {
			input.clone().attr("edit", "server.bag").val(bag).appendTo(tiddlerEl);
		} else {
			saveBagField.val(bag);
		}
		$(tiddlerEl).attr("tiddlyFields", ""); // reset to prevent side effects
		var workspace = "bags/" + bag;
		if(saveWorkspaceField.length === 0) {
			input.clone().attr("edit", "server.workspace").val(workspace).appendTo(tiddlerEl);
		} else {
			saveWorkspaceField.val(workspace);
		}
	},
	setBag: function(tiddlerEl, newBag, options) {
		var title = $(tiddlerEl).attr("tiddler");
		var tiddler = store.getTiddler(title);
		var originButton = $(".originButton", tiddlerEl)[0];
		var refreshIcon = function(type) {
			var originMacro = config.macros.tiddlerOrigin;
			if(originButton && originMacro) {
				options.noclick = true;
				originMacro.showPrivacyRoundel(tiddler, type, originButton, options);
			}
		};
		macro.updateEditFields(tiddlerEl, newBag);
		var newWorkspace = "bags/" + newBag;
		if(tiddler) {
			tiddler.fields["server.bag"] = newBag;
			tiddler.fields["server.workspace"] = newWorkspace; // for external tiddlers
		}
		var rPrivate = $("input[type=radio].isPrivate", tiddlerEl);
		var rPublic = $("input[type=radio].isPublic", tiddlerEl);
		if(newBag.indexOf("_public") > -1) {
			rPrivate.attr("checked", false);
			rPublic.attr("checked", true);
			status = "public";
		} else {
			rPublic.attr("checked", false); // explicitly do this for ie
			rPrivate.attr("checked", true);
			status = "private";
		}
		refreshIcon(status);
	},
	createRoundel: function(container, tiddler, currentSpace, defaultValue, options) {
		var privateBag = "%0_private".format(currentSpace);
		var publicBag = "%0_public".format(currentSpace);
		var rbtn = $("<input />").attr("type", "radio").attr("name", tiddler.title);
		var rPrivate = rbtn.clone().val("private").addClass("isPrivate").appendTo(container);
		$("<label />").text("private").appendTo(container); // TODO: i18n
		var rPublic = rbtn.clone().val("public").addClass("isPublic").appendTo(container);
		$("<label />").text("public").appendTo(container); // TODO: i18n
		var el = story.findContainingTiddler(container);
		$("[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);
//}}}
@fnd
!SpaceUnplugged
{{unpluggedSpaceTab{
{{wizard{
<<image unsyncedIcon width:48>> <<message messages.syncExplanation>>
}}}
{{wizard syncKey{
{{keyHeading{
Key}}}
{{changedServer keyItem{<<message macros.sync.syncStatusList.changedServer.text>>}}} {{changedBoth keyItem{<<message macros.sync.syncStatusList.changedBoth.text>>}}} {{changedLocally keyItem{<<message macros.sync.syncStatusList.changedLocally.text>>}}} {{notFound keyItem{<<message macros.sync.syncStatusList.notFound.text>>}}}
}}}
<<sync>>

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

<<tabs txtTiddlySpaceTab
search "search across TiddlySpace" Backstage##Search
tiddlers "tiddlers control panel" Backstage##BackstageTiddlers
plugins "Manage installed plugins" PluginManager
batch "Perform batch operations on public/private tiddlers" Backstage##BatchOps
tweaks "Tweak the appearance and behaviour of TiddlyWiki" AdvancedOptions
"import/export" "Import/export tiddlers from/to a TiddlyWiki" Backstage##ImportExport
>>
running TiddlySpace@glossary version <<message extensions.tiddlyweb.status.tiddlyspace_version>>
{{autotable{
<<tiddler Backstage##Resources>>
}}}

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

!Search
<<tsSearch>>

!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>>
/***
|''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);
//}}}
;Main:
:@bauwebijl
;Personal:
:@bauwe
;Hosted website:
:@howtoos http://howtoos.nl
;Icons:
:@svgdump-bauwebijl
:@icon
:@transparenticon
;Themes:
:@basalt
:@bubble
:@cement
:@drop
:@website
:*[[demo|http://website-theme-demo-site.tiddlyspace.com]]
:@headless
;Translations:
:@translations
:@dutch
;Plugins:
:@rearrangetiddlers (~TiddlyTools)
:@seticonplugin (~TiddlyTools)
:@trashplugin (~TiddlyTools)
:@to-gmail (contact-form)
;Ideas:
:@course
;Develop (unfinished):
:@customer
:@empty
<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>
/***
|''Name''|ImportExternalLinksPlugin|
|''Author''|Jon Robson|
|''Version''|0.1.3dev|
|''Requires''|TiddlySpaceConfig TiddlySpaceLinkPlugin|
|''Description''|Turns space links into ajax links so you don't have to leave the comfort of your own TiddlyWiki|
!Notes
this hides the editTiddler, cloneTiddler commands and the followTiddlers macro.
!Todo
It show also add a reply link
***/
//{{{
(function($){
var tiddlyspace = config.extensions.tiddlyspace;
_createSpaceLink = createSpaceLink;
if(_createSpaceLink) {
	createSpaceLink = function(place, spaceName, title, alt) {
		_createSpaceLink(place, spaceName, title, alt);
		if(title && spaceName != tiddlyspace.currentSpace.name) {
			$("a:last", place).click(function(ev) {
				tiddlyspace.displayServerTiddler(ev.target, title, "%0_public".format([spaceName]), function(el) {
					// TODO: the commands should disable themselves based on the meta information.
					$("[commandname=editTiddler], [commandname=cloneTiddler]", el).hide(); 
				});
				ev.preventDefault();
			})
		}
	};
}
})(jQuery);
//}}}
@tiddlywiki-meta
@colmbritton
var user, userbag;
var friends = [];
var host = "http://tiddlyspace.com";

$.ajaxSetup({
	beforeSend: function(xhr) {
		xhr.setRequestHeader("X-ControlView", "false");
	}
});

function printMessage(txt) {
	alert(txt);
}

function printError(txt) {
	alert(txt);
}

var simpleDate = (function() {

	var measures = {
		second: 1,
		minute: 60,
		hour: 3600,
		day: 86400,
		week: 604800,
		month: 2592000,
		year: 31536000
	};

	var chkMultiple = function(amount, type) {
		return (amount > 1) ? amount + " " + type + "s":"a " + type;
	};

	return function(thedate) {

		var dateStr, amount,
			current = new Date().getTime(),
			diff = (current - thedate.getTime()) / 1000; // work with seconds

		if(diff > measures.year) {
			amount = Math.round(diff/measures.year);
			dateStr = "about " + chkMultiple(amount, "year") + " ago";
		} else if(diff > measures.month) {
			amount = Math.round(diff/measures.month);
			//if(typeof amount == "")
			dateStr = "about " + chkMultiple(amount, "month") + " ago";
		} else if(diff > measures.week) {
			amount = Math.round(diff/measures.week);
			dateStr = "about " + chkMultiple(amount, "week") + " ago";
		} else if(diff > measures.day) {
			amount = Math.round(diff/measures.day);
			dateStr = "about " + chkMultiple(amount, "day") + " ago";
		} else if(diff > measures.hour) {
			amount = Math.round(diff/measures.hour);
			dateStr = "about " + chkMultiple(amount, "hour") + " ago";
		} else if(diff > measures.minute) {
			amount = Math.round(diff/measures.minute);
			dateStr = "about " + chkMultiple(amount, "minute") + " ago";
		} else {
			dateStr = "a few seconds ago";
		}

		return dateStr;

	};
})();

function prettyDate(t) {
	var date = 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)
	));
	return simpleDate(date);
}

function endsWith(str, suffix) {
	return str.indexOf(suffix) == str.length - suffix.length;
}

function isShadow(tid) {
	var shadows = ["MarkupPreHead", "DefaultTiddlers", "PageTemplate", "SideBarTabs",
		"GettingStarted", "MainMenu", "SiteTitle", "SiteSubtitle", "ColorPalette",
		"SiteIcon", "ViewTemplate", "EditTemplate", "ServerSettings", "MarkupPostHead",
		"MarkupPostBody", "MarkupPreBody"];
	return tid.title.indexOf("StyleSheet") === 0 ||
		tid.title.indexOf("SideBar") === 0 ||
		shadows.indexOf(tid.title) > -1 || endsWith(tid.title, "SetupFlag") ? true : false;
}

function isPlugin(tid) {
	return tid.tags.indexOf("systemConfig") > -1 ? true : false;
}

function isArtifact(tid) {
	var follow = tid.tags.indexOf("follow") > -1;
	var type = tid.type;
	if(follow || type) {
		return true;
	} else {
		return false;
	}
}

function chooseTiddlers(tiddlers) {
	var _tiddlers = [];
	for(var i = 0; i < tiddlers.length; i++) {
		var tid = tiddlers[i];
		if(!isPlugin(tid) && !isShadow(tid) && !isArtifact(tid)) {
			_tiddlers.push(tid);
		}
	}
	return _tiddlers;
}

function bubbleDown() {
	var friends = $(".friend");
	friends.css({ position: "relative" });
	var target;
	friends.each(function(i, el) {
		if(!target && $(el).hasClass("silentFriend") &&
			$(el).next(".friend").hasClass("noisyFriend")) {
			target = el;
		}
	});
	if(target) {
		var other = $(target).next(".friend");
		// we want to move target above the prev element
		// target is an element which has the class noisy and the previous node is quiet
		var swapDuration = 50;
		var otherHeight = other.height();
		var thisHeight = $(target).height();
		$(target).animate({ top: + otherHeight }, { duration: swapDuration });
		$(other).animate({ top:  - thisHeight }, { duration: swapDuration,
				complete: function() {
					var newTarget = $(target).clone(true).insertAfter(other)[0];
					$(target).remove();
					$(other).css({ top: 0 });
					$(newTarget).css({ top: 0 });
					bubbleDown();
				}
		});
	}
}

function renderTiddlerList(container,friend) {
	var tidList = $("<ul />").appendTo(container)[0];
	$("<li />").text("loading").appendTo(tidList);
	var oncompletion = function() {
		if($(".errorFriend,.silentFriend,.noisyFriend").length === $(".friend").length) {
			bubbleDown();
		}
	}
	$.ajax({ dataType: "json",
		url: "/search?q=modifier:" + friend + "&select=modified:>3d&sort=-modified",
		error: function() {
			$(container).addClass("errorFriend");
			oncompletion();
		},
		success: function(tiddlers) {
			$(tidList).empty();
			tiddlers = chooseTiddlers(tiddlers);
			if(tiddlers.length === 0) {
				$(container).addClass("silentFriend");
				$("<li />").text("No recent activity.").appendTo(tidList);
				oncompletion();
				return;
			} else {
				$(container).addClass("noisyFriend").removeClass("inactiveFriend");
				oncompletion();
			}
			for(var i=0; i < tiddlers.length; i++) {
				var tiddler = tiddlers[i];
				var item = $("<li />").appendTo(tidList)[0];
				var win;
				var space = tiddler.bag.split("_")[0];
				var spaceUrl = "http://" + space + ".tiddlyspace.com";
				var path = "/bags/" + tiddler.bag + "/tiddlers/" + encodeURIComponent(tiddler.title);
				var link = $("<a />").text(tiddler.title).
					attr("href", spaceUrl + path).
					data("path", path).
					click(function(ev) {
						var win = $(ev.target).data("win");
						if($(ev.target).hasClass("active")) {
							$(win).toggle(1000);
						} else {
							$(ev.target).addClass("active");
							$(".text", win).text("loading...");
							$(win).show();
							$.ajax({
								url: $(ev.target).data("path"),
								data: {
									render: "y"
								},
								dataType: "json",
								success: function(tiddler) {
									$(".text",win).html(tiddler.render);
									$(win).show(1000);
								},
								error: function() {
									$(".text", win).text("error loading that tiddler");
								}
							});
						}
						ev.preventDefault();
					}).
					appendTo(item)[0];
				var space = tiddler.bag.split("_")[0];
				$("<span />").text(" in ").appendTo(item);
				$("<a />").attr("href", spaceUrl).text(space).appendTo(item);
				$("<span />").text(" (" + prettyDate(tiddler.modified) + ")").appendTo(item);
				win = $("<div />").addClass("tiddler").appendTo(item)[0];
				$("<div />").addClass("text").appendTo(win);
				var toolbar = $("<div />").addClass("toolbar").appendTo(win)[0];
				var extra = $("<div />").addClass("extra").appendTo(win)[0];
				$("<button />").data("bag", tiddler.bag).data("title", tiddler.title).text("give feedback").
					data("revision", tiddler.revision).click(function(ev) {
					var title = $(ev.target).data("title");
					var revision = $(ev.target).data("revision");
					var bag = $(ev.target).data("bag");
					var revisionURL = host + "/bags/" + bag + "/tiddlers/" + encodeURIComponent(title) + "/revisions/" + revision;
					var space = bag.split("_")[0];
					var area = $(ev.target).parents(".tiddler").children(".extra")[0];
					$(area).hide();
					$("<textarea />").appendTo(area);
					$("<button />").text("save feedback").click(function(ev) {
						var tid = new tiddlyweb.Tiddler("Feedback for " + title, userbag);
						tid.tags = ["feedback", "@" + space];
						tid.text = ["In reply to [[", title, "]]@", space,
							" (revision [[", revision, "|", revisionURL, "]])\n\n"].join("") + $("textarea", area).val();
						tid.put(function(tiddler) {
							$(area).empty();
							$("<span />").text("your comment: ").appendTo(area);
							$("<a />").attr("href", "/" + encodeURIComponent(tiddler.title)).text(tiddler.title).appendTo(area);
						}, function() {
							printError("error commenting!");
						});
					}).appendTo(area);
					$(area).show(1000);
					ev.preventDefault();
					$(ev.target).remove();
					return false;
				}).appendTo(toolbar);

				$(win).hide();
				$(link).data("win", win);
			}
		}
	})
}

function removeFriend(friend) {
	var tiddler = new tiddlyweb.Tiddler("@" + friend, userbag);
	var success = function() {
		printMessage("User removed from friends");
		var newFriends = [];
		for(var i = 0; i < friends.length; i++) {
			var f = friends[i];
			if(f !== friend) {
				newFriends.push(f);
			}
		}
		friends = newFriends;
		$("#friend-" + friend).hide(2000);
	};
	tiddler["delete"](success, function() {
		var old = new tiddlyweb.Tiddler(friend, userbag);
		old["delete"](success, function() {
			printError("Unable to remove friend " + friend);
		})
	})
}

function renderFriend(list, friend) {
	var bag = friend + "_public";
	var item = $("<li />").addClass("friend").attr("id", "friend-" + friend).addClass("inactiveFriend").appendTo(list)[0];
	$("<img />").attr("alt", friend).attr("title", friend).
		attr("src", host + "/bags/" + bag + "/tiddlers/SiteIcon").css({ width: 48, height: 48 }).appendTo(item);
	var heading = $("<h2>").appendTo(item)[0];
	$("<a />").attr("href", "#friend-" + friend).attr("name", "friend-" + friend).text(friend).appendTo(heading);
	$("<button />").data("who", friend).text("remove from friends").
		click(function(ev) {
			if(confirm("Are you sure you want to remove " + friend + " as a friend?")) {
				removeFriend($(ev.target).data("who"));
			}
		}).appendTo(item)[0];
	renderTiddlerList(item,friend);
}

function renderFriends() {
	var list = $("<ul />").appendTo("#friends")[0];
	$("<li />").text("Activity of your friends will appear below when available").appendTo(list);
	for(var i = 0; i < friends.length; i++) {
		var friend = friends[i];
		renderFriend(list, friend);
	}
}

function followWidget() {
	$("#friends").empty();
	var container = $("<div />").addClass("addfriends").appendTo("#friends")[0];
	$("<input />").attr("name", "friend").appendTo(container);
	$("<button />").text("add friend").click(function(ev) {
		var friend = $(ev.target).parent().children("[name='friend']").val();
		if(friends.indexOf(friend) > -1) {
			return printError("You already follow " + friend + "!");
		}

		var title;
		if(friend.indexOf("@") !== 0) {
			title = "@" + friend;
		} else {
			title = friend;
		}

		$.ajax({ dataType: "text", url: "/users/" + friend,
			success: function() {
				var tid = new tiddlyweb.Tiddler(title, userbag);
				tid.tags = ["follow", "excludeLists"];
				tid.put(function(tiddler) {
					printMessage("Added friend " + friend);
					renderFriend($("#friends ul")[0], friend);
					window.location.hash = "#friend-" + friend;
				}, function() {
					printError("Failed to add friend " + friend);
				})
			},
			error: function() {
				printError("No one with name " + friend + " exists!");
			}
		});
	}).appendTo(container);
	renderFriends();
}
$.ajax({
	url: "/status",
	dataType: "json",
	success: function(status) {
		user = status.username;
		userbag = new tiddlyweb.Bag(user + "_public", "/");
		$.ajax({ url: "/bags/" + user + "_public/tiddlers?select=tag:follow", dataType: "json", success: function(tiddlers) {
				for(var i = 0; i < tiddlers.length; i++) {
					var title = tiddlers[i].title;
					if(title.indexOf("@") === 0) {
						title = title.substr(1, title.length);
					}
					friends.push(title);
				}
				friends.sort();
				followWidget();
			}
		});
	}
})
<svg width="320" height="240" xmlns="http://www.w3.org/2000/svg">
 <!-- Created with SVG-edit - http://svg-edit.googlecode.com/ -->
 <g>
  <title>Layer 1</title>
  <rect fill="#ffffaa" stroke="#000000" stroke-width="5" x="78" y="59" width="175" height="122" id="svg_1"/>
  <line fill="none" stroke="#000000" stroke-width="5" x1="79" y1="64" x2="168" y2="106" id="svg_2" transform="rotate(3.57633, 123.5, 84.9999)"/>
  <line fill="none" stroke="#000000" stroke-width="5" x1="164" y1="64" x2="253" y2="106" id="svg_3" transform="rotate(-53.8646, 208.5, 85)"/>
 </g>
</svg>
response?....test
By including this space to your own you enable rearranging tiddlers.
Drag tiddlers by title to re-order story column display.
I tweaked the feed mechanism in the markup-prehead.

I saw the notification about the implementation....but my markup-prehead stayed empty. I emptied it a while ago to make my favicon work (deleted the favicon link from the markup-prehead to prevent that one from showing instead).

The feed in another space is setup to show: {{{select=tag:!excludeLists}}}
I changed this setting for now to only show the "blog"-tag.
Hey Mario...I did some test on simplicity.

When the left and right nav buttons are invisible, how could a reader know that here are more tiddlers to read? (perhaps that middle strip might give an indication if always visible ... or a "you are here"....or pagenumbers "page 2 of 10")
----
For me a:
.nav .tiddlyLink {
margin-left: 12px;
margin-right: 12px;
}
...works best...if not then the right "nav" button is too close to the more-button. (margin right is just for balance)
----
In backstage: When I want to access the tiddlers via backstagePanel the tabs are hard to use (jumpy)...almost not possible to select a tab from the side.
----
Perhaps an idea to present the tiddlers in a carousel (like the lightbox)...and provide scrollwheel browsing (if tiddlers are limited to max. 10 or 20...)...?



Can I reach you this way without you following me?
/***
|''Name''|HeadlessTheme|
|''Source''|http://bauwebijl.tiddlyspace.com/#HeadlessTheme|
|''Version:''|0.2|
|''Author:''|Bauwe Bijl|
|''Date:''|November 9th, 2010|
|''License:''|[[BSD License|http://bauwebijl.tiddlyspace.com/#LegalStatements]]|
|''Comments:''|Please make comments at http://groups.google.nl/group/TiddlyWiki|
|''~CoreVersion:''|2.6.1|
|''Type''|CSS|
|''Description''|a ''~TiddlySpace'' theme: http://bauwebijl.tiddlyspace.com/#HeadlessThemeInfo|
|''PageTemplate:''|##PageTemplate|
|''ViewTemplate:''|##ViewTemplate|
|''EditTemplate:''|##EditTemplate|
|''StyleSheet:''|##StyleSheet|
***/
!PageTemplate
<!--{{{-->
<div class='header'>
	<div id='sidebarSearch'>
		<span macro='search search'></span>
	</div>
	<div class='headerForeground'>
		<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
		<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
	</div>
	<div class='clearFloat'></div>
</div>
<div id='menuBar'>
	<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>	
	<div id='tabSlider' refresh='macro' force='true' macro='slider chkSideBarTabs SideBarTabs "menu »" "display lists of tiddlers"'></div>
        <div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
</div>
<div id='displayArea'>
	<div id='messageArea'></div>
	<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
!ViewTemplate
<!--{{{-->
<div class='toolbar'
	macro='toolbar [[ToolbarCommands::ViewToolbar]] icons:yes height:16 width:16 more:popup'>
</div>
<div class='heading'>
	<span class='spaceSiteIcon'
		macro='tiddlerOrigin label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
	</span>
	<span class="titleBar">
		<div class='title' macro='view title text'></div>
		<div class="subtitle" macro='viewRevisions page:5'>
			last modified on
			<span macro="view modified date"></span>
		</div>
		<div macro="view title replyLink"></div>
	</span>
	<span class='followPlaceHolder' macro='followTiddlers'></span>
	<span class='modifierIcon'
		macro='view modifier SiteIcon label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
	</span>
	<div class='tagClear'></div>
</div>
<div class='content'>
	<div class='viewer' macro='view text wikified'></div>
</div>
<div class='tagInfo'>
	<div class='tidTags' macro='tags'></div>
	<div class='tagging' macro='tagging'></div>
</div>
<!--}}}-->
!EditTemplate
<!--{{{-->
<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>
<!--}}}-->
!StyleSheet
/*{{{*/
[[StyleSheet]]
#sidebarOptions {
margin-right:0;
}
.tabset {
height:16px;
padding-left:0;
padding-right:0;
padding-top:0;
width:490px;
font-size: 0.8em;
}
.tabset, .tabContents {
font-size: 0.8em;
}
#tabSlider {
margin-right: 12px;
float: right;
}
#tabSlider .button {
float: left;
margin-right: 20px;
font-size: 0.8em;
}
#sidebarOptions a:active, #tabSlider a:active { 
background:[[ColorPalette::PrimaryLight]];
border:none;
}
#tabSlider a.button {
color: #fff;
border-width:0;
padding:2px 8px 1px 10px;
}
#tabSlider a.button:hover {
color: [[ColorPalette::PrimaryPale]];
background: [[ColorPalette::PrimaryMid]];
}
#tiddlerDisplay {
margin:16px 72px 0px 72px ;
}
#contentWrapper {
margin-left:20px;
margin-right:20px;
}
.headerForeground {
background-color:[[ColorPalette::Background]] !important;
color:[[ColorPalette::PrimaryLight]] !important;
margin-top:8px;
height:38px;
}
.header {
background-color:[[ColorPalette::Background]] !important;
}
/*}}}*/
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]].
<html><hr><html>
<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
	<title>This Space</title>
	<script type='text/javascript' src='/bags/common/tiddlers/backstage.js'></script>
	<link href="/bags/common/tiddlers/profile.css" type='text/css' rel='stylesheet' >
	<link href="/bags/common/tiddlers/admin.css" type='text/css' rel='stylesheet' >
</head>
<body>
<div id="container">
	<div id="text-html" class="main section">
		<a class="app" href="/apps">back to apps</a>
		<div class="left">
		<h2>About this space <button class='toggleNext'>show</button></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" />
				<input type="submit" value="upload" />
			</form>
		</div>
		<h2>Vital Statistics</h2>
		<div id="info">please wait while information is loaded about this space...</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 to add all existing members of that space.</p>
				<form class="ts-members">
					<input class="inputBox" type="text" name="username">
					<input type="submit" value="Add Member" />
				</form>
			</div>
			<h2>
				Existing Members <button class='toggleNext'>&lt;</button></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" />
			</form>
		</div>
		<div>
			<h2>Included Spaces <button class='toggleNext'>&lt;</button></button></h2>
			<div>
			This space includes the following spaces:
			<ul class="ts-includes"></ul>
			</div>
		</div>
		</div>
		<div class="clear"></div>
	</div>
</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/chrjs.space'></script>
<script type='text/javascript' src='/bags/common/tiddlers/chrjs.users'></script>
<script type='text/javascript' src='/bags/common/tiddlers/chrjs.identities'></script>
<script type='text/javascript' src='/bags/tiddlyspace/tiddlers/TiddlySpaceCSRF'></script>
<script type='text/javascript' src='/bags/common/tiddlers/jquery-form.js'></script>
<script type='text/javascript' src="/bags/common/tiddlers/siteiconupload.js"></script>
<script type='text/javascript' src="/bags/common/tiddlers/ts.js"></script>
<script type="text/javascript">
	ts.init(function(ts) {
		if(!ts.currentSpace) {
			return;
		}
		var address = window.location.hostname.split(".");
		var spaceName = address[0];
		var publicBag = spaceName + "_public";
		$("#siteUrl").text(window.location.hostname);
		initSiteIconUpload(spaceName);

		function countTiddlers(members) {
			var numMembers = members ? members.length : false;
			var publicBagUrl = "/bags/" + publicBag + "/tiddlers";
			var url = members ? "/bags/" + spaceName + "_private/tiddlers" :
				publicBagUrl;
			$.ajax({ url: url, dataType: "text",
				success: function(tiddlers) {
					var numTiddlers = $.trim(tiddlers).split("\n").length;
					var html = "";
					function printFullInfo(numPublicTiddlers) {
						var totalTiddlers = numPublicTiddlers + numTiddlers;
						html += ['This space has ', numMembers,
							' members, <a href="/tiddlers">', totalTiddlers,
							' local tiddlers</a>, <a href="' + url + '">',
							numTiddlers, ' are private</a> and <a href="',
							publicBagUrl, '">',
							numPublicTiddlers, ' public</a>.'].join("");
						$("#info").html(html);
					}
					if(numMembers) {
						$.ajax({
							url: publicBagUrl,
							dataType: "text",
							success: function(tiddlers) {
								printFullInfo($.trim(tiddlers).split("\n").length);
							}
						});
					} else {
						html += 'This space has <a href="' + url + '">' + numTiddlers + " public tiddlers</a>";
						$("#info").html(html);
					}
				}
			});
		}
		var space = new tiddlyweb.Space(spaceName, "/");
		space.members().get(function(members) {
			countTiddlers(members);
		}, function() {
			countTiddlers();
		});

		function complete(tiddler) {
			$("#siteinfo .edit").show();
			$("#siteinfo .value").data("tiddler", tiddler).
				empty().html(tiddler.render);
		}
		function siteInfoEditor(tiddler) {
			var errback = function() {
				$("#siteinfo .edit").click();
				$("<div class='error' />").text("Error occurred whilst saving.").prependTo("#siteinfo .value");
			};
			$("<button class='edit' />").click(function(ev) {
				var editBtn = $(ev.target);
				$(editBtn).hide();
				var val = $(".value", $(ev.target).parent("#siteinfo")[0]);
				var wikitext = $(val).data("tiddler").text;
				var html = $(val).html();
				$(val).empty();
				$("<textarea />").val(wikitext).appendTo(val);
				$("<button />").text("save").click(function(ev) {
					var text = $("textarea", val).val();
					$(val).empty().text("saving...");
					tiddler.text = text;
					tiddler.put(function() {
						tiddler.get(function(tid) {
							tiddler = tid;
							complete(tid);
						}, errback, "render=y");
					}, errback);
					$(editBtn).show();
				}).appendTo(val);
				$("<button />").text("cancel").
					click(function(ev) {
						complete(tiddler);
					}).appendTo(val);
			}).text("edit").appendTo("#siteinfo");
		}
		var tiddler = new tiddlyweb.Tiddler("SiteInfo", new tiddlyweb.Bag(publicBag, "/"));
		$("<div class='value' />").text("(Loading SiteInfo tiddler)").data("tiddler", tiddler).appendTo("#siteinfo");
		tiddler.get(
			function(tid) {
				tiddler = tid;
				$("#siteinfo .value").data("tiddler", tid).html(tid.render || tid.text);
				if($(document.body).hasClass("ts-member")) {
					siteInfoEditor(tid);
				}
			},
			function() {
				$("#siteinfo .value").text("This space has not published any information about itself.");
				if($(document.body).hasClass("ts-member")) {
					siteInfoEditor(tiddler);
				}
			}, "render=1");
	});
	function toggleNext(ev) {
		var label1 = "hide";
		var label2 = "show";
		var target = $(ev.target).parent().next();
		var visible = $(ev.target).hasClass("open") ? true : false;
		var label = visible ? label1 : label2;
		$(target).stop(true, true);
		if(!visible) {
			$(target).slideDown(200);
			$(ev.target).addClass("open").text(label1);
		} else {
			if($(target).parents().is(":hidden")) {
				// see http://forum.jquery.com/topic/slideup-doesn-t-work-with-hidden-parent
				$(target).hide();
			} else {
				$(target).slideUp(200);
			}
			$(ev.target).removeClass("open").text(label2);
		}
	}
	// setup hide/show sliders
	$(".toggleNext").each(function(i, el) {
		$(el).addClass("open").click(toggleNext);
		toggleNext({ target: el });
	});

	if(window != window.top) {
		$("html").addClass("iframeMode");
		$("a").live("click",function(ev) {
			$(ev.target).attr("target", "_blank");
		});
	}
</script>
<!--[if lt IE 8]>
<script type="text/javascript" src="/bags/common/tiddlers/json2.js"></script>
<![endif]-->
</body>
</html>
Drop is the dutch word for liquorice (usually a black colored candy in Holland). Because the english variety is more colorful it seemed a nice name for a theme that changes from black/grey to colors.

<<image liquorice.jpg>>
The HtmlCss is a tiddler containing the css for the html-representation of your tiddlers.
In order to let your css work in the HtmlCss the proper field has to be set:
{{{Content-Type: text/css}}}

To do this with curl:
{{{
curl -u bauwebijl:XXX -X PUT --data-binary @HtmlCss \
    -H "Content-Type: text/css" \
    http://bauwebijl.tiddlyspace.com/bags/bauwebijl_public/tiddlers/HtmlCss
}}}
Adjust name, pw. and url...

User-agent: *
Disallow: /bags/*/tiddlers.wiki
Disallow: /recipes/*/tiddlers.wiki
Disallow: /*/revisions
/***
|''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);
//}}}
@mockups
Ok, now I'm modifying this TestHello that you sent.

Why isn't it pre-tagged with your name?

And what happens if you've continued to edit it while I'm editing it and then sending it to you?

--------
Now I'm adding this comment: and what if we don't want it public from mailing it like this? 
----
Hey...works?
[[Replies and Notifications]]

<<activity>>
iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kIGxIfEm/MdNAAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAo0lEQVQoz5XRIQoCARCF4W/FYDBbzWIzeQUvIOIN7GJZ8AY2g5jMnsBoVS9gEcFsNZi0jLIs6+IODPNmmJ83MEmapi8VoqZiZIEGOpjg8A/wxBkr9AMsBR44Yhr9CoMyoIUZenFSG7u8U95hjzG2kR+nQxFwxzL0ApfMeZsioIdmBlpjGHpfBNwwxyj6E7qhr5+legZ4RSZR8/PCTyc//vWdvwFhqCChtFwyigAAAABJRU5ErkJggg==
<html>
<head>
	<title>Friends</title>
	<style type='text/css'>
		ul {
			list-style: none;
		}
		ul .friend {
			border-bottom: solid 1px black;
		}
		ul .friend .tiddler {
			margin-left: 10px;
			margin-bottom: 30px;
			padding: 10px;
			border: dotted 2px #CCC;
			color: #006100;
		}
		textarea {
			width: 100%;
			height: 150px;
		}
		.friend h2 {
			display: inline-block;
		}
		button {
			display: inline-block;
		}
		.inactiveFriend {
			background-color: #ccc;
			opacity: 0.1;
		}
	</style>
	<link rel="stylesheet" href="/HtmlCss" type="text/css">
</head>
<body>
<div id="container">
<div id="header">
<h1>Your friends</h1>
</div>
<noscript>
	javascript is required to see friend's activity
</noscript>
<div id='friends' class="section">loading...</div>
</div>
<script src="/bags/common/tiddlers/jquery.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/common/tiddlers/jquery-json.js" type="text/javascript" charset="utf-8"></script>
<script src="/bags/tiddlyspace/tiddlers/chrjs" type="text/javascript" charset="utf-8"></script>
<script type='text/javascript' src='/friendjs'></script>
</body>
</html>
I like the way dropbox works with tiddlywiki's besides the weird code-like url dropbox gives.

What I do like and wish is some sort of dropbox idea for tiddlywiki's.
A local-folder that has all your locals and sync with a tiddlyspace-server when connected to the web.
Working either on the local or the server tiddlywiki must make no difference (apart from the uri)...it gets synced anyway. 
With dropbox the backup-folders are synced too.
For SyncSpace the "local" sync-folder may have the backupfolders of the tiddlywiki's inside. The sync mechanism should only sync with the tw's in the / folder and leave the /backup.
Or.....
The local sync-folder is already a local tiddlyweb installation.
<html><div align="center"><iframe src="http://blip.tv/play/g8o%2BgYbIBQA" " frameborder="0" width="100%" height="600"></iframe></div></html>
Hi Jeremy,

I've been writing some articles lately (still in progress) to try to make clear what I'm doing around "here"....but in a personal way (less "technical")
//
:Mainly to create some backgrounds, when someone asks about something I don't need to rewrite.....just give a link...
:Especially lately when I have increasing contacts with other tw'rs on skype chats and tinychat.
:Because these chats are less formal (more place for jokes and fun) I found myself rewriting the same backround-stories/opinions.
//
In the light of your interview-questions it might be interesting to see what's there?

[[read my articles|http://bauwe.tiddlyspace.com/#Less-Tiddly-Related-Personal]]

....And also a slightly different format, column style-ish instead of open questions (1 on 1).....something like "write your articles with these topics in mind"..... might be an idea. 
/***
|''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);
//}}}
Jon I checked your site again....because I don't get a notice on my space (I saw on your space it's all recieved)

I like the idea of a instruction video.
Could you also explain how I can make the next subject ehh...posted/topic... like on google groups?

I would like to share this similar as on google:

http://bauwebijl.tiddlyspace.com/#SocialDrawing%20Harmony

Hey Chris

Immediately after your first announcement about moving content from .org I've created a new tiddler @tiddlywiki containing the one and only useful thing I once found on .org.

tiddlywiki.org seldom gave me what I was looking for....seems to have a bad search function (for me).....sometimes I got there via google...or via links in the groups.
But occasionally found spam on there by checking what's new/latest.
And because all "__my__" answers to issues where found elsewhere it never was a "source" for me (apart from the tiddler I already created).

Therefor I have no exact idea about how much and what's inside .org (I know FND did work on it so there must be value inside ;) ..... and how much content already can be found elsewhere...?
It seems to me that it is not used much as a reference in the googlegroups (not since I'm there)

I think it's a good move to get the content refreshed and moved to a real tw/s ;).

What might help to get involved (for me and others):
*openID login
*an idea on how much is inside and a idea on how much is digested by us
*freeze page creation (if not already) so I don't get distracted by cheapest-car-insurance-adds 
further:
I can imagine, me making a copy and mark the original .org page as such....
I guess some agreement on marking other content in a short way (without comments) would  also help.
So others can see I visited a page and did either copy it or mark it for "non-copy" and "no-idea-what-to-do-with-this" (which are basically just votes)
saying: 
XXX was here: COPIED - NOCOPY - NOIDEA  
(of course a vote for copy is the action itself)

Like I mentioned .org wasn't very helpful for me in the past (I've never visited longer then 5 minutes) but perhaps I can dig up some more useful info.
Also when going in I would like to be able to delete/blacklist some annoying spam/adds/pages that come on my path.

Another concern is the more specific content about ~GTD-tw and other solutions.....who is going to pick that up?
For instance, I really have zero with GTD and am not convinced that I'm able to filter out the useful content of it.

And perhaps the......:
http://hoster.peermore.com/recipes/tiddlywiki-reference/tiddlers.wiki
and
http://hoster.peermore.com/recipes/TiddlyWikiPatterns/tiddlers.wiki 
(funny there are 2.....I've read they are included in @glossary or some other space)
......could function as a reference list of what is digested (transferred)
/***
|''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);
//}}}
/***
|''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 && excludeValues.indexOf(v) === -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));
//}}}
@abcd works in firefox now!
/***
|''Name''|TiddlySpaceViewTypes|
|''Version''|0.5.6|
|''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"
	}
};

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) {
			if((space && user.name != space &&
					user.name != tiddlyspace.currentSpace.name) || imported) {
				createSpaceLink(container, user.name, value, label);
				tweb.getStatus(function(status) { // force callback to run after existing callbacks
					var url = config.extensions.tiddlyspace.getHost(status.server_host, user.name) + "#[[" + encodeURIComponent(value) + "]]";
					jQuery("a", container).attr("href", url);
				});
			}
		}
	});
};

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);
//}}}
/***
|''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";

})();
//}}}
<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>
''Update''
Hi Jon....
I just added filters on the tagcloud:
http://howtoos.tiddlyspace.com/#Tags 

In the tags tiddler both methods are used a.t.m. to show the big difference in code-size to produce the same cloud.
I used the filters for the tag publish in the bottom example (so all related tags are there) and also exluded the same tag (publish) from showing.

''Issue 1:''
The number of items are not right in the ''filtered'' cloud (below the {{{----}}} )
.....the tag server has 6 says 5..... (probably because some items are also in another tag list .....like the tag tiddlyweb that is also tagged server etc.)


''Issue 2:''
the {{{[and[tag:about]]}}} does not show.

The !-mark for excluding did not work either:
Ideally I would like to use:
{{{<<tagcloud filter:[tag[publish]][and[tag:about]][and[!tag:osx10.5.4]][and[!tag:vbox]][and[!tag:ps3]] [and[!tag:publish]]>>}}}

----
Hi Jon,
I just added your tagcloud to http://howtoos.tiddlyspace.com/#Tags 

Only I had to exclude a bunch of tags to make the cloud work for my site. Basically I want the cloud to show the "topics" but I also use tags to group a topic with extra images so people can use tagging to return to previous "pages".
These tags had to be excluded to clean up the cloud.

One might think of a cloud with tags that are tagged as "showincloud".... (tagging tags hahahaha)
But basically that is what I like to use for the tagcloud on @howtoos ...... a cloud presenting the "topics" but not the internal twtags.

Do you have some documentation or examples? ...(like listing all tags that are ''__also__'' tagged "publish") 
/***
|''Name''|TiddlySpaceCloneCommand|
|''Version''|0.5.7|
|''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("private");
			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);
//}}}
<<tabs 
	txtMainTab 
	"Recent" "Recently edited tiddlers" TabTimeline
	"All" "All tiddlers" TabAll
	"Public" "All public tiddlers" [[TiddlySpaceTabs##Public]]
	"Private" "All private tiddlers" [[TiddlySpaceTabs##Private]]
	"Drafts" "All draft tiddlers" [[TiddlySpaceTabs##Drafts]]
	"Tags" "All tags" TabTags
	"Spaces" "Tiddlers grouped by space" [[TiddlySpaceTabs##Spaces]]
	"Activity" "What people you are following are up to" TabFollowing##Activity
        "Following" "People you are following" TabFollowing##Following
        "Followers" "People who are following you" TabFollowing##Followers
	"Missing" "Missing tiddlers" TabMoreMissing
	"Orphans" "Orphaned tiddlers" TabMoreOrphans
	"Shadows" "Shadowed tiddlers" TabMoreShadowed
>>
;News collectors
<<list filter [tag[newscollect]]>> 
;Graphics:
<<list filter [tag[graphics]]>>
----
;Private-only:
<<list filter [tag[privateparts]]>>