JavaScript is turned off in your web browser. Turn it on to view TW Help

TiddlyWiki help file for beginners is loading
please wait....

Assembled and Built by Morris Gray


Douglas Adams «Hitchhiker's Guide to the Galaxy»
TwHelp -
<!--{{{-->
<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]];}

.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}

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

#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 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}

.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:0em 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 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

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

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

.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 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 0em;}
.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 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 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 0em 14em;}

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

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

.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:0em 0.25em; padding:0em 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:0px 3px 0px 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 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

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

.sparkline {line-height:1em;}
.sparktick {outline:0;}

.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 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 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 1em;}
/* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
noscript {display:none;}
}
/*}}}*/
<!--{{{-->
<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>>
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[Any format of a journal you want|JournalTemplate]]^^<<tiddler CloseThisOpen with: "Macros Built-in"  '« back'>>|<<toolbar editTiddler>>» ^^>>
!!!<<gradient horiz #abf #fff>>&nbsp;Goals>>
Dear Journal,

Today is @@color:#C06;''<<today "YYYY.0MM.0DD 0hh:0mm:0ss week 0WW">>''@@ and I am going to dance at the slightest sound of music I hear played.  It might sound funny but that's my goal for today.
!!!<<gradient horiz #abf #fff>>&nbsp;Tasks>>
Completed every task. Am very proud and bored.

!!!<<gradient horiz #abf #fff>>&nbsp;Day's end>>


!!!<<gradient horiz #fc3 #fff>>&nbsp;[[22SafeColors]]^^<<tiddler CloseThisOpen with: UsingColor  '« back'>>|<<toolbar editTiddler>>» ^^>>

{{borderless{
|vertical-align:bottom;<<fullscreen>><<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://www.webmonkey.com/reference/Color_Charts]]&nbsp;&raquo;|
<html><div align="center"><iframe src ="http://www.webmonkey.com/reference/Color_Charts" width="100%" align="center" height="600"></iframe></div></html>}}}
{{textcenter{
''[[List of tiddlers sorted by Modified Date.|25TiddlersByModifiedDate]]''
(25 only)
}}}
{{tablecenter{
<<forEachTiddler 
 where
 'tiddler.modified'
 sortBy
 'tiddler.modified'
 descending
 write
 '(index < 25) ? "|"+(index+1)+"|[["+tiddler.title+"]] |@@color:#c06;&raquo;  &raquo;@@ |"+tiddler.modified.formatString("YYYY.0MM.0DD"+" @ "+"0hh:0mm:0ss")+"|\n" : ""'
>>
}}}
<<gradient horiz #fc3 #ffffff>>&nbsp;[[2BL 702AM|2BL 702AM]]>>
{{borderless{
| <<tiddler ./player>> | &nbsp;&nbsp;&nbsp; |<<tiddler ./702am>> |
}}}
<part 702am hidden>
{{textleft{
[img[http://img299.imageshack.us/img299/5325/abclogoot5.gif]][img[http://img340.imageshack.us/img340/9374/abcbannerlocalii6.gif]]
@@color:#c06;''&raquo;''@@ [[Go to Web Site|http://abc.net.au/sydney/]]
@@color:#c06;''&bull;''&nbsp; @@ [[Media Player|http://abc.net.au/streaming/702/702stream.asx]]
@@color:#c06;''&bull;''&nbsp; @@ [[RealPlayer|http://www.abc.net.au/streaming/702/702stream.ram]]
}}}
</part>
<part player hidden>
@@color:#c06;''&bull;''@@&nbsp; @@color:#00f;Streaming ABC Radio 702AM@@[img[http://img218.imageshack.us/img218/7518/speakersmqz8.gif]]
<html><embed type="video/x-ms-asf" id="player_FF" name="player_FF" displaysize="4" autosize="0"
  bgcolor="white" showcontrols="true" showtracker="1" showdisplay="1" showstatusbar="1" videoborder3d="0" width="300" height="142" src="http://abc.net.au/streaming/702/702stream.asx" autostart="true" designtimesp="5311" loop="false" volume="100"></embed></html>
</part>
[img[http://img218.imageshack.us/img218/7518/speakersmqz8.gif]][[Listen 2CBA 103.2FM |mms://202.147.105.45/fm1032]] - [[Go to Web Site|http://fm1032.relate.com.au/]]
[img[http://img218.imageshack.us/img218/7518/speakersmqz8.gif]] [[Listen 2CH 1170AM|http://2ch.com/cgi-bin/listenlive.pl]] - [[ Go to Web Site|http://2ch.com.au/welcome.shtml]]
<<gradient horiz #fc3 #ffffff>>&nbsp;[[2PB 630AM|2PB 630AM]]>>
{{borderless{
| <<tiddler ./player>> | &nbsp;&nbsp;&nbsp; |<<tiddler ./630am>> |
}}}
<part 630am hidden>
{{textleft{
[img[http://img143.imageshack.us/img143/3461/newsradiokv8.gif]]
@@color:#c06;''&raquo;''@@ [[Go to Web Site|http://www.abc.net.au/newsradio/]]
@@color:#c06;''&bull;''&nbsp; @@ [[Media Player|http://www.abc.net.au/newsradio/audio/winplayer.htm]]
@@color:#c06;''&bull;''&nbsp; @@ [[RealPlayer|http://www.abc.net.au/newsradio/audio/realplayer.htm]]
}}}
</part>
<part player hidden>
@@color:#c06;''&bull;''@@&nbsp; @@color:#00f;Streaming ABC News Radio 630AM @@[img[http://img218.imageshack.us/img218/7518/speakersmqz8.gif]]
<html><embed type="video/x-ms-asf" id="player_FF" name="player_FF" displaysize="4" autosize="0"
  bgcolor="white" showcontrols="true" showtracker="1" showdisplay="1" showstatusbar="1" videoborder3d="0" width="300" height="142" src="http://www.abc.net.au/streaming/newsradio.asx" autostart="true" designtimesp="5311" loop="false" volume="100"></embed></html>
</part>
<<gradient horiz #fc3 #ffffff>>&nbsp;[[2RN-576AM|2RN-576AM]]>>
{{borderless{
|<<gradient horiz #abf #ffffff>> <<tiddler ./player>>>> |&nbsp;&nbsp;&nbsp;|<<gradient horiz #abf #ffffff>><<tiddler ./576am>>>> |
}}}
<part 576am hidden>

{{textleftpad5{
[img[http://img176.imageshack.us/img176/882/abcsb3.gif]][img[http://img72.imageshack.us/img72/7418/rnhn0.gif]]

@@color:#c06;''&raquo;''@@ [[Go to Web Site|http://www.abc.net.au/rn/]]
@@color:#c06;''&bull;''&nbsp; @@ [[Media Player|http://www.abc.net.au/rn/listen/wmp.htm]]
@@color:#c06;''&bull;''&nbsp; @@ [[RealPlayer|http://www.abc.net.au/rn/listen/real.htm]]
}}}
</part>
<part player hidden>
{{textleftpad5{
@@color:#c06;''&bull;''@@&nbsp; @@color:#00f;Streaming ABC Radio National 576AM@@&nbsp;~~[img[http://img218.imageshack.us/img218/7518/speakersmqz8.gif]]~~
<html><embed type="video/x-ms-asf" id="player_FF" name="player_FF" displaysize="4" autosize="0"
  bgcolor="white" showcontrols="true" showtracker="1" showdisplay="1" showstatusbar="1" videoborder3d="0" width="300" height="142" src="http://www.abc.net.au/streaming/RN.asx" autostart="true" designtimesp="5311" loop="false" volume="100"></embed></html>
}}}
</part>
{{tablecenter{
<<forEachTiddler 
where
'tiddler.title.toLowerCase().startsWith("a")'
sortBy '(tiddler.title.toLowerCase())' 
 ascending
write
 '"|bgcolor:#fdf; "+(index+1)+"|[["+tiddler.title+"]]| "+tiddler.text.length+"|"+tiddler.tags+"|bgcolor:#fdf;"+tiddler.modified.formatString("YYYY.0MM.0DD")+"|\n"'
 begin '"| sort &raquo;| Title | Size | Tags |Modified|h\n"'
>>
!!!Color Wheel
http://www.ficml.org/jemimap/style/color/wheel.html
!!!Color Names
http://coloria.net/bonus/colornames.htm
!!!CSS Tools awesome
[[CSS Tools|http://www.realsoftwaredevelopment.com/2006/10/the_complete_li.html]]
<<gradient horiz #fc3 #ffffff>>&nbsp;[[ABC 92.9FM|ABC 92.9FM]]>>
{{borderless{
| <<tiddler ./player>> | &nbsp;&nbsp;&nbsp; |<<tiddler ./92.9FM>> |
}}}
<part 92.9FM hidden>
{{textleft{
[img[www.abc.net.au_FM.jpg]]
@@color:#c06;''&raquo;''@@ [[Go to Web Site|http://www.abc.net.au/classic/]]
@@color:#c06;''&bull;''&nbsp; @@ [[Media Player|http://www.abc.net.au/classic/audio/streaming_wmp.htm]]
@@color:#c06;''&bull;''&nbsp; @@ [[RealPlayer|http://www.abc.net.au/streaming/classic/classicfm.ram]]
}}}
</part>
<part player hidden>
@@color:#c06;''&bull;''@@&nbsp; @@color:#00f;Streaming ABC Classic FM 92.9FM@@[img[http://img218.imageshack.us/img218/7518/speakersmqz8.gif]]
<html><embed type="video/x-ms-asf" id="player_FF" name="player_FF" displaysize="4" autosize="0"
  bgcolor="white" showcontrols="true" showtracker="1" showdisplay="1" showstatusbar="1" videoborder3d="0" width="300" height="142" src="http://www.abc.net.au/streaming/classic/classicfm.asx" autostart="true" designtimesp="5311" loop="false" volume="100"></embed></html>
</part>
!!!<<gradient horiz #fc3 #fff>>&nbsp;ABetterIntro^^<<tiddler CloseThisOpen with: NestedStyles  '« back'>>|<<toolbar editTiddler>>» ^^>>
These tabs represent the nested stylesheets that are located at the bottom of ~StyleSheet.  The tabs were created using a script that makes a set of tabs based on a tag. In this case the tag is "nestedstyle".

Reference:
NestedStyleSheets
[[Create tabs with a script|tabs]]
Clicking this will load an operational ~ImportTiddlersPlugin from a remote location.
<script label="Load ImportTiddlersPlugin" title="Load
ImportTiddlersPlugin from www.TiddlyTools.com">
        var script=document.createElement('script');
        script.src='http://svn.tiddlywiki.org/Trunk/contributors/EricShulman/plugins/ImportTiddlersPlugin.js';
        script.onload=function()
{ story.displayTiddler(null,'ImportTiddlers');
displayMessage('ImportTiddlersPlugin has been loaded.'); };
        document.getElementsByTagName('head')[0].appendChild(script);
        return false;
</script> 
{{textcenter{
AS TIME GOES BY
Words and Music by Herman Hupfeld
}}}
| !Verse<br><script label="(memorize)">return Mem.start(place)</script> | !Words<br><script label="(memorize)">return Mem.start(place)</script> |
|You must remember this |a kiss is still a kiss, A sigh is just a sigh, the fundamental things apply, As time goes by.....|
|An' when two lovers woo |they still say "I love you," On that you can rely, no matter what the future brings, As time goes by......|
|Moonlight an' love songs |never out of date, Hearts full of passion, jealousy an' hate, Woman needs man and man must have his mate, That no one can deny.....|
|It's still the same old story |a fight for love an' glory, A case of do or die, the world will always welcome lovers, As time goes by.....|
!!!<<gradient horiz #fc3 #fff>>&nbsp;ASCII-HTMLTable^^<<tiddler CloseThisOpen with: Entities-Codes  '« back'>>|<<toolbar editTiddler>>» ^^>>
*<<toggleSideBar>>
*[[ Open in a new window|http://img406.imageshack.us/img406/7268/webpt9.gif]]&nbsp;&raquo;<html>
{{textjustify{
@@color:#090;
To get special characters to show on an HTML web page, special codes can be used (ascii code or word) and are interpretted by the web browser.@@

}}}<div align="center"><iframe src ="http://img406.imageshack.us/img406/7268/webpt9.gif" width="100%" align="center" height="600"></iframe></div></html>


<script src="ASCIIMathML.js"></script>
!!!!!ASCIITable ^^&bull;[[Detach this|ASCIITable]]^^
*<<toggleSideBar>>
*&nbsp;[[Open in a new window|http://img244.imageshack.us/img244/1193/asciifullyq6.gif]]&nbsp;&raquo;<html>
{{textleft{

+++[ASCII stands for American Standard Code for Information Interchange. Click for more] @@color:#090;Computers can only understand numbers, so an ASCII code is the numerical representation of a character such as 'a' or '@' or an action of some sort. ASCII was developed a long time ago and now the non-printing characters are rarely used for their original purpose. 

Below is the ASCII character table and this includes descriptions of the first 32 non-printing characters. ASCII was actually designed for use with teletypes and so the descriptions are somewhat obscure. 

If someone says they want your CV however in ASCII format, all this means is they want 'plain' text with no formatting such as tabs, bold or underscoring - the raw format that any computer can understand. This is usually so they can easily import the file into their own applications without issues. Notepad.exe creates ASCII text, or in MS Word you can save a file as 'text only'@@
===
}}}<div align="center"><iframe src ="http://img244.imageshack.us/img244/1193/asciifullyq6.gif" width="100%" align="center" height="600"></iframe></div></html>








!!!<<gradient horiz #fc3 #ffffff>>&nbsp;[[DefaultTiddlers|AboutDefaultTiddlers]]^^<<tiddler CloseThisOpen with: FormattingTiddlers  '« back'>>|<<toolbar editTiddler>>» ^^>>
''DefaultTiddlers'' is simply a tiddler that contains the names of the tiddlers that you wish ~TiddlyWiki to load on startup; such as ''Start Here'' or ''Welcome''.  

Tiddlers listed there that contain spaces in their title should be enclosed in square brackets
 {{{[[Start Here]]}}}; in fact I enclose all tiddlers there in square brackets.

From version 2.3 you can use:
{{{<<list filter [tag[css]]>>}}} tag css* (any tag)*
{{{<<list filter "[tag[css]] [tag[list]]">>}}} tag css and tag list
{{{<<list filter "[tag[css]] [!tag[list]]">>}}} tag css and not tag list
!!!End
!Welcome to your ''tiddlyspot.com'' ~TiddlyWiki!
''[[tiddlyspot.com|http://tiddlyspot.com]]'' gives you an instant [[TiddlyWiki|http://tiddlywiki.com]] hosted on our ''tiddlyspot.com'' servers.

Want to work online?  No problem, you can go to your ''tiddlyspot.com'' URL (which is http://tiddlyspot.com/twhelp/ ) and start editing.  Click "save to web" and your changes are saved directly to your ''tiddlyspot.com'' home -- no messing about with local files or ftp.

Want to work offline?  No problem, your ''tiddlyspot.com'' ~TiddlyWiki is a real, fully functioning ~TiddlyWiki that you can save onto your hard drive or USB stick.  Use the link below to save to your local computer.  As you make changes, use the "save to disk" button to save to your local file.  Whenever you're ready to sync up again, just click "save to web".

!To save online
Enter the upload password provided when you created your ~TiddlyWiki.  Then click the "save to web" button below (or in the right side column) to save your ~TiddlyWiki.
Upload Password: <<option pasUploadPassword>>
<<upload http://tiddlyspot.com/science/store.cgi index.html . .  twhelp>>

!To save offline
To take this ~TiddlyWiki offline, click [[Download|http://tiddlyspot.com/?action=download&site=twhelp]]. Save the file locally then open it in your browser.


!Learn more about ~TiddlyWiki
Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]].  Also visit [[TiddlyWiki Guides|http://tiddlywikiguides.org]] for documentation on learning and using ~TiddlyWiki.

The [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]] is an excellent place to ask questions and get help.

!Enjoy!
We hope you like using your ''tiddlyspot.com'' ~TiddlyWiki.  Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments.

----
!!!<<gradient horiz #fc3 #ffffff>>&nbsp;Sites mentioning or linked to TW Help>>
{{textcenter{
http://www.wholinks2me.com/}}}
*[[HeadSpace|http://headspace.esui.org/index.php/2009/02/23/p811]]
*[[NetworkWorld|http://www.networkworld.com/newsletters/web/2009/011209web1.html?page=1]] 2009
*[[LifeHacker on TWT-Notes|http://lifehacker.com/5132115/actionoutline-is-a-blazing-fast-hierarchical-note-organizer#viewcomments]] +++[more...] Free and cross platform, usable from a jumpdrive, the net, or even a floppy disk. Can even be e-mailed. Runs in your web browser.  Simple enough to be used by a class of 6-8 year-olds.
Fully customizable (With a little CSS knowledge) if you don't like the looks.
http://twt-notes.tiddlyspot.com
Oh, and it has search and tagging built in. ~Pan_theFrog    
===

*[[TiddlySpot FAQ|http://faq.tiddlyspot.com/#%5B%5BHow%20many%20sites%20do%20you%20have%3F%5D%5D]]


----
A case of copying ~Science-Matters for another purpose @@color:#C06;''&raquo; &raquo;''@@ http://projectneutral.tiddlyspot.com/ Mexico
----
+++[Мать честная... тут:]
<<<
Мать честная... тут: http://tiddlyspot.com/twhelp/ туева хуча плагов и макросов! Тока я ни фига пока не понимаю, как это всё работает...
 
Добавлено:
А с макросами-то - как работать???
 
Добавлено:
Мдааа... походила по этому сайту - мама моя родная же ж! Такие возможности, а я НИЧЕГО не понимаю! Ну почему! ПОЧЕМУ??? я не учила английский в школе!!! Дура...
----
Translation:
Mother is honest... here: http://tiddlyspot.com/twhelp/ is white-cedar khucha of plagov and macros! Current 4 not figs I thus far understand, as this all works... It is added: But macro- that - as to work??? It is added: However, Mdaaa... resembled on this site - mom my native zh! Such possibilities, but 4 nothing I understand! Well why! WHY??? 4 she did not teach English in the school!!! Fool...
<<<
===
----
+++[Taiwanese copies]
<<<
[img[http://img74.imageshack.us/img74/1894/taiwanflagtkj1.png]]&nbsp;&nbsp;@@color:#C06;''&raquo; &raquo;'' @@ Taiwanese copies
http://54nc.com/jane/twhelp.html
http://54nc.com/olivia/twhelp.html
<<<
===
----
<<<
http://tinyurl.com/cq8s8c @@color:#C06;''&raquo; &raquo;'' @@ Beautiful Chinese
http://scottlabnotebook.tiddlyspot.com/ @@color:#C06;''&raquo; &raquo;'' @@ Excellent examples of working ~TiddlyWikis
http://ashmousestocks.tiddlyspot.com/  @@color:#C06;''&raquo; &raquo;'' @@ Keep trak of your meeces :-)
http://scottlabnotebook.tiddlyspot.com/#TableTemplates @@color:#C06;''&raquo; &raquo;'' @@ TableTemplates
<<<
http://com4.iie-online.nl/ @@color:#c06;(Netherlands)@@
http://www.infodisiac.com/twiki/ http://www.infodisiac.com/
http://132.229.51.112/~zandee/news/archives/2008/04/10/tiddlywiki_als_onderwijsplatform.html (Science Matters: Een prachtig voorbeeld van een vrij complexe webstek gemaakt met ~TiddlyWiki.@@color:#C06; {Science Matters: A splendid example of a rather complex web site made with ~TiddlyWiki.}@@)
http://huili.online.googlepages.com/index.html#Welcome
http://wiki.livedoor.jp/mobilememobiz/d/GTD-GtdStyleWiki  @@color:#C06;''&raquo; &raquo;'' Japanese@@
http://tinyurl.com/ytb5er @@color:#C06;''&raquo; &raquo;'' @@ Chinese copied most of TW Help
http://leftclickblog.blogspot.com/2008/02/tiddlywiki-for-left-journoes-and.html @@color:#C06;''&raquo; &raquo;'' @@ Science Matters highlighted
http://www.answers.com/topic/tiddlywiki @@color:#C06;''&raquo; &raquo;''  answers.com @@
http://swik.net/tiddlywiki/TiddlyWiki%20Changes%20RSS/GettingStarted/cyx2
http://www.xingangfang.net/
http://groups.diigo.com/groups/Tiddlers
http://jermolene.wordpress.com/category/tiddlywiki/
http://anthologyoi.com/computers/software/tiddlywiki-is-both-good-and-bad.html
http://ieditor.tiddlyspot.com/ @@color:#C06;''&raquo; &raquo;''  TiddlyWiki在线帮助@@
http://wikis.healthwealthandmusic.co.uk/worldwideweb.html
http://www.toolblog.de/index.php?paged=3 @@color:#c06;(Deutsche)@@
http://www.missmopi.net/IMG/html/twpourtous-V1-0.html @@color:#C06;''&raquo; &raquo;'' en français@@
http://www.oraltradition.org/otclass/
http://www.ruiz-tapiador.com/ @@color:#C06;''&raquo; &raquo;''  en español @@
http://earpriority.tiddlyspot.com/ @@color:#C06;''&raquo; &raquo;''  Good start to a nice site@@
http://www.marvincable.com/lWiki/index.php?
http://wiki.famvisser.net/
http://bbz-dormagen.de/wennmann/TWGeschaeftskorrespondenz/TWGeschaeftskorrespondenz.html @@color:#c06;(Deutsche)@@
http://www.youthwork.co.uk/magazine/resourcebox/webs0708.html
http://www.appxweb.com/applications/tiddlers/tiddlers.html @@color:#c06;Interesting application site@@
http://www.comp.nus.edu.sg/~chengwe2/index2.html @@color:#c06;I suggest a comprehensive help site here TW Help@@
http://almostporn.net/ @@color:#c06;It is... almost@@
http://keith.tiddlyspot.com/ @@color:#c06;copied origami, radio, iframes@@
http://thetwilightkid.tiddlyspot.com/index.html @@color:#c06;Very heavily loaded with flash@@
http://www.healthwealthandmusic.co.uk/wikis/princewiki/worldwideweb.html @@color:#c06;twhelp - extremely comprehensive - everything you need to know@@
http://alexa.chinaz.com/Cache/2007/5/14/tiddlyspot.com@Alexa_More.asp @@color:#c06;(Chinese)@@
http://bbz-dormagen.de/wennmann/twexe/twexe.html @@color:#c06;(Deutsche Handbuch engl. = Manual ) (copied stylesheet)@@
http://conversadigital.blogspot.com/feeds/posts/default @@color:#c06;(Portuguese)@@
http://csandro.tiddlyspot.com/index.html @@color:#c06;(Italian)@@
http://dariomor.com/ @@color:#c06;(Portuguese)@@
http://de.wikipedia.org/wiki/TiddlyWiki @@color:#c06;(German - Deutsche)@@
http://earpriority.tiddlyspot.com/
http://en.wikipedia.org/wiki/Tiddlywiki
http://euicho.com/index.php?p=123 @@color:#c06;(Good description about ~TiddlyWiki)@@
[[http://faq.tiddlyspot.com/|http://tinyurl.com/2gd4st]]
http://groups.google.com/group/TiddlyWiki/msg/dc97dd924cf902fb?dmode=print
http://luceatlux.net/wikimath/wikimathhelp.html#Welcome
http://ma.gnolia.com/people/seanabrady/tags/wiki?page=3
http://technology-escapades.net/PDA.htm
http://technology-escapades.net/qualitative.htm
http://tiddlyspot.com/?page=gallery
http://tiddlywikiguides.org/index.php?title=TiddlyWiki_Guides
http://tidhelp.tiddlyspot.com/
http://tvphoto.eml.cc/ @@color:#c06;(Beautiful photography site) @@
http://www.amospalla.es/wiki/wiki.html @@color:#c06;(Spanish)@@
http://www.blinklist.com/tag/tiddlywiki/
http://www.climate-change-summer.net/
http://www.euicho.com/wiki/
http://www.fdresa.org/ettc/tiddlywiki/
http://www.giffmex.org/twfortherestofus.html
http://www.johngelling.co.uk/rgu/
http://www.kultofbubb.net/tiddlywiki/
http://www.missmopi.net/IMG/html/twpourtous-V1-0.html @@color:#c06;(French)@@
http://www.nullfeld.de/
http://www.redhotchilli.com/australian-radio-stations-online.htm
http://www.the-bizness.co.uk/wikis/princewiki/miscellany.html#TiddlyWikiHelp
http://www.tiddlywiki.com/
http://www.wikicreole.org/wiki/ListOfWikiMarkup @@color:#c06;(Text Formatting Rules across all wikis)@@
----
From: http://www.repairmanjack.com/forum/showthread.php?t=9071&page=3
That's a good description of how I think of this TiddlyWiki. I don't know everything that it can do, though. It came pre-made, and I just put my content into it. If you have a million years of free time, you could try getting info from TW Help. 

This (http://science.tiddlyspot.com/) shows what a real TiddlyWiki can do. Now do you understand how simple mine is?
Stephanie
http://everythingfpaulwilson.tiddlyspot.com
----
!!!Netherlands about Science Matters
@@color:#c06;''What the Dutch are saying about Science Matters'' @@

Wow! Een zeer mooie TW, en ook nog informatief!
(Wow! Very beautiful TW, and also still informative!)

__Another Dutch__
@@color:#04b;"Een prachtig voorbeeld van een vrij complexe webstek gemaakt met ~TiddlyWiki."<br>A splendid example of a rather complex web site made with TiddlyWiki.@@
http://132.229.51.112/~zandee/news/archives/2008/04/10/tiddlywiki_als_onderwijsplatform.html

!!!Google Groups
Josef   	

Thanks for the training!  BTW, your TwHelp site is awesome.  The
WhatsInATiddler should be required reading. 
----

BJ
I think any site that displays quotes by Douglas Adams should
automatically be required viewing, but that's just my opinion... 

!!!Haloscan
#+++[The most treasured comment yet!]
Your TW Help is absolutely marvelous. I have been a professional programmer for more than 30 years and I feel that you have created a "master Piece!"

Suggestion: Pseudo classes - CSS it would benefit me and I suspect others if you included examples of the usage of these items. Both the code and the effect it has on the page.

Again, my complements on the results of what has to have been many weeks of effort for this most useful demonstation of TW.

Regards,
IanO
===

#+++[Alexandra]
Wow that is an awesome site, so much good information and especially the color wheel is great!

Alexandra
===

!!!codecraft.proboards59.com
+++[Here's a little better tutorial: Jerry Muelver]
<<<
From:http://codecraft.proboards59.com/index.cgi?board=osp&action=display&thread=1167142626

Re: TiddlyWiki

Here's a little better tutorial:
http://tiddlyspot.com/twhelp/

Use the menu items in the left column for navigation. Remember that most TiddlyWikis open new tiddlers (pages) by appending them to the top or bottom of the displayed tiddlers, so you may have to scroll down after selecting a menu item. You can use the scroll-over-pop-up toolbar (new the top right of each tiddler) to close all the other open tiddlers if you wish. Also note the use of tabs -- horizontal menu items -- across the top of tiddles like the "Formatting Tiddlers" entry.

Click on the "MyGroup" menu item (left column) to get a nifty set of core topic tiddlers, each with a set of tabs, for a quick-reference guide.

Who'd have thunk you could do this kind of stuff in realtime in a browser with simple markup?

Jerry Muelver
Administrator
----
Re: TiddlyWiki

lol yeah, that's the part that got me clicking there in the first place...makes one wonder what the heck php, pearl, cgi and all that other stuff is fer! lol.

you're right, that tutorial is like THE tutorial to read first man...straighforward, to the point, just how I like em. ;-).

mystikshadows
Developer
<<<
===

!!!del.icio.us
http://bluedot.us/users/Information-Ecologist/dot/76880678000
jeremyruston's bookmarks on del.icio.us

~TwHelp - ~TiddlyWiki help file for beginners
Extensive ~TiddlyWiki documentation project, nicely built with good use of tabs and diagrams
to tiddlywiki help ... on dec 27

!!!Google Groups
Morris, this "experiment" is really, really, really nice! I'm pointing
all tiddlywiki inquiries on my several forums to your help page.

Did I mention that it is a really nice job?

---- Jerry Muelver 

!!!http://tiddlywiki.com/
GettingStarted
The easiest way to learn about TiddlyWiki is to use it! Try clicking on various links and see what happens - you cannot damage tiddlywiki.com or your browser. One tip is to use the close all button over on the right to clear all the displayed tiddlers and start again. Dave Gifford has prepared a new beginners guide: "~TiddlyWiki for the Rest of Us". There's also MorrisGray's excellent TW Help - ~TiddlyWiki help file for beginners.

!!!http://www.fdresa.org/ettc/tiddlywiki/
If you're still trying to get your head around what TiddlyWiki is all about:

    * Dave Gifford has prepared a new beginners guide: "TiddlyWiki for the Rest of Us".
    * There's also Morris Gray's excellent TW Help - TiddlyWiki help file for beginners.
    * If you're totally confused, you might find Leon Kilat's video tutorial useful.

!!!http://es.blinklist.com/tag/tutorial/
Descubre lo mejor tutorial y tutorial manual sitios en BlinkList
TwHelp - TiddlyWiki help file for beginners. http://tiddlyspot.com/twhelp/.
(votos:0) Marcar como spam. guardado en tiddlywiki, tutorial por rdeheras ...
es.blinklist.com

!!!Google Groups
Nice page, by the way. I hadn't checked it out before because I am now
fairly comfortable with TW, but there's tons of stuff in there I
didn't know (or things I once learned how to do, but promptly forgot).

Hope this is of some help

Andrew 
http://groups.google.com/group/TiddlyWiki/browse_thread/thread/5c4ea575bed1f504/#
----
Re the ethical considerations of linking to a site that you weren't
explicitly invited to link to, on the one hand you wouldn't think twice
about linking to any regular web page. But with a TW because it's commonly
used to for private or personal details the likelyhood of non-tech savvy
users unintentionally putting their private journal or their bank account
details online is higher. So it's kind of a <div macro="gradient #555 #888
#222"> I mean grey ish area. (I have pondered this in relation to making a
site directory on tiddlyspot).

So I hesitate before sharing this, a very beautiful TW:
http://science.tiddlyspot.com/

I believe it's one or Morris Gray's (he's a list member and author of
http://twhelp.tiddlyspot.com so I hope he doesn't mind me posting it), if so
Morris I apologise.
----
Wow, what a stunning site! Way to go, Morris! I(I will have to e-mail
him tomorrow to beg him to include it.)

Dave Gifford 

!!!RPG Forum
PostPosted: Mon Apr 16, 2007 1:13 pm    Post subject:  	Reply with quote
different wikis have different formatting rules. What may work for TiddlyWiki may not work for Matt's Age of Worms wiki.

that said, here's the site I use to figure out tiddlywiki formatting:

http://tiddlyspot.com/twhelp/
_________________
{{accordionEffect{
<<slider2 GettingStarted '1. GettingStarted'>>
<<slider2 BrowserDetails '2. BrowserDetails'>>
<<slider2 CreateTabsScript '3. CreateTabsScript'>>
<<slider2 ListTenTiddlersScript***** '4. List Ten' SiteTitle>>
}}}
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[AccordionEffect]]^^<<toolbar editTiddler>>» ^^>>

Website http://tinyurl.com/4e4j6a

{{accordionEffect{
<<slider2 forGettingStarted GettingStarted '1. GettingStarted(click here)'>><<slider2 forStyleSheet   StyleSheet  '2. StyleSheet'>><<slider2 forSiteTitle SiteTitle '3. SiteTitle' SiteTitle>>
}}}
<html><div style=text-align:center><img src="http://img262.imageshack.us/img262/9619/deliciousxd7.png" border="0"> <a class="previewlink" href="http://del.icio.us/post?url=http%3A%2F%2Ftwhelp.tiddlyspot.com&amp;title=TiddlyWiki%20help%20file%20for%20beginners" target="_blank">Bookmark TW Help at del.icio.us here.</a></div></html>
----
[[Detach Advanced Options|AdvancedOptions]]
<<slider chkSliderOptionsPanel OptionsPanel +options 'Change TiddlyWiki advanced options'>>
----
<<option chkGenerateAnRssFeed>> GenerateAnRssFeed
<<option chkRegExpSearch>> RegExpSearch
<<option chkCaseSensitiveSearch>> CaseSensitiveSearch
<<option chkHttpReadOnly>> Hide Editing Features 
<<option chkSearchTitles>> Search tiddler titles
<<option chkSearchText>> Search tiddler text
<<option chkSearchTags>> Search in tiddler tags
<<option chkSearchTitlesFirst>> Show title matches first
<<option chkSearchList>> Show list of matching tiddlers
<<option chkIncrementalSearch>> Incremental (key-by-key) searching
<<option chkHoldSearches>> Hold search results
<<option chkOpenInNewWindow>> ~OpenLinksInNewWindow
<<option chkSaveEmptyTemplate>> ~SaveEmptyTemplate
<<option chkSinglePageMode>> Display one tiddler at a time
<<option chkToggleLinks>> Click open links to close
^^(override with Control or other modifier key)^^
Maximum number of lines in a tiddler edit box: <<option txtMaxEditRows>>
|>|>|>|+++[Go to tiddler »]<<gotoTiddler>>===|
|>|>|>|<<search>> |
|>|>|{{unboldlink{[[look for in|NewPathFinder]]}}} |>|>|
| <<option chkSearchTitles>> | <<option chkSearchText>> | <<option chkSearchTags>> | <<option chkHoldSearches>> |
| titles |  text  | tags | hold |
|borderlessL0|k
----
+++[Display Options]
<<option chkDisableTabsBar>> Disable the tabs bar
<<option chkSinglePageMode>> Display one tiddler at a time
<<option chkTopOfPageMode>> Open tiddlers at the top
===
----
<<permaview>>
<<tiddler MakeTiddlers>>
@@{{locLink{<<tiddler ShowUnsavedChanges>>}}}@@
<<saveChanges>>+++[QuickView »]<<tiddler RefreshStyles>>
|>|>|>|<<popup [[quick edit]] [[<<forEachTiddler where 'tiddler.tags.containsAny(["quickedit"])'$))]]>> |
|>|>|>|<<popup [[hidden tiddlers]] [[<<forEachTiddler where 'tiddler.tags.containsAny(["excludeLists","excludeSearch"])'$))]]>> |
|>|>|>|<<popup [[systemConfig tiddlers]] [[<<forEachTiddler where 'tiddler.tags.containsAny(["systemConfig"])'$))]]>> |
===
+++[TspotControls »]
Upload Password: <<option pasUploadPassword>>
<<upload http://tiddlyspot.com/twhelp/store.cgi index.html . .  twhelp>>
<html><a href="http://tiddlyspot.com/?action=download&site=twhelp" target="_blank">download from server</a></html>
[[control panel|http://tiddlyspot.com/twhelp/controlpanel.cgi?]]
[[Tspot FAQ|http://faq.tiddlyspot.com/]]
[[Comment Control|http://www.haloscan.com/members/posts.php]]
[[StatCounter|http://my2.statcounter.com/project/]]
===

<<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>
<<slider chkAdvancedOptions AdvancedOptions 'AdvancedOptions »' 'AdvancedOptions'>>
+++[Box - CSS]
<<tiddler [[Box - CSS]]>>
===
+++[Box Properties]
<<tiddler [[Box Properties - CSS]]>>
===
----
<<tiddler  [[A Few Helpful Links - CSS]]>>
<<tiddler  [[Box - CSS]]>>
<<tiddler  [[Box Properties - CSS]]>>
<<tiddler  [[Classification Properties - CSS]]>>
<<tiddler  [[Color and Background Properties - CSS]]>>
<<tiddler  [[Cursor Property - CSS]]>>
<<tiddler  [[Font Properties - CSS]]>>
<<tiddler  [[List-style-type Property - CSS]]>>
<<tiddler  [[Margin Properties - CSS]]>>
<<tiddler  [[Positioning Properties - CSS]]>>
<<tiddler  [[Printing Properties - CSS]]>>
<<tiddler  [[Pseudo Classes - CSS]]>>
<<tiddler  [[Selectors - CSS]]>>
<<tiddler  [[Text Properties - CSS]]>>
<<tiddler  [[Units - CSS]]>>
!!!<<gradient horiz #fc3 #fff>>&nbsp; [[AllTags]]^^<<tiddler CloseThisOpen with: Tags  '« back'>>|<<toolbar editTiddler>>» ^^>>
{{{
<<allTags excludeLists>>
}}}
{{fourcolumns{
<<allTags excludeLists>>
}}}
<<forEachTiddler
    where
       'tiddler.tags.contains("script")'
    sortBy
       'tiddler.title.toUpperCase()'
    write '" [["+tiddler.title+" ]] \"view ["+tiddler.title+"]\" [["+tiddler.title+"]] "'
        begin '"<<tabs txtMyAutoTab "'
        end '">"+">"'
        none '"//No tiddler tagged with \"script\"//"'
>>
{{textcenter scrollauto{
<<tabs "" [[Intro ]] "A" [[AlphaIntro]] [[A ]] "A" [[A]] [[B ]] "B" [[B]] [[C ]] "C" [[C]] [[D ]] "D" [[D]] [[E ]] "E" [[E]] [[F ]] "F" [[F]] [[G ]] "G" [[G]] [[H ]] "H" [[H]] [[I ]] "I" [[I]] [[J ]] "J" [[J]] [[K ]] "K" [[K]] [[L ]] "L" [[L]] [[M ]] "M" [[M]] [[N ]] "N" [[N]] [[O ]] "O" [[O]]  [[P ]] "P" [[P]] [[Q ]] "Q" [[Q]] [[R ]] "R" [[R]] [[S ]] "S" [[S]] [[T ]] "T" [[T]] [[U ]] "U" [[U]]  [[V ]] "V" [[V]] [[W ]] "W" [[W]] [[X ]] "X" [[X]] [[Y ]] "Y" [[Y]] [[Z ]] "Z" [[Z]] >>
}}}
{{textleft{
|width:45%;<<tiddler ./alphaintro>>|width:45%;<<tiddler ./alphacode>>|

<part alphaintro hidden>
!!!<<gradient horiz #abf #fff>>&nbsp;[[Find Tiddlers By Alpha|AlphaIntro]]>>
This code finds tiddlers by their first letter. Click on a tab.
	
@@position:relative;+++^50em^[Code by Saq Imtiaz]
<<<
Saq Imtiaz of
~TiddlyThemes.com ( http://tiddlythemes.com ) : a gallery of ~TiddlyWiki themes.
~TiddlySnip ( http://tiddlysnip.com ) : a firefox extension that turns ~TiddlyWiki into a scrapbook!
~LewcidTW ( http://tw.lewcid.org ) : a repository of extensions for ~TiddlyWiki
<<<
===@@
</part>

<part alphacode hidden>
{{{<<forEachTiddler 
where
'tiddler.title.toLowerCase().startsWith("a")'
sortBy '(tiddler.title.toLowerCase())' 
 ascending
 write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |@@color:#c06;&raquo;  &raquo;@@ |"+tiddler.tags+"|\n"'>>}}}
</part>
!!!<<gradient horiz #fc3 #fff>>&nbsp;AlphaTabs^^<<tiddler CloseThisOpen with: HowToUseLinks  '« back'>>|<<toolbar editTiddler>>» ^^>>
<<tiddler Alpha>>

Find all tiddlers tagged with 'A' but keep only tiddlers also tagged with 'B'.
See TaggedWith
{{{
<script>
// get all tiddlers tagged with "systemConfig"
var tids=store.getTaggedTiddlers("systemConfig");
// keep only tiddlers *also* tagged with New
var list=[];
for (var t=0; t<tids.length; t++)
   if (tids[t].isTagged("excludeSearch")) list.push(tids[t]);
// create output list of tiddler titles, one per line
var out="";
for (var t=0; t<list.length; t++) out+="#[["+list[t].title+"]]\n";
return out;
</script>
}}}
Put this in ~StyleSheet
{{{
.alt { background-color:#abf;}
}}}

<script>
// Declare and populate array with content
var arrContent = new Array;
arrContent[0] = "First row";
arrContent[1] = "Second row";
arrContent[2] = "Third row";
arrContent[3] = "Fourth row";
arrContent[4] = "Fifth row";
// Declare variable and start saving table code
var strOutput = "<table>";
for(var i=0;i<arrContent.length;i++)
{  if(i%2==0)   
       // If remainder is even, output tr with class="alt"
       {  strOutput += "<tr class='alt'><td>" + arrContent[i] + "</td>";   
  }
      else  // Else, output tr with no class
      {  strOutput += "<tr><td>" + arrContent[i] + "</td>";
       }
}
// Close table
strOutput += "</table>";     
// Write out table code to HTML page 
document.write(strOutput); </script>
!!!<<gradient horiz #fc3 #fff>>&nbsp;AlternateViews^^<<tiddler CloseThisOpen with: FormattingThePage  '« back'>>|<<toolbar editTiddler>>» ^^>>

There is an excellent plugin called TaggedTemplateTweak from [[TiddlyTools|http://www.TiddlyTools.com/#TaggedTemplateTweak]] that allows you to use a different ViewTemplate or EditTemplate to view a tiddler depending on how it is tagged.
<<<
Briefly; to use this plugin, you create a new ~ViewTemplate or ~EditTemplate to represent the display for a tiddler (or set of tiddlers) that require a special presentation. These special templates have a prefix (the same name as the tag) attached to them e.g. @@color:#C06;tagnameViewTemplate@@
<<<
<<<
For example in TW Help most of the tiddlers have a bookmark icon for a quick link or bookmark.  Obviously the results of a ~TiddlyWiki search should not be bookmarked.@@color:#C06;^^[1}^^@@ So a new template was created to apply only to those tiddlers that should not display a bookmark icon.  
<<<
<<<
Those tiddlers that should not have a bookmark icon have a tag of @@color:#C06;killbookmark@@; therefore, the template to display those tiddlers is named @@color:#C06;killbookmarkViewTemplate@@ that does not contain the code to display the bookmark icon.
<<<
@@color:#C06;^^[1}^^@@''Just for fun, or possibly a warning'', TW Help has a ''systemConfigViewTemplate'' that colors the background of all plugins gradient gold try it here: Click here to see all the tags marked<<tag systemConfig>>.
|bgcolor:#fcf;Note that the bookmark icon is gone as well.  This is to prevent people bookmarking a plugin at TW Help that should properly be obtained from the sites of the authors of those plugins.|

You can obtain the plugin and complete instructions on how to use it here:
http://www.TiddlyTools.com/#TaggedTemplateTweak


!!!<<gradient horiz #abf #fff>>&nbsp;End
''One can obtain a full sized version and the program to make your own [[here|http://www.pocketmod.com/]]''

[img[http://img160.imageshack.us/img160/7850/shopweeklyfoldaf9.jpg]]
!!!<<gradient horiz #abf #fff>>&nbsp;[[Another type of slider]]^^<<tiddler CloseThisOpen with: SlidersOther  '« back'>>|<<toolbar editTiddler>>» ^^>>
''There is a very good slider plugin it's called the'' NestedSlidersPlugin that allows you to create many versatile sliders. You will see it used a lot in ~TWHelp.  

''This slider does not use tiddlers for the content.''  All the necessary information is located in the tiddler that contains the slider. They can be nested and you can create as many as you need in the same tiddler. 


NestedSlidersPlugin also has lots of other powerful features, including the ability to
display alternative 'slider labels' when the slider is opened vs. closed, like this:
{{{
+++[+Header][- Header]
   content goes here
===
}}}
The first label, "+Header", is shown when the slider is closed.  The
second label, "- Header", is shown when the slider is open. 

They can be already open on load or closed as normal.
!!!!!<<gradient horiz #aaa #fff>>&nbsp;Example 1>>
*+++[This Slider was closed on Loading (click to open)]
<<<
Its now been opened+++[click here to see the code.]
{{{
+++[This slider was Closed on loading]
You will see it used a lot in TWHelp.  
===
}}}
===
<<<
===

!!!!!<<gradient horiz #aaa #fff>>&nbsp;Example 2>>
*++++[This Slider was Opened on Loading (click to close)]
<<<
This slider is open+++[click here to see the code.]
{{{
++++[This slider was Opened on loading]
To have this slider default to being opened upon 
loading use 4 plus signs instead of three.
===
}}}
===
<<<
===

!!!!!<<gradient horiz #aaa #fff>>&nbsp;Example 3>>
@@position:relative;+++^45em^[A floating slider]
To have a slider float instead displacing the following text
use a caret (^) with the plus signs like this
{{{
+++^[slider label]
slider content
===
}}}

===  @@ 
!!!!Summary:
*~NestedSliderPlugin syntax allows you to wrap the "label" portion of
the definition in a """{{class wrapper{...}}}""", like this:
{{{
+++*{{someclass{[relevantInfo]}}}<<tiddler SideBarTabs>>=== 
}}}
+++[more about class wrapper...]

From: http://tinyurl.com/3dc9dr

> Using TiddlyPedia as my style.  The MainMenu and SideBarOptions are
> boxed with a 1px gray line.  I put my SideBarTabs in a dropdown, like
> <pre>+++*[relevantInfo]===</pre>.  It is in a separate box, and only
> has a gray line around it <u>when it is selected</u>.
> What is the CSS object that the NestedSlider is referencing here?  How
> can I change the formatting so it doesn't look funny next to the other
> two boxes?

NestedSliderPlugin syntax allows you to wrap the "label" portion of
the definition in a {{class wrapper{...}}}, like this:

+++*{{someclass{[relevantInfo]}}}<<tiddler SideBarTabs>>===

Where "someclass" is any custom or pre-defined core classname (or
combination of several classnames) that you want use.  Also, the
plugin "panel" styles use a CSS class of either "sliderPanel" OR
"floatingPanel", where "sliderPanel" is defined by the TW core, while
"floatingPanel" is added by NestedSliderPlugin.

In addition to specifying the CSS style for the panels, these class
names are also used programmatically by the plugin to provide some of
its enhanced features (such as "transient" behavior, where only one
slider remains open at a time).

Because of this, you have to be careful not to change some of the
required attributes values or the classnames themselves.  Nonetheless,
you can still 'tweak' many different CSS styles for these class
definitions to customize the look-and-feel of the sliding/floating
panels to match the rest of your page content.

The first step is to figure out what styles are being used for that
other content.  Then, enter that same CSS syntax into your
[[StyleSheet]], to override some of the styles for "sliderPanel" and/
or "floatingPanel", like this:

.sliderPanel { border:1px solid #ccc; }
   (I think this will match the TiddlyPedia look)
.floatingPanel { border:5px solid blue; background-color:green; } ===

*Using 3 plus signs {{{e.g. +++[Sliders - Nested]}}} causes the slider to remain closed on loading (i.e. click to slide open)
*Using 4 plus signs {{{e.g. ++++[Sliders - Nested]}}} causes the slider to be executed open on loading (i.e. click to close)
*Using a caret (^) with the plus signs {{{e.g. +++^[slider name etc.]}}} creates a slider that floats over text.
*For very detailed instructions see the actual plugin doumentation+++[slide it down here.]
!!!!The Nested Slider Plugin Documentation
<<tiddler NestedSlidersPlugin>>
===

*You can obtain the plugin at: http://www.TiddlyTools.com/#NestedSlidersPlugin
!!!The Lazy Slider
+++[The Lazy Slider]
<<tiddler LazySlider>>
===


!!!Tame wandering or stranded ~NestedSliders floating panel
+++[Slider position tweak]

Sometimes under certain conditions the floating slider panel can stray out of position.  By adding {{{@@position:relative;...@@}}} it resets the position of the floating panel so it stays beside its link.

{{{
@@position:relative;+++^35em^[What's In A Tiddler]
This is a tabbed list of some of the common things you can put into a tiddler.  They include text, images, CSS, HTML,  JavaScript, Plugins etc.
[[Go there...|WhatsInATiddler]]
===@@
}}}

@@position:relative;+++^35em^[What's In A Tiddler]
This is a tabbed list of some of the common things you can put into a tiddler.  They include text, images, CSS, HTML,  JavaScript, Plugins etc.
[[Go there...|WhatsInATiddler]]
===@@

===
!!!&nbsp; End
This tiddler shows some more complex effects that can be obtained with cunning use of CSS. Not all of these will work properly on all browsers because of differences in CSS implementation, but they should fail gracefully.

You can have special formatting for a specific, named tiddler like this:
{{{
#tiddlerHelloThere .title {
background-color: #99aaee;
}
}}}

Or for the first displayed tiddler:
{{{
div.tiddler:first-child .title {
font-size: 28pt;
}
}}}

Or just for the first line of every tiddler:
{{{
.viewer:first-line {
background-color: #999999;
}
}}}

Or just for the first letter of every tiddler:
{{{
.viewer:first-letter {
float: left;
font-size: 28pt;
font-weight: bold;
}
}}}

Or just for tiddlers tagged with a particular tag (note that this won't work for tags that contain spaces):
{{{
div[tags~="welcome"].tiddler .viewer {
background-color: #ffccaa;
}

div[tags~="features"].tiddler .viewer {
background-color: #88aaff;
}
}}}
!!!<<gradient horiz #fc3 #fff>>&nbsp;AnswerMacro^^<<tiddler CloseThisOpen with: 'Macros Other'  '« back'>>|<<toolbar editTiddler>>» ^^>>
''Displays answers and feedback for online questions.''

* displays an answer or other feedback either
**inserted in content like the standard slider or
**floated above existing tiddler content on a panel
* provides default feedback for correct and incorrect responses
* uses no cookies to remember its open or closed state; defaults to closed, so a new user on a shared machine always gets hidden answers
* offers three interfaces
**the standard tiddlybutton
**checkboxes for questions with multiple correct answers
**radio buttons for questions with a single correct answer
* provides option to display default feedback plus a tiddler button for more information [NEW in v1.2]

Get it here:
http://luceatlux.net/macros/answer/index.html
!!!<<gradient horiz #abf #fff>>&nbsp;End
{{tablecenter{
|>|>|>|>| !April 2007 Statistics |
|&nbsp;|Page Loads|Unique Visitors|First Time Visitors|Returning Visitors|
|Total | 4,447| 3,713| 2,596| 1,117|
|Average | 148| 124| 87| 37|
}}}
{{tablecenter{
|>|>|>|>| !August 2007 Statistics |
|&nbsp;|Page Loads|Unique Visitors|First Time Visitors |Returning Visitors|
|Total 	| 6,510| 5,488| 3,843| 1,645|
|Average| 203| 172| 120| 51|
}}}
To automatically clear the message/alert box put the following into a tiddler tagged with systemConfig:

!!!<<gradient horiz #fc3 #fff>>&nbsp;[[AutoClearMessage]]^^<<tiddler CloseThisOpen with: Macros Other  '« back'>>|<<toolbar editTiddler>>» ^^>>
/***
|Name:|AutoClearMessageMacro|
|Description|It auto closes the pop-up messages after 3 seconds.Change the 3000 to modify the time.|
***/

{{{
window.oldDisplayMessage = displayMessage;
displayMessage = function (text,linkText)
{ oldDisplayMessage(text,linkText);
setTimeout( 'clearMessage()', 3000 );}
}}}
/%
|Name|AutoRefresh|
|Source|http://www.TiddlyTools.com/#AutoRefresh|
|Version|0.6.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|script|
|Requires|InlineJavascriptPlugin|
|Overrides||
|Description|enable/disable auto-refresh of selected content to force/prevent re-rendering when tiddler changes occur|

usage:
	<<tiddler AutoRefresh with: mode id>>

where:
	mode - (optional) is one of:
		off (or disable) - prevent refresh of rendered content (except when PageTemplate is changed!)
		on (or enable)- re-render content whenever corresponding tiddler source is changed
		force - re-render content whenever ANY tiddler content is changes (or refreshDisplay() is triggered)
	id - (optional)
		is a unique DOM element identifier on which to operate.
		If not specified, the current tiddler (or containing parent if not in a tiddler) is used.

%/<script>
	var here=story.findContainingTiddler(place);
	if (here) { // in a tiddler, get containing viewer element
		var here=place; while (here && here.className!='viewer') here=here.parentNode;
		if (!here) return; // no 'viewer' element (perhaps a custom template?)
	}
	else here=place.parentNode; // not in a tiddler, use immediate parent container

	// if DOM id param, get element by ID instead of using container
	if ("$2"!="$"+"2") var here=document.getElementById("$2");

	if (!here) return; // safety check

	var mode="$1"; if (mode=="$"+"1") mode="on";

	switch (mode.toLowerCase()) {
		case 'on':
		case 'enable':
		case 'force':
			var title=here.getAttribute("tiddler");
			if (!title) { // find source tiddler title
				var tid=story.findContainingTiddler(place);
				if (!tid) return; // can't determine source tiddler
				title=tid.getAttribute("tiddler");
			}
			here.setAttribute("tiddler",title);
			here.setAttribute("refresh","content");
			here.setAttribute("force",(mode=='force')?"true":"");
			break;
		case 'off':
		case 'disable':
			here.setAttribute("refresh","");
			here.setAttribute("force","");
			break;
	}
</script>
<html><a href="javascript:;" onclick="var tid=story.findContainingTiddler(this); if (tid) story.refreshTiddler(tid.getAttribute('tiddler'),null,true); return false;">refresh</a></html>
<script>
function calcHeight()
{
var the_height=document.getElementById('ifsample1').contentWindow.document.body.scrollHeight;//find the height of the internal page
document.getElementById('ifsample1').style.height=the_height;//change the height of the iframe
}
</script>
<html>
<iframe id="ifsample1" onLoad="calcHeight();" name="ifsample1" width="600" scrolling="no" frameborder="0" marginheight=0 marginwidth=0 src="file:///I:\TiddlySpot\TiddlyWiki2.1\ifsample1.htm" target="ifsample1"><noframes>Your browser doesn't support Iframes</noframe></iframe>
  </html>
<html><a href="javascript:;" onclick="var tid=story.findContainingTiddler(this); if (tid) story.refreshTiddler(tid.getAttribute('tiddler'),null,true); return false;">refresh</a></html>
<script>
function calcHeight()
{
var the_height=document.getElementById('ifsample1').contentWindow.document.body.scrollHeight;//find the height of the internal page
document.getElementById('ifsample1').style.height=the_height;//change the height of the iframe
}
</script>
<html>
<iframe id="ifsample1" onLoad="calcHeight();" name="ifsample1" width="600" scrolling="no" frameborder="0" marginheight=0 marginwidth=0 src="file:///I:\TiddlySpot\TiddlyWiki2.1\ifsample2.htm" target="ifsample1"><noframes>Your browser doesn't support Iframes</noframe></iframe>
  </html>
<html><div style="width:600px;">
<<forEachTiddler
    where
       'tiddler.tags.contains("ft")'
    sortBy
       'tiddler.title.toUpperCase()'
    write '" [["+tiddler.title+" ]] \"view ["+tiddler.title+"]\" [["+tiddler.title+"]] "'
        begin '"<<tabs txtMyAutoTab "'
        end '">"+">"'
        none '"//No tiddler tagged with \"ft\"//"'
>>
</div></html>
{{tablecenter{
<<forEachTiddler 
where
'tiddler.title.toLowerCase().startsWith("b")'
sortBy '(tiddler.title.toLowerCase())' 
 ascending
 write
 '"|bgcolor:#fcf; "+(index+1)+"|[["+tiddler.title+"]]| "+tiddler.text.length+"|"+tiddler.tags+"|bgcolor:#fcf;"+tiddler.modified.formatString("YYYY.0MM.0DD")+"|\n"'
 begin '"|sort &raquo;| Title | Size | Tags |Modified|h\n"'
>>
<html><a href="http://www.wholinks2me.com/" target="_blank" title="Click here to see who's linking to my site.">Who links to my website?</a></html>
config.options.txtBackupFolder="BackupTwHelp"; 
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[BackstageButtonConfig]]^^<<tiddler CloseThisOpen with: BackstageTweaks '« back'>>|<<toolbar editTiddler>>» ^^>>
This code in a tiddler  tagged with 'systemConfig' removes the word "backstage" and leaves only the little bent arrow. (or straight in the case of IE)
{{{
config.messages.backstage = {
	open: {text: " ", tooltip: "Open the backstage tools."},
	close: {text: " ", tooltip: "Close the backstage area"},
	prompt: "backstage: ",
	decal: {
		edit: {text: "edit", tooltip: "Edit the tiddler '%0'"}
	}
};
}}}
config.messages.backstage = {
	open: {text: " ", tooltip: "Open the backstage tools."},
	close: {text: " ", tooltip: "Close the backstage area"},
	prompt: " ",
decal: {
		edit: {text: "edit", tooltip: "Edit the tiddler '%0'"}
}
};
!!!<<gradient horiz #fc3 #fff>>&nbsp;BackstageCSS^^<<tiddler CloseThisOpen with: BackstageTweaks  '« back'>>|<<toolbar editTiddler>>» ^^>>

/***
<<tiddler RefreshStyles>>&nbsp;BackstageCSS>>/%==================================================%/
***/
#backstageArea {background-color:#00a;}
#backstageArea a {background-color:#abf;color:#000; border:none;}
#backstageArea a:hover {background:#fff; color:#f00; }
#backstageArea a.backstageSelTab {background:#abf; color:#fff;}
#backstageButton {background:transparent; }
#backstageButton a {background:transparent; color:#000; border:none;}
#backstageButton a:hover {background:#fff;color:#f00; border:none;}
#backstagePanel {background:#abf; color:#000; border-color:#fcf ;width:50em;}
#backstagePanel a {color:#00f;}
#backstagePanel a:hover {background:#eee;color:#f00;  border:#f00 solid 1px;}
.backstagePanelFooter .button {border:none; color:#fcf ;}
.backstagePanelFooter .button:hover {color:#0f0;}


#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.5; filter:'alpha(opacity:50)';}
#backstageArea { width:100%;display:none; position:relative; overflow: hidden; z-index:150; padding:0.2em 0.5em 0.2em 0.5em;margin-left:auto;margin-right:auto;}

#backstageToolbar {position:relative; width:60%;margin-left:0;margin-right:auto;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; margin-right:auto;margin-left:auto; padding:0.1em 0.5em 0.2em 0.5em;}

#backstageArea a {font-weight:normal; margin-left:0.5em; padding:0.2em 0.5em 0.2em 0.5em;}

#backstage {position:relative; width:100%;}

#backstagePanel {display:none; z-index:100; position:absolute; margin:0em 3em 0em 0.2em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:50; position:absolute; width:100%; height:100px;}

/%.contentWrapper {margin-top:0em;}%/



.popup {position: absolute;  z-index:0; font-size:.9em; padding:0; list-style-type: decimal; margin:-1.0em;}

!!!<<gradient horiz #fc3 #fff>>&nbsp;BackstageEditATiddlerTab^^<<tiddler CloseThisOpen with: BackstageTweaks  '« back'>>|<<toolbar editTiddler>>» ^^>>

Puts a tab in backstage to call up the EditATiddler tiddler in case of emergencies caused by bad code.

{{{
config.tasks.editTab = {
	text: "editTiddler",
	tooltip: "A custom backstage tab",
	content: "|width:18em;<<tiddler EditATiddler>>|"
};
config.backstageTasks.splice(config.backstageTasks.indexOf("save")+0,0,"editTab");
}}}
|>|>|>|+++[Go to tiddler »]<<gotoTiddler>>===|
|>|>|>|<<search>> |
|>|>|{{unboldlink{[[look for in|NewPathFinder]]}}} |>|>|
| <<option chkSearchTitles>> | <<option chkSearchText>> | <<option chkSearchTags>> | <<option chkHoldSearches>> |
| titles |  text  | tags | hold |
|borderlessL0|k
<<permaview>>
<<tiddler MakeTiddlers>>@@{{locLink{<<tiddler ShowUnsavedChanges>>}}}@@<<saveChanges>>
+++[QuickView »]<<tiddler RefreshStyles>>
|>|>|>|<<popup [[quick edit]] [[<<forEachTiddler where 'tiddler.tags.containsAny(["quickedit"])'$))]]>> |
|>|>|>|<<popup [[hidden tiddlers]] [[<<forEachTiddler where 'tiddler.tags.containsAny(["excludeLists","excludeSearch"])'$))]]>> |
|>|>|>|<<popup [[systemConfig tiddlers]] [[<<forEachTiddler where 'tiddler.tags.containsAny(["systemConfig"])'$))]]>> |
===

+++[TspotControls »]
Upload Password: <<option pasUploadPassword>>
<<upload http://tiddlyspot.com/twhelp/store.cgi index.html . .  twhelp>>
<html><a href="http://tiddlyspot.com/?action=download&site=twhelp" target="_blank">download from server</a></html>
[[control panel|http://tiddlyspot.com/twhelp/controlpanel.cgi?]]
[[Tspot FAQ|http://faq.tiddlyspot.com/]]
[[Comment Control|http://www.haloscan.com/members/posts.php]]
[[StatCounter|http://my2.statcounter.com/project/]]
===

<<slider chkSliderOptionsPanel OptionsPanel {{locLink{'options »'}}} 'Change TiddlyWiki advanced options'>>
<<slider chkAdvancedOptions AdvancedOptions 'AdvancedOptions »' 'AdvancedOptions'>>
config.tasks.sidebaroptions = {
	text: "SideBarOptions",
	tooltip: "SideBarOptions in backstage",
	content: "|width:30em;<<tiddler BackstageSideBarOptions>><<tiddler SideBarTabs>>|"
};
config.backstageTasks.push("sidebaroptions");
!!!<<gradient horiz #fc3 #fff>>&nbsp;BackstageTabTweak^^<<tiddler CloseThisOpen with: BackstageTweaks  '« back'>>|<<toolbar editTiddler>>» ^^>>

This is how to add a tab to backstage; put in a configSystem tagged tiddler.

''Show ~SidebarOptions'' @@color:#C06;''&raquo; &raquo;'' @@
<<<
{{{
config.tasks.sidebaroptions = {
	text: "SideBarOptions",
	tooltip: "A custom backstage tab",
	content: "<<tiddler SideBarOptions>>"
};
config.backstageTasks.push("sidebaroptions");
}}}
<<<
''~ToggleSidebar'' @@color:#C06;''&raquo; &raquo;'' @@
<<<
{{{
config.tasks.sidebarToggle = {
     text: "Sidebar",
     tooltip: "Toggle Sidebar",
     content: "<<toggleSideBar 'Toggle Sidebar' 'show/hide' hide>>"
};

config.backstageTasks.push("sidebarToggle"); 
}}}
<<<
''Make new tiddlers'' @@color:#C06;''&raquo; &raquo;'' @@
<<<
{{{
config.tasks.makeTiddlers = {
text: "MakeTiddlers",
tooltip: "Make a variety of different tiddlers",
content: "makeTiddlers
new tiddler
new journal
new tiddler (with systemConfig)
new tiddler(with example)
new tiddler(with table)
new tiddler(with tabs)
new tiddler(with Tweak)
new tiddler(with iframe)
new tiddler(with object)
"
};
config.backstageTasks.push("makeTiddlers");
}}}
<<<
<<tabs tabsCookie 
[[BackstageButtonConfig ]] "" [[BackstageButtonConfig]]
[[BackstageCSS ]] "" [[BackstageCSS]]
[[BackstageTabTweak ]] "" [[BackstageTabTweak]]
[[BackstageEditATiddlerTab ]] "" [[BackstageEditATiddlerTab]]   
[[BackstageSidebarTab ]] "" [[BackstageSidebarTab]] 
>>
{{borderless{
|vertical-align:bottom;<<toolbar fullscreen>><<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://www.floppymoose.com/]]&nbsp;&raquo;|
----
<html><div align="center"><iframe  src ="http://www.floppymoose.com/" width="100%" align="center" height="600" scrolling="auto" frameborder="0" allowtransparency style="border:none;"></iframe></div></html>}}}
!!!<<gradient horiz #fc3 #ffffff>>&nbsp;[[BidiXPlugins]]^^<<tiddler CloseThisOpen with: ThirdPartyPlugins  '« back'>>|<<toolbar editTiddler>>» ^^>>
Plugins at http://tiddlywiki.bidix.info/BidiXTW.html

|bgcolor(#8cf): @@color(#000080): ''Titles'' @@ |bgcolor(#8cf): @@color(#000080):  ''Size'' (bytes)@@ |bgcolor(#8cf): @@color(#000080): ''Tags''@@ |
|[[.BidiX.Ajax]]| 1419|systemConfig,systemLib,GroupAuthoring,systemConfigDisable|
|[[ConfigTweaks]]| 326|systemConfig|
|[[GenerateRssHijack]]| 5169|systemConfig,plugin,RSSExtensions|
|[[GroupAuthoringPlugin]]| 8767|systemConfig,GroupAuthoring,plugin|
|[[HideWhenMacro]]| 729|systemConfig,SimonBaird|
|[[HttpGetMacro]]| 2006|systemConfig,GroupAuthoring,plugin|
|[[InlineJavascriptPlugin]]| 10214|systemConfig,EricShulman|
|[[LegacyStrikeThroughPlugin]]| 827|systemConfig,systemConfigDisable|
|[[LoadRemoteFileHijack]]| 1098|ProxyService,systemConfig,toRSS,plugin|
|[[NestedSlidersPlugin]]| 16536|systemConfig,EricShulman|
|[[NewHereCommand]]| 1447|systemConfig,TagglyTagging,Plugins|
|[[NoSaveOnDiskOverHttpHijack]]| 1071|plugin,systemConfig,systemConfigDisable,toRSS|
|[[PositionAdsense]]| 704|systemConfig,plugin|
|[[QuickOpenTagPlugin]]| 3549|systemConfig,TagglyTagging,Plugins|
|[[RSSReaderPlugin]]| 11226|systemConfig,plugin,RSSExtensions|
|[[RenameTagsPlugin]]| 2467|systemConfig,Plugins,TagglyTagging|
|[[RunMacroIfTagged]]| 1073|systemConfig,SimonBaird|
|[[SplashScreenPlugin]]| 2382|SaqImtiaz,systemConfig|
|[[TagglyListPlugin]]| 17405|TagglyTagging,systemConfig,Plugins|
|[[TestMacro]]| 1218|systemConfig,Cross-SubDomain|
|[[UploadPlugin]]| 24149|systemConfig,Upload,plugin|
|[[UploadToFileMacro]]| 4027|systemConfig,plugin|
!!!<<gradient horiz #fc3 #fff>>&nbsp;THISTIDDLERTITLEHERE^^<<tiddler CloseThisOpen with: HOMETABSNAMEHERE  '« back'>>|<<toolbar editTiddler>>» ^^>>

!!!!!<<gradient horiz #abf #fff>>&nbsp;Example>>

!!!!!<<gradient horiz  #abf #fff>>&nbsp;Code>>

!!!!!<<gradient horiz #abf #fff>>&nbsp;@@color:#fff;End@@>>
<html><hide linebreaks>

</html>
{{borderless{
|vertical-align:bottom;<<toolbar fullscreen>><<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;Open in a new window[img[Open outside link in a new window|http://img229.imageshack.us/img229/1687/extlink7226466sx5.gif][TYPE URL HERE]]|
----
<html><div align="center"><iframe  src ="TYPE URL HERE" width="100%" align="center" height="600" scrolling="auto" frameborder="0" allowtransparency style="border:none;"></iframe></div></html>}}}
<html><div align="center"> <object width="425" height="350"><param name="movie" value="TYPE URL HERE"></param><param name="wmode" value="transparent"></param><embed src="TYPE URL HERE" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></div></html>
<<slider "chkCookieName" "TiddlerName" "title text" "tooltip" >>
{{niceTable{
|!Title/link|[[TW Help|http://twhelp.tiddlyspot.com]]|
|!Creator|Morris Gray|
|!Subject matter|Tutorial|
|!Description/notes|A beginners to intermedate level help file|
|!Screenshot|[img[http://www.giffmex.org/twinactionimgs/twhelp.png]]|
}}}
<<tabs tabsCookie [[Intro ]] "tooltip 1" [[MakeTabsIntro]]  [[TabTwoName]] "" [[tiddler two]]  [[TabThreeName]] "" [[Tiddler three]] [[TabFourName]] "" [[Tiddler four]] >>
----
&darr;+++[Create a tiddler like this:]
----
@@color(#C06):&nbsp;''Title:''@@<html><input type="text" size="40" value="" /></html>
@@color(#00f):''Body:''@@<html><textarea rows="10" cols="30"></textarea>  </html>
@@color(#0a0):''Tags:''@@<html><input type="text" size="40" value="systemConfig " /></html>
===

----
!!!<<gradient horiz #fc3 #ffffff>>&nbsp;BlockQuotes^^<<tiddler CloseThisOpen with: FormattingTiddlers  '« back'>>|<<toolbar editTiddler>>» ^^>>
''To emphasize text that needs to stand out you can use ~BlockQuotes.''
!!!!!<<gradient horiz #aaaaaa #ffffff>>&nbsp;Example>>
>''Eheu, litteras istas reperire non possum''^^[1]^^
>>''Estne tibi forte magna feles fulva et planissima''^^[2]^^
>>''Etiam capillus unus habet umbram''^^[3]^^
>>>^^[1]^^Unfortunately, I can't find those particular documents
>>>^^[2]^^Do you by chance happen to own a large, yellowish, very flat cat?
>>>^^[3]^^Even one hair has a shadow.
>>>level 3
>>level 2
>level 1

!!!!!<<gradient horiz #aaaaaa #ffffff>>&nbsp;Code>>
{{{
>''Eheu, litteras istas reperire non possum''^^[1]^^
>>''Estne tibi forte magna feles fulva et planissima''^^[2]^^
>>''Etiam capillus unus habet umbram''^^[3]^^
>>>^^[1]^^Unfortunately, I can't find those particular documents
>>>^^[2]^^Do you by chance happen to own a large, yellowish, very flat cat?
>>>^^[3]^^Even one hair has a shadow.
>>>level 3
>>level 2
>level 1
}}}
*@@color(#00A000):''Tip:'' The angle brackets (>) must be the first character on the left margin.@@




<<relLink "_phone" "Go to Phone">>

<html><ul><li><img src="social/delicious.png" border="0"> <a class="previewlink" href="http://del.icio.us/post?url=http%3A%2F%2Ftwhelp.tiddlyspot.com&amp;title=TiddlyWiki%20help%20file%20for%20beginners" target="_blank">Add to del.icio.us</a></li><li><img src="social/digg.png" border="0"> <a class="previewlink" href="http://digg.com/programming/Ultimate_Website_Snapshot_Service">Add to Digg</a></li><li><img src="social/reddit.png" border="0"> <a class="previewlink" href="http://reddit.com/submit?url=http://websnapr.com&amp;title=Website%20Snapshot%20Service">Add to reddit</a></li><li><img src="social/mister-wong.gif" border="0"> <a class="previewlink" href="http://www.mister-wong.de/add_url/" onclick="location.href='http://www.mister-wong.de/index.php?action=addurl&bm_url='+encodeURIComponent(location.href)+'&bm_description='+encodeURIComponent(document.title);return false" title="Add to Mister Wong" target="_top">Add to Mister Wong</a></li><li><img src="social/furl.png" border="0"> <a class="previewlink" href="http://furl.net/storeIt.jsp?t=Website%20Snapshot%20Service&amp;u=http://websnapr.com">Add to Furl</a></li></ul></html>
!!!<<gradient horiz #fc3 #fff>>&nbsp;BookMarklets^^<<tiddler CloseThisOpen with: Scripts  '« back'>>|<<toolbar editTiddler>>» ^^>>
''These bookmarklets allow you to'' drag them to your browser bookmarks toolbar.

PluginIdentScript allows you to see a list of plugins installed in any ~TiddlyWiki
ScriptIdentScript allows you to see a list of scripts installed in any ~TiddlyWiki

''Drag them to your bookmarks toolbar now and try them.''
!!!!!<<gradient horiz #abf #fff>>&nbsp;@@color:#fff;End@@>>
{{tablecenter table{

<script>

if (!window.story) window.story=window;var url=store.getTiddlerText("SiteUrl");
var title=story.findContainingTiddler(place).id.substr(7);
var permalink=encodeURIComponent(String.encodeTiddlyLink(title));
return "|bookmark this» » [["+title+"|"+url+"#"+permalink+"]]|";

</script>

}}}
<html><a href="javascript:;" onclick="var tid=story.findContainingTiddler(this); if (tid) story.refreshTiddler(tid.getAttribute('tiddler'),null,true); return false;">refresh</a></html><html><table width="96%" style="border:none;margin:1px;background:transparent;clear:both;"><iframe id="ifsample1" src="http://www.symbex.net.au/Wiki/ifsample1.htm" width="100%" height="0" scrolling="no" frameborder="0" allowtransparency style="border:none;"></iframe></table></html>

/%http://www.symbex.net.au/Wiki/ifsample1.htm file:///I:\TiddlySpot\TiddlyWiki2.1\ifsample1.htm%/

!!!<<gradient horiz #fc3 #fff>>&nbsp;BorderlessTable^^<<tiddler CloseThisOpen with: Tables  '« back'>>|<<toolbar editTiddler>>» ^^>>
!!!!Method1
Put in StyleSheet
{{{.viewer table.borderless,.viewer table.borderless * {border: 0;}}}}

Put in tiddler
{{{
|!column1|column2|
|borderless|k
}}}
!!!!Method2
!!!!!1: Put this in your ~StyleSheet for a ''centered'' borderless table
(Change padding and alignment as required)
<<<
{{{.borderless, .borderless table, .borderless td, .borderless tr, .borderless th, .borderless tbody
	{ border:0 !important; margin:0 !important; padding:2px !important; td.vertical-align:top !important;margin-left: auto !important; margin-right: auto !important;}}}}
<<<
!!!!!1a: Put this in your ~StyleSheet for a ''left aligned'' borderless table.
(Notice the the only thing changed is the margin-left has been set to zero) 
<<<
{{{.borderlessL, .borderlessL table, .borderlessL td, .borderlessL tr, .borderlessL th, .borderlessL tbody
	{ border:0 !important; margin:0 !important; padding:2px !important; td.vertical-align:top !important;margin-left: 0 !important; margin-right: auto !important;}}}}
<<<

!!!!!Example
|bgcolor:#abf;width:30%; Normal Border |bgcolor:#abf;width:30%; Surround your table like this |bgcolor:#abf; Borderless table |
|vertical-align:middle; <<tiddler ./normalborder>> |<<tiddler ./noborder>> |vertical-align:middle; <<tiddler ./borderExp>>|


<part normalborder hidden>
|!Col1|!Col2|!Col3|
|r1c1| r1r2c2 |r1c3|
|r2c1|~|r2c3|
</part>
<part noborder hidden>
{{{
{{borderless{
}}}
{{{
|!Col1|!Col2|!Col3|
|r1c1| r1r2c2 |r1c3|
|r2c1|~|r2c3|
}}}
{{{
}}}
}}}
!!!a better way
Add the custom class to the bottom of the table like this:
{{{
|!Col1|!Col2|!Col3|
|r1c1| r1r2c2 |r1c3|
|r2c1|~|r2c3|
|borderless|k
}}}
0r
{{{
|borderlessL|k
}}}
</part>
<part borderExp hidden>

{{borderless{
|!Col1|!Col2|!Col3|
|r1c1| r1r2c2 |r1c3|
|r2c1|~|r2c3|
}}}
</part>
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[BorderlessTables]]^^<<tiddler CloseThisOpen with: Tables  '« back'>>|<<toolbar editTiddler>>» ^^>>

Put in StyleSheet
{{{.viewer table.borderless,.viewer table.borderless * {border: 0;}}}}

Put in tiddler
{{{
|!column1|column2|
|borderless|k
}}}
''Table heading links to w3schools references on this subject.''
| !The CSS Box [[Border|http://www.w3schools.com/css/css_border.asp]] [[Margin|http://www.w3schools.com/css/css_margin.asp]] [[Padding|http://www.w3schools.com/css/css_padding.asp]] |
<html>
<div style="color:black;background-color:#FFFFCC;padding:1em;border:thin solid black;text-align:center;width=30%">margin
<div style="color:white;background-color:black;padding:1em;border:thin solid black;text-align:center;width=100%">border
<div style="color:black;background-color:#FFCC99;padding:1em;border:thin solid black;text-align:center;width=100%">padding
<div style="color:black;background-color:white;border:thin solid black;text-align:center;width=100%">content<br/>
<div style="float:left">&lt;-</div><div style="float:right">-&gt;</div>CSS 'width'
</div>
</div>
</div>
</div>
</html>
''Table heading links to w3schools references on this subject.''
|!Box Properties| ![[Border|http://www.w3schools.com/css/css_border.asp]] | ![[Margin|http://www.w3schools.com/css/css_margin.asp]] | ![[Padding|http://www.w3schools.com/css/css_padding.asp]] |
| ''Property'' | ''Valid Values'' | ''Example'' | ''Inherited?'' |
| margin-top |//length//, //percentage//, auto | margin-top:5px | N |
| margin-right |//length//, //percentage//, auto | margin-right:5px | N |
| margin-bottom |//length//, //percentage//, auto | margin-bottom:1em | N |
| margin-left |//length//, //percentage//, auto | margin-left:5pt | N |
| margin |//length//, //percentage//, auto {1,4}| margin: 10px 5px 10px 5px | N |
| padding-top |//length//, //percentage// | padding-top:10%| N |
| padding-right |//length//, //percentage// | padding-right:15px | N |
| padding-bottom |//length//, //percentage// | padding-bottom:1.2em | N |
| padding-left |//length//, //percentage// | padding-left:10pt; } | N |
| padding |//length//, //percentage// {1,4}| padding: 10px 10px 10px 15px | N |
| border-top-width |thin, medium, thick, //length// | border-top-width:thin | N |
| border-right-width |thin, medium, thick, //length// | border-right-width:medium | N |
| border-bottom-width |thin, medium, thick, //length// | border-bottom-width:thick | N |
| border-left-width |thin, medium, thick, //length// | border-left-width:15px | N |
| border-width |thin, medium, thick, //length// {1,4}| border-width: 3px 5px 3px 5px | N |
| border-top-color |//color // | border-top-color:navajowhite | N |
| border-right-color |//color// | border-right-color:whitesmoke | N |
| border-bottom-color |//color// | border-bottom-color:black | N |
| border-left-color |//color// | border-left-color:#C0C0C0 | N |
| border-color |//color// {1,4} | border-color: green red white blue; } | N |
| border-top-style |none, solid, double, groove, ridge, inset, outset | border-top-style:solid | N |
| border-right-style |none, solid, double, groove, ridge, inset, outset | border-right-style:double | N |
| border-bottom-style |none, solid, double, groove, ridge, inset, outset | border-bottom-style:groove | N |
| border-left-style |none, solid, double, groove, ridge, inset, outset | border-left-style:none | N |
| border-style |none, solid, double, groove, ridge, inset, outset | border-style:ridge; }| N |
| border-top |//border-width//, //border-style//, //border-color// | border-top: medium outset red | N |
| border-right |//border-width//, //border-style//, //border-color// | border-right: thick inset maroon | N |
| border-bottom |//border-width//, //border-style//, //border-color// | border-bottom: 10px ridge gray | N |
| border-left |//border-width//, //border-style//, //border-color// | border-left: 1px groove red | N |
| border |//border-width//, //border-style//, //border-color// | border: thin solid blue | N |
| float |none, left, right | float:none | N |
| clear |none, left, right, both | clear:left | N |
{{borderless{
|vertical-align:bottom;<<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://www.afb.org/braillebug/braille_print.asp]]&nbsp;&raquo;|
<html><div align="center"><iframe src ="http://www.afb.org/braillebug/braille_print.asp" width="100%" align="center" height="600"></iframe></div></html>}}}
{{borderless{
|vertical-align:bottom;<<toolbar fullscreen>><<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://users.qldnet.com.au/~ajay/FileXch/B.pdf]]&nbsp;&raquo;|
----
<html><div align="center"><iframe  src ="http://users.qldnet.com.au/~ajay/FileXch/B.pdf" width="100%" align="center" height="600" scrolling="auto" frameborder="0" allowtransparency style="border:none;"></iframe></div></html>}}}
{{borderless{
<html><hide linebreaks><TABLE width=100px border="0" align=center><tr><TD><font size="-1"><font size="-1"><FORM action on="file:///a:/"><INPUT type=submit value="a:\ drive" name="button" class="btn"></FORM></TD><TD><font size="-1"><FORM action="file:///c:/"><INPUT type=submit value="c:\ drive" name="button" class="btn" name=submit2></FORM></TD><TD><font size="-1"><FORM action="file:///d:/"><INPUT type=submit value="d:\ drive" name="button" class="btn" name=submit2></FORM></TD><TD><font size="-1"><FORM action="file:///e:/"><INPUT type=submit value="e:\ drive" name="button" class="btn" name=submit2></FORM></TD><TD><font size="-1"><FORM action="file:///f:/"><INPUT type=submit value="f:\ drive" name="button" class="btn" name=submit2> </FORM></TD></font></tr><tr><TD><font size="-1"><FORM action="file:///g:/"><INPUT type=submit value="g:\ drive" name="button" class="btn" name=submit2></FORM></TD><TD><font size="-1"><FORM action="file:///h:/"><INPUT type=submit value="h:\ drive" name="button" class="btn" name=submit2></FORM><TD><font size="-1"><FORM action="file:///i:/"><INPUT type=submit value="i:\ drive" name="button" class="btn" name=submit2></FORM></TD><TD><font size="-1"><FORM action="file:///j:/"><INPUT type=submit value="j:\ drive" name="button" class="btn" name=submit2></FORM></TD><TD><font size="-1"><FORM action="file:///k:/"><INPUT type=submit value="k:\ drive" name="button" class="btn" name=submit2></FORM></TD></TR></TABLE></html>
}}}
{{borderless{
|vertical-align:bottom;<<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|file:///I:/TiddlySpot/Tiddlywiki2.1/BrowseDrives.htm]]&nbsp;&raquo;|
<html><div align="center"><<tiddler BrowseFilesTry>><iframe src ="file:///I:/TiddlySpot/Tiddlywiki2.1/BrowseDrives.htm" width="100%" align="center" height="800"></iframe></div></html>}}}
<html><div align="center"><FORM name=form1><TABLE align="center" border="0"><TBODY><TR BGCOLOR="#CCC"><TD ALIGN=CENTER STYLE="padding-left: 5px; padding-top: 2px; padding-bottom: 2px;">Open File</TD></TR><TR BGCOLOR="#CCCCCC"><TD ALIGN=CENTER STYLE="padding-left: 5px; padding-top: 2px; padding-bottom: 5px;"><FONT face="Arial, Helvetica, sans-serif" color="#ffffff" size=-1></FONT><INPUT type=file name=cmuds> <INPUT onclick="whatFile()" target="_blank" type=button value=OpenFile name=button></TD></TR></TBODY></TABLE></FORM></div></html>
''NOTE: this only works offline.''
This requires an additional tiddler 'WhatFileScript' containing this script, tagged with 'systemConfig' and http://www.tiddlytools.com/#InlineJavascriptPlugin
{{{
function whatFile() {
window.open ('file:///' + document.form1.cmuds.value)
}
}}}
{{borderless{
|vertical-align:bottom;<<toolbar fullscreen>>|<<tiddler NavButtons>>|<<toggleSideBar>>|
----
@@position:relative;+++^45em^[See the code here]...
<<<
{{{
<html><hide linebreaks>
<!-- extra psuedo-tag from HTMLFormattingPlugin -->
	<form target="theFrameID">
	<input type=file name=whichfile>
	<input type=button value="open"
		onclick="var f=this.form;
			f.action='file:///'+f.whichfile.value;
			try { f.submit(); }
			catch(e) { alert(e.description?e.description:e.toString()); }">
	</form>
	<iframe src="" name="theFrameID" id="theFrameID"
		style="background:#fff;width:100%;height:600px">
	</iframe>
</html>
}}}
<<<
===@@

<html><hide linebreaks>
<!-- extra psuedo-tag from HTMLFormattingPlugin -->
	<form target="theFrameID">
	<input type=file name=whichfile>
	<input type=button value="open"
		onclick="var f=this.form;
			f.action='file:///'+f.whichfile.value;
			try { f.submit(); }
			catch(e) { alert(e.description?e.description:e.toString()); }">
	</form>
	<iframe src="" name="theFrameID" id="theFrameID"
		style="background:#fff;width:100%;height:600px">
	</iframe>
</html>
}}}
!!!!<<gradient horiz #fc3 #ffffff>>&nbsp;BrowseForFiles^^<<tiddler CloseThisOpen with: NavigationWithTW  '« back'>>|<<toolbar editTiddler>>» ^^>>
<html><div align="center"><FORM name=form1><INPUT type=file name=cmuds> <INPUT onclick="whatFile()" type=button value=OpenFile name=button></FORM></div></html>
''Note:'' You can see your files but can only open them after you save a ~TiddlyWiki to your disk drive.
!!!!<<gradient horiz #abf #ffffff>>&nbsp;Code for Form>>
{{{<html><div align="center"><FORM name=form1><INPUT type=file name=cmuds> <INPUT onclick="whatFile()" type=button value=OpenFile name=button></FORM></div><br></html>}}}
!!!!<<gradient horiz #abf #ffffff>>&nbsp;Code for Script>>
<<tiddler WhatFileScriptDemo>>
''Then save the ~TiddlyWiki and reload.''
!!!End

<html><hide linebreaks> <!-- extra psuedo-tag from HTMLFormattingPlugin -->
	<form target="theFrameID">
	<input type=file name=whichfile>
	<input type=button value="open"
		onclick="var f=this.form;
			f.action='file:///'+f.whichfile.value;
			try { f.submit(); }
			catch(e) { alert(e.description?e.description:e.toString()); }">
	</form>
	<iframe src="" name="theFrameID" id="theFrameID"
		style="background:#fff;width:100%;height:400px">
	</iframe>
</html>
!!!<<gradient horiz #fc3 #ffffff>>&nbsp;[[Browse Drives|BrowseYourHardDisk]]^^<<tiddler CloseThisOpen with: HowToUseLinks  '« back'>>|<<toolbar editTiddler>>» ^^>>
''These methods work after you save a ~TiddlyWiki to your disk drive''
{{borderless{
|<html><FORM action="file:///c:/" target="_blank"><INPUT type=submit value="c:\ drive" name="button" class="btn" name=submit2></FORM></html>|<html><FORM action="file:///d:/" target="_blank"><INPUT type=submit value="d:\ drive" name="button" class="btn" name=submit2></FORM></html>|<html><FORM action="file:///e:/" target="_blank"><INPUT type=submit value="e:\ drive" name="button" class="btn" name=submit2></FORM></html>|<html><FORM action="file:///f:/" target="_blank"><INPUT type=submit value="f:\ drive" name="button" class="btn" name=submit2></FORM></html>|
}}}
!!!<<gradient horiz #abf #ffffff>>&nbsp;Code>>
{{{|<html><FORM action="file:///c:/" target="_blank"><INPUT type=submit value="c:\ drive" name="button" class="btn" name=submit2></FORM></html>|<html><FORM action="file:///d:/" target="_blank"><INPUT type=submit value="d:\ drive" name="button" class="btn" name=submit2></FORM></html>|<html><FORM action="file:///e:/" target="_blank"><INPUT type=submit value="e:\ drive" name="button" class="btn" name=submit2></FORM></html>|<html><FORM action="file:///f:/" target="_blank"><INPUT type=submit value="f:\ drive" name="button" class="btn" name=submit2></FORM></html>|}}}


!!!<<gradient horiz #fc3 #ffffff>>&nbsp;[[Browse your computer drives in an iframe|BrowseYourHardDisk]]>>
@@color(#c06):Here is something for someone who hates to leave their ~TiddlyWiki.@@

This only works when ~TiddlyWiki is running on your local disk drive BrowseDrives

''Create a normal html web page like this.'' You can create a button for each of your drives. Save it where you wish e.g. C:/~BrowseDrives.htm

{{{<HTML><HEAD><TITLE>BrowseDrives.htm</TITLE></HEAD>
<BODY><FORM action="file:///c:/"><INPUT type=submit value="c:\ drive" name="button" class="btn" name=submit2></FORM></BODY></HTML>}}}

''Now create a tiddler with an iframe in it.''

{{{
<html><div align="center"><iframe src ="file:///C:/BrowseDrives.htm" width="100%" align="center" height="600"></iframe></div></html>
}}}

Clicking on the button will bring up your computer directory in the iframe and you can browse your whole hard drive.  If you are using ~FireFox set up right-click @@color(#C06):"view source with"^^&dagger;^^@@ with your favourite editors.  Now if you see a file that needs editing simply right click and ''view frame source with'' then edit the file with the appropriate editor. @@color(#C06):Note: Make sure you click ''view __frame__ source with'' or you will get the ~TiddlyWiki code.@@
|@@color(#C06):^^&dagger;^^@@ ''~ViewSourceWith'' is an add-on for ~FireFoxYou can get it here https://addons.mozilla.org/en-US/firefox/addons/versions/394 |
!!!<<gradient horiz #fc3 #ffffff>>&nbsp;Getting fancy with browsing>>
''You can get quite carried away with this'' and add some navigation buttons with NavButtons; add styling to the buttons with ButtonStyle; Expand the viewing window <<toggleSideBar>> or move the whole thing outside of the ~TiddlyWiki into a new window or tab..
!!!&nbsp;The full monty
{{{
{{borderless{
|vertical-align:bottom;<<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|TYPE URL HERE]]&nbsp;&raquo;|
<html><div align="center"><iframe src ="TYPE URL HERE" width="100%" align="center" height="600"></iframe></div></html>}}}
}}}
For the full monty you will need:
Put your button html page in the two places marked "TYPE URL HERE"
http://tw.lewcid.org/#ToggleSideBarMacro
To tidy it up put this in ~StyleSheet.
{{{
.borderless, .borderless table, .borderless td, .borderless tr, .borderless th, .borderless tbody
	{ border:0 !important; margin:0 !important; padding:0 !important; td.vertical-align:top !important;margin-left: auto !important; margin-right: auto !important; padding:7px !important;}
}}}

!!!&nbsp;End of browse drives
<script>
document.write("Browser: ")
document.write(navigator.appName + "<br>")

document.write("Browserversion: ")
document.write(navigator.appVersion + "<br>")

document.write("Code: ")
document.write(navigator.appCodeName + "<br>")

document.write("Platform: ")
document.write(navigator.platform + "<br>")

document.write("Cookies enabled: ")
document.write(navigator.cookieEnabled + "<br>")

document.write("Browser's user agent header: ")
document.write(navigator.userAgent + "<br>")
</script>
<script>
if (document.all)
var version=/MSIE \d+.\d+/
if (!document.all)
document.write("You are using "+navigator.appName+" "+navigator.userAgent)
else
document.write("You are using "+navigator.appName+" "+navigator.appVersion.match(version))
</script>
<html><hide linebreaks>
<style>
.rolodex table {
border: 0px solid;
background-color:#FFFF99;
}

.rolodex tr, .rolodex td {
border: 0px solid;
}
</style>
<span class="rolodex">
 <table>
 <tr>
 <td align="right"><b>Project:</b></td>
 <td ><select name=project ><option><option>DataTiddlerProject<option>ForEachTiddlerProject<option>FormTiddlerProject</select ></td>
 <td align="right"><b>Reported By:</b></td>
 <td ><input name=reportedBy type=text style="width:100%" /></td>
 <td align="right"><b>Date:</b></td>
 <td ><input name=reportDate type=text style="width:100%" /></td>
 </tr>
 <tr>
 <td colspan="6"><sub><b>Description:</b></sub><br>
 <textarea name=description rows="8" cols="40" style="width:100%" ></textarea></td></tr>
 <tr>
 <td colspan="6"><sub><b>Cause:</b></sub><br>
 <textarea name=cause rows="6" cols="40" style="width:100%" ></textarea></td></tr>
 <tr>
 <td align="right"><b>State:</b></td>
 <td ><select name=state ><option>new<option>in progress<option>info pending<option>fixed<option>closed</select ></td>
 <td align="right"><b>Fixed in:</b></td>
 <td colspan = "4"><input name=fixedIn type=text style="width:100%" /></td></tr>
</table>
</span>
</html>
!!!Preview
<<tiddler [[Macros Built-in/macbuiltin]]>>
/***
!!!<<gradient horiz #fc3 #fff >><<tiddler RefreshStyles>>&nbsp;ButtonStyle>>/%==================================================%/
***/


input.btn{
   color:#008;
   font-family:Trebuchet MS,aerial,helvetica,sans-serif;
   font-size:100%;
   font-weight:normal;
   background-color:#eee;
   background:url("http://img520.imageshack.us/img520/8688/mainmenugray7ef.gif") repeat-x top left;top left;
   border:1px solid;
   border-top-color:#009;
   border-left-color:#009;
   border-right-color:#009;
   border-bottom-color:#009;
   -moz-border-radius : .25em 0.25em 0.25em 0.25em;
}


input.btnhov{
   color:#a00;
   background:#fff;
   background:url("http://img520.imageshack.us/img520/8688/mainmenugray7ef.gif") repeat-x top left;top left;
   border-top-color:#c06;
   border-left-color:#c06;
   border-right-color:#c06;
   border-bottom-color:#c06;
   -moz-border-radius : .25em 0.25em 0.25em 0.25em;
}
----
{{textcenter{
''[[Lists of all files excluded from lists and searches|ByFilesExcluded]]''
}}}
@@position:relative;+++^45em^[See the code here]
!!!!!Code for List of all excluded from lists and searches
<<<
{{{
<<forEachTiddler
 where
'tiddler.tags.containsAny(["excludeLists","excludeSearch"])'
write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |@@color:#c06;&raquo;  &raquo;@@ |"+tiddler.tags+"|\n"'
>>
}}}
<<<
===@@

----
{{tablecenter{
<<forEachTiddler
 where
'tiddler.tags.containsAny(["excludeLists","excludeSearch"])'
write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |@@color:#c06;&raquo;  &raquo;@@ |"+tiddler.tags+"|\n"'
>>
}}}
----
{{textcenter{
''[[List of all tiddlers with no tags sorted by Title.|ByNoTags]]''
}}}
@@position:relative;+++^45em^[See the code here]
!!!!!Code for List of tiddlers sorted by Title with No Tags
<<<
{{{
<<forEachTiddler 
 where
 'tiddler.tags.length == 0'
 sortBy
 'tiddler.title'
 ascending
 write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |"+tiddler.tags+"|\n"'
   begin '"|No.| Title | Tags |h\n"'
>>
}}}
<<<
===@@

----
{{tablecenter{
<<forEachTiddler 
 where
 'tiddler.tags.length == 0'
 sortBy
 'tiddler.title'
 ascending
 write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |"+tiddler.tags+"|\n"'
   begin '"|No.| Title | Tags |h\n"'
>>
}}}
----
{{textcenter{
[[List of all tiddlers with a particular tag.|ByTag]]
}}}
@@position:relative;+++^45em^[See the code here]
<<<
{{{
<<forEachTiddler 
 where 
 'tiddler.tags.contains("memorize")'
>>
}}}
<<<
===@@

''Tiddlers with the tag 'memorize'.''
<<forEachTiddler 
 where 
 'tiddler.tags.contains("memorize")'
>>
----
{{textcenter{
''[[List of all tiddlers sorted by Tag ("ft") by First Line.|ByTagFirstLine]]''
( Tag ("ft") is ~FormattingTiddlers )
}}}
@@position:relative;+++^45em^[See the code here]
!!!!!Code for List of all tiddlers sorted by Tag ("ft") by First Line
<<<
{{{
<<forEachTiddler
 where
 'tiddler.tags.contains("ft")'
 script
 '
 function getFirstLine(s) {
 var m = s.match(/\s*(.*)/);
 return m != null && m.length >= 1 ? m[1] : "";
 }
 '
 write
 '"#[["+tiddler.title+"]] "+getFirstLine(tiddler.text) + " "+"\n"' 
>>
}}}
<<<
===@@

----
<<forEachTiddler
 where
 'tiddler.tags.contains("ft")'
 script
 '
 function getFirstLine(s) {
 var m = s.match(/\s*(.*)/);
 return m != null && m.length >= 1 ? m[1] : "";
 }
 '
 write
 '"[["+tiddler.title+"]] "+getFirstLine(tiddler.text) + " "+"\n"' 
>>
!!!<<gradient horiz #fc3 #fff>>&nbsp;ByTheTagCSSRef^^<<tiddler CloseThisOpen with: ListTiddlersBy  '« back'>>|<<toolbar editTiddler>>» ^^>>
{{textcenter{
''[[List of  tiddlers with the tag 'CSSRef'|ByTheTagCSSRef]]''
}}}
@@position:relative;+++^45em^[See the code here]
!!!!!Code for List of tiddlers with the tag 'CSSRef'
<<<
{{{
<<forEachTiddler 
 where 
 'tiddler.tags.contains("CSSRef")'
sortBy '(tiddler.title)' 
 ascending
write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |@@color:#c06;&raquo;  &raquo;@@ |"+tiddler.tags+"|\n"'
>>
}}}
<<<
===@@

{{tablecenter{
<<forEachTiddler 
 where 
 'tiddler.tags.contains("CSSRef")'
sortBy '(tiddler.title)' 
 ascending
write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |@@color:#c06;&raquo;  &raquo;@@ |"+tiddler.tags+"|\n"'
 begin '"| sort &raquo;| Title |>| Tags |h\n"'
>>
}}}
!!!<<gradient horiz #fc3 #fff>>&nbsp;ByTheTagIframe^^<<tiddler CloseThisOpen with: ListTiddlersBy  '« back'>>|<<toolbar editTiddler>>» ^^>>

{{textcenter{
''[[List of  tiddlers with the tag 'iframe'|ByTheTagIframe]]''
}}}
@@position:relative;+++^45em^[See the code here]
!!!!!Code for List of tiddlers with the tag 'iframe'
<<<
{{{
<<forEachTiddler 
 where 
 'tiddler.tags.contains("iframe")'
sortBy '(tiddler.title)' 
 ascending
write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |@@color:#c06;&raquo;  &raquo;@@ |"+tiddler.tags+"|\n"'
>>
}}}
<<<
===@@

{{tablecenter{
<<forEachTiddler 
 where 
 'tiddler.tags.contains("iframe")'
sortBy '(tiddler.title)' 
 ascending
write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |@@color:#c06;&raquo;  &raquo;@@ |"+tiddler.tags+"|\n"'
 begin '"| sort &raquo;| Title |>| Tags |h\n"'
>>
}}}
!!!<<gradient horiz #fc3 #fff>>&nbsp;ByTheTagScript^^<<tiddler CloseThisOpen with: ListTiddlersBy  '« back'>>|<<toolbar editTiddler>>» ^^>>
@@color:#C06;''&raquo; &raquo;'' @@ +++[See Requirments here]
<<<
#To run ~JavaScript in ~TiddlyWiki tiddlers requires: http://www.tiddlytools.com/#InlineJavascriptPlugin
#A brief summary of some of the differences between "inline scripts" and "plugins": http://tiddlytools.com/#FAQ_ScriptsAndPlugins
''Note: That in TW Help the Tag 'script' is also applied to macros that use the following plugins:''
*ForEachTiddlerPlugin
*ForEachTiddlerMacro
Get them from: http://tiddlywiki.abego-software.de/
<<<
===
----
{{textcenter{
''[[List of  tiddlers with the tag 'script'|ByTheTagScript]]''
}}}
@@position:relative;+++^45em^[See the code here]
!!!!!Code for List of tiddlers with the tag 'script'
<<<
{{{
<<forEachTiddler 
 where 
 'tiddler.tags.contains("script")'
sortBy '(tiddler.title)' 
 ascending
write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |@@color:#c06;&raquo;  &raquo;@@ |"+tiddler.tags+"|\n"'
>>
}}}
<<<
===@@

{{tablecenter{
<<forEachTiddler 
 where 
 'tiddler.tags.contains("script")'
sortBy '(tiddler.title)' 
 ascending
write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |@@color:#c06;&raquo;  &raquo;@@ |"+tiddler.tags+"|\n"'
 begin '"| sort &raquo;| Title |>| Tags |h\n"'
>>
}}}
----
{{textcenter{
''[[First Line of all tiddlers with the tag TiddlySnip sorted by Title.|ByTheTagTiddlySnip]]''
}}}
@@position:relative;+++^45em^[See the code here]
!!!!!Code for First Line of all tiddlers sorted by Title by The Tag TiddlySnip
<<<
{{{
<<forEachTiddler
 where 'tiddler.tags.contains("TiddlySnip")'
 sortBy '(tiddler.title)'
 script 'function getFirstLine(s) {
           var m = s.match(/\s*(.*)/);
           return m != null && m.length >= 1 ? m[1] : "";}'
 write '"[["+tiddler.title+"]] &rarr; "+getFirstLine(tiddler.text)
+"\n"' >> 
}}}
<<<
===@@

----

<<forEachTiddler
 where 'tiddler.tags.contains("TiddlySnip")'
 sortBy '(tiddler.title)'
 script 'function getFirstLine(s) {
           var m = s.match(/\s*(.*)/);
           return m != null && m.length >= 1 ? m[1] : "";}'
 write '"[["+tiddler.title+"]] &rarr; "+getFirstLine(tiddler.text)
+"\n"' >> 
!!!<<gradient horiz #fc3 #fff>>&nbsp;ByTheTagsystemConfig^^<<tiddler CloseThisOpen with: ListTiddlersBy  '« back'>>|<<toolbar editTiddler>>» ^^>>
{{textcenter{
''[[List of  tiddlers with the tag 'systemConfig'|ByTheTagsystemConfig]]''
}}}
@@position:relative;+++^45em^[See the code here]
!!!!!Code for List of tiddlers with the tag 'systemConfig'
<<<
{{{
<<forEachTiddler 
 where 
 'tiddler.tags.contains("systemConfig")'
sortBy '(tiddler.title)' 
 ascending
write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |@@color:#c06;&raquo;  &raquo;@@ |"+tiddler.tags+"|\n"'
>>
}}}
<<<
===@@

{{tablecenter{
<<forEachTiddler 
 where 
 'tiddler.tags.contains("systemConfig")'
sortBy '(tiddler.title)' 
 ascending
write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |@@color:#c06;&raquo;  &raquo;@@ |"+tiddler.tags+"|\n"'
 begin '"| sort &raquo;| Title |>| Tags |h\n"'
>>
}}}
{{tablecenter{
<<forEachTiddler 
where
'tiddler.title.toLowerCase().startsWith("c")'
sortBy '(tiddler.title.toLowerCase())' 
 ascending
write
 '"|bgcolor:#fcf; "+(index+1)+"|[["+tiddler.title+"]]| "+tiddler.text.length+"|"+tiddler.tags+"|bgcolor:#fcf;"+tiddler.modified.formatString("YYYY.0MM.0DD")+"|\n"'
 begin '"|sort &raquo;| Title | Size | Tags |Modified|h\n"'
>>
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[CSS]]^^<<tiddler CloseThisOpen with: WebPageCodes  '« back'>>|<<toolbar editTiddler>>» ^^>>

@@color(#C06):''For detailed information on CSS go here:''<<tiddler CSSMenu>>''or here'' [[CSS2 Reference|CSS2Reference]] <br> ''or here'' [[CSS Tools|http://www.realsoftwaredevelopment.com/2006/10/the_complete_li.html]]@@

''There are three main tiddlers'' built into ~TiddlyWiki that are used for styling.
*[[StyleSheet|styleSheet]] (this is for your own use and overrides the other two)
**[[NestedStyles]] These are sub-stylesheet tiddlers also with CSS that reside in ~StyleSheet.
----
*[[StyleSheetColors|styleSheetColors]]@@color(#C06):^^[1]^^@@
*[[StyleSheetLayout|styleSheetLayout]]@@color(#C06):^^[1]^^@@
@@color(#C06):^^[1]^^@@@@position:relative;+++^35em^[It is best NOT to modify these two style sheets - click here]
|bgcolor:#FFF;''NOTE:'' It is best that all modifications you make should be done to ''~StyleSheet'' because new core updates sometimes modify ''~StyleSheetLayout'' and ''~StyleSheetColors'' . So if you have modified your ~StyleSheetLayout and ~StyleSheetColors they are no longer virgin //shadow tiddlers// consequentially any new core changes to ~TiddlyWiki for these stylesheets will ''NOT'' be implemented.  It is best to leave them original and only use them for reference.|
===@@
----
*''You can change the style of a'' tiddler by putting the CSS styling right inside it. See ChangingStyles


!!!<<gradient horiz #abf #fff>>&nbsp;Example>>
''By putting this CSS code in StyleSheet the viewer has been set to __underline__ all links in a tiddler.''
{{{
.viewer a {
color:#04b;
text-decoration:underline;
}
}}}
Unfortunately Tabs are treated as links so to prevent them from being underlined
this CSS has been put in StyleSheet to modify a particular tiddler, ~OverView, in this case.  The first sets unselected tabs to'' @@background-color:#99AAEE;color:#000;&nbsp;this color&nbsp;@@ ''and prevents unselected tabs from showing an underline. The second just prevents the underline on the selected tab.

!!!<<gradient horiz #abf #fff>>&nbsp;The Code>>
{{{
#tiddlerOverView .tabUnselected {
	color: #000;
	background: #99AAEE;
        text-decoration:none;
}

#tiddlerOverView .tabSelected{
	text-decoration:none;
}
}}}
!!!<<gradient horiz #abf  #fff>>&nbsp;Here is the tab>>
<<tabs tabsClass [[tab name]] "tool tip" [[tiddler to be displayed]][[ Here is another tab hr ]] "Another Tab" [[hr]] >>
!!!!!<<gradient horiz #abf #fff>>&nbsp;@@color:#c06;End of CSS@@>>
<html><h2>Examples</h2>
<a target="_blank" href="http://www.w3schools.com/css/tryit.asp?filename=trycss_display">How to display an element</a><br>This example demonstrates how to display an element.

<a target="_blank" href="http://www.w3schools.com/css/tryit.asp?filename=trycss_float">A simple use of the float property</a><br>Let an image float to the right in a paragraph.

<a target="_blank" href="http://www.w3schools.com/css/tryit.asp?filename=trycss_float2">An image with border and margins that floats to the right in a paragraph</a><br>Let an image float to the right in a paragraph. Add border and margins to the image.

<a target="_blank" href="http://www.w3schools.com/css/tryit.asp?filename=trycss_float3">An image with a caption that floats to the right</a><br>Let an image with a caption float to the right.

<a target="_blank" href="http://www.w3schools.com/css/tryit.asp?filename=trycss_float4">Let the first letter of a paragraph float to the left</a><br>Let the first letter of a paragraph float to the left and style the letter.

<a target="_blank" href="http://www.w3schools.com/css/tryit.asp?filename=trycss_float5">Creating a horizontal menu</a><br>Use float with a list of hyperlinks to create a horizontal menu.

<a target="_blank" href="http://www.w3schools.com/css/tryit.asp?filename=trycss_float6">Creating a homepage without tables</a><br>Use float to create a homepage with a header, footer, left content and main content.

<a target="_blank" href="http://www.w3schools.com/css/tryit.asp?filename=trycss_position_relative">Position:relative</a><br>This example demonstrates how to position an element relative to its normal position.

<a target="_blank" href="http://www.w3schools.com/css/tryit.asp?filename=trycss_position_absolute">Position:absolute</a><br>This example demonstrates how to position an element using an absolute value.

<a target="_blank" href="http://www.w3schools.com/css/tryit.asp?filename=trycss_visibility">How to make an element invisible</a><br>This example demonstrates how to make an element invisible. Do you want the element to show or not?

<a target="_blank" href="http://www.w3schools.com/css/tryit.asp?filename=trycss_cursor">Change the cursor</a><br>This example demonstrates how to change the cursor.

</html>
!!!''CSS Properties''
<<tag "CSSRef">>
{{borderless textcenter{
|vertical-align:bottom;<<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://www.w3schools.com/css/css_reference.asp]]&nbsp;&raquo;|
URL:http://www.w3schools.com/css/css_reference.asp
<html><div align="center"><iframe src ="http://www.w3schools.com/css/css_reference.asp" width="100%" align="center" height="600"></iframe></div></html>}}}
{{borderless{
|vertical-align:bottom;<<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://www.w3schools.com/css/css_reference.asp]]&nbsp;&raquo;|
}}}<html><div align="center"><iframe src ="http://www.w3schools.com/css/css_reference.asp" width="100%" align="center" height="600"></iframe></div></html>
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[216 Cross Platform Colors|CSSColors]]^^<<tiddler CloseThisOpen with: UsingColor  '« back'>>|<<toolbar editTiddler>>» ^^>>
{{borderless{
|vertical-align:bottom;<<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://www.symbex.net.au/Wiki/htmltablecolors.htm]]&nbsp;&raquo;|
}}}<html><iframe src="http://www.symbex.net.au/Wiki/htmltablecolors.htm" width=100% height=600></iframe></html>
<<popup [[CSS Reference]] [[<<forEachTiddler where 'tiddler.tags.contains("CSSRef")'$))]]>>
!!!<<gradient horiz #fc3 #fff>>&nbsp;CamelCase>>
CamelCase (also spelled camel case) or medial capitals is the practice of writing compound words or phrases in which the words are joined without spaces and are capitalized within the compound. The term's name comes from the uppercase "bumps" in the middle of the compound word, suggestive of the humps of a camel. An example is @@color:#00f;''~BackColor.''@@

More at http://en.wikipedia.org/wiki/CamelCase


<html><div align="center"> <embed src="http://www.metacafe.com/fplayer/1923836/capacitor_replacement_tutorial.swf" width="400" height="345" wmode="transparent" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash"> </embed><br><font size = 1><a href="http://www.metacafe.com/watch/1923836/capacitor_replacement_tutorial/">Capacitor Replacement Tutorial</a> - <a href="http://www.metacafe.com/">Funny bloopers are a click away</a></font></div></html>

!!!<<gradient horiz #fc3 #fff>>&nbsp;ChangePageTitle^^<<tiddler CloseThisOpen with: FormattingThePage  '« back'>>|<<toolbar editTiddler>>» ^^>>

@@color:#000;In http://www.TiddlyTools.com/#CoreTweaks there is facility for over-riding the SiteTitle/SiteSubtitle to display another title that will appear in the browser's title bar. Install CoreTweaks and simply put your desired page title in a tiddler named PageTitle.

Here is the relevant code:@@
<<<
{{{
window.coreTweaks_getPageTitle=window.getPageTitle;
window.getPageTitle=function() { 
	var txt=wikifyPlain("PageTitle"); if (txt.length) return txt;
	return window.coreTweaks_getPageTitle.apply(this,arguments);
}
store.addNotification("PageTitle",refreshPageTitle); // so title stays in sync with tiddler changes
}}}
<<<
<script>
   place.style.color="#c06"; /* set text color */
</script>
!!!!End

!!!<<gradient horiz #fc3 #fff>>&nbsp;[[ChangingStyles]]^^<<tiddler CloseThisOpen with: FormattingTiddlers  '« back'>>|<<toolbar editTiddler>>» ^^>>
#You can change the style of a tiddler by putting the CSS styling right inside it.
#You can change the style of ''another tiddler'' see [[ChangingStyles Demo]] when this tiddler is open for display. Open and close this tiddler to see [[ChangingStyles Demo]] change text color.

*@@color:#090;font-size:12pt;Note: This could cause great confusion and should be used very carefully!@@

*+++[View the code]
{{{
<html>
    <style type="text/css">

   /*Override StyleSheet*/
    #tiddlerChangingStyles .viewer {
        background:#efe;
        border:0px solid #F6F;
        -moz-border-radius: 0em;
        }
     

     /*Modify the tiddler itself by name*/
        #tiddlerChangingStyles {
            color: #c06;
            background:#ccc;
            border: 1px solid #090;
            font: bold 10pt times;
        }



     /*Modify another tiddler with a space in its name*/
        #tiddlerChangingStyles\000020Demo {
            color: #090;
            
        }

/*Modify all tiddlers*/
/*
.tiddler {color:#090;}
*/

/*Hides tiddler title or tiddler body*/
/*  
.tiddler .title{display:none;}
.viewer {display:none;}
*/
    </style>
</html>
}}}
===

/*{{{*/
Active code below here
/*}}}*/


<html>
    <style type="text/css">



   /*Override StyleSheet*/
    #tiddlerChangingStyles .viewer {
        background:#efe;
        border:0px solid #F6F;
        -moz-border-radius: 0em;
        }
     

     /*Modify the tiddler itself by name*/
        #tiddlerChangingStyles {
            color: #c06;
            background:#ccc;
            border: 1px solid #090;
            font: bold 10pt times;
        }



     /*Modify another tiddler with a space in its name*/
        #tiddlerChangingStyles\000020Demo {
            color: #090;
            
        }
#tiddlerChangingStyles .title{display:none;}


/*Modify all tiddlers*/
/*
.tiddler {color:#090;}
*/

/*Hides tiddler title or tiddler body*/
/*  
.tiddler .title{display:none;}
.viewer {display:none;}
*/
    </style>
</html>
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[ChangingStyles Demo]]^^<<tiddler CloseThisOpen with: FormattingTiddlers  '« back'>>|<<toolbar editTiddler>>» ^^>>

This tiddler's style has been changed by the CSS in another tiddler called ChangingStyles.  It demonstrates not only how you can change the style of a tiddler by putting code directly in it but also that you can change any number of other tiddlers the same way.

* ''Note: This tiddlers style (text color green in this case) is only changed when ChangingStyles tiddler is being rendered.
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[CheckBoxes]]^^<<tiddler CloseThisOpen with: FormattingTiddlers '« back'>>|<<toolbar editTiddler>>» ^^>>

There is a simple but effective checkbox ~ToDoTogglePlugin here: 
http://tinyurl.com/6qsg82 
It's simple but it toggles the tiddlers tag from todo to done when all boxes are ticked. 

You also might want to try one or more of these:
http://www.TiddlyTools.com/#ChecklistScript
http://www.TiddlyTools.com/#ToDoList
http://www.TiddlyTools.com/#TaskPackage

And, if you want to create your own ~ToDo application, you might find
this helpful:

http://www.TiddlyTools.com/#CheckboxPlugin
http://www.tiddlytools.com/#CheckboxPluginInfo 

!!!!End
''Table heading links to w3schools references on this subject.''
|>|>|>| ![[Classification Properties|http://www.w3schools.com/css/css_classification.asp]] |
| ''Property'' | ''Valid Values'' | ''Example'' | ''Inherited?'' |
| display |none, block, inline, list-item | display:none | N |
| list-style-type |disk, circle, square, decimal, lower-roman, upper-roman, lower-alpha, upper-alpha, none | list-style-type:upper-alpha | Y |
| list-style-image |//url//, none | list-style-image:url(icFile.gif) | Y |
| list-style-position |inside, outside | list-style-position:inside | Y |
| list-style |//keyword// -or- //position// -or- //url// | list-style: square outside url(icFolder.gif) | Y |
config.commands.closeAll ={
text:"close all",
tooltip:"close all"};

config.commands.closeAll.handler = function(event,src,title)
{story.closeAllTiddlers();return false;}
----
''To Add 'close all' to toolbar in ViewTemplate''
&darr;+++[Create a tiddler like this:]
----

@@color(#C06):&nbsp;''Title:''@@<html><input type="text" size="40" value="CloseAllMacro" /></html>
@@color(#00f):''Body:''@@<html><textarea rows="10" cols="30">
config.commands.closeAll ={
text:"close all",
tooltip:"close all"};

config.commands.closeAll.handler = function(event,src,title)
{story.closeAllTiddlers();return false;}
</textarea></html>

@@color(#0a0):''Tags:''@@<html><input type="text" size="40" value="systemConfig tweaks" /></html>

Add closeAll to your toolbar in ViewTemplate like this:
<<<
{{{<div class='toolbar' macro='toolbar fullscreen jump top -closeTiddler closeOthers closeAll +editTiddler permalink references'></div>}}}
<<<
===

----
/%
|Name|CloseSlider|
|Source|http://www.TiddlyTools.com/#CloseSlider|
|Version|0.0.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|script|
|Requires|InlineJavascriptPlugin, NestedSlidersPlugin|
|Overrides||
|Description|embed a 'close' link floating in upper right corner of slider.  closes current slider panel.|
%/<script label="[x]" title="hide this section">
	var panel=place;
	while (panel && panel.className!='sliderPanel' && panel.className!='floatingPanel')
		{ panel=panel.parentNode; }
	if (!panel) { alert('not in a slider'); return false; }
	panel.style.display='none';
	var cookie=panel.button.sliderCookie;
	if (cookie && cookie.length) {
		config.options[cookie]=false;
		if (config.options[cookie]!=panel.button.defOpen)
			saveOptionCookie(cookie);
		else { // remove cookie if slider is in default display state
			var ex=new Date(); ex.setTime(ex.getTime()-1000);
			document.cookie = cookie+"=novalue; path=/; expires="+ex.toGMTString();
		}
	}
	return false;
</script><script>
	place.lastChild.style.fontWeight="normal";
	if (story.findContainingTiddler(place))
		place.lastChild.className="toolbar button";
	else {
		var s=place.lastChild.style
		s.fontSize="90%"; s.float="right";
	}
</script>
<script label="$2">
	var tiddler=story.findContainingTiddler(place);
	story.displayTiddler(tiddler,"$1");
	story.closeTiddler(tiddler.id.substr(7)); // close self
	return false;
</script>
<<tabs "" [[Intro ]] "tooltip 1" [[CodeReferenceIntro]]  [[CSS Ref ]] "" [[CSS2Reference]]  [[CSSPlay ]] "" [[cssplay]]    [[HTMLQuickList    ]] "" [[HTMLQuickList]] [[HTML-DOMReference ]] "" [[HTML-DOMReference]] [[JavaScriptReference ]] "" [[JavaScriptReference]]  [[JavaScriptQuickList ]] "" [[JavaScriptQuickList]] >>
#tiddlerCodeReferenceAll .tabUnselected {background:#ccc;border: 1px #fc3 solid; border-bottom:0px;}
#tiddlerCodeReferenceAll .tabUnselected .tabButton {background:#f00; padding : 0px 2px 0px 2px; margin: 0 0 0 4px;}

#tiddlerCodeReferenceAll .tabSelected {background:#fc3;border: 1px #999 solid;border-bottom:0px;}
#tiddlerCodeReferenceAll .tabSelected .tabButton {background:#f00;padding : 0px 2px 0px 2px; margin: 0 0 0 4px;}
!!!<<gradient horiz #fc3 #ffff>>[[Indepth Reference|CodeReferenceIntro]]&nbsp;^^<<tiddler CloseThisOpen with: CodeReferenceAll  '« back'>>|<<toolbar editTiddler>>» ^^>>
''These are the codes used in the construction and styling of all ~TiddlyWikis''

Some interesting  links:
<<<
http://www.tizag.com/ @@color:#C06;''&raquo; &raquo;'' @@ HTML and CSS Tutorial
http://developer.yahoo.com/
http://developer.yahoo.com/performance/rules.html @@color:#C06;''&raquo; &raquo;'' @@ @@Thirteen Simple Rules for Speeding Up Your Web Site@@
http://wellstyled.com/index.html
http://alistapart.com/articles/
http://www.dyn-web.com/dhtml/iframes/
<<<
+++[+Minify your Javascript]...
{{borderless{
|vertical-align:bottom;<<toolbar fullscreen>><<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://developer.yahoo.com/performance/rules.html#minify]]&nbsp;&raquo;|
----
<html><div align="center"><iframe  src ="http://developer.yahoo.com/performance/rules.html#minify" width="100%" align="center" height="400" scrolling="auto" frameborder="0" allowtransparency style="border:none;"></iframe></div></html>}}}
===

[img[http://img178.imageshack.us/img178/7698/uphg6.gif][WebPageCodes]]<<gradient horiz #fc3 #ffffff>>[[Codes used in TiddlyWiki|CodesIntro]]>>
''These are the codes used in the construction and styling of all ~TiddlyWikis''

Here is more reference material

<<tiddler CodeReferenceAll>>
''Table heading links to w3schools references on this subject.''
|>|>|>| ![[Color and Background Properties|http://www.w3schools.com/css/css_background.asp]] |
| ''Property'' | ''Valid Values'' | ''Example'' | ''Inherited?'' |
|color |//color // |color: red |Y |
|background-color |//color//, transparent |background-color: yellow |N* |
|background-image |//url//, none |background-image: url(house.jpg)|N* |
|background-repeat |repeat, repeat-x, repeat-y, no-repeat |background-repeat: no-repeat |N* |
|background-attachment |scroll, fixed |background-attachment: fixed |N* |
|background-position |[ //position// , //length// ], {1,2}, [ top, center, bottom ] -or- [ left, center, right ] |background-position: top center |N* |
|background |transparent, //color// -or- //url// -or- repeat -or- scroll -or- //position// |background: silver url(house.jpg) repeat-y |N* |
|>|>|>|!*Starting in CSS2, these properties are inherited. |
Background: #2B2521
Foreground: #FFCD91
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
!!!<<gradient horiz #fc3 #fff>>&nbsp;ColorCalculator^^<<tiddler CloseThisOpen with: UsingColor  '« back'>>|<<toolbar editTiddler>>» ^^>>
{{borderless{
|vertical-align:bottom;<<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://stuff.debugger-blog.net/coca/]]&nbsp;&raquo;|
<html><div align="center"><iframe src ="http://stuff.debugger-blog.net/coca/" width="100%" align="center" height="600"></iframe></div></html>}}}
!!!<<gradient horiz #fc3 #fff>>&nbsp;ColorHarmony^^<<tiddler CloseThisOpen with: UsingColor  '« back'>>|<<toolbar editTiddler>>» ^^>>
{{borderless{
|vertical-align:bottom;<<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://www.easyrgb.com/harmonies.php]]&nbsp;&raquo;|
<html><iframe name="content" src="http://www.easyrgb.com/harmonies.php" width=100% height=600></iframe></html>}}}
!!!!!<<gradient horz  #fc3 #ffdddd #ffffff>>@@color:white;&nbsp;'' [[Using Colors|ColorHints]]''@@^^<<tiddler CloseThisOpen with: ColorHints  '« back'>>|<<toolbar editTiddler>>» ^^>>

{{borderless{
| <<tiddler ColorHints##colourintro>> |<<tiddler ColorHints##colours>>|
}}}
/%
!colours
[img[http://img152.imageshack.us/img152/489/4colorpagetf0qe8.jpg]]

''Important'':

Once you chose color harmony, don't forget to harmonize together the colored volumes and surfaces. Always choose a dominant color (to fulfil big surfaces) and one  tonic color - I call it  interactive - (to fulfil little surfaces as clickable elements, information area to highlight...etc.).


Successful graphics convey a high level of professionalism and inspire internauts with respect.
!End
%/


/%
!colourintro
[img[http://img167.imageshack.us/img167/554/huegt8.gif]]
{{textleft{
*[[216 Cross Platform Colors|CSSColors]]
*[[Color Harmony|ColorHarmony]]
*[[Coloria Color Names|ColorNames]]
*[[Color Wheel|ColorWheel]]


''To hang above your screen in a big size!!'' In web design,  graphics and ergonomics should serve the contents. A good graphic web interface attracts internauts, sets your site among the most "promising" ones. Don't disappoint the internauts : The contents will make them come back.

[img[http://img250.imageshack.us/img250/4768/rouemr7.gif]]
}}}
!End
%/
!!!<<gradient horiz #fc3 #fff>>&nbsp;ColorNames^^<<tiddler CloseThisOpen with: UsingColor  '« back'>>|<<toolbar editTiddler>>» ^^>>
{{borderless{
|vertical-align:bottom;<<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://www.coloria.net/bonus/colornames.htm]]&nbsp;&raquo;|
}}}<html><iframe src="http://www.coloria.net/bonus/colornames.htm" width=100% height=600></iframe></html>
Background: @@bgcolor:#fff;Background@@:#fff
Foreground: @@bgcolor:#000;Foreground: @@:#000
PrimaryPale: @@bgcolor:#8cf;PrimaryPale:@@:#8cf
PrimaryLight: @@bgcolor:#18f;PrimaryLight:@@:#18f
PrimaryMid: @@bgcolor:#04b;PrimaryMid@@:#04b
PrimaryDark: @@bgcolor:#014;PrimaryDark:@@:#014
SecondaryPale: @@bgcolor:#ffc;SecondaryPale: @@:#ffc
SecondaryLight: @@bgcolor:#fe8;SecondaryLight: @@:#fe8
SecondaryMid: @@bgcolor:#db4;SecondaryMid: @@:#db4
SecondaryDark: @@bgcolor:#841;SecondaryDark:@@ :#841
TertiaryPale: @@bgcolor:#eee;TertiaryPale: @@:#eee
TertiaryLight: @@bgcolor:#ccc;TertiaryLight: @@:#ccc
TertiaryMid: @@bgcolor:#999;TertiaryMid: @@:#999
TertiaryDark: @@bgcolor:#666;TertiaryDark: @@:#666
Error: @@bgcolor:#f88;Error: @@:#f88


|Background:|@@bgcolor:#fff;Background: #fff@@|
|Foreground:|@@bgcolor:#000;color:#fff;Foreground: #000@@|
|~PrimaryPale:|@@bgcolor:#8cf;~PrimaryPale: #8cf@@|
|~PrimaryLight:|@@bgcolor:#18f;~PrimaryLight: #18f@@|
|~PrimaryMid:|@@bgcolor:#04b;color:#fff;~PrimaryMid: #04b@@|
|~PrimaryDark:|@@bgcolor:#014;color:#fff;~PrimaryDark: #014@@|
|~SecondaryPale:|@@bgcolor:#ffc;~SecondaryPale:#ffc @@|
|~SecondaryLight:|@@bgcolor:#fe8;~SecondaryLight: #fe8@@|
|~SecondaryMid:|@@bgcolor:#db4;~SecondaryMid: #db4@@|
|~SecondaryDark:|@@bgcolor:#841;color:#fff;~SecondaryDark: #841@@|
|~TertiaryPale:|@@bgcolor:#eee;~TertiaryPale: #eee@@|
|~TertiaryLight:|@@bgcolor:#ccc;~TertiaryLight: #ccc @@|
|~TertiaryMid:|@@bgcolor:#999;~TertiaryLight: #999@@|
|~TertiaryDark:|@@bgcolor:#666;~TertiaryDark: #666@@|
|Error:|@@bgcolor:#f88;Error: #f88@@|
|Background:|bgcolor:#fff;Background: #fff|
|Foreground:|bgcolor:#000;color:#fff;Foreground: #000|
|~PrimaryPale:|bgcolor:#8cf;~PrimaryPale: #8cf|
|~PrimaryLight:|bgcolor:#18f;~PrimaryLight: #18f|
|~PrimaryMid:|bgcolor:#04b;color:#fff;~PrimaryMid: #04b|
|~PrimaryDark:|bgcolor:#014;color:#fff;~PrimaryDark: #014|
|~SecondaryPale:|bgcolor:#ffc;~SecondaryPale:#ffc |
|~SecondaryLight:|bgcolor:#fe8;~SecondaryLight: #fe8|
|~SecondaryMid:|bgcolor:#db4;~SecondaryMid: #db4|
|~SecondaryDark:|bgcolor:#841;color:#fff;~SecondaryDark: #841|
|~TertiaryPale:|bgcolor:#eee;~TertiaryPale: #eee|
|~TertiaryLight:|bgcolor:#ccc;~TertiaryLight: #ccc |
|~TertiaryMid:|bgcolor:#999;~TertiaryLight: #999|
|~TertiaryDark:|bgcolor:#666;~TertiaryDark: #666|
|Error:|bgcolor:#f88;Error: #f88|
|Background:|<<wikify [[@@background:%0;%0@@]] 'ColorPalette::Background'>>|
|Foreground:|color:#ccc;<<wikify [[@@background:%0;%0@@]] 'ColorPalette::Foreground'>>|
|~PrimaryPale:|<<wikify [[@@background:%0;%0@@]] 'ColorPalette::PrimaryPale'>>|
|~PrimaryLight:|<<wikify [[@@background:%0;%0@@]] 'ColorPalette::PrimaryLight>>|
|~PrimaryMid: |<<wikify [[@@background:%0;%0@@]] 'ColorPalette::PrimaryMid'>>|
|~PrimaryDark:|color:#ccc;<<wikify [[@@background:%0;%0@@]] 'ColorPalette::PrimaryDark'>>|
|~SecondaryPale:|<<wikify [[@@background:%0;%0@@]] 'ColorPalette::SecondaryPale'>>|
|~SecondaryLight:|<<wikify [[@@background:%0;%0@@]] 'ColorPalette::SecondaryLight'>>|
|~SecondaryMid:|<<wikify [[@@background:%0;%0@@]] 'ColorPalette::SecondaryMid'>>|
|~SecondaryDark:|<<wikify [[@@background:%0;%0@@]] 'ColorPalette::SecondaryDark'>>|
|~TertiaryPale:|<<wikify [[@@background:%0;%0@@]] 'ColorPalette::TertiaryPale'>>|
|~TertiaryLight:|<<wikify [[@@background:%0;%0@@]] 'ColorPalette::TertiaryLight'>>|
|~TertiaryMid:|<<wikify [[@@background:%0;%0@@]] 'ColorPalette::TertiaryMid'>>|
|~TertiaryDark:|<<wikify [[@@background:%0;%0@@]] 'ColorPalette::TertiaryDark'>>|
|Error:|<<wikify [[@@background:%0;%0@@]] 'ColorPalette::Error'>>|
!!!<<gradient horiz #fc3 #fff>>&nbsp;ColorWheel^^<<tiddler CloseThisOpen with: UsingColor  '« back'>>|<<toolbar editTiddler>>» ^^>>
{{borderless{
|vertical-align:bottom;<<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://www.ficml.org/jemimap/style/color/wheel.html]]&nbsp;&raquo;|
}}}<html><iframe name="content" src="http://www.ficml.org/jemimap/style/color/wheel.html" width=100% height=600></iframe></html>



/* multi-column tiddler content (not supported in Internet Explorer) */
.twocolumns { display:block;
	-moz-column-count:2; -moz-column-gap:1em; -moz-column-width:50%; /* FireFox */
	-webkit-column-count:2; -webkit-column-gap:1em; -webkit-column-width:50%; /* Safari */
	column-count:2; column-gap:1em; column-width:50%; /* Opera */
}
.threecolumns { display:block;
	-moz-column-count:3; -moz-column-gap:1em; -moz-column-width:33%; /* FireFox */
	-webkit-column-count:3; -webkit-column-gap:1em; -webkit-column-width:33%; /* Safari */
	column-count:3; column-gap:1em; column-width:33%; /* Opera */
}
.fourcolumns { display:block;
	-moz-column-count:4; -moz-column-gap:1em; -moz-column-width:25%; /* FireFox */
	-webkit-column-count:4; -webkit-column-gap:1em; -webkit-column-width:25%; /* Safari */
	column-count:4; column-gap:1em; column-width:25%; /* Opera */
}
!!!<<gradient horiz #fc3 #ffffff>>&nbsp;[[ColumnsAndRows]]^^<<tiddler CloseThisOpen with: Tables  '« back'>>|<<toolbar editTiddler>>» ^^>>
!!!&nbsp;Spanning rows
|bgcolor:#E0FAE1;@@color:#000;span rows@@|content|content|
|~| content | content |
|~| content | content |
<<<
Use the tilde (~) to span rows it is equal to the rowspan in HTML
Notice how the first tilde causes the content of the first row to be spanned as well.
<<<
{{{
|!span rows|content|content|
|~| content | content |
|~| content | content |
}}}
!!!&nbsp;Spanning columns
| !heading1| !heading1 | !heading1 |
|>| span two columns | content |
|>| span two columns | content |
<<<
Use the right angle bracket (>) to span columns it is equal to colspan in HTML
<<<
{{{
| !heading1| !heading1 | !heading1 |
|>| span two columns | content |
|>| span two columns | content |
}}}
!!!&nbsp;Spanning rows and columns
|bgcolor:#abf; heading1 |bgcolor:#abf; heading2 |vertical-align:middle;  span rows |
|span columns |>|~|
|span columns |>|~|
<<<
Use the right angle bracket (>) to span columns and the tilde (~) to span rows.
Notice how the first tilde causes the information in the first row/last column to be included in the span.
Note the use of {{{vertical-align:middle;}}} to center the text vertically. It can be used for 'top' and 'bottom' as well.
<<<
{{{
| heading1 | heading2 |vertical-align:middle; span rows |
|span columns |>|~|
|span columns |>|~|
}}}
----
|bgcolor:#F7D8A0;vertical-align:middle;  speaker |bgcolor:#abf; turntable |bgcolor:#F7D8A0;vertical-align:middle;  speaker |
|~|bgcolor:#94EDD6; CD Player |~|
|~|bgcolor:#cfc; {{twLink{[[AM/FM Radio|Radio]]}}} |~|
{{{
|bgcolor:#F7D8A0;vertical-align:middle;  speaker |bgcolor:#abf; turntable |bgcolor:#F7D8A0;vertical-align:middle;  speaker |
|~|bgcolor:#94EDD6; CD Player |~|
|~|bgcolor:#cfc; AM/FM Radio |~|
}}}
!!!&nbsp;End
{{textcenter{
[img[http://img395.imageshack.us/img395/1108/rsslogo25xr9.jpg][http://www.haloscan.com/members/rss.php?user=twhelp]]}}}
----
++++[Comment]
<<<
07.07.31 - 7:59 am
IP: 72.188.101.2
It might be good to note that putting triple curly braces {{{ {{{ }}} around text escapes formatting.
<<<
===

+++[+Response]
<<<
Thanks for the suggestion Cy. Your comment is very welcome as it was a glaring omission. I have added a tab to [[FormattingText]] called [[CommentingAndEscapes]].
<<<
===

----
++++[Comment]
<<<
07.07.05 - 2:27 pm
IP: 189.146.238.184
For HowToUpgrade, I suggest a note about deleting the StyleSheetLayout tiddler if that has been modified, since that is a common source of headaches for upgrading.
<<<
===

+++[+Response]
<<<
Thanks to Dave Gifford for his excellent suggestion. I have modified HowToUpgrade to warn of this pitfall and to illustrate how to restore your ~TiddlyWiki in case of such an event.
<<<
===


----
++++[Comment]
<<<
07.06.26 - 9:47 pm
IP: 194.237.142.6
Could you add an example on how to get the tabs on several rows?
I couldn't find anything indicating how to do that. It just happens but not in the the format I would like.
Otherwise a GREAT job.
<<<
===

+++[+Response]
<<<
Thank you for your excellent suggestion. I have modified the [[tabs]] in FormattingTiddlers to illustrate how to cause tabs to wrap to the viewer width.
<<<
===


----
++++[Comment]
<<<
07.06.16 - 8:55 pm
IP: 72.8.96.13
It would be nice to have a section on how to change the font size in just part of a tiddler, rather than doing the whole thing in the stylesheet, or at least to address the issue if it's not a current feature.
<<<
===

+++[+Response]
<<<
Thank you for your comment. I have added a tab to FormattingText called FontPropertiesDemo that demonstrates how to change text within a tiddler using HTML or CSS.
<<<
===


----
++++[Comment]
<<<
07.06.10 - 7:54 pm
IP: 72.8.96.13
I suggest telling how to put tooltips on regular text (not just links and images).
<<<
===

+++[+Response]
<<<
Thank you for your comment.  I have added a Tab about how to put a Tooltip on plain text here at FormattingText 
<<<
===


----
++++[Comment]
<<<
07.06.06 - 9:37 pm
IP: 72.8.96.13
Hello, I would like to see a section here for turning off the wiki syntax - i.e. for those who want to use hypens in normal words and such without . . . you know. This would be particularly helpful for those using Tiddlywiki to write hypertext fiction.
<<<
===

+++[+Response]
<<<
Thank you for your comment. I have added a Tab about WikiWords and how to turn them off manually and with a plugin here FormattingText and here FormattingTiddlers
<<<
===


----
++++[Comment]
<<<
07.06.06 - 12:43 pm
IP: 68.215.27.131
Your TW Help is absolutely marvelous. I have been a professional programmer for more than 30 years and I feel that you have created a "master Piece!" Suggestion: Pseudo classes - CSS it would benefit me and I suspect others if you included examples of the usage of these items. Both the code and the effect it has on the page. Again, my complements on the results of what has to have been many weeks of effort for this most useful demonstation of TW.
<<<
===

+++[+Response]
<<<
Thank you for your very kind compliment.  It is much appreciated.

I have added some examples as per your suggestion to [[Pseudo Classes - CSS]]
<<<
===


----
++++[Comment]
<<<
07.05.29 - 7:09 am
IP: 69.62.160.117
I have no knowledge of html or java or script - can I use the tiddly wikky for research. I am having a huge problem understanding your tutorial - can ordinaru people with no knowledge of computer langs. use tiddly wikky for research. I am presently working on my doctorate and someone showed me how usefule the tiddly can be for research. What advice do you have for me?
<<<
===

+++[+Response]
<<<
07.05.29 - 3:29 pm
IP: 124.183.249.40

''Note:'' this was left as a response and also sent as an email.

Shabana, TW Help is more for reference than a tutorial. Here is a user friendly tutorial for neophytes: http://www.giffmex.org/twfortherestofus.html There are many preformatted TiddlyWikis that you can use for research without having to know code. This first link displays many TiddlyWikis, look first under TiddlyWiki used for to-do lists and productivity at: http://giffmex.tiddlyspot.com/ Then work your way down. http://www.dcubed.ca/gtd-sample.html http://monkeygtd.tiddlyspot.com/ http://shared.snapgrid.com/index.html http://tiddlyspot.com/ http://www.giffmex.org/organizertw.html And you can get very friendly advice from the TiddlyWiki discussion group. Don't be afraid to ask the most basic questions at: http://groups.google.com/group/TiddlyWiki I hope this helps.
<<<
=== 
----
/%
|Name|CommentScript|
|Source|http://www.TiddlyTools.com/#CommentScript|
|Version|1.2.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|script|
|Requires|InlineJavascriptPlugin, NestedSlidersPlugin, MoveablePanelPlugin, ExpandSlidersScript (optional)|
|Overrides||
|Description|form to enter feedback/comments that are automatically added to tiddler content|

Usage:
<<tiddler CommentScript with: reverse>>

To indicate the location within the containing tiddler where new comments are to be saved, embed the keyword "comment", enclosed in TW begin/end comment syntax in the containing tiddler source.  If you omit the comment marker from your tiddler source, new comments are automatically appended to the end of the tiddler.  'reverse' is an optional keyword that causes all new comments to be inserted AFTER the comment marker instead of before the marker (producing reverse chronological order).  If there is no comment marker in your tiddlers source, the 'reverse' option is ignored and new comments are automatically appended to the end of the tiddler.

You can customize the format of the comment by redefining:
	config.options.txtCommentFormat="format string"
The default format string is:
	+++!!!!![%0 (%1): %2]>\n%3===\n
where: %0=date/timestamp, %1=username, %2=subject, and %3 is the body of the comment

You can further customize the date/timestamp format by defining:
	config.options.txtCommentDateFormat
When no custom format is defined, it defaults to current system-specific "locale" format.

Revisions:
2008.10.24 [1.2.0] added config.options.txtCommentDateFormat
2007.07.05 [1.1.0] added 'view all/close all' toolbar item plus code cleanup
2007.06.28 [1.0.2] added tiddler.fields to saveTiddler() call (preserves custom fields)
2007.05.26 [1.0.1] added support for optional 'reverse' keyword.
2006.04.20 [1.0.0] initial release

%/@@position:relative;+++^40em^{{small{[add a note|add a new note to this tiddler]}}}...
	<<moveablePanel>>add a note
----
	{{smallform small center{<html><form><!--
		--><input type="text" id="subject" name="subject" title="enter a short 'headline'" style="width:100%">
		<textarea id="body" name="body" rows="7" title="enter the text of your note" style="width:100%;font-family:helvetica,sans"></textarea>
		<i>Please enter your information and then press</i> <!--
		--><input type="button" value="post" onclick="addTiddlerComment(this.form.subject,this.form.body);"><!--
	--></form></html>}}}===
@@ |{{small{<<tiddler ExpandSlidersScript with: here "view all" "close all">>}}}<script>

window.addTiddlerComment = function(subject,body) { 
	// get the tiddler source and locate insertion marker (if present)
	var here=story.findContainingTiddler(subject); if (!here) return;
	var t=store.getTiddler(here.getAttribute("tiddler"));
	var marker="/%"+"comment"+"%/"; var pos=t.text.indexOf(marker); if (pos==-1) pos=t.text.length;
	if ("$1".toLowerCase()=="reverse") pos+=marker.length; // reverse order by inserting AFTER comment marker
	// update source and refresh tiddler display
	if (config.options.txtCommentDateFormat)
		var when=new Date().formatString(config.options.txtCommentDateFormat);
	else
		var when=new Date().toLocaleString();
	var who=config.options.txtUserName;
	if (config.options.txtCommentFormat==undefined)
		config.options.txtCommentFormat="+++[%0 (%1): %2]>\n%3===\n";
	var out=config.options.txtCommentFormat.format([when,who,subject.value,body.value]);
	var newtxt=t.text.substr(0,pos)+out+t.text.substr(pos);
	store.saveTiddler(t.title,t.title,newtxt,t.modifier,t.modified,t.tags,t.fields);
	story.refreshTiddler(t.title,1,true);
}
</script>
+++!!!!![Monday, 25 February, 2008 21:25:13 (MorrisGray): this is a note ]>
This is the note===
/%comment%/





!!!<<gradient horiz #fc3 #ffffff>>CommentingAndEscapes^^<<tiddler CloseThisOpen with: FormattingText  '« back'>>|<<toolbar editTiddler>>» ^^>>

Here's how to put comment in a tiddler. More here http://www.tiddlywiki.org/wiki/Dev:Comments
*Also see ViewingCode

|bgcolor:#fff;<<tiddler ./comments>> |

<part comments hidden>
*{{{/% Invisible comment in a tiddler%/}}}

*{{{ {{{ triple braces creates monospace text }}} }}}

*{{{ """ triple Quote marks prevents wikifying without monospace text """ }}}

*{{{ <nowiki> also prevents wikifying without monospace text </nowiki> }}}

*{{{<!----- HTML comment ------>}}}
~StyleSheets and Javascript

*{{{ /* multi-line comment */ }}}

*{{{ /*** wikified multi-line comment ***/ }}}

</part>
*@@color:#C06;''Important note about trailing charactors submitted by Doug Edmunds''@@+++[here]
<<<
{{{
About monospaced text {{{ and }}}
In current version, the ending
}}} must have nothing except a return char after it.  I was going crazy trying to figure out why some text wouldn't format, until I realized there was an invisible tab character on the same
line after the }}}.  This should be noted in your info on this page.

try this:
{{{
one 
two
three
}}} 

and 

{{{
one
two
three
}}} a b c

The second one won't be formatted as monospaced. Similarly if you replace "a b c" with a tab.

HTH
}}}
<<<
===

!!!!&nbsp;Triple braces
Enclosing code in triple braces @@color:#c06;"""{{{...}}}"""@@ produces text which is monospaced and keeps it's formatting, but prevents wiki processing. (the same as <pre>...</pre> in HTML)

You can enclose text formatting, script, CSS, HTML with triple braces to prevent it from executing and make it visible for demonstrations and instruction inside tiddlers. e.g. @@color:#c06;"""{{{MonospacedText}}}"""@@

''For example below is the code for '' @@color:#C06;~TiddlyWiki is great! @@&nbsp;  ''enclosed in triple braces''
<<<
{{{@@color:#C06;''~TiddlyWiki is great!'' @@}}}

{{{ {{{@@color:#C06;''~TiddlyWiki is great!'' @@}}} }}}
<<<
!!!!&nbsp;{{{<nowiki>...</nowiki>}}}
Using triple double-quotes ( " " " ) or {{{<nowiki>...</nowiki>}}} produces plain text and prevents wiki formatting, but does not produce monospacing.

''For example below is the code for '' @@color:#C06;~TiddlyWiki is great! @@ ''enclosed in {{{<nowiki>...</nowiki>}}}''
<<<
{{{<nowiki>}}}<nowiki>@@color:#C06;~TiddlyWiki is wonderful!@@</nowiki>{{{</nowiki>}}}

Produces @@color:#C06;''&raquo; &raquo;'' @@

<nowiki>@@color:#C06;~TiddlyWiki is wonderful! @@</nowiki>
<<<

!!!!!&nbsp;''Using'' triple double-quotes ( " " " )
''For example below is the code for '' @@color:#C06;~TiddlyWiki is great! @@ ''enclosed in triple double-quotes.''
<<<
{{{"""}}}"""@@color:#C06;''~TiddlyWiki is great!'' @@"""{{{"""}}}

Produces @@color:#C06;''&raquo; &raquo;'' @@

"""@@color:#C06;~TiddlyWiki is great! @@"""
<<<
!!!!&nbsp;End



|>|>|>|>|>|>|>|>|>|>|>|bgcolor(#39c):color(#fff): ''Compact Calendar 2009'' |
|>|>|>|>|>|>|>|>|>|>|>||
|bgcolor(#666):color(#fff): ''#'' ||bgcolor(#666):color(#fff): ''Month'' ||bgcolor(#666):color(#fff): ''M'' |bgcolor(#666):color(#fff): ''T'' |bgcolor(#666):color(#fff): ''W'' |bgcolor(#666):color(#fff): ''T'' |bgcolor(#666):color(#fff): ''F'' |bgcolor(#999):color(#fff): ''S'' |bgcolor(#999):color(#fff): ''S''|width(40em):bgcolor(#666):color(#fff): ''Notes'' |
|>|>|>|>|>|>|>|>|>|>|>||
| 01 ||bgcolor(#39c):color(#fff): ''January'' || 29 | 30 | 31 |bgcolor(#39c): 01 | 02 |color(#ccc): 03 |color(#ccc): 04 ||
| 02 |~||~|bgcolor(#eaeaea): 05 |bgcolor(#eaeaea): 06 |bgcolor(#eaeaea): 07 |bgcolor(#eaeaea): 08 |bgcolor(#eaeaea): 09 |bgcolor(#eaeaea):color(#ccc): 10 |bgcolor(#eaeaea):color(#ccc): 11 |bgcolor(#eaeaea):|
| 03 |~||~| 12 | 13 | 14 | 15 | 16 |color(#ccc): 17 |color(#ccc): 18 ||
| 04 |~||~|bgcolor(#eaeaea): 19 |bgcolor(#eaeaea): 20 |bgcolor(#eaeaea): 21 |bgcolor(#eaeaea): 22 |bgcolor(#eaeaea): 23 |bgcolor(#eaeaea):color(#ccc): 24 |bgcolor(#eaeaea):color(#ccc): 25 |bgcolor(#eaeaea):|
| 05 |~|bgcolor(#39c):color(#fff): ''February'' |~| 26 | 27 | 28 | 29 | 30 |color(#ccc): 31 |bgcolor(#39c):color(#ccc): 01 ||
| 06 |~||~|bgcolor(#eaeaea): 02 |bgcolor(#eaeaea): 03 |bgcolor(#eaeaea): 04 |bgcolor(#eaeaea): 05 |bgcolor(#eaeaea): 06 |bgcolor(#eaeaea):color(#ccc): 07 |bgcolor(#eaeaea):color(#ccc): 08 |bgcolor(#eaeaea):|
| 07 |~||~| 09 | 10 | 11 | 12 | 13 |color(#ccc): 14 |color(#ccc): 15 ||
| 08 |~||~|bgcolor(#eaeaea): 16 |bgcolor(#eaeaea): 17 |bgcolor(#eaeaea): 18 |bgcolor(#eaeaea): 19 |bgcolor(#eaeaea): 20 |bgcolor(#eaeaea):color(#ccc): 21 |bgcolor(#eaeaea):color(#ccc): 22 |bgcolor(#eaeaea):|
| 09 |~|bgcolor(#39c):color(#fff): ''March'' |~| 23 | 24 | 25 | 26 | 27 |color(#ccc): 28 |bgcolor(#39c):color(#ccc): 01 ||
| 10 |~||~|bgcolor(#eaeaea): 02 |bgcolor(#eaeaea): 03 |bgcolor(#eaeaea): 04 |bgcolor(#eaeaea): 05 |bgcolor(#eaeaea): 06 |bgcolor(#eaeaea):color(#ccc): 07 |bgcolor(#eaeaea):color(#ccc): 08 |bgcolor(#eaeaea):|
| 11 |~||~| 09 | 10 | 11 | 12 | 13 |color(#ccc): 14 |color(#ccc): 15 ||
| 12 |~||~|bgcolor(#eaeaea): 16 |bgcolor(#eaeaea): 17 |bgcolor(#eaeaea): 18 |bgcolor(#eaeaea): 19 |bgcolor(#eaeaea): 20 |bgcolor(#eaeaea):color(#ccc): 21 |bgcolor(#eaeaea):color(#ccc): 22 |bgcolor(#eaeaea):|
| 13 |~||~| 23 | 24 | 25 | 26 | 27 |color(#ccc): 28 |color(#ccc): 29 ||
| 14 |~|bgcolor(#39c):color(#fff): ''April'' |~|bgcolor(#eaeaea): 30 |bgcolor(#eaeaea): 31 |bgcolor(#39c): 01 |bgcolor(#eaeaea): 02 |bgcolor(#eaeaea): 03 |bgcolor(#eaeaea):color(#ccc): 04 |bgcolor(#eaeaea):color(#ccc): 05 |bgcolor(#eaeaea):|
| 15 |~||~| 06 | 07 | 08 | 09 | 10 |color(#ccc): 11 |color(#ccc): 12 ||
| 16 |~||~|bgcolor(#eaeaea): 13 |bgcolor(#eaeaea): 14 |bgcolor(#eaeaea): 15 |bgcolor(#eaeaea): 16 |bgcolor(#eaeaea): 17 |bgcolor(#eaeaea):color(#ccc): 18 |bgcolor(#eaeaea):color(#ccc): 19 |bgcolor(#eaeaea):|
| 17 |~||~| 20 | 21 | 22 | 23 | 24 |color(#ccc): 25 |color(#ccc): 26 ||
| 18 |~|bgcolor(#39c):color(#fff): ''May'' |~|bgcolor(#eaeaea): 27 |bgcolor(#eaeaea): 28 |bgcolor(#eaeaea): 29 |bgcolor(#eaeaea): 30 |bgcolor(#39c): 01 |bgcolor(#eaeaea):color(#ccc): 02 |bgcolor(#eaeaea):color(#ccc): 03 |bgcolor(#eaeaea):|
| 19 |~||~| 04 | 05 | 06 | 07 | 08 |color(#ccc): 09 |color(#ccc): 10 ||
| 20 |~||~|bgcolor(#eaeaea): 11 |bgcolor(#eaeaea): 12 |bgcolor(#eaeaea): 13 |bgcolor(#eaeaea): 14 |bgcolor(#eaeaea): 15 |bgcolor(#eaeaea):color(#ccc): 16 |bgcolor(#eaeaea):color(#ccc): 17 |bgcolor(#eaeaea):|
| 21 |~||~| 18 | 19 | 20 | 21 | 22 |color(#ccc): 23 |color(#ccc): 24 ||
| 22 |~||~|bgcolor(#eaeaea): 25 |bgcolor(#eaeaea): 26 |bgcolor(#eaeaea): 27 |bgcolor(#eaeaea): 28 |bgcolor(#eaeaea): 29 |bgcolor(#eaeaea):color(#ccc): 30 |bgcolor(#eaeaea):color(#ccc): 31 |bgcolor(#eaeaea):|
| 23 |~|bgcolor(#39c):color(#fff): ''June'' |~|bgcolor(#39c): 01 | 02 | 03 | 04 | 05 |color(#ccc): 06 |color(#ccc): 07 ||
| 24 |~||~|bgcolor(#eaeaea): 08 |bgcolor(#eaeaea): 09 |bgcolor(#eaeaea): 10 |bgcolor(#eaeaea): 11 |bgcolor(#eaeaea): 12 |bgcolor(#eaeaea):color(#ccc): 13 |bgcolor(#eaeaea):color(#ccc): 14 |bgcolor(#eaeaea):|
| 25 |~||~| 15 | 16 | 17 | 18 | 19 |color(#ccc): 20 |color(#ccc): 21 ||
| 26 |~||~|bgcolor(#eaeaea): 22 |bgcolor(#eaeaea): 23 |bgcolor(#eaeaea): 24 |bgcolor(#eaeaea): 25 |bgcolor(#eaeaea): 26 |bgcolor(#eaeaea):color(#ccc): 27 |bgcolor(#eaeaea):color(#ccc): 28 |bgcolor(#eaeaea):|
| 27 |~|bgcolor(#39c):color(#fff): ''July'' |~| 29 | 30 |bgcolor(#39c): 01 | 02 | 03 |color(#ccc): 04 |color(#ccc): 05 ||
| 28 |~||~|bgcolor(#eaeaea): 06 |bgcolor(#eaeaea): 07 |bgcolor(#eaeaea): 08 |bgcolor(#eaeaea): 09 |bgcolor(#eaeaea): 10 |bgcolor(#eaeaea):color(#ccc): 11 |bgcolor(#eaeaea):color(#ccc): 12 |bgcolor(#eaeaea):|
| 29 |~||~| 13 | 14 | 15 | 16 | 17 |color(#ccc): 18 |color(#ccc): 19 ||
| 30 |~||~|bgcolor(#eaeaea): 20 |bgcolor(#eaeaea): 21 |bgcolor(#eaeaea): 22 |bgcolor(#eaeaea): 23 |bgcolor(#eaeaea): 24 |bgcolor(#eaeaea):color(#ccc): 25 |bgcolor(#eaeaea):color(#ccc): 26 |bgcolor(#eaeaea):|
| 31 |~|bgcolor(#39c):color(#fff): ''August'' |~| 27 | 28 | 29 | 30 | 31 |bgcolor(#39c):color(#ccc): 01 |color(#ccc): 02 ||
| 32 |~||~|bgcolor(#eaeaea): 03 |bgcolor(#eaeaea): 04 |bgcolor(#eaeaea): 05 |bgcolor(#eaeaea): 06 |bgcolor(#eaeaea): 07 |bgcolor(#eaeaea):color(#ccc): 08 |bgcolor(#eaeaea):color(#ccc): 09 |bgcolor(#eaeaea):|
| 33 |~||~| 10 | 11 | 12 | 13 | 14 |color(#ccc): 15 |color(#ccc): 16 ||
| 34 |~||~|bgcolor(#eaeaea): 17 |bgcolor(#eaeaea): 18 |bgcolor(#eaeaea): 19 |bgcolor(#eaeaea): 20 |bgcolor(#eaeaea): 21 |bgcolor(#eaeaea):color(#ccc): 22 |bgcolor(#eaeaea):color(#ccc): 23 |bgcolor(#eaeaea):|
| 35 |~||~| 24 | 25 | 26 | 27 | 28 |color(#ccc): 29 |color(#ccc): 30 ||
| 36 |~|bgcolor(#39c):color(#fff): ''September'' |~|bgcolor(#eaeaea): 31 |bgcolor(#39c): 01 |bgcolor(#eaeaea): 02 |bgcolor(#eaeaea): 03 |bgcolor(#eaeaea): 04 |bgcolor(#eaeaea):color(#ccc): 05 |bgcolor(#eaeaea):color(#ccc): 06 |bgcolor(#eaeaea):|
| 37 |~||~| 07 | 08 | 09 | 10 | 11 |color(#ccc): 12 |color(#ccc): 13 ||
| 38 |~||~|bgcolor(#eaeaea): 14 |bgcolor(#eaeaea): 15 |bgcolor(#eaeaea): 16 |bgcolor(#eaeaea): 17 |bgcolor(#eaeaea): 18 |bgcolor(#eaeaea):color(#ccc): 19 |bgcolor(#eaeaea):color(#ccc): 20 |bgcolor(#eaeaea):|
| 39 |~||~| 21 | 22 | 23 | 24 | 25 |color(#ccc): 26 |color(#ccc): 27 ||
| 40 |~|bgcolor(#39c):color(#fff): ''October'' |~|bgcolor(#eaeaea): 28 |bgcolor(#eaeaea): 29 |bgcolor(#eaeaea): 30 |bgcolor(#39c): 01 |bgcolor(#eaeaea): 02 |bgcolor(#eaeaea):color(#ccc): 03 |bgcolor(#eaeaea):color(#ccc): 04 |bgcolor(#eaeaea):|
| 41 |~||~| 05 | 06 | 07 | 08 | 09 |color(#ccc): 10 |color(#ccc): 11 ||
| 42 |~||~|bgcolor(#eaeaea): 12 |bgcolor(#eaeaea): 13 |bgcolor(#eaeaea): 14 |bgcolor(#eaeaea): 15 |bgcolor(#eaeaea): 16 |bgcolor(#eaeaea):color(#ccc): 17 |bgcolor(#eaeaea):color(#ccc): 18 |bgcolor(#eaeaea):|
| 43 |~||~| 19 | 20 | 21 | 22 | 23 |color(#ccc): 24 |color(#ccc): 25 ||
| 44 |~|bgcolor(#39c):color(#fff): ''November'' |~|bgcolor(#eaeaea): 26 |bgcolor(#eaeaea): 27 |bgcolor(#eaeaea): 28 |bgcolor(#eaeaea): 29 |bgcolor(#eaeaea): 30 |bgcolor(#eaeaea):color(#ccc): 31 |bgcolor(#39c):color(#ccc): 01 |bgcolor(#eaeaea):|
| 45 |~||~| 02 | 03 | 04 | 05 | 06 |color(#ccc): 07 |color(#ccc): 08 ||
| 46 |~||~|bgcolor(#eaeaea): 09 |bgcolor(#eaeaea): 10 |bgcolor(#eaeaea): 11 |bgcolor(#eaeaea): 12 |bgcolor(#eaeaea): 13 |bgcolor(#eaeaea):color(#ccc): 14 |bgcolor(#eaeaea):color(#ccc): 15 |bgcolor(#eaeaea):|
| 47 |~||~| 16 | 17 | 18 | 19 | 20 |color(#ccc): 21 |color(#ccc): 22 ||
| 48 |~||~|bgcolor(#eaeaea): 23 |bgcolor(#eaeaea): 24 |bgcolor(#eaeaea): 25 |bgcolor(#eaeaea): 26 |bgcolor(#eaeaea): 27 |bgcolor(#eaeaea):color(#ccc): 28 |bgcolor(#eaeaea):color(#ccc): 29 |bgcolor(#eaeaea):|
| 49 |~|bgcolor(#39c):color(#fff): ''December'' |~| 30 |bgcolor(#39c): 01 | 02 | 03 | 04 |color(#ccc): 05 |color(#ccc): 06 ||
| 50 |~||~|bgcolor(#eaeaea): 07 |bgcolor(#eaeaea): 08 |bgcolor(#eaeaea): 09 |bgcolor(#eaeaea): 10 |bgcolor(#eaeaea): 11 |bgcolor(#eaeaea):color(#ccc): 12 |bgcolor(#eaeaea):color(#ccc): 13 |bgcolor(#eaeaea):|
| 51 |~||~| 14 | 15 | 16 | 17 | 18 |color(#ccc): 19 |color(#ccc): 20 ||
| 52 |~||~|bgcolor(#eaeaea): 21 |bgcolor(#eaeaea): 22 |bgcolor(#eaeaea): 23 |bgcolor(#eaeaea): 24 |bgcolor(#eaeaea): 25 |bgcolor(#eaeaea):color(#ccc): 26 |bgcolor(#eaeaea):color(#ccc): 27 |bgcolor(#eaeaea):|
| 01 |~|bgcolor(#39c):color(#fff): ''January 10'' |~| 28 | 29 | 30 | 31 |bgcolor(#39c): 01 |color(#ccc): 02 |color(#ccc): 03 ||
|noBorder|k
<script>

var arr = new Array(3)
arr[0] = "Jani"
arr[1] = "Tove"
arr[2] = "Hege"

var arr2 = new Array(3)
arr2[0] = "John"
arr2[1] = "Andy"
arr2[2] = "Wendy"

document.write(arr.concat(arr2))

</script>
<<configOptions
chkOpenInNewWindow=true
chkIncrementalSearch=
chkAutoSave=false
txtUserName=MsgRay
chkSaveBackups=true
chkRegExpSearch=true
chkCaseSensitiveSearch=
chkAnimate=false
chkGenerateAnRssFeed=
chkCaseSensitiveSearch=
chkHttpReadOnly=
chkSearchTitles=true
chkSearchText=true
chkSearchTags=false
chkSearchTitlesFirst=false
chkSearchList=true
chkHoldSearches=false
chkSaveEmptyTemplate=false
chkSinglePageMode=false
chkToggleLinks=false
txtMaxEditRows=30
txtBackupFolder=BackupTwHelp
>>
/***
|''Name:''|ConfigOptionsMacro|
|''Version:''|0.1 (31 May 2007)|
|''Source''|http://jackparke.googlepages.com/jtw.html#ConfigOptionsMacro ([[del.icio.us|http://del.icio.us/post?url=http://jackparke.googlepages.com/jtw.html%23ConfigOptionsMacro]])|
|''Author:''|Jack|
!Description
This plugin allows you to store TiddlyWiki options in a tiddler. This means the options are part of the store and are not shared among TiddlyWiki files. The options are also more robust and persist when cookies are loaded.
!Usage
*After installation, enter the options you want persisted into the [[ConfigOptions]] tiddler
*In view mode of this tiddler you can see and modify the options
*Changes are effective and written immediately to the ConfigOptions tiddler as you modify them
*The options are loaded from ConfigOptions on startup of TiddlyWiki overriding any cookie settings
!Revision History
* Original by Jack 31 May 2007

!Code
***/
//{{{
version.extensions.configOptions = {major: 0, minor: 0, revision: 1, date: new Date('May 31, 2007')};

config.shadowTiddlers.ConfigOptions = '<<configOptions\nchkAutoSave=false\ntxtUserName=Your Name\n>>'

config.macros.configOptions = {};
config.macros.configOptions.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
 var resultText = this.parseOptions(paramString);
 if (resultText) {
  resultText = '|!Option|!Value|\n' + resultText;
  wikify(resultText, place)
  //createTiddlyButton(place,'Update','Saves your current options to the ConfigOptions tiddler.',this.update);
  applyHtmlMacros(place,tiddler)
 }
}

config.macros.configOptions.init = function() {
 var txtConfigOptions = store.getValue('ConfigOptions', 'text') || config.shadowTiddlers.ConfigOptions; 
 txtConfigOptions = txtConfigOptions.substr(txtConfigOptions.indexOf('\n')).substr(0, txtConfigOptions.length-2);
 this.parseOptions(txtConfigOptions);
}
config.macros.configOptions.parseOptions = function (paramString) {
 var resultText = ''
 var options = paramString.split(/\n/);
 for(var i=0; i < options.length; i++) {
  var opt = options[i].split('=');
  if(opt.length > 1) {
   if (opt[1] != 'true' && opt[1] != 'false' && !opt[1].match(/^\d+$/))
    opt[1] = '\'' + opt[1].replace(/'/, '\\\'') + '\'';
    resultText += '|' + opt[0].replace(/^[a-z]{2,3}/,'') + '|<<option ' + opt[0] + '>>|\n'
   try {
    eval('config.options.' + opt[0] + ' = ' + opt[1] + ';');
    //alert('config.options.' + opt[0] + ' = ' + opt[1] + ';')
   } catch (e) {
    debugger
   }
  }
 }
 return resultText;
}
config.macros.option.propagateOption = function(opt,valueField,value,elementType)
{
	config.options[opt] = value;
//	saveOptionCookie(opt);
	//if (opt=='txtUserName') debugger;
	if ((new RegExp('\n' + opt + '=','g')).test(store.getValue('ConfigOptions','text'))) {
	 config.macros.configOptions.updateOption(opt, decodeCookie(config.optionHandlers[opt.substr(0,3)].get(opt)))
	}
	
	var nodes = document.getElementsByTagName(elementType);
	for(var t=0; t<nodes.length; t++) {
		var optNode = nodes[t].getAttribute("option");
		if(opt == optNode)
			nodes[t][valueField] = value;
		}

}
config.macros.configOptions.updateOption = function(name, value) {
 var txtConfigOptions = store.getValue('ConfigOptions', 'text'); 
 var t1 = txtConfigOptions.indexOf('\n' + name + '=');
 var t2 = txtConfigOptions.indexOf('\n', t1+1);
 txtConfigOptions = txtConfigOptions.substr(0,t1) + '\n' + name + '=' + value + txtConfigOptions.substr(t2)
 store.setValue('ConfigOptions', 'text', txtConfigOptions)
}
//}}}
config.options.chkHideTabsBarWhenSingleTab=true;
config.options.txtSelectedTiddlerTabButton="jump";

config.options.chkHttpReadOnly = false;
/***
|Name|ConfirmSavePlugin|
|Source|http://www.TiddlyTools.com/#ConfirmSavePlugin|
|Documentation|http://www.TiddlyTools.com/#ConfirmSavePlugin|
|Version|1.1.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|window.saveChanges()|
|Description|if tiddlers are being edited, or there are no unsaved changes, ask before saving|
When <<saveChanges>> command link is clicked, if there are tiddlers still being edited or there are no changes unsaved changes, then ask for confirmation before saving the document to the file.
!!!!!Configuration
<<<
:
<<option chkConfirmSaveIfEditing>> confirm saving if tiddlers are still being edited
<<option chkConfirmSaveIfNoChanges>> confirm saving if there are no unsaved tiddler changes
<<<
!!!!!Revisions
<<<
2008.03.15 [1.1.0] added option settings and check for 'no unsaved changes'
2008.03.15 [1.0.0] Initial Release.
<<<
!!!!!Code
***/
//{{{
version.extensions.ConfirmSave= {major: 1, minor: 1, revision: 0, date: new Date(2008,3,15)};
//}}}
//{{{
if (config.options.chkConfirmSaveIfEditing==undefined) config.options.chkConfirmSaveIfEditing=true;
if (config.options.chkConfirmSaveIfNoChanges==undefined) config.options.chkConfirmSaveIfNoChanges=true;
//}}}
//{{{
if (config.macros.saveChanges.confirmSave_onClick==undefined) 
	config.macros.saveChanges.confirmSave_onClick=config.macros.saveChanges.onClick
config.macros.saveChanges.onClick=function(e) {
	var msg="";
	var editing=[];	// check for tiddlers being edited
	if (config.options.chkConfirmSaveIfEditing)
		story.forEachTiddler(function(tid,elem) { if (elem.getAttribute("dirty")=="true") editing.push(tid);});
	if (editing.length) {
		msg+="There "+(editing.length>1?"are ":"is ")+editing.length;
		msg+=" tiddler"+(editing.length>1?"s":"")+" currently being edited:\n\n";
		msg+=editing.join(", ")+"\n\n";
		msg+="Changes to "+(editing.length>1?"these tiddlers":"this tiddler");
		msg+=" cannot be saved until editing is completed.";
	} else if (config.options.chkConfirmSaveIfNoChanges && !store.isDirty())
		msg+="There are no unsaved tiddler changes";
	if (msg.length) {
		msg+="\n\nPress OK to save the document anyway.";
		if (!confirm(msg)) return false;
	}
	return config.macros.saveChanges.confirmSave_onClick.apply(this,arguments); // let core save
}
//}}}
|vertical-align:top;<<tiddler FooterContent##column1>>|&nbsp;&nbsp;|vertical-align:top;<<tiddler FooterContent##column2>>|
|borderlessL|k


{{textcenter{
<<tiddler [[lastModified]]>>
TW Help - Symbex Australasia Pty.Ltd. © 2006 - <<today YYYY>>
}}}
Convert double-hyphen ("""--""") to &mdash;

{{{
(function() {
for (var i = 0; i < config.formatters.length; i++)
    if (config.formatters[i].name == "strikeByChar")
        break;
if (i < config.formatters.length)
    config.formatters.splice(i,1);
})(); 
}}}
(function() {
for (var i = 0; i < config.formatters.length; i++)
    if (config.formatters[i].name == "strikeByChar")
        break;
if (i < config.formatters.length)
    config.formatters.splice(i,1);
})(); 
/***
|Name|CookieManagerPlugin|
|Source|http://www.TiddlyTools.com/#CookieManagerPlugin|
|Version|2.0.0|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <<br>>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|review/add/delete option cookies and save current option values to CookieJar tiddler for 'sticky' settings|

!!!!!Usage
<<<
View/set/delete your current TiddlyWiki option/cookie values, as well as "bake cookies", which automatically generates the contents of a [[CookieJar]] tiddler for all current cookie-based options.   You can then edit the [[CookieJar]] to remove any lines that set unwanted fixed-value options (so that the normal cookie-based values will still be used for those options).  The code contained in the [[CookieJar]] is wrapped in a conditional so that the fixed-value options are only applied for a specific username.  That way, when you publish or share your document with others, YOUR fixed-value options are not applied, and the normal cookie-based options will still be used for everyone else.

Also, each time you "bake cookies", they are *appended* to the [[CookieJar]], so that any previous values are not automatically discarded, but are instead simply *overridden* by the newer values. After you bake a new batch of cookies, you should edit the [[CookieJar]] to remove any "stale cookies" or merge the old and new options into a single block to simplify code (for readability as well as saving a little tiddler storage space). 
<<<
!!!!!Examples
<<<
{{{<<cookieManager>>}}}
{{smallform{<<cookieManager>>}}}
<<<
!!!!!Installation
<<<
import (or copy/paste) the following tiddlers into your document:
CookieManagerPlugin
<<<
!!!!!Revision History
<<<
''2007.08.02 [2.0.0]'' converted from inline script
''2007.04.29 [1.0.0]'' initial release
<<<
!!!!!Credits
<<<
This feature was developed by Eric L Shulman / ELS Design Studios
<<<
!!!!!Code
***/
//{{{
version.extensions.cookieManager= {major: 2, minor: 0, revision: 0, date: new Date(2007,8,2)};

config.macros.cookieManager = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var span=createTiddlyElement(place,"span");
		span.innerHTML=this.html;
		this.setCookieEditorList(span.firstChild.list); 
	},
	html: '<form style="display:inline;margin:0;padding:0" onsubmit="return false"><!--\
		--><select style="width:99%" name="list" \
			onchange="this.form.val.value=this.value.length?config.options[this.value]:\'\';"><!--\
		--></select><br>\
		<input type="text" style="width:98%;margin:0;" name="val" title="enter an option value"><br>\
		<input type="button" style="width:33%;margin:0;" value="get" title="refresh list" \
			onclick="config.macros.cookieManager.setCookieEditorList(this.form.list);"><!--\
		--><input type="button" style="width:33%;margin:0;" value="set" title="save cookie value" \
			onclick="var opt=this.form.list.value; var v=this.form.val.value; \
				config.options[opt]=opt.substr(0,3)==\'txt\'?v:(v.toLowerCase()==\'true\'); \
				saveOptionCookie(opt);config.macros.cookieManager.setCookieEditorList(this.form.list);"><!--\
		--><input type="button" style="width:33%;margin:0;" value="del" title="remove cookie" \
			onclick="var ex=new Date(); ex.setTime(ex.getTime()-1000); \
				document.cookie=this.form.list.value+\'=novalue; path=/; expires=\'+ex.toGMTString(); \
				config.macros.cookieManager.setCookieEditorList(this.form.list);"><br>\
		<input type="button" style="width:50%;margin:0;" value="bake cookies" \
			title="save current cookie-based option values into the CookieJar tiddler" \
			onclick="return config.macros.cookieManager.bakeCookies(this,false)"><!--\
		--><input type="button" style="width:50%;margin:0;" value="bake all options" \
			title="save ALL option values (including NON-COOKIE values) into the CookieJar tiddler" \
			onclick="return config.macros.cookieManager.bakeCookies(this,true)"><!--\
		--></form>\
	',
	bakeCookies: function(here,all) {
		var title='CookieJar';
		var tid=store.getTiddler(title);
		var who=config.options.txtUserName;
		var when=new Date();
		var tags=['systemConfig'];
		if (all) { 
			var opts=new Array();
			for (var i in config.options) if (i.substr(0,3)=='chk'||i.substr(0,3)=='txt') opts.push(i);
			opts.sort();
		}
		else var opts=this.getCookieList();
		var text=tid?tid.text:'';
		text+='\n// '+opts.length+(all?' options':' cookies')+' saved ';
		text+=when.formatString('on DDD, MMM DDth YYYY at 0hh:0mm:0ss');
		text+=' by '+who+'//\n';
		text+='//^^(edit/remove username check and/or individual option settings as desired)^^//\n';
		text+='//{{{\n';
		text+='if (config.options.txtUserName=="'+who+'") {\n';
		for (i=0; i<opts.length; i++) {
			if (opts[i].substr(0,3)=='chk')
				text+='\tconfig.options.'+opts[i]+'='+config.options[opts[i]]+';\n';
			if (opts[i].substr(0,3)=='txt')
				text+='\tconfig.options.'+opts[i]+'="'+config.options[opts[i]]+'";\n';
		}
		text+='}\n//}}}\n';
		store.saveTiddler(title,title,text,who,when,tags,tid?tid.fields:null);
		story.displayTiddler(story.findContainingTiddler(this),title);
		story.refreshTiddler(title,null,true);
		displayMessage(opts.length+(all?' options':' cookies')+' have been saved in '+title+'.  Please review all stored settings.');
		return false;
	},
	getCookieList: function() {
		var cookies = { };
		if (document.cookie != "") {
			var p = document.cookie.split("; ");
			for (var i=0; i < p.length; i++) {
				var pos=p[i].indexOf("=");
				if (pos==-1) cookies[p[i]]="";
				else cookies[p[i].substr(0,pos)]=unescape(p[i].slice(pos+1));
			}
		}
		var opt=new Array(); for (var i in config.options) if (cookies[i]) opt.push(i); opt.sort();
		return opt;
	},
	setCookieEditorList: function(list) {
		var opt=this.getCookieList();
		var sel=list.selectedIndex;
		while (list.options.length > 1) { list.options[1]=null; } // clear list (except for header item)
		list.options[0]=new Option("There are "+opt.length+" cookies...","",false,false);
		if (!opt.length) { list.form.val.value=""; return; } // no cookies
		var c=1;
		for(var i=0; i<opt.length; i++) {
			var txt="";
			if  (opt[i].substr(0,3)=="chk")
				txt+="["+(config.options[opt[i]]?"x":"_")+"] ";
			txt+=opt[i];
			list.options[c++]=new Option(txt,opt[i],false,false);
		}
		list.selectedIndex=sel>0?sel:0;
		list.form.val.value=sel>0?config.options[list.options[sel].value]:"";
	}
}
//}}}
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[CorePlugins]]^^<<tiddler CloseThisOpen with: ThirdPartyPlugins  '« back'>>|<<toolbar editTiddler>>» ^^>>

Core Plugins  plugins previously in the core
http://www.tiddlywiki.com/coreplugins.html

http://www.tiddlywiki.com/coreplugins.html#DeprecatedFunctionsPlugin
http://www.tiddlywiki.com/coreplugins.html#LegacyStrikeThroughPlugin
http://www.tiddlywiki.com/coreplugins.html#SparklinePlugin

/***
|Name|CoreTweaks|
|Source|http://www.TiddlyTools.com/#CoreTweaks|
|Version|n/a|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.2.4|
|Type|plugin|
|Requires||
|Overrides|various|
|Description|a small collection of overrides to TW core functions|
This tiddler contains some quick tweaks and modifications to TW core functions to provide minor changes in standard features or behavior.  It is hoped that some of these tweaks may be incorporated into later versions of the TW core, so that these adjustments will be available without needing these add-on definitions. ''Note: the changes contained in this tiddler are generally applicable for the current version of TiddlyWiki (<<version>>)./% Please view [[CoreTweaksArchive]] for tweaks and modifications that may be used with earlier versions of TiddlyWiki.%/''

To install //all// of these tweaks, import (or copy/paste) this tiddler into your document.  To include only //some// of the tweaks, you can edit the imported tiddler to remove the tweaks that you don't want.  Alternatively, you could copy/paste a few selected tweaks from this tiddler into a tiddler that you create in your own document.  Be certain to tag that tiddler with<<tag systemConfig>> (i.e., a plugin tiddler) and then save-and-reload for the tweaks to take effect.
***/

// // {{block{
/***
!!!784 allow tiddler sections in TiddlyLinks to be used as anchor points for intra-tiddler scrolling.  
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/784 - OPEN
You can currently use the tiddler section syntax within the {{{<<tiddler>>}}} macro to //transclude// a subsection of one tiddler into another (e.g., {{{<<tiddler SomeTiddler##SomeSection>>}}}).  However, when the same section syntax is used in a TiddlyLink (e.g., {{{[[SomeTiddler##SomeSection]]}}}), the entire reference is treated as a link to a (non-existent) tiddler that includes the section reference in the tiddler title itself.

This tweak extends the TiddlyLink processing to separate the section reference from the tiddler name and use that reference to auto-scroll to the indicated section heading (if present) within that tiddler (i.e., the same behavior as {{{<a name="foo">}}} and {{{<a href="#foo">...</a>}}} HTML syntax).  
***/
//{{{
Story.prototype.scrollToSection = function(title,section) {
	if (!title||!section) return;
	var t=this.getTiddler(title); if (!t) return;
	var s=[];
	var h=t.getElementsByTagName("H1"); for (var i=0;i<h.length;i++) s.push(h[i]);
	var h=t.getElementsByTagName("H2"); for (var i=0;i<h.length;i++) s.push(h[i]);
	var h=t.getElementsByTagName("H3"); for (var i=0;i<h.length;i++) s.push(h[i]);
	var h=t.getElementsByTagName("H4"); for (var i=0;i<h.length;i++) s.push(h[i]);
	var h=t.getElementsByTagName("H5"); for (var i=0;i<h.length;i++) s.push(h[i]);
	var h=t.getElementsByTagName("H6"); for (var i=0;i<h.length;i++) s.push(h[i]);
	for (var i=0; i<s.length; i++) if (s[i].innerHTML.substr(0,section.length)==section)
		setTimeout("window.scrollTo(0,"+findPosY(s[i])+")",
			config.options.chkAnimate?config.animDuration+100:0);
}
window.createTiddlyLink_sectionanchor=window.createTiddlyLink;
window.createTiddlyLink=function(place,title) {
	var parts=title.split(config.textPrimitives.sectionSeparator);
	if (parts[0].length && parts[1]) arguments[1]=parts[0]; // trim section from tiddler title
	var btn=createTiddlyLink_sectionanchor.apply(this,arguments);
	btn.setAttribute('section',parts[1]); // save section
	return btn;
}
window.onClickTiddlerLink_sectionanchor=window.onClickTiddlerLink;
window.onClickTiddlerLink=function(ev) {
	var r=onClickTiddlerLink_sectionanchor.apply(this,arguments);
	var e=ev||window.event;	var target=resolveTarget(e); var title=null;
	while (target!=null && title==null) {
		title=target.getAttribute("tiddlyLink");
		section=target.getAttribute("section");
		target=target.parentNode;
	} 
	story.scrollToSection(title,section);
	return r;
}
Story.prototype.displayTiddler_sectionanchor=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler)
{
	var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
	var parts=title.split(config.textPrimitives.sectionSeparator);
	if (parts[0].length && parts[1]) arguments[1]=parts[0]; // trim section from tiddler title
	this.displayTiddler_sectionanchor.apply(this,arguments);
	story.scrollToSection(parts[0],parts[1]);
}
//}}}
// // }}}}}}// // {{block{

/***
!!! Ticketed Tweaks
***/
// // {{groupbox small{
http://trac.tiddlywiki.org/ticket/675 - OPEN
// // This tweak adds a URL paramifier, "#recent:N", to automatically display the N most recently changed tiddlers.  N is, of course, an integer number.  If N=0 (or is not a numeric value), the regular [[DefaultTiddlers]] will be displayed.
//{{{
config.paramifiers.recent= {
	onstart: function(v) {
		var titles=[];
		var tids=store.getTiddlers("modified","excludeLists").reverse();
		for (var t=0; t<v && t<tids.length; t++) titles.push(tids[t].title);
		story.displayTiddlers(null,titles); 
	}
};
//}}}
// // }}}
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/664 - OPEN
This tweak provides "loose" matching of tiddler titles so that text using variations of mixed-case and/or added/omitted spaces can still be used to create links enclosed in {{{[[...]]}}}.  This permits normal prose-style text to be easily linked to tiddler titles, without requiring use of the "pretty link" syntax.  For example:
{{{
[[CoreTweaks]], [[coreTweaks]], [[core tweaks]],
[[CORE TWEAKS]], [[CoRe TwEaKs]], [[coreTWEAKS]]
}}}
>[[CoreTweaks]], [[coreTweaks]], [[core tweaks]],
>[[CORE TWEAKS]], [[CoRe TwEaKs]], [[coreTWEAKS]]
Configuration:
><<option chkLooseLinks>> Allow case-folded and/or space-folded text to link to existing tiddler titles
>{{{usage: <<option chkLooseLinks>>}}}
***/
//{{{
if (!config.options.chkLooseLinks)
	config.options.chkLooseLinks=false; // default to standard behavior
window.caseFold_createTiddlyLink = window.createTiddlyLink;
window.createTiddlyLink = function(place,title,includeText,className) {
	var btn=window.caseFold_createTiddlyLink.apply(this,arguments); // create core link
	if (!config.options.chkLooseLinks) return btn;
	if (store.getTiddlerText(title)) return btn; // matching tiddler (or shadow) exists
	var target=title.toLowerCase().replace(/\s/g,"");
	var tids=store.getTiddlers("title");
	for (var t=0; t<tids.length; t++) {
		if (tids[t].title.toLowerCase().replace(/\s/g,"")==target) {
			var i=getTiddlyLinkInfo(tids[t].title,className);
			btn.setAttribute("tiddlyLink",tids[t].title);
			btn.title=i.subTitle;
			btn.className=i.classes;
			break;
		}
	}
	return btn;
}
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/657 - OPEN
// // This tweak inserts an extra space element following each tab, allowing them to wrap onto multiple lines if needed.
//{{{
config.macros.tabs.handler = function(place,macroName,params)
{
	var cookie = params[0];
	var numTabs = (params.length-1)/3;
	var wrapper = createTiddlyElement(null,"div",null,"tabsetWrapper " + cookie);
	var tabset = createTiddlyElement(wrapper,"div",null,"tabset");
	tabset.setAttribute("cookie",cookie);
	var validTab = false;
	for(var t=0; t<numTabs; t++) {
		var label = params[t*3+1];
		var prompt = params[t*3+2];
		var content = params[t*3+3];
		var tab = createTiddlyButton(tabset,label,prompt,this.onClickTab,"tab tabUnselected");
		createTiddlyElement(tab,"span",null,null," ",{style:"font-size:0pt;line-height:0px"}); // ELS
		tab.setAttribute("tab",label);
		tab.setAttribute("content",content);
		tab.title = prompt;
		if(config.options[cookie] == label)
			validTab = true;
	}
	if(!validTab)
		config.options[cookie] = params[1];
	place.appendChild(wrapper);
	this.switchTab(tabset,config.options[cookie]);
};
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/635 - FIXED (not yet released) http://trac.tiddlywiki.org/changeset/5116
// // When using backstage>import "browse" button, resulting URL is improperly formed with "file://" prefix instead of "file:///" prefix.  This causes errors when using Firefox 3 (beta) or when running under Windows Vista OS.
// // http://trac.tiddlywiki.org/ticket/638 - FIXED (not yet released) http://trac.tiddlywiki.org/changeset/5080
// // When entering text directly into path/file field, each keystroke is displayed and then discarded, preventing manual entry of path/file.
// // http://trac.tiddlywiki.org/ticket/639 - FIXED (not yet released) http://trac.tiddlywiki.org/changeset/5113
// // Pressing "enter" from URL or Browse input field immediately reloads the current document.  Instead, it should trigger the "open" button for the import wizard (if a URL has been entered)
//{{{
// #635 and #638
config.macros.importTiddlers.onBrowseChange = function(e)
{
	var wizard = new Wizard(this);
	var fileInput = wizard.getElement("txtPath");
	fileInput.value = config.macros.importTiddlers.getURLFromLocalPath(this.value); // #635
	var serverType = wizard.getElement("selTypes");
	serverType.value = "file";
	return true; // #638
};
// #635 - fixup local path/file to form absolute URL reference
config.macros.importTiddlers.getURLFromLocalPath = function(v)
{
	if (!v||!v.length) return v;
	v=v.replace(/\\/g,"/"); // use "/" for cross-platform consistency
	var t=v.split(":"); p=t[1]||t[0]; // remove drive letter (if any)
	if (t[1] && (t[0]=="http"||t[0]=="https"||t[0]=="file")) { // input is already a URL
		var u=v;
	} else if (p.substr(0,1)=="/") { // path is absolute, add protocol+domain+extra slash (if drive letter)
		var u=document.location.protocol+"//"+document.location.hostname+(t[1]?"/":"")+v;
	} else { // path is relative, add current document protocol+domain+path
		var c=document.location.href.replace(/\\/g,"/");
		var pos=c.lastIndexOf("/"); if (pos!=-1) c=c.substr(0,pos); // remove filename
		var u=c+"/"+p;
	}
	return u;
}
// #639 - prevent form action and click "open" button if ENTER is pressed
config.macros.importTiddlers.coreTweaks_restart = config.macros.importTiddlers.restart;
config.macros.importTiddlers.restart = function(wizard)
{
	config.macros.importTiddlers.coreTweaks_restart.apply(this,arguments);
	wizard.formElem.action="javascript:;"
	wizard.formElem.onsubmit=function() {
		if (this.txtPath.value.length)
			this.lastChild.firstChild.onclick();  // press "open" button
	}
};
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/637 - OPEN
// // This tweak modifies the tooltip format that appears when you mouseover a link to a tiddler.  It adds an option to control the date format, as well as displaying the size of the tiddler (in bytes)
// //
// // Tiddler link tooltip format:
// // {{stretch{<<option txtTiddlerLinkTootip>>}}}
// // ^^where: %0=title, %1=username, %2=modification date, %3=size in bytes^^
// // Tiddler link tooltip date format:
// // {{stretch{<<option txtTiddlerLinkTooltipDate>>}}}
//{{{
config.messages.tiddlerLinkTooltip="%0 - %1, %2 (%3 bytes)";
config.messages.tiddlerLinkTooltipDate="DDD, MMM DDth YYYY 0hh12:0mm AM";

config.options.txtTiddlerLinkTootip=
	config.options.txtTiddlerLinkTootip||config.messages.tiddlerLinkTooltip;
config.options.txtTiddlerLinkTooltipDate=
	config.options.txtTiddlerLinkTooltipDate||config.messages.tiddlerLinkTooltipDate;

Tiddler.prototype.getSubtitle = function() {
	var modifier = this.modifier;
	if(!modifier) modifier = config.messages.subtitleUnknown;
	var modified = this.modified;
	if(modified) modified = modified.formatString(config.options.txtTiddlerLinkTooltipDate);
	else modified = config.messages.subtitleUnknown;
	return config.options.txtTiddlerLinkTootip.format([this.title,modifier,modified,this.text.length]);
};
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/628 - OPEN
// // When invoking a macro that is not defined, this tweak prevents the display of the "error in macro... no such macro" message.  This is useful when rendering tiddler content or templates that reference macros that are defined by //optional// plugins that have not been installed in the current document.
// //
// // <<option chkHideMissingMacros>> hide "no such macro" error messages
//{{{
if (config.options.chkHideMissingMacros===undefined)
	config.options.chkHideMissingMacros=false;

window.coreTweaks_missingMacro_invokeMacro = window.invokeMacro;
window.invokeMacro = function(place,macro,params,wikifier,tiddler) {
	if (!config.macros[macro] || !config.macros[macro].handler)
		if (config.options.chkHideMissingMacros) return;
	window.coreTweaks_missingMacro_invokeMacro.apply(this,arguments);
}
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/623 - FIXED (not yet released) http://trac.tiddlywiki.org/changeset/5143
/***
This tweak allows date format strings to contain backslash-quoted characters that bypass date format replacement.  This allows sequences such as "s\s", "m\m" or "a\m" to be used so that "ss", "mm" or "am" can appears as literal text within journal titles or other date-formatted values.

For example:
>{{{<<today "withhold less hummingbirds - YYYY.0MM.0DD 0hh:0mm:0ss">>}}}
>results in: <<today "withhold less hummingbirds - YYYY.0MM.0DD 0hh:0mm:0ss">>
while:
>{{{<<today "with\hold les\s hum\mingbirds - YYYY.0MM.0DD 0hh:0mm:0ss">>}}}
>results in: <<today "with\hold les\s hum\mingbirds - YYYY.0MM.0DD 0hh:0mm:0ss">>
***/
//{{{
Date.prototype.coreTweaks_formatString = Date.prototype.formatString;
Date.prototype.formatString = function(template) {
	var t = Date.prototype.coreTweaks_formatString.apply(this,arguments);
	t = t.replace(/\\/g,""); // strip backslashes used to quote formats
	return t;
};
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/609 - OPEN (separators)
// // http://trac.tiddlywiki.org/ticket/610 - OPEN (wikify tiddler/slice/section content)
// // These tweaks extend the {{{<<toolbar>>}}} macro to permit use of "|" as separators, as well as recognizing references to tiddlernames, slices, or sections and rendering their content inline within the toolbar
// // ''see [[ToolbarCommands]] for examples of how these features can be used''
//{{{
merge(config.macros.toolbar,{
	separator: "|"
	});
config.macros.toolbar.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
	for(var t=0; t<params.length; t++) {
		var c = params[t];
		switch(c) {
			case '|':  // ELS - SEPARATOR
			case '!':  // ELS - SEPARATOR (alternative for use in tiddler slices)
				createTiddlyText(place,this.separator); // ELS
				break; // ELS
			case '>':
				var btn = createTiddlyButton(place,this.moreLabel,this.morePrompt,config.macros.toolbar.onClickMore);
				addClass(btn,"moreCommand");
				var e = createTiddlyElement(place,"span",null,"moreCommand");
				e.style.display = "none";
				place = e;
				break;
			default:
				var theClass = "";
				switch(c.substr(0,1)) {
					case "+":
						theClass = "defaultCommand";
						c = c.substr(1);
						break;
					case "-":
						theClass = "cancelCommand";
						c = c.substr(1);
						break;
				}
				if(c in config.commands)
					this.createCommand(place,c,tiddler,theClass);
				else { // ELS - WIKIFY TIDDLER/SLICE/SECTION
					if (c.substr(0,1)=="~") c=c.substr(1); // ignore leading ~
					var txt=store.getTiddlerText(c);
					if (txt) {
						txt=txt.replace(/^\n*/,"").replace(/\n*$/,""); // trim any leading/trailing newlines
						txt=txt.replace(/^\{\{\{\n/,"").replace(/\n\}\}\}$/,""); // trim PRE format wrapper if any
						wikify(txt,createTiddlyElement(place,"span"),null,tiddler);
					}
				} // ELS - end WIKIFY CONTENT
				break;
		}
	}
};
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/608 - OPEN
// // This tweak extends the {{{<<toolbar>>}}} macro to make the ">" (more) a //toggle// between more/less with the additional toolbar commands displayed on a separate line.
//{{{
merge(config.macros.toolbar,{
	moreLabel: 'more',
	morePrompt: "Show additional commands",
	lessLabel: 'less',
	lessPrompt: "Hide additional commands"
});
config.macros.toolbar.onClickMore = function(ev)
{
	var e = this.nextSibling;
	var showing=e.style.display=="block";
	e.style.display = showing?"none":"block";
	this.innerHTML=showing?config.macros.toolbar.moreLabel:config.macros.toolbar.lessLabel;
	this.title=showing?config.macros.toolbar.morePrompt:config.macros.toolbar.lessPrompt;
	return false;
};
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/607 - OPEN
// // This tweak automatically sets the HREF for the 'permaview' sidebar command link so you can use the 'right click' context menu for faster, easier bookmarking.  Note that this does ''not'' automatically set the permaview in the browser's current location URL... it just sets the HREF on the command link.  You still have to click the link to apply the permaview.
//{{{
config.macros.permaview.handler = function(place)
{
	var btn=createTiddlyButton(place,this.label,this.prompt,this.onClick);
	addEvent(btn,"mouseover",this.setHREF);
	addEvent(btn,"focus",this.setHREF);
};
config.macros.permaview.setHREF = function(event){
	var links = [];
	story.forEachTiddler(function(title,element) {
		links.push(String.encodeTiddlyLink(title));
	});
	var newURL=document.location.href;
	var hashPos=newURL.indexOf("#");
	if (hashPos!=-1) newURL=newURL.substr(0,hashPos);
	this.href=newURL+"#"+encodeURIComponent(links.join(" "));
}
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/529 - OPEN
// // This tweak hijacks the standard browser function, document.getElementById(), to work-around the case-INsensitivity error in Internet Explorer (all versions up to and including IE7) //''Note: This tweak is only applied when using IE, and only for lookups of rendered tiddler elements within the containing "tiddlerDisplay" element.''//
//{{{
if (config.browser.isIE) {
document.coreTweaks_coreGetElementById=document.getElementById;
document.getElementById=function(id) {
	var e=document.coreTweaks_coreGetElementById(id);
	if (!e || !e.parentNode || e.parentNode.id!="tiddlerDisplay") return e;
	for (var i=0; i<e.parentNode.childNodes.length; i++)
		if (id==e.parentNode.childNodes[i].id) return e.parentNode.childNodes[i];
	return null;
};
}
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/471 - OPEN
// // This tweak HIJACKS the core's saveTiddler() function to automatically add a "creator" field to a tiddler when it is FIRST created. You can use {{{<<view creator>>}}} (or {{{<<view creator wikified>>}}} if you prefer) to show this value embedded directly within the tiddler content, or {{{<span macro="view creator"></span>}}} in the ViewTemplate and/or EditTemplate to display the creator value in each tiddler.  
//{{{
// hijack saveTiddler()
TiddlyWiki.prototype.CoreTweaks_creatorSaveTiddler=TiddlyWiki.prototype.saveTiddler;
TiddlyWiki.prototype.saveTiddler=function(title,newTitle,newBody,modifier,modified,tags,fields)
{
	var existing=store.tiddlerExists(title);
	var tiddler=this.CoreTweaks_creatorSaveTiddler.apply(this,arguments);
	if (!existing) store.setValue(title,"creator",config.options.txtUserName);
	return tiddler;
}
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/458 - CLOSED: WON'T FIX
// // This tweak assigns a "permalink"-like HREF to internal Tiddler links (which normally do not have any HREF defined).  This permits the link's context menu (right-click) to include 'open link in another window/tab' command.  Based on a request from Dustin Spicuzza.
//{{{
window.coreTweaks_createTiddlyLink=window.createTiddlyLink;
window.createTiddlyLink=function(place,title,includeText,theClass,isStatic,linkedFromTiddler,noToggle)
{
	// create the core button, then add the HREF (to internal links only)
	var link=window.coreTweaks_createTiddlyLink.apply(this,arguments);
	if (!isStatic)
		link.href=document.location.href.split("#")[0]+"#"+encodeURIComponent(String.encodeTiddlyLink(title));
	return link;
}
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/444 - OPEN
// // When invoking a macro, this tweak makes the current containing tiddler object and DOM rendering location available as global variables (window.tiddler and window.place, respectively).  These globals can then be used within "computed macro parameters" to retrieve tiddler-relative and/or DOM-relative values or perform tiddler-specific side-effect functionality.
//{{{
window.coreTweaks_invokeMacro = window.invokeMacro;
window.invokeMacro = function(place,macro,params,wikifier,tiddler) {
	var here=story.findContainingTiddler(place);
	window.tiddler=here?store.getTiddler(here.getAttribute("tiddler")):null;
	window.place=place;
	window.coreTweaks_invokeMacro.apply(this,arguments);
}
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/401 - CLOSED: WON'T FIX
// // This tweak allows definition of an optional [[PageTitle]] tiddler that, when present, provides alternative text for display in the browser window's titlebar, instead of using the combined text content from [[SiteTitle]] and [[SiteSubtitle]] (which will still be displayed as usual in the TiddlyWiki document header area)
//{{{
window.coreTweaks_getPageTitle=window.getPageTitle;
window.getPageTitle=function() { 
	var txt=wikifyPlain("PageTitle"); if (txt.length) return txt;
	return window.coreTweaks_getPageTitle.apply(this,arguments);
}
store.addNotification("PageTitle",refreshPageTitle); // so title stays in sync with tiddler changes
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/67 - OPEN
// // The "missing links" list includes items contained within "quoted" text (i.e., content that will not render as wiki-syntax, and so CANNOT create any tiddler links, even if the quoted text matches valid link syntax).  This tweak removes content contained between certain delimiters before scanning tiddler source for possible links.
/***
Delimiters include:
{{{
/%...%/
{{{...}}}
"""..."""
<nowiki>...</nowiki>
<html>...</html>
<script>...</script>
}}}
***/
//{{{
Tiddler.prototype.coreTweaks_changed = Tiddler.prototype.changed;
Tiddler.prototype.changed = function()
{
	var savedtext=this.text;
	// remove 'quoted' text before scanning tiddler source
	this.text=this.text.replace(/\/%((?:.|\n)*?)%\//g,""); // /%...%/
	this.text=this.text.replace(/\{{3}((?:.|\n)*?)\}{3}/g,""); // {{{...}}}
	this.text=this.text.replace(/"{3}((?:.|\n)*?)"{3}/g,""); // """..."""
	this.text=this.text.replace(/\<nowiki\>((?:.|\n)*?)\<\/nowiki\>/g,""); // <nowiki>...</nowiki>
	this.text=this.text.replace(/\<html\>((?:.|\n)*?)\<\/html\>/g,""); // <html>...</html>
	this.text=this.text.replace(/\<script((?:.|\n)*?)\<\/script\>/g,""); // <script>...</script>
	this.coreTweaks_changed.apply(this,arguments);
	// restore quoted text to tiddler source
	this.text=savedtext;
};
//}}}
// // }}}
/***
!!! Fixed in TW240
***/
// // {{groupbox small{
// // calculate version number for conditional inclusion of tweaks below...
//{{{
var ver=version.major+version.minor/10;
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/578 - FIXED IN TW240
// // This tweak trims any leading whitespace/newline and the trailing newline from tiddler sections
//{{{
if (ver<2.4) {
TiddlyWiki.prototype.coreTweaks_getTiddlerText = TiddlyWiki.prototype.getTiddlerText;
TiddlyWiki.prototype.getTiddlerText = function(title,defaultText)
{
	var r=TiddlyWiki.prototype.coreTweaks_getTiddlerText.apply(this,arguments);
	if (r&&title.indexOf(config.textPrimitives.sectionSeparator)!=-1)
		r=r.replace(/^[ \t]*\n/,"").replace(/\n$/,""); // trim any leading/trailing newlines
	return r;
};
}
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/541 - FIXED IN TW240
// // This tweak adds a conditional check to the core's 'open' paramifier, so that when the document is viewed in readOnly mode, non-existent tiddlers specified using a permalink/permaview (i.e. "#TiddlerName" in the document URL) will not be displayed as an empty tiddler (which shows the "double-click to create" default text).
//{{{
if (ver<2.4) {
config.paramifiers.open = { 
onstart: function(v) { 
		if(!readOnly || store.tiddlerExists(v) || store.isShadowTiddler(v)) 
			story.displayTiddler("bottom",v,null,false,null); 
	} 
}; 
}
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/470 - FIXED IN TW240
// // This tweak lets you set an alternative initial focus field when editing a tiddler (default field is "text")
// // Enter initial focus field name: <<option txtEditorFocus>> (//usage:// {{{<<option txtEditorFocus>>}}})
//{{{
if (ver<2.4) {
config.commands.editTiddler.coreTweaks_handler = config.commands.editTiddler.handler;
config.commands.editTiddler.handler = function(event,src,title)
{
	if (config.options.txtEditorFocus==undefined) config.options.txtEditorFocus="text";
	this.coreTweaks_handler.apply(this,arguments);
	story.focusTiddler(title,config.options.txtEditorFocus);
	return false;
};
}
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/468 - FIXED IN TW240
// // This tweak extends the core's {{{<<tag>>}}} macro to accept additional parameters for specifying alternative label and tooltip text for the tag popup "button" link (i.e., "`PrettyTags").  Based on a suggestion by ~PBee.
//{{{
// hijack tag handler()
if (ver<2.4) {
config.macros.tag.CoreTweaks_handler=config.macros.tag.handler;
config.macros.tag.handler = function(place,macroName,params)
{
	this.CoreTweaks_handler.apply(this,arguments);
	var btn=place.lastChild;
	if (params[1]) btn.innerHTML=params[1];
	if (params[2]) btn.title=params[2];
}
}
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/320 - FIXED IN TW240
// // This tweak updates the core's forceReflow() function to fix a Firefox rendering problem, whereby the contents of the a tiddler editor text area can be incorrectly displayed (overlapping other content) when more than one tiddler is in edit mode.
//{{{
if (ver<2.4) {
function forceReflow()
{
	if(config.browser.isGecko) {
		setStylesheet("body {top:-0px;margin-top:0px;}");
		setTimeout('setStylesheet("")',1); // invoke async to bypass browser optimization
	}
}
}
//}}}
// // }}}
// // {{groupbox small{
// // http://trac.tiddlywiki.org/ticket/42 - FIXED IN TW240
// // This tweak adjusts the left position of a TW popup so that it won't overlap with the browser window's vertical scrollbar, when present.
//{{{
if (ver<2.4) {
Popup.place = function(root,popup,offset)
{
	if(!offset) var offset = {x:0, y:0};
	var rootLeft = findPosX(root);
	var rootTop = findPosY(root);
	var rootHeight = root.offsetHeight;
	var popupLeft = rootLeft + offset.x;
	var popupTop = rootTop + rootHeight + offset.y;
	var winWidth = findWindowWidth();
	if(popup.offsetWidth > winWidth*0.75)
		popup.style.width = winWidth*0.75 + "px";
	var popupWidth = popup.offsetWidth;
	// ELS: leave space for vertical scrollbar
	var scrollWidth=winWidth-document.body.offsetWidth;
	if(popupLeft+popupWidth > winWidth-scrollWidth-1)
		popupLeft = winWidth-popupWidth-scrollWidth-1;
	popup.style.left = popupLeft + "px";
	popup.style.top = popupTop + "px";
	popup.style.display = "block";
};
}
//}}}
// // }}}
/***
!!!Unticketed Tweaks
***/
// // {{groupbox small{
// // This tweak adds an optional 'sortby' parameter to the {{{<<tag tagname label tip sortby>>}}} macro, as well as the {{{<<allTags excludeTag sortby>>}}} macro used to generate the sidebar contents 'tags' list.  Specify the field on which the contents of each tag popup is to be sorted, with a "+" or "-" prefix to indicate ascending/descending order, respectively.

// // Example: {{{<<tag systemConfig "plugins" "list plugins by date, most recent first" "-modified">>}}}
// // Try it: <<tag systemConfig "plugins" "list plugins by date, most recent first" "-modified">>

// // Similarly, to change the sort order used by the popups from all tags shown in the sidebar contents, edit the [[TagTags]] shadow tiddler and enter: {{{<<allTags excludeLists -modified>>}}}

//{{{
// hijack tag handler() to add 'sortby' attribute to tag button
config.macros.tag.CoreTweaksSortTags_handler=config.macros.tag.handler;
config.macros.tag.handler = function(place,macroName,params)
{
	this.CoreTweaksSortTags_handler.apply(this,arguments);
	var btn=place.lastChild;
	if (params[3]) btn.setAttribute("sortby",params[3]);
}

// TWEAK <<allTags>> macro to add 'sortby' attribute to each tag button
var fn=config.macros.allTags.handler;
var lines=fn.toString().split("\n");
lines.splice(lines.length-2,0,['if(params[1]) btn.setAttribute("sortby",params[1]);']);
fn=lines.join("\n");
eval("config.macros.allTags.handler="+fn);

// TWEAK event handler for clicking on a tiddler tag to use 'sortby' attribute
var fn=onClickTag;
fn=fn.toString().replace(
	/store.getTaggedTiddlers\(tag\);/g,
	'store.getTaggedTiddlers(tag);'
	+'var sortby=this.getAttribute("sortby");'
	+'if(sortby&&sortby.length) store.sortTiddlers(tagged,sortby);'
);
eval(fn);
//}}}
// // }}}
// // {{groupbox small{
// // This HIJACK tweak pre-processes source content to convert "double-backslash-newline" into {{{<br>}}} before wikify(), so that literal newlines can be embedded in line-mode wiki syntax (e.g., tables, bullets, etc.).  Based on a suggestion from Sitaram Chamarty.
//{{{
window.coreWikify = wikify;
window.wikify = function(source,output,highlightRegExp,tiddler)
{
	if (source) arguments[0]=source.replace(/\\\\\n/mg,"<br>");
	coreWikify.apply(this,arguments);
}
//}}}
// // }}}
/***
|Name|CoreTweaks|
|Source|http://www.TiddlyTools.com/#CoreTweaks|
|Version|n/a|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.2.0|
|Type|plugin|
|Requires||
|Overrides|various|
|Description|a small collection of overrides to TW core functions|
This tiddler contains some quick tweaks and modifications to TW core functions to provide minor changes in standard features or behavior.  It is hoped that some of these tweaks may be incorporated into later versions of the TW core, so that these adjustments will be available without needing these add-on definitions.
>''Note: the changes contained in this tiddler are generally applicable for the current version of TiddlyWiki (<<version>>). Please view [[CoreTweaksArchive]] for tweaks and modifications that may be used with earlier versions of TiddlyWiki.''
----
***/
// // {{block{
/***
!!!757 add removeOptionCookie() function
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/757 - OPEN
When a TW option is reset to it's hard-coded default value, the corresponding browser cookie is usually just set to that default value, which results in an accumulation of unnecessary cookies.  Unfortunately, there is a browser-imposed limit on the number of cookies that are stored for any given domain and, when that limit is reached, the browser starts removing cookies on it's own, thereby unexpectedly discarding some TW settings.  In order to allow core and/or plugin code to 'clean up after themselves' and remove unneeded cookies, this tweak provides a new 'core' function, removeOptionCookie() that is the inverse of the existing saveOptionCookie(), and results in the actual deletion of the browser cookie associated with the specified TW option.
***/
//{{{
if (window.removeOptionCookie===undefined) {
window.removeOptionCookie=function(cookie) {
	var ex=new Date();
	ex.setTime(ex.getTime()-1000);  // immediately expire cookie
	document.cookie = cookie+"=novalue; path=/; expires="+ex.toGMTString();
}
}
//}}}
// // }}}}}}// // {{block{
/***
!!!749 ieCreatePath fixup for handling / in UNC paths
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/749 - OPEN
***/
//{{{
// tweak ieCreatePath to add fallback check for / (in addition to current check for \)
var fn=window.ieCreatePath;
fn=fn.toString().replace(/function ieCreatePath\(path\)/,'window.ieCreatePath=function(path)');
fn=fn.toString().replace(/var pos = path.lastIndexOf\("\\\\"\);/,
	'var pos=path.lastIndexOf("\\\\"); if(pos==-1) pos=path.lastIndexOf("/");');
eval(fn);
//}}}
// // }}}}}}// // {{block{
/***
!!!742 #animate:... paramifier
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/742 - OPEN
Occasionally, when using some low-end browser/hardware combinations, TiddlyWiki documents can "bog down" and become almost unusable due to poor responsiveness.  Fortunately, disabling animation effects (via <<option chkAnimate>>) often makes a big difference in performance.  Unfortunately, clearing this checkbox can be nearly impossible if the document in question is already bogged down due to animations.  The "#animate:true/false" paramifier avoids this problem by allowing the user to set/clear the 'chkAnimate' flag on-the-fly while the URL is being initially loaded into the browser.
***/
//{{{
config.paramifiers.animate= {
	onstart: function(v) {
		config.options.chkAnimate=eval(v);
	}
};
//}}}
// // }}}}}}// // {{block{
/***
!!!741 allow """<hr>""" directly in wiki-formatted content
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/741 - OPEN
This tweak extends the 'horizontal rule' formatter to recognize {{{<hr>}}} (or {{{<hr />}}}) directly in tiddler content without being enclosed within an HTML block (i.e., {{{<html><hr></html>}}}).  This allows HR elements to be used within table cell content, bullet items and other ''line-mode'' syntax, where the required use of newlines surrounding the """----""" syntax would interfere with the enclosing line-mode formatting.
***/
//{{{
config.formatters[config.formatters.findByField("name","rule")].match+="|<hr ?/?>\\n?";
//}}}
// // }}}}}}// // {{block{
/***
!!!683 FireFox3 Import bug: "browse" button replacement
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/683 - OPEN
The web standard "type=file" input control that has been used as a local path/file picker for TiddlyWiki no longer works as expected in FireFox3, which has, for "security" reasons, limited javascript access to this control so that *no* local filesystem path information can be revealed, even when it is intentional and necessary, as it is with TiddlyWiki.  This tweak provides alternative HTML source that patches the backstage import panel.  It replaces the "type=file" input control with a text+button combination of controls that invokes a system-native secure 'file-chooser' dialog box to provide TiddlyWiki with access to a complete path+filename so that TW functions properly locate user-selected local files.
>Note: ''This tweak also requires http://trac.tiddlywiki.org/ticket/604 - cross-platform askForFilename()''
***/
//{{{
if (window.Components) {
	var fixhtml='<input name="txtBrowse" style="width:30em"><input type="button" value="..."'
		+' onClick="window.browseForFilename(this.previousSibling,true)">';
	var cmi=config.macros.importTiddlers;
	cmi.step1Html=cmi.step1Html.replace(/<input type='file' size=50 name='txtBrowse'>/,fixhtml);
}

merge(config.messages,{selectFile:"Please enter or select a file"}); // ready for I18N translation

window.browseForFilename=function(target,mustExist) { // note: both params are optional
	var msg=config.messages.selectFile;
	if (target && target.title) msg=target.title; // use target field tooltip (if any) as dialog prompt text
	// get local path for current document
	var path=getLocalPath(document.location.href);
	var p=path.lastIndexOf("/"); if (p==-1) p=path.lastIndexOf("\\"); // Unix or Windows
	if (p!=-1) path=path.substr(0,p+1); // remove filename, leave trailing slash
	var file=""
	var result=window.askForFilename(msg,path,file,mustExist); // requires #604
	if (target && result.length) // set target field and trigger handling
		{ target.value=result; target.onchange(); }
	return result; 
}
//}}}
// // }}}}}}// // {{block{
/***
!!!604 cross-platform askForFilename()
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/604 - OPEN
invokes a system-native secure 'file-chooser' dialog box to provide TiddlyWiki with access to a complete path+filename so that TW functions properly locate user-selected local files.
***/
//{{{
window.askForFilename=function(msg,path,file,mustExist) {
	var r = window.mozAskForFilename(msg,path,file,mustExist);
	if(r===null || r===false)
		r = window.ieAskForFilename(msg,path,file,mustExist);
	if(r===null || r===false)
		r = window.javaAskForFilename(msg,path,file,mustExist);
	if(r===null || r===false)
		r = prompt(msg,path+file);
	return r||"";
}

window.mozAskForFilename=function(msg,path,file,mustExist) {
	if(!window.Components) return false;
	try {
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
		var nsIFilePicker = window.Components.interfaces.nsIFilePicker;
		var picker = Components.classes['@mozilla.org/filepicker;1'].createInstance(nsIFilePicker);
		picker.init(window, msg, mustExist?nsIFilePicker.modeOpen:nsIFilePicker.modeSave);
		var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
		thispath.initWithPath(path);
		picker.displayDirectory=thispath;
		picker.defaultExtension='html';
		picker.defaultString=file;
		picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
		if (picker.show()!=nsIFilePicker.returnCancel)
			var result=picker.file.persistentDescriptor;
	}
	catch(ex) { displayMessage(ex.toString()); }
	return result;
}

window.ieAskForFilename=function(msg,path,file,mustExist) {
	if(!config.browser.isIE) return false;
	try {
		var s = new ActiveXObject('UserAccounts.CommonDialog');
		s.Filter='All files|*.*|Text files|*.txt|HTML files|*.htm;*.html|';
		s.FilterIndex=3; // default to HTML files;
		s.InitialDir=path;
		s.FileName=file;
		return s.showOpen()?s.FileName:"";
	}
	catch(ex) { displayMessage(ex.toString()); }
	return result;
}

window.javaAskForFilename=function(msg,path,file,mustExist) {
	if(!document.applets["TiddlySaver"]) return false;
	// TBD: implement java-based askFile(...) function
	try { return document.applets["TiddlySaver"].askFile(msg,path,file,mustExist); } 
	catch(ex) { displayMessage(ex.toString()); }
}
//}}}
// // }}}}}}// // {{block{
/***
!!!676 #story:... paramifier
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/676 - OPEN
scan the specified 'story' tiddler content for embedded links, rather than simply parsing the content as a space-separated bracketed list.  This allows links from ''any'' tiddler to be used as a story, regardless of other wiki-syntax contained in that tiddler.  If specified tiddler is a shadow, fallback to using parseParams() to extract the list of links.
***/
//{{{
config.paramifiers.story = {
	onstart: function(v) {
		var t=store.getTiddler(v); if (t) t.changed();
		var list=t?t.links:store.getTiddlerText(v,"").parseParams("open",null,false);
		story.displayTiddlers(null,list);
	}
};
//}}}
// // }}}}}}// // {{block{
/***
!!!664 Loose links (case-folded/space-folded wiki words)
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/664 - OPEN
This tweak matches non-WikiWord variations of mixed-case and/or added/omitted spaces within double-bracketed text with titles of //existing// tiddlers, using a "loose" (case-folded/space-folded) comparison.  This allows text that occurs in normal prose to be more easily linked to tiddler titles by using double-brackets without the full "pretty link" syntax.  For example:
{{{
[[CoreTweaks]], [[coreTweaks]], [[core tweaks]],
[[CORE TWEAKS]], [[CoRe TwEaKs]], [[coreTWEAKS]]
}}}
>[[CoreTweaks]], [[coreTweaks]], [[core tweaks]],
>[[CORE TWEAKS]], [[CoRe TwEaKs]], [[coreTWEAKS]]
Configuration:
><<option chkLooseLinks>> Allow case-folded and/or space-folded text to link to existing tiddler titles
>"""<<option chkLooseLinks>>"""
***/
//{{{
if (!config.options.chkLooseLinks)
	config.options.chkLooseLinks=false; // default to standard behavior
window.caseFold_createTiddlyLink = window.createTiddlyLink;
window.createTiddlyLink = function(place,title,includeText,className) {
	var btn=window.caseFold_createTiddlyLink.apply(this,arguments); // create core link
	if (!config.options.chkLooseLinks) return btn;
	if (store.getTiddlerText(title)) return btn; // matching tiddler (or shadow) exists
	var target=title.toLowerCase().replace(/\s/g,"");
	var tids=store.getTiddlers("title");
	for (var t=0; t<tids.length; t++) {
		if (tids[t].title.toLowerCase().replace(/\s/g,"")==target) {
			var i=getTiddlyLinkInfo(tids[t].title,className);
			btn.setAttribute("tiddlyLink",tids[t].title);
			btn.title=i.subTitle;
			btn.className=i.classes;
			break;
		}
	}
	return btn;
}
//}}}
// // }}}}}}// // {{block{
/***
!!!657 wrap tabs onto multiple lines
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/657 - OPEN
This tweak inserts an extra space element following each tab, allowing them to wrap onto multiple lines if needed.
***/
//{{{
config.macros.tabs.handler = function(place,macroName,params)
{
	var cookie = params[0];
	var numTabs = (params.length-1)/3;
	var wrapper = createTiddlyElement(null,"div",null,"tabsetWrapper " + cookie);
	var tabset = createTiddlyElement(wrapper,"div",null,"tabset");
	tabset.setAttribute("cookie",cookie);
	var validTab = false;
	for(var t=0; t<numTabs; t++) {
		var label = params[t*3+1];
		var prompt = params[t*3+2];
		var content = params[t*3+3];
		var tab = createTiddlyButton(tabset,label,prompt,this.onClickTab,"tab tabUnselected");
		createTiddlyElement(tab,"span",null,null," ",{style:"font-size:0pt;line-height:0px"}); // ELS
		tab.setAttribute("tab",label);
		tab.setAttribute("content",content);
		tab.title = prompt;
		if(config.options[cookie] == label)
			validTab = true;
	}
	if(!validTab)
		config.options[cookie] = params[1];
	place.appendChild(wrapper);
	this.switchTab(tabset,config.options[cookie]);
};
//}}}
// // }}}}}}// // {{block{
/***
!!!637 TiddlyLink tooltip - custom formatting
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/637 - OPEN
This tweak modifies the tooltip format that appears when you mouseover a link to a tiddler.  It adds an option to control the date format, as well as displaying the size of the tiddler (in bytes)

Tiddler link tooltip format:
{{stretch{<<option txtTiddlerLinkTootip>>}}}
^^where: %0=title, %1=username, %2=modification date, %3=size in bytes, %4=description slice^^
Tiddler link tooltip date format:
{{stretch{<<option txtTiddlerLinkTooltipDate>>}}}
***/
//{{{
config.messages.tiddlerLinkTooltip="%0 - %1, %2 (%3 bytes) - %4";
config.messages.tiddlerLinkTooltipDate="DDD, MMM DDth YYYY 0hh12:0mm AM";

config.options.txtTiddlerLinkTootip=
	config.options.txtTiddlerLinkTootip||config.messages.tiddlerLinkTooltip;
config.options.txtTiddlerLinkTooltipDate=
	config.options.txtTiddlerLinkTooltipDate||config.messages.tiddlerLinkTooltipDate;

Tiddler.prototype.getSubtitle = function() {
	var modifier = this.modifier;
	if(!modifier) modifier = config.messages.subtitleUnknown;
	var modified = this.modified;
	if(modified) modified = modified.formatString(config.options.txtTiddlerLinkTooltipDate);
	else modified = config.messages.subtitleUnknown;
	var descr=store.getTiddlerSlice(this.title,"Description")||"";
	return config.options.txtTiddlerLinkTootip.format([this.title,modifier,modified,this.text.length,descr]);
};
//}}}
// // }}}}}}// // {{block{
/***
!!!628 hide "no such macro" errors
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/628 - OPEN
When invoking a macro that is not defined, this tweak prevents the display of the "error in macro... no such macro" message.  This is useful when rendering tiddler content or templates that reference macros that are defined by //optional// plugins that have not been installed in the current document.

<<option chkHideMissingMacros>> hide "no such macro" error messages
***/
//{{{
if (config.options.chkHideMissingMacros===undefined)
	config.options.chkHideMissingMacros=false;

window.coreTweaks_missingMacro_invokeMacro = window.invokeMacro;
window.invokeMacro = function(place,macro,params,wikifier,tiddler) {
	if (!config.macros[macro] || !config.macros[macro].handler)
		if (config.options.chkHideMissingMacros) return;
	window.coreTweaks_missingMacro_invokeMacro.apply(this,arguments);
}
//}}}
// // }}}}}}// // {{block{
/***
!!!609/610 toolbars - separators and transclusion
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/609 - OPEN (separators)
http://trac.tiddlywiki.org/ticket/610 - OPEN (wikify tiddler/slice/section content)
These tweaks extend the """<<toolbar>>""" macro to permit use of "|" as separators, as well as recognizing references to tiddlernames, slices, or sections and rendering their content inline within the toolbar
''see [[ToolbarCommands]] for examples of how these features can be used''
***/
//{{{
merge(config.macros.toolbar,{
	separator: "|"
	});
config.macros.toolbar.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
	for(var t=0; t<params.length; t++) {
		var c = params[t];
		switch(c) {
			case '|':  // ELS - SEPARATOR
			case '!':  // ELS - SEPARATOR (alternative for use in tiddler slices)
				createTiddlyText(place,this.separator); // ELS
				break; // ELS
			case '>':
				var btn = createTiddlyButton(place,this.moreLabel,this.morePrompt,config.macros.toolbar.onClickMore);
				addClass(btn,"moreCommand");
				var e = createTiddlyElement(place,"span",null,"moreCommand");
				e.style.display = "none";
				place = e;
				break;
			default:
				var theClass = "";
				switch(c.substr(0,1)) {
					case "+":
						theClass = "defaultCommand";
						c = c.substr(1);
						break;
					case "-":
						theClass = "cancelCommand";
						c = c.substr(1);
						break;
				}
				if(c in config.commands)

					this.createCommand(place,c,tiddler,theClass);
				else { // ELS - WIKIFY TIDDLER/SLICE/SECTION
					if (c.substr(0,1)=="~") c=c.substr(1); // ignore leading ~
					var txt=store.getTiddlerText(c);
					if (txt) {
						txt=txt.replace(/^\n*/,"").replace(/\n*$/,""); // trim any leading/trailing newlines
						txt=txt.replace(/^\{\{\{\n/,"").replace(/\n\}\}\}$/,""); // trim PRE format wrapper if any
						wikify(txt,createTiddlyElement(place,"span"),null,tiddler);
					}
				} // ELS - end WIKIFY CONTENT
				break;
		}
	}
};
//}}}
// // }}}}}}// // {{block{
/***
!!!608 toolbar - more/less toggle
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/608 - OPEN
This tweak extends the """<<toolbar>>""" macro to make the ">" (more) a //toggle// between more/less with the additional toolbar commands displayed on a separate line.
***/
//{{{
merge(config.macros.toolbar,{
	moreLabel: 'more',
	morePrompt: "Show additional commands",
	lessLabel: 'less',
	lessPrompt: "Hide additional commands"
});
config.macros.toolbar.onClickMore = function(ev)
{
	var e = this.nextSibling;
	var showing=e.style.display=="block";
	e.style.display = showing?"none":"block";
	this.innerHTML=showing?config.macros.toolbar.moreLabel:config.macros.toolbar.lessLabel;
	this.title=showing?config.macros.toolbar.morePrompt:config.macros.toolbar.lessPrompt;
	return false;
};
//}}}
// // }}}}}}// // {{block{
/***
!!!607 add HREF link on permaview command
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/607 - OPEN
This tweak automatically sets the HREF for the 'permaview' sidebar command link so you can use the 'right click' context menu for faster, easier bookmarking.  Note that this does ''not'' automatically set the permaview in the browser's current location URL... it just sets the HREF on the command link.  You still have to click the link to apply the permaview.
***/
//{{{
config.macros.permaview.handler = function(place)
{
	var btn=createTiddlyButton(place,this.label,this.prompt,this.onClick);
	addEvent(btn,"mouseover",this.setHREF);
	addEvent(btn,"focus",this.setHREF);
};
config.macros.permaview.setHREF = function(event){
	var links = [];
	story.forEachTiddler(function(title,element) {
		links.push(String.encodeTiddlyLink(title));
	});
	var newURL=document.location.href;
	var hashPos=newURL.indexOf("#");
	if (hashPos!=-1) newURL=newURL.substr(0,hashPos);
	this.href=newURL+"#"+encodeURIComponent(links.join(" "));
}
//}}}
// // }}}}}}// // {{block{
/***
!!!529 IE fixup - case-sensitive element lookup of tiddler elements
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/529 - OPEN
This tweak hijacks the standard browser function, document.getElementById(), to work-around the case-INsensitivity error in Internet Explorer (all versions up to and including IE7) //''Note: This tweak is only applied when using IE, and only for lookups of rendered tiddler elements within the containing "tiddlerDisplay" element.''//
***/
//{{{
if (config.browser.isIE) {
document.coreTweaks_coreGetElementById=document.getElementById;
document.getElementById=function(id) {
	var e=document.coreTweaks_coreGetElementById(id);
	if (!e || !e.parentNode || e.parentNode.id!="tiddlerDisplay") return e;
	for (var i=0; i<e.parentNode.childNodes.length; i++)
		if (id==e.parentNode.childNodes[i].id) return e.parentNode.childNodes[i];
	return null;
};
}
//}}}
// // }}}}}}// // {{block{
/***
!!!471 'creator' field for new tiddlers
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/471 - OPEN
This tweak HIJACKS the core's saveTiddler() function to automatically add a "creator" field to a tiddler when it is FIRST created. You can use """<<view creator>>""" (or """<<view creator wikified>>""" if you prefer) to show this value embedded directly within the tiddler content, or {{{<span macro="view creator"></span>}}} in the ViewTemplate and/or EditTemplate to display the creator value in each tiddler.  
***/
//{{{
// hijack saveTiddler()
TiddlyWiki.prototype.CoreTweaks_creatorSaveTiddler=TiddlyWiki.prototype.saveTiddler;
TiddlyWiki.prototype.saveTiddler=function(title,newTitle,newBody,modifier,modified,tags,fields)
{
	var existing=store.tiddlerExists(title);
	var tiddler=this.CoreTweaks_creatorSaveTiddler.apply(this,arguments);
	if (!existing) store.setValue(title,"creator",config.options.txtUserName);
	return tiddler;
}
//}}}
// // }}}}}}// // {{block{
/***
!!!458 add permalink-like HREFs on internal TiddlyLinks
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/458 - CLOSED: WON'T FIX
This tweak assigns a "permalink"-like HREF to internal Tiddler links (which normally do not have any HREF defined).  This permits the link's context menu (right-click) to include 'open link in another window/tab' command.  Based on a request from Dustin Spicuzza.
***/
//{{{
window.coreTweaks_createTiddlyLink=window.createTiddlyLink;
window.createTiddlyLink=function(place,title,includeText,theClass,isStatic,linkedFromTiddler,noToggle)
{
	// create the core button, then add the HREF (to internal links only)
	var link=window.coreTweaks_createTiddlyLink.apply(this,arguments);
	if (!isStatic)
		link.href=document.location.href.split("#")[0]+"#"+encodeURIComponent(String.encodeTiddlyLink(title));
	return link;
}
//}}}
// // }}}}}}// // {{block{
/***
!!!444 'tiddler' and 'place' - global variables for use in computed macro parameters
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/444 - OPEN
When invoking a macro, this tweak makes the current containing tiddler object and DOM rendering location available as global variables (window.tiddler and window.place, respectively).  These globals can then be used within "computed macro parameters" to retrieve tiddler-relative and/or DOM-relative values or perform tiddler-specific side-effect functionality.
***/
//{{{
window.coreTweaks_invokeMacro = window.invokeMacro;
window.invokeMacro = function(place,macro,params,wikifier,tiddler) {
	var here=story.findContainingTiddler(place);
	window.tiddler=here?store.getTiddler(here.getAttribute("tiddler")):null;
	window.place=place;
	window.coreTweaks_invokeMacro.apply(this,arguments);
}
//}}}
// // }}}}}}// // {{block{
/***
!!!401 PageTitle - alternative to combined ~SiteTitle/~SiteSubtitle in window titlebar
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/401 - CLOSED: WON'T FIX
This tweak allows definition of an optional [[PageTitle]] tiddler that, when present, provides alternative text for display in the browser window's titlebar, instead of using the combined text content from [[SiteTitle]] and [[SiteSubtitle]] (which will still be displayed as usual in the TiddlyWiki document header area)
***/
//{{{
window.coreTweaks_getPageTitle=window.getPageTitle;
window.getPageTitle=function() { 
	var txt=wikifyPlain("PageTitle"); if (txt.length) return txt;
	return window.coreTweaks_getPageTitle.apply(this,arguments);
}
store.addNotification("PageTitle",refreshPageTitle); // so title stays in sync with tiddler changes
//}}}
// // }}}}}}// // {{block{
/***
!!!67 Missing links - ignore non-wiki syntax source content
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/67 - OPEN
The "missing links" list includes items contained within "quoted" text (i.e., content that will not render as wiki-syntax, and so CANNOT create any tiddler links, even if the quoted text matches valid link syntax).  This tweak removes content contained between certain delimiters before scanning tiddler source for possible links.

Delimiters include:
{{{
/%...%/
{{{...}}}
"""..."""
<nowiki>...</nowiki>
<html>...</html>
<script>...</script>
}}}
***/
//{{{
Tiddler.prototype.coreTweaks_changed = Tiddler.prototype.changed;
Tiddler.prototype.changed = function()
{
	var savedtext=this.text;
	// remove 'quoted' text before scanning tiddler source
	this.text=this.text.replace(/\/%((?:.|\n)*?)%\//g,""); // /%...%/
	this.text=this.text.replace(/\{{3}((?:.|\n)*?)\}{3}/g,""); // {{{...}}}
	this.text=this.text.replace(/"{3}((?:.|\n)*?)"{3}/g,""); // """..."""
	this.text=this.text.replace(/\<nowiki\>((?:.|\n)*?)\<\/nowiki\>/g,""); // <nowiki>...</nowiki>
	this.text=this.text.replace(/\<html\>((?:.|\n)*?)\<\/html\>/g,""); // <html>...</html>
	this.text=this.text.replace(/\<script((?:.|\n)*?)\<\/script\>/g,""); // <script>...</script>
	this.coreTweaks_changed.apply(this,arguments);
	// restore quoted text to tiddler source
	this.text=savedtext;
};
//}}}
// // }}}}}}// // {{block{
/***
!!!(no ticket) """<<tag>>""" macro - sortby parameter
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/TBD - TBD
This tweak adds an optional 'sortby' parameter to the """<<tag tagname label tip sortby>>""" macro, as well as the """<<allTags excludeTag sortby>>""" macro used to generate the sidebar contents 'tags' list.  Specify the field on which the contents of each tag popup is to be sorted, with a "+" or "-" prefix to indicate ascending/descending order, respectively.

Example: """<<tag systemConfig "plugins" "list plugins by date, most recent first" "-modified">>"""
Try it: <<tag systemConfig "plugins" "list plugins by date, most recent first" "-modified">>

Similarly, to change the sort order used by the popups from all tags shown in the sidebar contents, edit the [[TagTags]] shadow tiddler and enter: """<<allTags excludeLists -modified>>"""
***/
//{{{
// hijack tag handler() to add 'sortby' attribute to tag button
config.macros.tag.CoreTweaksSortTags_handler=config.macros.tag.handler;
config.macros.tag.handler = function(place,macroName,params)
{
	this.CoreTweaksSortTags_handler.apply(this,arguments);
	var btn=place.lastChild;
	if (params[3]) btn.setAttribute("sortby",params[3]);
}

// tweak <<allTags>> macro to add 'sortby' attribute to each tag button
var fn=config.macros.allTags.handler;
var lines=fn.toString().split("\n");
lines.splice(lines.length-2,0,['if(params[1]) btn.setAttribute("sortby",params[1]);']);
fn=lines.join("\n");
eval("config.macros.allTags.handler="+fn);

// tweak event handler for clicking on a tiddler tag to use 'sortby' attribute
var fn=onClickTag;
fn=fn.toString().replace(
	/store.getTaggedTiddlers\(tag\);/g,
	'store.getTaggedTiddlers(tag);'
	+'var sortby=this.getAttribute("sortby");'
	+'if(sortby&&sortby.length) store.sortTiddlers(tagged,sortby);'
);
eval(fn);

//}}}
// // }}}}}}// // {{block{
/***
!!!(no ticket) backslash-quoting for embedding newlines in 'line-mode' formats
***/
// // {{groupbox small{
/***
http://trac.tiddlywiki.org/ticket/TBD - TBD
This HIJACK tweak pre-processes source content to convert "double-backslash-newline" into {{{<br>}}} before wikify(), so that literal newlines can be embedded in line-mode wiki syntax (e.g., tables, bullets, etc.).  Based on a suggestion from Sitaram Chamarty.
***/
//{{{
window.coreWikify = wikify;
window.wikify = function(source,output,highlightRegExp,tiddler)
{
	if (source) arguments[0]=source.replace(/\\\\\n/mg,"<br>");
	coreWikify.apply(this,arguments);
}
//}}}
// // }}}}}}
// // <<foldHeadings>>
!!!<<gradient horiz #fc3 #fff>>&nbsp;CreateTabsScript^^<<tiddler CloseThisOpen with: tabs  '« back'>>|<<toolbar editTiddler>>» ^^>>
|bgcolor:#fcf; ''Note: It is possible to create endless loops with this script. Be careful!!''|
Udo Borkowski of http://www.abego-software.de 
created this little script that creates a set of tabs based on a particular tag.
Requires: ForEachTiddlerPlugin

Here is a direct link to the script http://tinyurl.com/2yhf5p

Below is the script reproduced. Just change the tag 'glossar' to your tag.
*+++[See the code]
<<<
{{{
<<forEachTiddler
    where
       'tiddler.tags.contains("glossar")'
    sortBy
       'tiddler.title.toUpperCase()'
    write '" [["+tiddler.title+" ]] \"view ["+tiddler.title+"]\" [["+tiddler.title+"]] "'
        begin '"<<tabs txtMyAutoTab "'
        end '">"+">"'
        none '"//No tiddler tagged with \"glossar\"//"'
>>
}}}
<<<
===

!!!!End ~CreateTabsScript
/***
|''Name:''|CryptoFunctionsPlugin|
|''Description:''|Support for cryptographic functions|
***/
//{{{
if(!version.extensions.CryptoFunctionsPlugin) {
version.extensions.CryptoFunctionsPlugin = {installed:true};

//--
//-- Crypto functions and associated conversion routines
//--

// Crypto "namespace"
function Crypto() {}

// Convert a string to an array of big-endian 32-bit words
Crypto.strToBe32s = function(str)
{
	var be = Array();
	var len = Math.floor(str.length/4);
	var i, j;
	for(i=0, j=0; i<len; i++, j+=4) {
		be[i] = ((str.charCodeAt(j)&0xff) << 24)|((str.charCodeAt(j+1)&0xff) << 16)|((str.charCodeAt(j+2)&0xff) << 8)|(str.charCodeAt(j+3)&0xff);
	}
	while (j<str.length) {
		be[j>>2] |= (str.charCodeAt(j)&0xff)<<(24-(j*8)%32);
		j++;
	}
	return be;
};

// Convert an array of big-endian 32-bit words to a string
Crypto.be32sToStr = function(be)
{
	var str = "";
	for(var i=0;i<be.length*32;i+=8)
		str += String.fromCharCode((be[i>>5]>>>(24-i%32)) & 0xff);
	return str;
};

// Convert an array of big-endian 32-bit words to a hex string
Crypto.be32sToHex = function(be)
{
	var hex = "0123456789ABCDEF";
	var str = "";
	for(var i=0;i<be.length*4;i++)
		str += hex.charAt((be[i>>2]>>((3-i%4)*8+4))&0xF) + hex.charAt((be[i>>2]>>((3-i%4)*8))&0xF);
	return str;
};

// Return, in hex, the SHA-1 hash of a string
Crypto.hexSha1Str = function(str)
{
	return Crypto.be32sToHex(Crypto.sha1Str(str));
};

// Return the SHA-1 hash of a string
Crypto.sha1Str = function(str)
{
	return Crypto.sha1(Crypto.strToBe32s(str),str.length);
};

// Calculate the SHA-1 hash of an array of blen bytes of big-endian 32-bit words
Crypto.sha1 = function(x,blen)
{
	// Add 32-bit integers, wrapping at 32 bits
	add32 = function(a,b)
	{
		var lsw = (a&0xFFFF)+(b&0xFFFF);
		var msw = (a>>16)+(b>>16)+(lsw>>16);
		return (msw<<16)|(lsw&0xFFFF);
	};
	// Add five 32-bit integers, wrapping at 32 bits
	add32x5 = function(a,b,c,d,e)
	{
		var lsw = (a&0xFFFF)+(b&0xFFFF)+(c&0xFFFF)+(d&0xFFFF)+(e&0xFFFF);
		var msw = (a>>16)+(b>>16)+(c>>16)+(d>>16)+(e>>16)+(lsw>>16);
		return (msw<<16)|(lsw&0xFFFF);
	};
	// Bitwise rotate left a 32-bit integer by 1 bit
	rol32 = function(n)
	{
		return (n>>>31)|(n<<1);
	};

	var len = blen*8;
	// Append padding so length in bits is 448 mod 512
	x[len>>5] |= 0x80 << (24-len%32);
	// Append length
	x[((len+64>>9)<<4)+15] = len;
	var w = Array(80);

	var k1 = 0x5A827999;
	var k2 = 0x6ED9EBA1;
	var k3 = 0x8F1BBCDC;
	var k4 = 0xCA62C1D6;

	var h0 = 0x67452301;
	var h1 = 0xEFCDAB89;
	var h2 = 0x98BADCFE;
	var h3 = 0x10325476;
	var h4 = 0xC3D2E1F0;

	for(var i=0;i<x.length;i+=16) {
		var j,t;
		var a = h0;
		var b = h1;
		var c = h2;
		var d = h3;
		var e = h4;
		for(j = 0;j<16;j++) {
			w[j] = x[i+j];
			t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=16;j<20;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),d^(b&(c^d)),w[j],k1);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=20;j<40;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k2);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=40;j<60;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),(b&c)|(d&(b|c)),w[j],k3);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}
		for(j=60;j<80;j++) {
			w[j] = rol32(w[j-3]^w[j-8]^w[j-14]^w[j-16]);
			t = add32x5(e,(a>>>27)|(a<<5),b^c^d,w[j],k4);
			e=d; d=c; c=(b>>>2)|(b<<30); b=a; a = t;
		}

		h0 = add32(h0,a);
		h1 = add32(h1,b);
		h2 = add32(h2,c);
		h3 = add32(h3,d);
		h4 = add32(h4,e);
	}
	return Array(h0,h1,h2,h3,h4);
};


}
//}}}
!!!CSS cursor Property
|>| !Hover to over the right column to see cursor|
|cursor:auto|<html><span style="cursor:auto">Auto</span></html>|
|cursor:crosshair|<html><span style="cursor:crosshair">Crosshair</span></html>|
|cursor:default|<html><span style="cursor:default">Default</span></html>|
|cursor:pointer|<html><span style="cursor:pointer">Pointer</span></html>|
|cursor:move|<html><span style="cursor:move">Move</span></html>|
|cursor:e-resize|<html><span style="cursor:e-resize">e-resize</span></html>|
|cursor:ne-resize|<html><span style="cursor:ne-resize">ne-resize</span></html>|
|cursor:nw-resize|<html><span style="cursor:nw-resize">nw-resize</span></html>|
|cursor:n-resize|<html><span style="cursor:n-resize">n-resize</span></html>|
|cursor:se-resize|<html><span style="cursor:se-resize">se-resize</span></html>|
|cursor:sw-resize|<html><span style="cursor:sw-resize">sw-resize</span></html>|
|cursor:s-resize|<html><span style="cursor:s-resize">s-resize</span></html>|
|cursor:w-resize|<html><span style="cursor:w-resize">w-resize</span></html>|
|cursor:text|<html><span style="cursor:text">text</span></html>|
|cursor:wait|<html><span style="cursor:wait">wait</span></html>|
|cursor:help|<html><span style="cursor:help">help</span></html>|
!!!<<gradient horiz #fc3 #ffffff>>&nbsp;Example>>
<html><span style="cursor:help">@@color:#00f;Put your cursor here to see help cursor@@</span></html>  See more in the table above.
!!!<<gradient horiz #fc3 #ffffff>>&nbsp;Code>>
''If you require a tool tip on plain text using HTML, you can write:''
{{{<html><span title="Mouseover tooltip. Your text here" style="cursor:pointer>Try it here</span></html>}}}

<html><span title="Mouseover tooltip. Your text here" style="cursor:pointer>Try it here</span></html>


/***
!!!<<gradient horiz #fc3 #fff >><<tiddler RefreshStyles>>&nbsp;CustomCSS>>/%==================================================%/
***/
/***CustomCSS is a style sheet that contains the "custom class" CSS to customize special features in TW Help.  It is placed in StyleSheet as a [[NestedStyleSheet|NestedStyleSheets]] and is an essential component.***/

/***There may be extra nested stylesheets at the end of this stylesheet***/



/***
!!!<<gradient horiz #FF8888 #ffffff >>&nbsp;~CustomTable>>/%==================================================%/
***/
/*{{{*/

.scrollTWTweets {
align:center;
height: auto;
width: 400px;
position:relative;
overflow: auto;
margin:auto;
margin-left:1.2em;
padding:0.2em;
!important;margin-left: auto !important; margin-right: auto !important;
background-color: #eef;
}





.topMenu{
background:#eee;
}

#tiddlerShowUnsavedChanges a {
color:#c06;
}


 .toolbar {
         visibility: hidden;
     }
     .selected .toolbar {
         visibility: visible;
     } 

.systemcontents {
 height: 150px; 
 width: auto; 
 position:relative;
 overflow: auto;
 margin:auto;
 margin-left:0em;
 }

.scrollcontents {
 height: 225px; 
 width: auto; 
 position:relative;
 overflow: auto;
 margin:auto;
 margin-left:0em;
 }

.popup {
 max-height:275px;
 min-height:auto;
 width: auto; 
 overflow: auto;
 margin:auto;
-moz-border-radius : 0.65em 0.2em 0.2em 0.65em;
background:#eee;
color:#900;
}



backstagePanel {background-color:#abf; border-color:#fcf ;}

.doubleborder {
    border: 4px double #fcf;
    margin: 8px;
}

.doublebordermap {
    width:400px;
    border: 4px double #fcf;
    margin: 8px;
left-margin:auto;
right-margin:auto;
}

.tableright  table {border:0 !important;td.vertical-align:top;margin-left:auto ; margin-right:0  auto !important; text-align:left; padding:0px;}


.tablecenter  table { border:0 !important;td.vertical-align:top;margin-left: auto; margin-right: auto; text-align:left; padding:0px;}
.tablecenterpad17 table { td.vertical-align:top;margin-left: auto; margin-right: auto; text-align:
left; padding:17px;}

.borderless, .borderless table, .borderless td, .borderless tr, .borderless th, .borderless tbody
	{ border:0 !important; margin:0 !important; padding:3px !important; td.vertical-align:top !important;margin-left: auto !important; margin-right: auto !important;}

.borderless5px, .borderless5px table, .borderless5px td, .borderless5px tr, .borderless5px th, .borderless5px tbody { border:0 !important; margin:0 !important; padding:5px !important; td.vertical-align:top !important;margin-left: auto !important; margin-right: auto !important;}

.borderlessL, .borderlessL table, .borderlessL td, .borderlessL tr, .borderlessL th, .borderlessL tbody
	{ border:0 !important; margin:0 !important; padding:7px !important; td.vertical-align:top !important;margin-left: 0 !important; margin-right: auto !important;}

.borderlessL0, .borderlessL 0table, .borderlessL0 td, .borderlessL0 tr, .borderlessL0 th, .borderlessL0 tbody
	{ border:0 !important; margin:0 !important; padding:0px !important; td.vertical-align:top !important;margin-left: 0 !important; margin-right: auto !important;}

.borderlessR, .borderlessR table, .borderlessR td, .borderlessR tr, .borderlessR th, .borderlessR tbody
	{ border:0 !important; margin:0 !important; padding:7px !important; td.vertical-align:top !important;margin-left: auto !important; margin-right: 0 !important;}

.viewer tr.oddRow { background-color: #eaeaea;}
.viewer tr.evenRow { background-color:#fff; } 


/%row code for html%/
tr.d0 td {background-color: #ccc; color: black;}
tr.d1 td {background-color: #eaeaea; color: black;}


/*}}}*/
/***
!!!<<gradient horiz #FF8888 #ffffff >>&nbsp;~CustomText>>/%==================================================%/
***/
/*{{{*/

.textleft { display:block;text-align:left; }
.textright { display:block;text-align:right; }
.textcenter { display:block;text-align:center; }
.textjustify { display:block;text-align:justify; }
.textindent { display:block;margin:0;padding:0;border:0;margin-left:2em; }

.wrap { white-space:normal; }
.nowrap	{ white-space:nowrap; }

.headingcolor{color:#FFF;background:#ff8888;}
.wrappingClass{padding: 0px 0.5em 0px 0.5em;color: #FFF; background: #06f;}



.firstletter{
display:block;
float:left;
width:1.0em;
font-size:400%;
font-family:times,courier;
line-height:80%;
}

.firstletterK{
display:block;
float:left;
width:0.75em;
font-size:400%;
font-family:times,courier;
line-height:80%;
}

.firstletterT{
display:block;
float:left;
width:0.65em;
font-size:300%;
font-family:times,courier;
line-height:95%;
}

.headline{
color:#c06;
font-size:180%;
font-family:times,arial;
line-height:60%;
}

.headline120 {
color:#009;
font-size:150%;
font-family:times,arial;
line-height:60%;
}


/*}}}*/
/***
!!!<<gradient horiz #FF8888 #ffffff >>&nbsp;Layout>>/%==================================================%/
***/
/*{{{*/


/* Anything with the tag "multicolumn" gets a new multi-column format */

div[tags~="multicolumn"] .viewer {-moz-column-width:30em; -moz-column-gap:2em; padding-top:
0em;}


/* multi-column tiddler content (not supported in Internet Explorer) */
.twocolumns { display:block;
	-moz-column-count:2; -moz-column-gap:1em; -moz-column-width:50%; /* FireFox */
	-webkit-column-count:2; -webkit-column-gap:1em; -webkit-column-width:50%; /* Safari */
	column-count:2; column-gap:1em; column-width:50%; /* Opera */
}
.threecolumns { display:block;
	-moz-column-count:3; -moz-column-gap:1em; -moz-column-width:33%; /* FireFox */
	-webkit-column-count:3; -webkit-column-gap:1em; -webkit-column-width:33%; /* Safari */
	column-count:3; column-gap:1em; column-width:33%; /* Opera */
}
.fourcolumns { display:block;
	-moz-column-count:4; -moz-column-gap:1em; -moz-column-width:25%; /* FireFox */
	-webkit-column-count:4; -webkit-column-gap:1em; -webkit-column-width:25%; /* Safari */
	column-count:4; column-gap:1em; column-width:25%; /* Opera */
}

.doubleborder {
    border: 4px double #fcf;
    margin: 8px;
}

.floatboxright {
    float: right;
    width: 20em;
    border: solid 1px;
    padding:3px;
    background-color:#fcf;
    /* whatever other styling you want.. */
} 


.floatboxleft {
    float: left;
    width: 20em;
    border: solid 1px;
    padding:3px;
    background-color:#fcf;
    /* whatever other styling you want.. */
} 

.floatleft{ float:left; }
.floatright{ float:right; }

.moveovermainmenu{margin-left:7px;}
.textleftpad5{text-align:left;padding: 0px 5px 0px 5px;}
.textindent25 {text-indent:25px;}
.smallform{ white-space:nowrap; }

.imgfloatright{display:block;float:right;padding:0.3em;}
.imgfloatleft{display:block;float:left;padding:0.3em;}
.imgfloatcenter{display:block;margin-left: auto;margin-right: auto;padding:0.3em;}

.imgfloatrightM{display:block;float:right;margin-left:0em;padding-right:1.3em;}

.alt { background-color:#abf; }
.fdfbackground {background:#fdf;} 

/*}}}*/
/***
!!!<<gradient horiz #FF8888 #ffffff >>&nbsp;Links>>/%==================================================%/
***/
/*{{{*/

.boldLink a {font-weight:bold;}
.unboldlink a {font-weight:normal;}

.bigLink a { font-size:10pt;font-weight:bold;}
.whiteLink a { color: #fff;font-weight:normal; } 
.twLink a { color: #090;font-weight:normal; }
.locLink a { color: #f6f;font-weight:normal; }
.remLink a { color: #c90;font-weight:normal; } 
.blueLink a {color:#00f;}
.grayLink a {color:#ccc;}
.redLink a {color:#d00;}
.menublueLink a {color:#3cf;} 

.wrappingLinks{color: #000; background: #B3FFB3;}
.wrappingLinksAlt{color: #000; background: #C0FFFF;}

/*}}}*/
/***
!!!<<gradient horiz #FF8888 #ffffff >>Tiddler Specific Custom CSS>>/%=================================================%/
***/
/*{{{*/

{{{
#tiddlerNew\000020Tiddler a {
	color: #f00;
}
}}}

#tiddlerEditTemplate .button {color: #000;text-decoration:none;}

#tiddlerTWHelp-SearchResults .viewer {
overflow: auto;
}

#tiddlerTranslate .viewer {
overflow: auto;
}

#tiddlerSlantedMenu {
border-top: 1px solid #fcf:
}

#tiddlerSideBarOptions {
color:#ffc;
background: transparent;
}

#tiddlerNewWelcome .viewer .tabContents {
background: white;
border-top: 1px solid #999;
border-right: 0px solid #999;
border-bottom: 0px solid #999;
border-left: 0px solid #999;
}

#tiddlerTWHelpSiteLinks ol { list-style-type: decimal }

#tiddlerIndex .title {
visibility: hidden; 
}


#tiddlerBorderlessIframe .viewer {
background:#fff;
}



#mainMenu a:hover{
	background: #FFF;
	color: #F00;
}

#tiddlerMargin_Properties.viewer th{
        border: 1px solid #000;
	padding: 0px;
        vertical-align:top;
}

#tiddlerFormattingPageIntro .viewer th, .viewer td, .viewer tr,.viewer caption{
        border: 1px solid #F6F;
	padding: 0px;
        vertical-align:top;
}

#tiddlerTWHelp-SearchResults .viewer table, .viewer td{
border: 1px solid #F6F;
padding-left: 5px;
padding-right: 5px;
vertical-align:top;
td.vertical-align:top;
margin-left: auto;
margin-right: auto;
}

#tiddlerTables .viewer td.even{
background:#ccc;
}

#tiddlerTWHelp-SearchResults .viewer a {
color:#04b;
text-decoration:none;

}


#tiddlerAlpha .viewer tr.oddRow { background-color: #abf;}
#tiddlerAlpha .viewer tr.evenRow { background-color:#eaeaea; } 

#tiddlerNewWelcome .viewer tr.oddRow { background-color: #eaeaea;}
#tiddlerNewWelcome .viewer tr.evenRow { background-color:#fff; } 

#tiddlerImages img {
    border: 5px double #999;
    margin: 4px;

} 

#searchBar {
	float: right;
	font-size: 0.9em;
        padding-right: 1.5em;
        padding-bottom: 0em;
}

#searchBar .button {
	padding-right: 0.5em;
	border: none;
}

.gotoBar {
	float: right;
	font-size: 0.9em;
        padding-right: 1.5em;
        padding-top: 1.0em;
}


/*}}}*/
/***
!!!<<gradient horiz #FF8888 #ffffff >>Footer >>/%==================================================%/
***/
/*{{{*/

#ContentFooter {

 clear: both;
 color:#000;
 background: #ADAFFF;
 padding: 1em 2em;
 font-weight:normal;
 margin-right:0.0em;
 border-top: solid 1px #008;
 border-bottom: solid 1px #008;
}


#ContentFooter a {
 color:#009;
}


#ContentFooter .viewer{
background:#000;
color:#fff;
 }


/*}}}*/
/***
!!!<<gradient horiz #090 #fff>>&nbsp;@@color:#fff;End@@>>/%==================================================%/
***/
/*{{{*/

!!!<<gradient horiz #fc3 #ffffff>>CustomCSSClass ^^<<tiddler CloseThisOpen with: FormattingText  '« back'>>|<<toolbar editTiddler>>» ^^>>
{{textleft{
''You can wrap any text in an HTML {{{<span>}}} or {{{<div>}}} with a specified CSS class.'' This allows custom CSS styling in a nice, modular way. By placing a rule in your StyleSheet tiddler like this:
----
!!!!&nbsp;Code for ~StyleSheet
{{{
.wrappingClass{color: #666; background: #bbb}
}}}
----
!!!!&nbsp;Code for the markup
You can markup a piece of text in the tiddler using this code:
{{{
{{wrappingClass{Text that is now accentuated}}}
}}}

So that...By default, the text is placed in a {{{<span>}}}. 
{{wrappingClass{Text that is now accentuated
}}}
To use a {{{<div>}}} instead, insert a line break before the text:
{{{
{{wrappingClass{
Text that is now accentuated}}}
}}}

{{wrappingClass{
Text that is now accentuated}}}
/***
!!!CustomMozTableCSS /%==================================================%/
***/

.MozTable table {
	border-width: 0px 0px 0px 0px;
	border-spacing: 4px;
	border-style: dotted dotted dotted dotted;
	border-color: blue blue blue blue;
	border-collapse: separate;
	background-color: white;
}


.MozTableTh th {
border-width: 1px 1px 1px 1px;
	padding: 2px 2px 2px 2px;
	border-style: solid solid solid solid;
	border-color: magenta magenta magenta magenta;
	background-color: rgb(255, 255, 240);
	-moz-border-radius: 12px 12px 12px 12px;
}

.MozTableTd td {
	padding: 2px 2px 2px 2px;
padding: 1px 1px 1px 1px;
border-style: solid solid solid solid;
border-color: magenta magenta magenta magenta;
background-color: rgb(255, 255, 240);
-moz-border-radius: 12px 12px 12px 12px;
}
+++[Try a custom web search here]<<tiddler [[Search Google Co-op]]>>===
{{tablecenter{
<<forEachTiddler 
where
'tiddler.title.toLowerCase().startsWith("d")'
sortBy '(tiddler.title.toLowerCase())' 
 ascending
write
 '"|bgcolor:#fcf; "+(index+1)+"|[["+tiddler.title+"]]| "+tiddler.text.length+"|"+tiddler.tags+"|bgcolor:#fcf;"+tiddler.modified.formatString("YYYY.0MM.0DD")+"|\n"'
 begin '"|sort &raquo;| Title | Size | Tags |Modified|h\n"'
>>
<html><embed type="video/x-ms-asf" id="player_FF" name="player_FF" displaysize="2" autosize="0"
  bgcolor="white" showcontrols="true" showtracker="0" showdisplay="0" showstatusbar="1" videoborder3d="0" width="300" height="50" src="http://abc.net.au/streaming/digjazz/digjazz.m3u" autostart="true" designtimesp="5311" loop="false" volume="100"></embed></html>

<html><embed type="video/x-ms-asf" id="player_FF" name="player_FF" displaysize="2" autosize="0"
  bgcolor="white" showcontrols="true" showtracker="0" showdisplay="0" showstatusbar="0" videoborder3d="0" width="300" height="25" src="http://abc.net.au/streaming/digradio/digradio.m3u" autostart="true" designtimesp="5311" loop="false" volume="100"></embed></html>



!!!<<gradient horiz #fc3 #fff>>&nbsp;[[Date]]^^<<tiddler CloseThisOpen with: FormattingText  '« back'>>|<<toolbar editTiddler>>» ^^>>
Here is an example on how to change the ''created'' and ''modified'' date format.  Normally the date format for a ~TiddlyWiki is ''Day/Month/Year''.  Certain places in the world the convention is ''Month/Day/Year''. Here is how you change it.

In ViewTemplate there is the following line: 
~~(ViewTemplate is located in the right sidebar tabs under ''More''  @@color:#C06;''&raquo;'' @@ ''Shadowed'')~~
{{{
<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>
}}}

Change it by adding "0MM/0DD/YYYY" two places.  NOTE the nested double quote marks inside the
single quote marks.

{{{
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date "0MM/0DD/YYYY" '></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date "0MM/0DD/YYYY" '></span>)</div>
}}}


<<tiddler today>><html><div style="text-align:right;color:#3cf;"> ~TiddlyWiki Version <<version>></style></html>
<script>
var today=new Date()
document.write('<center>'+'<font style="color:#c06">'+today.toString()+'</font><br>'+'<font style="color:green">'+'URL='+window.location+'</font></center>')
</script>
@@text-align:left;color:#3cf;<<today "ddd DD MMM YYYY">><br><script>
function dayofyear(d) {   // d is a Date object
var yn = d.getFullYear();
var mn = d.getMonth();
var dn = d.getDate();
var d1 = new Date(yn,0,1,12,0,0); // noon on Jan. 1
var d2 = new Date(yn,mn,dn,12,0,0); // noon on input date
var ddiff = Math.round((d2-d1)/864e5);
return ddiff+1; }

var curdate=new Date(); // gets today's date
var cdnum=dayofyear(curdate);
        var tiddlers=store.getTiddlers("modified");
        var last=tiddlers[tiddlers.length-1];
        var when=last.modified.formatString("YY0hh0mm0ss");
        return "Day of the year: "+cdnum
</script><br>TW Ver: <<version>> @@
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[DatedFooter]]^^<<tiddler CloseThisOpen with: FormattingThePage  '« back'>>|<<toolbar editTiddler>>» ^^>>

''For a last modified date footer:''

1: Create this tiddler [[lastModified]]
2: In a tiddler ContentFooter put the contents you want plus:
{{{
{{textcenter{
<<tiddler [[lastModified]]>>}}}
}}}
3: In PageTemplate put at the bottom: 
(For a footer at the end of every tiddler: put within header div)
(For a footer at the end of the page put outside header div)
{{{
<div id='contentFooter' refresh='content' tiddler='ContentFooter'></div>
}}}
4: In StyleSheet styling examples:
{{{
#contentFooter {
 background: transparent;
 padding: 1em 2em;
 font-weight:normal;
}

#contentFooter a {
 color:#009;
} 
}}}
function onClickDefaultHome(e) {
story.closeAllTiddlers();
config.options.txtDefaultTiddlers = "";
saveOptionCookie('txtDefaultTiddlers');
var start = store.getTiddlerText("DefaultTiddlers");
if(start)
story.displayTiddlers(null,start.readBracketedList());
}
config.macros["defaultHome"] = {label: "Home", prompt: "Close all open tiddlers show the home page", title: "Home"};
config.macros.defaultHome.handler = function(place) {
createTiddlyButton(place,this.label,this.prompt,onClickDefaultHome);
}
[[Welcome]]
/***
|''Name:''|DeprecatedFunctionsPlugin|
|''Description:''|Support for deprecated functions removed from core|
***/
//{{{
if(!version.extensions.DeprecatedFunctionsPlugin) {
version.extensions.DeprecatedFunctionsPlugin = {installed:true};

//--
//-- Deprecated code
//--

// @Deprecated: Use createElementAndWikify and this.termRegExp instead
config.formatterHelpers.charFormatHelper = function(w)
{
	w.subWikify(createTiddlyElement(w.output,this.element),this.terminator);
};

// @Deprecated: Use enclosedTextHelper and this.lookaheadRegExp instead
config.formatterHelpers.monospacedByLineHelper = function(w)
{
	var lookaheadRegExp = new RegExp(this.lookahead,"mg");
	lookaheadRegExp.lastIndex = w.matchStart;
	var lookaheadMatch = lookaheadRegExp.exec(w.source);
	if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
		var text = lookaheadMatch[1];
		if(config.browser.isIE)
			text = text.replace(/\n/g,"\r");
		createTiddlyElement(w.output,"pre",null,null,text);
		w.nextMatch = lookaheadRegExp.lastIndex;
	}
};

// @Deprecated: Use <br> or <br /> instead of <<br>>
config.macros.br = {};
config.macros.br.handler = function(place)
{
	createTiddlyElement(place,"br");
};

// Find an entry in an array. Returns the array index or null
// @Deprecated: Use indexOf instead
Array.prototype.find = function(item)
{
	var i = this.indexOf(item);
	return i == -1 ? null : i;
};

// Load a tiddler from an HTML DIV. The caller should make sure to later call Tiddler.changed()
// @Deprecated: Use store.getLoader().internalizeTiddler instead
Tiddler.prototype.loadFromDiv = function(divRef,title)
{
	return store.getLoader().internalizeTiddler(store,this,title,divRef);
};

// Format the text for storage in an HTML DIV
// @Deprecated Use store.getSaver().externalizeTiddler instead.
Tiddler.prototype.saveToDiv = function()
{
	return store.getSaver().externalizeTiddler(store,this);
};

// @Deprecated: Use store.allTiddlersAsHtml() instead
function allTiddlersAsHtml()
{
	return store.allTiddlersAsHtml();
}

// @Deprecated: Use refreshPageTemplate instead
function applyPageTemplate(title)
{
	refreshPageTemplate(title);
}

// @Deprecated: Use story.displayTiddlers instead
function displayTiddlers(srcElement,titles,template,unused1,unused2,animate,unused3)
{
	story.displayTiddlers(srcElement,titles,template,animate);
}

// @Deprecated: Use story.displayTiddler instead
function displayTiddler(srcElement,title,template,unused1,unused2,animate,unused3)
{
	story.displayTiddler(srcElement,title,template,animate);
}

// @Deprecated: Use functions on right hand side directly instead
var createTiddlerPopup = Popup.create;
var scrollToTiddlerPopup = Popup.show;
var hideTiddlerPopup = Popup.remove;

// @Deprecated: Use right hand side directly instead
var regexpBackSlashEn = new RegExp("\\\\n","mg");
var regexpBackSlash = new RegExp("\\\\","mg");
var regexpBackSlashEss = new RegExp("\\\\s","mg");
var regexpNewLine = new RegExp("\n","mg");
var regexpCarriageReturn = new RegExp("\r","mg");

}
//}}}
----
<html><div align="center"><FORM name=form1><INPUT type=file name=cmuds> <INPUT onclick="whatFile()" type=button value=OpenFile name=button></FORM></div><br></html><html><div align="center">{{borderless{
|[img[http://img267.imageshack.us/img267/4228/copyau2.gif][run:C:\Documents and Settings\All Users\Application Data\GlobalSCAPE\CuteHTML\CuteHTML.exe]]edit |&nbsp;&nbsp;&nbsp;[img[http://img526.imageshack.us/img526/3424/brushbz6.gif][run:C:\Program Files\Paint Shop Pro 6\Psp.exe]]psp|&nbsp;&nbsp;&nbsp; [img[http://img468.imageshack.us/img468/2811/emailxi4.gif][run:C:\Pegasus\winpm-32.exe]]pmail|&nbsp;&nbsp;&nbsp;[img[http://img442.imageshack.us/img442/9443/openfilekf3.gif][BrowseDrives]]open|

<a href="run:C:\Program Files\Ontrack\PowerDesk\PDEXPLO.EXE"> Power Desk</a> @@color(#C06):|@@ <a href="run:C:\Documents and Settings\symbex\Desktop\UnitConverter.exe">Units Converter</a> @@color(#C06):|@@ <a href="run:I:/VERNAM.EXE">Vernam</a></div></html>
{{textcenter{
[img[http://img406.imageshack.us/img406/6816/uaquo3ab8.gif]]<<slider chkBrowse "BrowseDrives" "MyComputer" "ToolTip: More Help Sites">>[img[http://img408.imageshack.us/img408/5150/daquo3gq1.gif]]
[img[http://img406.imageshack.us/img406/6816/uaquo3ab8.gif]]<<slider chkMyLink "General_Links" "My Links" "ToolTip: More Help Sites">>[img[http://img408.imageshack.us/img408/5150/daquo3gq1.gif]]
}}}

> Greetings all - I'm running v2.1.3 and am wondering if there's any easy
> way to disable the double-click to edit feature.

In the ViewTemplate tiddler (which starts out as a built-in 'shadow'
tiddler), find this line:

<div class='toolbar' macro='toolbar closeTiddler closeOthers
+editTiddler sendTiddler permalink references jump'></div>

and change "+editTiddler" to just "editTiddler" (i.e., remove the "+").
 The "+" indicates which action on the toolbar will be triggered by the
double-click. If no item has the "+", then no action is performed

Alternatively, if you only want to disable double-clicking in specific
selected tiddlers, you can include a little bit of inline javascript
directly in that tiddler's content that will remove the ondblclick
handling for that tiddler:

   http://www.TiddlyTools.com/#DoubleClickDisable
   (note: requires http://www.TiddlyTools.com/#InlineJavascriptPlugin)

To quickly incorporate this script into any desired tiddler, use:
   <<tiddler DisableDoubleClick>>

HTH,
-e
Eric Shulman
TiddlyTools / ELS Design Studios 

Source: [[TiddlyWiki : Google Groups|http://groups.google.com/group/TiddlyWiki/browse_thread/thread/cb4058e210e770a1]]
config.options.chkAnimate=false; 
<html><a href="javascript:;" onclick="config.options.chkDisableTabsBar=!config.options.chkDisableTabsBar;refreshPageTemplate();return false;">toggle tiddler tabs</a></html>
/***
|''Name:''|DoBackupMacro|
|''Version:''|2.0 (9-Apr-2006)|
|''Author:''|[[Jack]]|
|''Type:''|Macro|
|Description|Creates a button which allows you to backup your TiddlyWiki on demand.|
!Usage
Add the following command to your SideBarOptions tiddler:
{{{<<doBackup>>}}}
!Revision History
* Original by [[Jack]] 9-Apr-2006
!To Do
* List non-explicit links (e.g. from tagging macro)

!Code
***/
//{{{
version.extensions.doBackup= {major: 2, minor: 0, revision: 0, date: new Date("Apr 9, 2006")};
config.macros.doBackup={label: "backup", prompt: "Backup this TiddlyWiki"}
config.macros.doBackup.handler = function(place)
{
 if(!readOnly)
 createTiddlyButton(place,this.label,this.prompt,function ()
{doBackup(); return false;},null,null,this.accessKey);
}

doBackup = function() {
 var optSaveBackups = config.options.chkSaveBackups
 config.options.chkSaveBackups = true
 saveChanges()
 config.options.chkSaveBackups = optSaveBackups
}

//}}}
<html><form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-butcc-donate.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
<img alt="" border="0" src="https://www.paypal.com/en_AU/i/scr/pixel.gif" width="1" height="1">
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIHLwYJKoZIhvcNAQcEoIIHIDCCBxwCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYBPekjYcXEe2QI0ptut+27r11reSO3v3jAIoa97p/mX33nbc23BYbD5stzbvX6TI41MGO7cmBGcwAuIXbDVD2Fe9bxgnL9YUZdb2LVynPNV9psA6Jkckws+0PPcoK1obpZLLeUcoiLjrU48uSxpM4VlZEENfaqhUOpuQx3rPQTzezELMAkGBSsOAwIaBQAwgawGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIPR/n1xnluh2AgYiH0hn0u7YEUCK+WuIrHwF0NT9xvyHT+02DmGrzgyUrQym3AwZDT+9QxyexVCCZVvsEvifxwZm/IrtXDO4sYAEX9r14JMaZw++pUllR1ZDyiyFPIkW9s2hsSSwwG5DKMe12hQo6bLquthj4j60owDK4J1JK3tV0Nb0lm6k7AgsqAUoNpEXTM5HaoIIDhzCCA4MwggLsoAMCAQICAQAwDQYJKoZIhvcNAQEFBQAwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMB4XDTA0MDIxMzEwMTMxNVoXDTM1MDIxMzEwMTMxNVowgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBR07d/ETMS1ycjtkpkvjXZe9k+6CieLuLsPumsJ7QC1odNz3sJiCbs2wC0nLE0uLGaEtXynIgRqIddYCHx88pb5HTXv4SZeuv0Rqq4+axW9PLAAATU8w04qqjaSXgbGLP3NmohqM6bV9kZZwZLR/klDaQGo1u9uDb9lr4Yn+rBQIDAQABo4HuMIHrMB0GA1UdDgQWBBSWn3y7xm8XvVk/UtcKG+wQ1mSUazCBuwYDVR0jBIGzMIGwgBSWn3y7xm8XvVk/UtcKG+wQ1mSUa6GBlKSBkTCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCBXzpWmoBa5e9fo6ujionW1hUhPkOBakTr3YCDjbYfvJEiv/2P+IobhOGJr85+XHhN0v4gUkEDI8r2/rNk1m0GA8HKddvTjyGw/XqXa+LSTlDYkqI8OwR8GEYj4efEtcRpRYBxV8KxAW93YDWzFGvruKnnLbDAF6VR5w/cCMn5hzGCAZowggGWAgEBMIGUMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDcwMjA1MDc1NzM0WjAjBgkqhkiG9w0BCQQxFgQUYJoNKXvpeN6udg4/avyItdHJAuUwDQYJKoZIhvcNAQEBBQAEgYB4N/3ldyOXI7LhP59umwdQpgYvHBJUE6YcMHEh9WsncGOAuFq7cwTapPJZIMf65tMinrv/tWkaX5UMd+XauVihOUoZabk9UPEEW1tJo8omLGwP0l030LVuOFvAAyay3/Omj8efU9NA8AiwOoa3UFN+2mdPSIPVedC6YREZ5ockSQ==-----END PKCS7-----
">
</form></html>

<html><form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!">
<img alt="" border="0" src="https://www.paypal.com/en_AU/i/scr/pixel.gif" width="1" height="1">
<input type="hidden" name="encrypted" value="-----BEGIN PKCS7-----MIIHLwYJKoZIhvcNAQcEoIIHIDCCBxwCAQExggEwMIIBLAIBADCBlDCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb20CAQAwDQYJKoZIhvcNAQEBBQAEgYBhCDdop6k26kLjAqxsvHaKkTVZ1ERiLNUJ5kRkzezFko7xX69KYblxLZh7QSG8/8IohinwM6BZ8XLxD4wHRxLSsBHwqKzZRldgPP6K5prTdkLhXuycftr46U20Xa5Yg3qqN4hdCn+5DYLP0kwSI7ihulgp7GP1///mmBDnwvhE6jELMAkGBSsOAwIaBQAwgawGCSqGSIb3DQEHATAUBggqhkiG9w0DBwQIj6wWqSwh0FOAgYiqH2oO60dSZWdY9YNfaIST6vBYm68/v2miPCLnkTX6DIwfUD+kh8uMyaAnhFLgMLFkncVmsaYcNyaFpOtUXYqCibn7PKGvqUKV3x4ABKMfAdww0W3/sFe4JrgNFGcOKS9lQNEIztKc78XpXzX2VTlaoFE/FZJq1GTXWb9+Q+fpQfW+MNfmgap9oIIDhzCCA4MwggLsoAMCAQICAQAwDQYJKoZIhvcNAQEFBQAwgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMB4XDTA0MDIxMzEwMTMxNVoXDTM1MDIxMzEwMTMxNVowgY4xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTEWMBQGA1UEBxMNTW91bnRhaW4gVmlldzEUMBIGA1UEChMLUGF5UGFsIEluYy4xEzARBgNVBAsUCmxpdmVfY2VydHMxETAPBgNVBAMUCGxpdmVfYXBpMRwwGgYJKoZIhvcNAQkBFg1yZUBwYXlwYWwuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDBR07d/ETMS1ycjtkpkvjXZe9k+6CieLuLsPumsJ7QC1odNz3sJiCbs2wC0nLE0uLGaEtXynIgRqIddYCHx88pb5HTXv4SZeuv0Rqq4+axW9PLAAATU8w04qqjaSXgbGLP3NmohqM6bV9kZZwZLR/klDaQGo1u9uDb9lr4Yn+rBQIDAQABo4HuMIHrMB0GA1UdDgQWBBSWn3y7xm8XvVk/UtcKG+wQ1mSUazCBuwYDVR0jBIGzMIGwgBSWn3y7xm8XvVk/UtcKG+wQ1mSUa6GBlKSBkTCBjjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAkNBMRYwFAYDVQQHEw1Nb3VudGFpbiBWaWV3MRQwEgYDVQQKEwtQYXlQYWwgSW5jLjETMBEGA1UECxQKbGl2ZV9jZXJ0czERMA8GA1UEAxQIbGl2ZV9hcGkxHDAaBgkqhkiG9w0BCQEWDXJlQHBheXBhbC5jb22CAQAwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQUFAAOBgQCBXzpWmoBa5e9fo6ujionW1hUhPkOBakTr3YCDjbYfvJEiv/2P+IobhOGJr85+XHhN0v4gUkEDI8r2/rNk1m0GA8HKddvTjyGw/XqXa+LSTlDYkqI8OwR8GEYj4efEtcRpRYBxV8KxAW93YDWzFGvruKnnLbDAF6VR5w/cCMn5hzGCAZowggGWAgEBMIGUMIGOMQswCQYDVQQGEwJVUzELMAkGA1UECBMCQ0ExFjAUBgNVBAcTDU1vdW50YWluIFZpZXcxFDASBgNVBAoTC1BheVBhbCBJbmMuMRMwEQYDVQQLFApsaXZlX2NlcnRzMREwDwYDVQQDFAhsaXZlX2FwaTEcMBoGCSqGSIb3DQEJARYNcmVAcGF5cGFsLmNvbQIBADAJBgUrDgMCGgUAoF0wGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAcBgkqhkiG9w0BCQUxDxcNMDcwMjA1MDgwNjU1WjAjBgkqhkiG9w0BCQQxFgQUUuCFIIkha1Qvp5bcbhrEQxzjIYkwDQYJKoZIhvcNAQEBBQAEgYBM2JteMC0KqY3zwJa+R6iq3tKu0JaPQfHOu/uG3wmX6WKvMiHvd1v87jT9RULxianyAjCVBh+rinFDS7V3gAzcW5lnYLhrRrmsDGqqwiIg6cav3/dSZKHQVfso+7ac5I38BWVuOM42m/tExhoz78X/burm5+ueNFI5NMIn+HsH8g==-----END PKCS7-----
">
</form></html>
/%[img[http://img244.imageshack.us/img244/9546/job2hl5.jpg]]
<html><form action="https://www.paypal.com/cgi-bin/webscr" method="post"><input type="hidden" name="cmd" value="_xclick"><input type="hidden" name="business" value="msgray@symbex.net.au"><input type="hidden" name="item_name" value="For coding TWHelp"><input type="hidden" name="item_number" value="20070417"><input type="hidden" name="no_shipping" value="0"><input type="hidden" name="no_note" value="1"><input type="hidden" name="currency_code" value="AUD"><input type="hidden" name="tax" value="0"><input type="hidden" name="lc" value="AU"><input type="hidden" name="bn" value="PP-DonationsBF"><input type="image" src="https://www.paypal.com/en_US/i/btn/x-click-but21.gif" border="0" name="submit" alt="Make payments with PayPal - it's fast, free and secure!"><img alt="" border="0" src="https://www.paypal.com/en_AU/i/scr/pixel.gif" width="1" height="1"></form></html>%/
<html><div align="center"> <object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/L_aDpmfAzxI"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/L_aDpmfAzxI" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></div></html>
----
{{threecolumns{
University Of Alabama At Birmingham
Birmingham, Alabama,
United States

The Boeing Company	
Saint Louis, Missouri,
United States

Dbs Vickers Securities (s) Pte Ltd
Singapore, Singapore

Deutsche Telekom Ag 
Bendorf, Rheinland-pfalz,
Germany

Emory University
Atlanta, Georgia,
United States

Google
Mountain View, California,
United States

Deutsche Telekom Ag
Großheppach, Baden-wurttemberg,
Germany

Bellsouth.net
Gadsden, Alabama,
United States

Universidade De Aveiro
Aveiro, Portugal

Shaw Communications
Victoria, British Columbia,
Canada

British Telecommunications
Thatcham, Berkshire,
United Kingdom

Deutsche Telekom Ag
Wolnzach, Bayern,
Germany

Shatel Dsl NetworkTehran,
Esfahan,
Iran, Islamic Republic Of

Communication Solutions Ltd.
Nairobi, Nairobi Area,
Kenya

University Of Waterloo 
Waterloo, Ontario,
Canada

The Boeing Company
Chicago, Illinois,
United States

University Of South Bohemia
Ceske Budejovice, Jihocesky Kraj,
Czech Republic

Navy Network Information Center (nnic)
Pensacola, Florida, United States

Fidelity Investments
Boston, Massachusetts,
United States

Bibliothek Fuer Bildungsgeschichtliche Forschung
Berlin, Germany

Infraestructura Red Y Servicios Ip
Barcelona, Catalonia,
Spain

Nokia Group Networks
Europe

Deutsche Telekom Ag
Neuwied, Rheinland-pfalz,
Germany

Chello
Roosendaal, Gelderland,
Netherlands

Imperial College London
London, United Kingdom

Hungarian Telecommunications Company Limited
Kalocsa, Bacs-kiskun,
Hungary

Thales Service
Surrey, United Kingdom
}}}




/***
|''Name:''|''dropTags''|
|''Version:''|0.5 (12-May-2006)|
|''Created by:''|SaqImtiaz|
|''Location:''|http://tw.lewcid.org/#DropTagsMacro|
|''Description:''|provides a drop down list of tags in the current tiddler,<<br>> a replacement for the core tags macro.|
|''Documentation:''|DropTagsMacroDocumentation |
|''Source Code:''|DropTagsMacroSource |
|''Requires:''|~TW2.07|

!About
*provides a drop down list of tags in the current tiddler, a replacement for the core tags macro.

''I recommend using either TaggerPlugin or monkeyTagger, with dropTags and dropTagging in the toolbar:''


!Usage
{{{<<dropTags>>}}} for <<dropTags>>
or {{{<<dropTags 'custom label'>>}}} for <<dropTags 'custom label'>>

!Installation:
*Copy this tiddler to your TW with the systemConfig tag
* copy the following to your ViewTemplate:
#either {{{<div class='tagged' macro='dropTags'></div>}}} to add to next to the tags macro in the viewer area, or
#{{{<div class='toolbar' >
<span style="padding-right:8.75em;" macro='dropTags "current tags: "+config.macros.dropTags.dropdownchar}}'></span>
<span macro='toolbar -closeTiddler closeOthers +editTiddler permalink references jump'></span>
</div>}}}


!History
*May 12th, version 0.5, fixed some nesting bugs, added support for IntellitaggerPlugin.
*May 3rd, version 0.41, made compatible with CustomPopups.

!Source Code
***/
//{{{
config.macros.dropTags={};
config.macros.dropTags.dropdownchar = (document.all?"▼":"▾"); // the fat one is the only one that works in IE
config.macros.dropTags.handler = function(place,macroName,params,wikifier,paramString,tiddler)
{
    var arrow=config.macros.dropTags.dropdownchar;
    var droptaglabel= (params[0] && params[0] !='.')? params[0]+arrow: 'tags'+arrow;
    var droptagtooltip="current tags for this tiddler";

    var droptag = function(e){
        if (!e) var e = window.event;
        var popup = Popup.create(this);
        var lingo = config.views.wikified.tag;
        if (tiddler.tags.length==0)
           createTiddlyElement(popup,"li",null,"listTitle",lingo.labelNoTags);
        else
            for(var t=0; t<tiddler.tags.length; t++)
                    {createTagButton(createTiddlyElement(popup,"li"),tiddler.tags[t],tiddler.title);}
        if (version.extensions.IntelliTaggerPlugin)
            {createTiddlyElement(createTiddlyElement(popup,"li"),"hr");
             abego.IntelliTagger.createEditTagsButton(tiddler, createTiddlyElement(popup,"li"),"[IntelliEdit]","Edit tags with Intellitagger");}
        Popup.show(popup,false);
        e.cancelBubble = true;
        if (e.stopPropagation)
           e.stopPropagation();
        return(false);
        };
    createTiddlyButton(place,droptaglabel,droptaglabel,droptag,"button","dropTagBtn");
};

setStylesheet(
".popup .highlight{background: #fe8; color:#000;}\n"+
"#nestedtagger {background:#abf; border: 1px solid #0331BF;}\n"+
 "",
"DropTagsStyles");

if (!config.macros.tagger)
   window.onClickTag=function(e){
	if (!e) var e = window.event;
	var theTarget = resolveTarget(e);

        var nested = (!isNested(theTarget));
        if ((Popup.stack.length > 1)&&(nested==true)) {Popup.removeFrom(1);}
        else if(Popup.stack.length > 0 && nested==false) {Popup.removeFrom(0);};

        var theId = (nested==false)? "popup" : "nestedtagger";
        var popup = createTiddlyElement(document.body,"ol",theId,"popup",null);
        Popup.stack.push({root: this, popup: popup});

	var tag = this.getAttribute("tag");
	var title = this.getAttribute("tiddler");
	if(popup && tag)
		{
		var tagged = store.getTaggedTiddlers(tag);
		var titles = [];
		var li,r;
		for(r=0;r<tagged.length;r++)
			if(tagged[r].title != title)
				titles.push(tagged[r].title);
		var lingo = config.views.wikified.tag;
		if(titles.length > 0)
			{
			var openAll = createTiddlyButton(createTiddlyElement(popup,"li"),lingo.openAllText.format([tag]),lingo.openAllTooltip,onClickTagOpenAll);
			openAll.setAttribute("tag",tag);
			createTiddlyElement(createTiddlyElement(popup,"li"),"hr");
			for(r=0; r<titles.length; r++)
				{
				createTiddlyLink(createTiddlyElement(popup,"li"),titles[r],true);
				}
			}
		else
			createTiddlyText(createTiddlyElement(popup,"li",null,"disabled"),lingo.popupNone.format([tag]));
		createTiddlyElement(createTiddlyElement(popup,"li"),"hr");
		var h = createTiddlyLink(createTiddlyElement(popup,"li"),tag,false);
		createTiddlyText(h,lingo.openTag.format([tag]));
		}
	Popup.show(popup,false);
	e.cancelBubble = true;
	if (e.stopPropagation) e.stopPropagation();
	return(false);
   }

if (!window.isNested)
   window.isNested = function(e) {
        while (e != null) {
                var contentWrapper = document.getElementById("contentWrapper");
                if (contentWrapper == e) return true;
                e = e.parentNode;
                }
        return false;
   };

config.shadowTiddlers.DropTagsMacroDocumentation="The documentation is available [[here.|http://tw.lewcid.org/#DropTagsMacroDocumentation]]";

config.shadowTiddlers.DropTagsMacroSource="The documentation is available [[here.|http://tw.lewcid.org/#DropTagsMacroDocumentation]]";

//}}}
!!!<<gradient horiz #fc3 #ffffff>>&nbsp;DualEditToolbars ^^<<tiddler CloseThisOpen with: FormattingThePage  '« back'>>|<<toolbar editTiddler>>» ^^>>
''Have an editing toolbar at the bottom of your tiddlers as well as the top.''

Your EditTemplate will look something like this: (it is found in the shadow tiddlers under ''Tabs>More>Shadowed'' in the right sidebar column.)
<<<
{{{
<div class='toolbar' macro='toolbar +jump +top +saveTiddler -cancelTiddler deleteTiddler autosizeEditor'</div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div class="editLabel">.</div>
<div class='editor' macro='edit tags'></div>
<div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<div class='editor' macro='edit text'></div><span macro='resizeEditor'></span>
}}}
<<<

Simply copy the top line of code i.e. toolbar <div ...> and paste it in as the bottom line of code as well.  This should give you an edit toolbar at both the top and bottom of the edit screen.
<<<
{{{
<div class='toolbar' macro='toolbar +jump +top +saveTiddler -cancelTiddler deleteTiddler autosizeEditor'</div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div class="editLabel">.</div>
<div class='editor' macro='edit tags'></div>
<div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<div class='editor' macro='edit text'></div><span macro='resizeEditor'></span>
<div class='toolbar' macro='toolbar +jump +top +saveTiddler -cancelTiddler deleteTiddler autosizeEditor'</div>
}}}
<<<
!!!End
{{tablecenter{
<<forEachTiddler 
where
'tiddler.title.toLowerCase().startsWith("e")'
sortBy '(tiddler.title.toLowerCase())' 
 ascending
write
 '"|bgcolor:#fcf; "+(index+1)+"|[["+tiddler.title+"]]| "+tiddler.text.length+"|"+tiddler.tags+"|bgcolor:#fcf;"+tiddler.modified.formatString("YYYY.0MM.0DD")+"|\n"'
 begin '"|sort &raquo;| Title | Size | Tags |Modified|h\n"'
>>
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[EditASpecificTiddler]]^^<<tiddler CloseThisOpen with: FormattingText  '« back'>>|<<toolbar editTiddler>>» ^^>>

<script label="edit">
   story.displayTiddler(null,'TiddlerName',2);
</script>

''Code''
{{{
<script label="edit">
   story.displayTiddler(null,'TiddlerName',2);
</script>
}}}
<script label="edit a tiddler">
   var title=prompt("Enter the title of a tiddler to edit (case sensitive)");
   while (title && title.length && !store.tiddlerExists(title)) {
      displayMessage("The tiddler '%0' doesn't exist".format([title]));
      var title=prompt("Please enter a tiddler title",title);
   }
   if (!title||!title.length) return; /* cancelled by user */
   story.displayTiddler(null,title,2);
</script> 
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[EditEmbeddedTiddler]]^^<<tiddler CloseThisOpen with: FormattingText  '« back'>>|<<toolbar editTiddler>>» ^^>>
''This macro allows you to open an embedded/nested (transcluded) tiddler for editing.  ''

Just put this in a tiddler. It will show the contents of tiddler ''~LoremIpsum'' and place an edit button at the right right of the contents.
{{{
{{toolbar floatright{<<editTiddler LoremIpsum edit>> &nbsp;}}}<<tiddler LoremIpsum>>
}}}

''Put this macro in a tiddler and tag it systemConfig.''
{{{
config.macros.editTransclude = {
	layout: "{{toolbar floatright{<<editTiddler [%0] edit>> &nbsp; }}}<<tiddler [%0]>>",
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var msg = config.macros.editTransclude.layout.format([params[0]]);
		wikify(this.msg,place);
	}
}

}}}
config.macros.editTransclude = {
	layout: "{{toolbar floatright{<<editTiddler [%0] edit>> &nbsp; }}}<<tiddler [%0]>>",
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var msg = config.macros.editTransclude.layout.format([params[0]]);
		wikify(this.msg,place);
	}
}

<div class='toolbar' macro='toolbar jump top +saveTiddler -cancelTiddler deleteTiddler autosizeEditor'</div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div class="editLabel">.</div>
<div class='editor' macro='edit tags'></div>
<div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser'></span></div>
<div class='editor' macro='edit text'></div><span macro='resizeEditor'></span>



/***
!!!EditWelcomeStyle /%==================================================%/
***/



#tiddlerWelcome .viewer .tabContents {
background: transparent;
border-top: 1px solid #999;
border-right: 0px solid #999;
border-bottom: 0px solid #999;
border-left: 0px solid #999;
}

#tiddlerWelcome .viewer .tabSelected {  
        background:#fcf;
	color: #C06;
}

#tiddlerWelcome .title {visibility: hidden; }

/%#tiddlerWelcome .toolbar { visibility: hidden; }%/

#tiddlerWelcome .toolbar  {color: #fff;}
#tiddlerWelcome .toolbar a {color: #fff;}

#tiddlerWelcome ol { list-style-type: decimal }


#tiddlerWelcome .viewer {
        background: white;
        border:0px solid #F6F;
	padding-left: 0.8em;
        padding-right: 0.8em;
	padding-top: 0.5em;
        -moz-border-radius: 1em;
        position:relative;
        /%top: -4em; %/
}



#tiddlerWelcome .viewer a {
color:#04b;
text-decoration:none;
}

!!!<<gradient horiz #fc3 #fff>>&nbsp;[[Editing]]^^<<tiddler CloseThisOpen with: FormattingTiddlers  '« back'>>|<<toolbar editTiddler>>» ^^>>

''Note: this script can be used to __create__ new tiddlers as well as __edit__ existing tiddlers.''

<script label="edit a tiddler">
    var title=prompt("Enter a tiddler title");
    if (!title||!title.length) return; /* cancelled by user */
    story.displayTiddler(null,title,2);
</script>
{{{
<script label="edit a tiddler">
    var title=prompt("Enter a tiddler title");
    if (!title||!title.length) return; /* cancelled by user */
    story.displayTiddler(null,title,2);
</script>
}}}
''To limit it to only editing __existing tiddlers__ write:''

<script label="edit a tiddler">
   var title=prompt("Please enter a tiddler title");
   while (title && title.length && !store.tiddlerExists(title)) {displayMessage("The tiddler '%0' doesn't exist".format([title]));
      var title=prompt("Please enter a tiddler title",title);
   }
   if (!title||!title.length) return; /* cancelled by user */
   story.displayTiddler(null,title,2);
</script>
{{{
<script label="edit a tiddler">
   var title=prompt("Please enter a tiddler title");
   while (title && title.length && !store.tiddlerExists(title)) {displayMessage("The tiddler '%0' doesn't exist".format([title]));
      var title=prompt("Please enter a tiddler title",title);
   }
   if (!title||!title.length) return; /* cancelled by user */
   story.displayTiddler(null,title,2);
</script>
}}}

The 'while' loop will repeatedly ask for another title until you
either enter one that exists, or press the cancel button.  By default,
the prompt box will contain the last title you entered so it is easy
to modify the input and try again (in case you simply made a typo the
first time) 
''The options under the options slider and in AdvancedOptions are stored in browser cookies.'' So if you sometimes lose your cookies or you are working on your ~TiddlyWiki on several computers then it can be tiresome to have to enter your options time and time again.

This page explains how you can set the default options in your ~TiddlyWiki once and for all.  The way it's done is to create your own little "plugin" that contains some javascript code to set the default options.

!!!!!A small example
For example, say you always wanted ~AutoSave to be switched on.

* Create a new tiddler.
* Give it some appropriate name, for example "~ConfigTweaks" or "~SetDefaultOptions".
* Add the following line:

{{{ config.options.chkAutoSave = true;}}}

* Give the tiddler a tag of {{{systemConfig}}}
* Click Done to save the tiddler and click 'save changes' to save your ~TiddlyWiki.

Now, once you save and reload your ~TiddlyWiki, ~AutoSave will default to "on". You can still switch off ~AutoSave with the normal checkbox, and your browser will remember that in a cookie, but you've changed the default, so if you use a different computer, or your browser loses it's cookies, ~AutoSave will be "on".

!!!!!Set multiple options
You can set multiple options in your ~SetDefaultOptions tiddler.  This example sets my user name to ~MisterT, switches off backups, switches on auto-saving and switches off the read only over http option:
{{{
 config.options.txtUserName = "MisterT";  // instead of "YourName"
 config.options.chkHttpReadOnly = false;  // allow edit buttons when viewed over http
 // options for saving..
 config.options.chkSaveBackups = false;   // don't do backups
 config.options.chkAutoSave = true;       // AutoSave whenever I edit
}}}
You can see that many options are set to either true or false.  Some options, like txtUserName, should be set to a string in "double quotes".

This example also shows that you can add comments to the tiddler using two backslashes{{{//}}}.  Anything that follows two slashes, up to the end of the line, will be ignored.

!!!!!Options that can be set
This list shows all the options available in ~TiddlyWiki 2.1.x, and shows their defaults.  Later versions might use other options. You can see what they all are by doing a "view source" on your ~TiddlyWiki an scrolling down about a page until you see {{{config.options = {}}}
{{{
 config.options.chkRegExpSearch        = false;         // default false
 config.options.chkCaseSensitiveSearch = false;         // default false
 config.options.chkAnimate             = true;          // default true
 config.options.txtUserName            = "YourName";    // default "YourName"
 config.options.chkSaveBackups         = true;          // default true
 config.options.chkAutoSave            = false;         // default false
 config.options.chkGenerateAnRssFeed   = false;         // default false
 config.options.chkSaveEmptyTemplate   = false;         // default false
 config.options.chkOpenInNewWindow     = true;          // default true
 config.options.chkToggleLinks         = false;         // default false
 config.options.chkHttpReadOnly        = true;          // default true
 config.options.chkForceMinorUpdate    = false;         // default false
 config.options.chkConfirmDelete       = true;          // default true
 config.options.chkInsertTabs          = false;         // default false
 config.options.txtBackupFolder        = "";            // default ""
 config.options.txtMainTab             = "tabTimeline"; // default "tabTimeline"
 config.options.txtMoreTab             = "moreTabAll";  // default "moreTabAll"
 config.options.txtMaxEditRows         = "30";          // default "30"
 config.options.chkAnimate             = false;         // default true
}}}
!!!!!Cookies still count
Note that any cookies set in your brower will over-ride these settings. These settings are only used when there are no cookies set. So to test properly you need to clear all your browser cookies (or just the applicable ones if you know how to do that), then re-open your ~TiddlyWiki.


Source: [[Editing Changing default options - TiddlyWikiGuides|http://tiddlywikiguides.org/index.php?title=Changing_default_options&action=edit]]
<<tabs "" [[Intro ]] "tooltip 1" [[EditingAndSavingIntro]]  [[Editing]] "" [[tiddler two]]  [[Saving]] "" [[Tiddler three]] [[BackingUp]] "" [[Tiddler four]] >>
!!!<<gradient horiz #fc3 #fff>>&nbsp;EditingAndSavingIntro^^<<tiddler CloseThisOpen with: EditingAndSaving  '« back'>>|<<toolbar editTiddler>>» ^^>>

@@color:#00c;''~TiddlyWikis''@@ are used on both online servers and on a drive on your local computer.  Therefore there are separate requirements and procedures for each.

|width:270px;<<tiddler ./online>>Therefore there are separate requirements and procedures for each.|width:50%;<<tiddler ./local>>|
|borderless|k


|width:270px;<<tiddler ./online>>Therefore there are separate requirements and procedures for each.|width:570px;<<tiddler ./local>>|
|borderless|k

|width:50%;<<tiddler ./online>>Therefore there are separate requirements and procedures for each.|width:50%;<<tiddler ./local>>|
|borderless|k





<part online hidden>
!!!Local Computer

</part>

<part local hidden>
!!!Online Server
~HideEditFeaturesOverHttp

</part>
<script>
/*<![CDATA[*/

/***********************************************
* Encrypt Email script- Please keep notice intact
* Tool URL: http://www.dynamicdrive.com/emailriddler/
* **********************************************/
<!-- Encrypted version of: tiddlywikihelp [at] *****.***.** //-->

var emailriddlerarray=[116,105,100,100,108,121,119,105,107,105,104,101,108,112,64,121,97,104,111,111,46,99,111,109,46,97,117]
var encryptedemail_id69='' //variable to contain encrypted email 
for (var i=0; i<emailriddlerarray.length; i++)
 encryptedemail_id69+=String.fromCharCode(emailriddlerarray[i])

document.write('<a href="mailto:'+encryptedemail_id69+'?subject=From TW Help Page">Email Us</a>')

/*]]>*/
</script>
!!!<<gradient horiz #fc8 #ffffff>>&nbsp;[[Embed|Embed]]&nbsp;^^<<tiddler CloseThisOpen with: WhatsInATiddler  '«« back'>>|^^^^<<tiddler CloseThisOpen with: FormattingTiddlers  '« back'>>|<<toolbar editTiddler>>» ^^>>
----
*[[Test your computer and web browser for all major media plugins here.|http://services.tacc.utah.edu/mphc/]]
----
[img[http://img241.imageshack.us/img241/1678/playerbadgesza0.jpg][http://services.tacc.utah.edu/mphc/]]
!!!<<gradient horiz #abf #fff>>&nbsp;Example Media Player>>
Embedded Media Player 
@@color:#C06;''&raquo; &raquo;''@@+++[Play Streaming Radio]...
<html><embed type="video/x-ms-asf" id="player_FF" name="player_FF" displaysize="4" autosize="0"
  bgcolor="white" showcontrols="true" showtracker="1" showdisplay="1" showstatusbar="1" videoborder3d="0" width="300" height="142" src="http://www.abc.net.au/streaming/classic/classicfm.asx" autostart="true" designtimesp="5311" loop="false" volume="100"></embed></html>
===

@@color:#C06;''&raquo; &raquo;''@@@@position:relative;+++^35em^[See the code]
{{{<html><embed type="video/x-ms-asf" id="player_FF" name="player_FF" displaysize="4" autosize="0"
  bgcolor="white" showcontrols="true" showtracker="1" showdisplay="1" showstatusbar="1" videoborder3d="0" width="300" height="142" src="http://www.abc.net.au/streaming/classic/classicfm.asx" autostart="true" designtimesp="5311" loop="false" volume="100"></embed></html>}}}
===@@

!!!<<gradient horiz #abf #fff>>&nbsp;Example Flash Player>>
''You can embed'' an object e.g. Flash player like ~YouTube in a tiddler

Link it with a graphic
~~[img[http://img182.imageshack.us/img182/4135/videotextul4.gif][DoveBeauty]]~~ or +++[+Slide down an example here]...
<<tiddler DoveBeauty>>
===

+++[+Play another]...
<<tiddler [[Capacitor Replacement Tutorial]]>>
===

+++[+Play and another]...
<<tiddler Engineer>>
===
!!!!!<<gradient horiz #abf #fff>>&nbsp;Code>>
{{{<html><div align="center"> <object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/L_aDpmfAzxI"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/L_aDpmfAzxI" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></div></html>}}}
----
You should be able to simply replace the URLs in the above code with the URL of your choice.
----
!!!!!<<gradient horiz #abf #fff>>&nbsp;End of embed>>
/%
|Name|EmbedTiddlers|
|Source|http://www.TiddlyTools.com/#EmbedTiddlers|
|Version|1.2.2|
|Author|Eric Shulman - ELS Design Studios|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|script|
|Requires|InlineJavascriptPlugin|
|Overrides||
|Description|transclude a list of tiddlers in a specific order|

usage:
   <<tiddler EmbedTiddlers with: "TiddlerName [[TiddlerName with spaces]] TiddlerName ...">>
or
   <<tiddler EmbedTiddlers with: @TiddlerName>>
or
   <<tiddler EmbedTiddlers with: =tagValue sortby>>

where
	@TiddlerName
		specifies a //separate// tiddler containing the space-separated,
		bracketed list of tiddlers to transclude (e.g., DefaultTiddlers)
	=tagValue
		embeds all tiddlers tagged with the indicated value
	sortby (optional - default is sort by tiddler title)
		sort tagged tiddlers by any tiddler field.  Use "+" or "-" prefix
		to indicate sort direction (ascending/descending), e.g., "-modified"
		sorts by tiddler modification date, most recent first

Note: if MatchTagsPlugin is installed, you can use FULL BOOLEAN LOGIC EXPRESSIONS
in place of the "tagValue" (following the leading "=").  However, because the boolean
expression will contain spaces, it MUST be enclosed in [[...]], like this:

<<tiddler EmbedTiddlers with: [[=settings AND NOT systemConfig]]>>

%/<script>
	var list='$1';
	var sortby='title'; if ('$2'!='$'+'2') sortby='$2';
	var tids=[];
	if (list.substr(0,1)=='=') {
		var fn=store.getMatchingTiddlers||store.getTaggedTiddlers;
		var tagged=store.sortTiddlers(fn.apply(store,[list.substr(1)]),sortby);
		for (var t=0; t<tagged.length; t++) tids.push(tagged[t].title);
	} else {
		if (list.substr(0,1)=='@') list=store.getTiddlerText(list.substr(1),'');
		var tids=list.readBracketedList();
	}
	var out='';
	for (var i=0; i<tids.length; i++) out+='<<tiddler [['+tids[i]+']]>>';
	return out;
</script>
{{borderless{
|<html><a href="javascript:;" onclick="var tid=story.findContainingTiddler(this); if (tid) story.refreshTiddler(tid.getAttribute('tiddler'),null,true); return false;">refresh</a></html>|vertical-align:bottom;<<toolbar fullscreen>>|<<toggleSideBar>>||vertical-align:bottom;[[Open in a new window|http://www.symbex.net.au/Wiki/frenchwiki.htm]]&nbsp;&raquo;|

}}}<html><table width="96%" style="border:none;margin:1px;background:transparent;clear:both;"><iframe  id="threeflags" name="threeflags"  src="http://www.symbex.net.au/Wiki/threeflags.htm" width="100%" height="110" scrolling="no" frameborder="0" allowtransparency style="border:none;"></iframe></table></html>

/%file:///D:\Wiki\frenchwiki.htm%/
{{borderless{
|<html><a href="javascript:;" onclick="var tid=story.findContainingTiddler(this); if (tid) story.refreshTiddler(tid.getAttribute('tiddler'),null,true); return false;">refresh</a></html>|vertical-align:bottom;<<toolbar fullscreen>>|<<toggleSideBar>>||vertical-align:bottom;[[Open in a new window|http://www.symbex.net.au/Wiki/frenchwiki.htm]]&nbsp;&raquo;|

}}}<html><table width="96%" style="border:none;margin:1px;background:transparent;clear:both;"><iframe  id="threeflags" name="threeflags"  src="http://www.symbex.net.au/Wiki/threeflags.htm" width="100%" height="110" scrolling="no" frameborder="0" allowtransparency style="border:none;"></iframe></table></html>

/%file:///D:\Wiki\frenchwiki.htm%/
{{borderless{
|vertical-align:bottom;<<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;<<tiddler ./hide>>|
<script>
document.write(unescape('%3C%68%74%6D%6C%3E%3C%64%69%76%20%61%6C%69%67%6E%3D%22%63%65%6E%74%65%72%22%3E%3C%69%66%72%61%6D%65%20%73%72%63%20%3D%22%68%74%74%70%3A%2F%2F%77%77%77%2E%61%62%63%2E%6E%65%74%2E%61%75%2F%72%6E%2F%6F%63%6B%68%61%6D%73%72%61%7A%6F%72%2F%64%65%66%61%75%6C%74%2E%68%74%6D%22%20%77%69%64%74%68%3D%22%31%30%30%25%22%20%61%6C%69%67%6E%3D%22%63%65%6E%74%65%72%22%20%68%65%69%67%68%74%3D%22%36%30%30%22%3E%3C%2F%69%66%72%61%6D%65%3E%3C%2F%64%69%76%3E%3C%2F%68%74%6D%6C%3E'));
</script>}}}
<part hide hidden>
<script> document.write(unescape('%3C%68%74%6D%6C%3E%3C%61%20%68%72%65%66%3D%22%68%74%74%70%3A%2F%2F%77%77%77%2E%61%62%63%2E%6E%65%74%2E%61%75%2F%72%6E%2F%6F%63%6B%68%61%6D%73%72%61%7A%6F%72%2F%64%65%66%61%75%6C%74%2E%68%74%6D%22%20%74%61%72%67%65%74%3D%22%5F%62%6C%61%6E%6B%22%3E%4F%70%65%6E%20%69%6E%20%61%20%6E%65%77%20%77%69%6E%64%6F%77%3C%2F%61%3E%3C%2F%68%74%6D%6C%3E%0A'));
</script>
</part>
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[Encryption]]^^<<tiddler CloseThisOpen with: FormattingText  '« back'>>|<<toolbar editTiddler>>» ^^>>
''Links to various encryption sources.''
!!!!!encryptionlinks
+++[+Encryption Links]
{{moveovermainmenu{
[[Tiddler Encrypt|http://www.remotely-helpful.com/TiddlyWiki/TiddlerEncryptionPlugin.html]]
[[TiddlyWiki Encrypt|http://visualtw.ouvaton.org/VisualTW.html#EncryptedVaultPlugin]]
''[[TrueCrypt|http://www.truecrypt.org/]]''
[[Encrypt Email Address|http://www.dynamicdrive.com/emailriddler/]]
[[Encrypt HTML|http://www.iwebtool.com/html_encrypter]]
[[eMail-Hivelogic|http://hivelogic.com/enkoder/form]]
[[Clipperz (OnlineSafe)|http://www.clipperz.com/]]
''[[Password Safe|http://passwordsafe.sourceforge.net/]]''
<br><br><br><br>
}}}
===

!end
<html><div align="center"><object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/KaHm1ecBCgw"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/KaHm1ecBCgw" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object></div></html>
<<tabs "" 
[[Intro ]] "" [[EntitiesCodeIntro]] 
[[ASCIITable ]] "" [[ASCIITable]] 
[[ASCII-HTMLTable ]] "" [[ASCII-HTMLTable]] 
[[Braille ]] "" [[Braille]] 
[[GreekHtmlEntities ]] "" [[GreekHtmlEntities]] 
[[HtmlEntities ]] "" [[HtmlEntities]] 
[[ LatinHtmlEntities ]] "" [[LatinHtmlEntities]] 
[[MathHtmlEntities ]] "" [[MathHtmlEntities]] 
[[PhoneticAlphabet ]] "" [[NATO phonetic alphabet]] 
[[UTF-8 ]] "" [[UTF-8]]  
[[UnicodeResources ]] "" [[UnicodeResources]] 
[[URL_Encoding ]] "" [[URL_Encoding]]  
[[GeometricShapes ]] "" [[GeometricShapes]]
>>

!!!<<gradient horiz #fc3 #ffffff>>[[Intro|EntitiesCodeIntro]]^^<<tiddler CloseThisOpen with: Entities-Codes  '« back'>>|<<toolbar editTiddler>>» ^^>>
These tabs contain many of the codes for non-keyboard characters such as :
*ASCII
*Greek {&omega; &psi;}
*Html {&pound; &euro;}
*Latin {&auml; &atilde; &aelig;} 
*Mathematics {&sum; &asymp; &le;}
!!!!&nbsp;Code
{{{
*Greek {&omega; &psi;}
*Html {&pound; &euro;}
*Latin {&auml; &atilde; &aelig;} 
*Mathematics {&sum; &asymp; &le;}
}}}
*[[Character entities defined in HTML 4.01|http://www.eki.ee/letter/chardata.cgi?HTML4=1]] (decimal and ~UTF-8 values)

<html><br>This WebRing Community's Navbar:<table border="0" cellpadding="1" cellspacing="0" width="250"><tbody><tr>    <td align="center" nowrap="nowrap" valign="middle" width="1%"><a href="http://B.webring.com/t/The-Esoteric-Programming-Languages-Ring" target="_top"><img src="http://img1.webring.com/logo3.gif" alt="The Esoteric Programming Languages Ring" border="0"></a><font color="" face="arial" size="-2"><br>© 2007 <font color=""><a href="http://www.webring.com">WebRing Inc.</a></font></font></td><td nowrap="nowrap"><table border="0" cellpadding="0" cellspacing="2" width="100%"><tbody><tr><td nowrap="nowrap"><font color=""><b>The Esoteric Programming Languages Ring</b></font></td></tr><tr><td colspan="2" nowrap="nowrap"><font color="" size="-1"><b><a href="http://B.webring.com/go?ring=esolang;id=1;prev" target="_top"><font color="">&lt;&lt; Prev</font></a></b>|<a href="http://B.webring.com/t/The-Esoteric-Programming-Languages-Ring" target="_top"><font color="">Ring Hub</font></a>|<a href="http://B.webring.com/wrman?ring=esolang;addsite" target="_top"><font color="">Join</font></a>|<b><a href="http://B.webring.com/go?ring=esolang;id=1;next" target="_top"><font color="">Next &gt;&gt;</font></a></b></font></td></tr><tr><form method="post" action="http://B.webring.com/cgi-bin/Hubsearch?ringsearch"></form><td colspan="2" nowrap="nowrap"><input name="query" size="18" style="height: 19px;" type="text"><input name="Submit" value="Search" style="height: 19px;" type="submit"><input name="ring" value="esolang" type="hidden"></td></tr>
</tbody></table></td></tr></tbody></table></html>




<html><a href="javascript:;" onclick="var tid=story.findContainingTiddler(this); if (tid) story.refreshTiddler(tid.getAttribute('tiddler'),null,true); return false;">refresh</a></html>

<html><table width="96%" style="border:none;margin:1px;background:transparent;clear:both;"><iframe id="MagicLastUpdate" src="file:///I:\TiddlySpot\TiddlyWiki2.1\LastUpdate.htm" width="100%" height="0" scrolling="no" frameborder="0" allowtransparency style="border:none;"></iframe></table></html>
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[ExperimentalWikify]]^^<<tiddler CloseThisOpen with: FormattingText  '« back'>>|<<toolbar editTiddler>>» ^^>>

<<wikify [[This tiddler is: %0 using %1 bytes (last author: %2)]] title {{tiddler.text.length}} modifier>>
<<wikify [[The source of this plugin is: %0]] 'here::Source'>>
<<wikify [[The tiddler has been changed %0 times]] changecount@here>>
<<wikify [[The Primary Mid color is: @@background:%0;%0@@]] 'ColorPalette::PrimaryMid'>>
<<wikify [[The current user is: %0]] {{config.options.txtUserName}}>>
<<wikify [[The current Backup Folder is: %0]] {{config.options.txtBackupFolder}}>>
<<wikify [[The current WhatsInATiddler tab is:%0]] {{config.options.chkWhatsInATiddler}}>>
<<wikify [[The current FormattingThePage @@color:#C06;tab is:@@%0]] {{config.options.chkFormattingThePage}}>>
<<wikify [[The current NavigationWithTW tab is:%0]] {{config.options.chkNavigationWithTW}}>>
<<wikify [[The current FormattingText tab is:%0]] {{config.options.chkFormattingText}}>>
<<wikify [[The current Entities-Codes tab is:%0]] {{config.options.chkEntitiesCodes}}>>
<<wikify [[The current HowToUseLinks tab is:%0]] {{config.options.chkHowToUseLinks}}>>
<<wikify [[The current MacrosBuiltin tab is:%0]] {{config.options.chkMacrosBuiltin}}>>
<<wikify [[The current MacrosOther tab is:%0]] {{config.options.chkMacrosOther}}>>
<<wikify [[The current MacrosOther tab is:%0 %1 %2 %3 %4 %5 %6]] title {{tiddler.text.length}}   {{config.options.txtBackupFolder}} {{store.getTiddlerText('BlankTable')}} {{config.macros.search.handler}}>>







!!!<<gradient horiz #fc3 #fff>>&nbsp;Built-in slider method>>
<<slider "CookieName" "Folder1" "Folder1" "tooltip">>
<<slider "CookieName2" "Folder2" "Folder2" "tooltip">>
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[TableSliderTest|ExplorerSliderTest]]>>
|width:45em; !File Explorer |>|>|
|padding-left:1em;Name | Date| Size|
|<<tiddler ./file1>>| 07.07.07| 1024kb|
|<<tiddler ./file2>>| 08.07.07| 230kb|
<part file1 hidden>
+++[Folder1]

|Name| Date| Size|
|File1| 08.07.07| 230kb|
|borderless|k
===
</part>
<part file2 hidden>
+++[Folder2]

|Name| Date| Size|
|File2| 08.07.09| 1230kb|
|File3| 18.07.09| 230kb|
|File4| 20.07.09| 3230kb|
|borderless|k
===
</part>
!!!<<gradient horiz #abf #fff>>&nbsp;Code>>
To see the code click<<toolbar editTiddler>>

!!!<<gradient horiz #fc3 #fff>>&nbsp;[[ExternalLinkButton]]^^<<tiddler CloseThisOpen with: HowToUseLinks  '« back'>>|<<toolbar editTiddler>>» ^^>>
Also see: TargetingLinks

<html><input type='button' value='SydneyTV' onclick='window.open("http://www.yourtv.com.au/guide/?action=tonight&region_id=73","_blank")'></html> 

!!!!!<<gradient horiz #fcb #fff>>&nbsp;Code for Button>>
{{{
<html><input type='button' value='SydneyTV' onclick='window.open("http://www.yourtv.com.au/guide/?action=tonight&region_id=73","_blank")'></html> 
}}}
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[ExternalTiddlers]]^^<<tiddler CloseThisOpen with: WhatsInATiddler  '« back'>>|<<toolbar editTiddler>>» ^^>>

''The following plugins allow loading tiddlers from external sources.''  They provide limited support for on-demand loading. They vary in functionality so check the documentation included with each.
 
[[IncludePlugin|http://tiddlywiki.abego-software.de/#IncludePlugin]]
[[LoadTiddlersPlugin|http://www.tiddlytools.com/#LoadTiddlersPlugin]]
[[ExternalTiddlersPlugin|http://www.tiddlytools.com/#ExternalTiddlersPlugin]] 
[[MasterIncludesPlugin|http://svn.tiddlywiki.org/Trunk/contributors/FND/plugins/MasterIncludesPlugin/]] somewhat unpolished

{{tablecenter{
<<forEachTiddler 
where
'tiddler.title.toLowerCase().startsWith("f")'
sortBy '(tiddler.title.toLowerCase())' 
 ascending
write
 '"|bgcolor:#fcf; "+(index+1)+"|[["+tiddler.title+"]]| "+tiddler.text.length+"|"+tiddler.tags+"|bgcolor:#fcf;"+tiddler.modified.formatString("YYYY.0MM.0DD")+"|\n"'
 begin '"|sort &raquo;| Title | Size | Tags |Modified|h\n"'
>>
!!!<<gradient horiz #fc3 #fff>>&nbsp;FFKeyStrokes^^<<tiddler CloseThisOpen with: KeyStrokes  '« back'>>|<<toolbar editTiddler>>» ^^>>
The following Ctrl- characters are already used by FireFox:

A - select all
B - show bookmarks
C - copy
D - bookmark this page
E - moves focus to GoogleSearch in toolbar
F - Find
G - Find Again
H - show history
I - (shift) DOM Inspector
J - download manager
K - web search
L - open location
M
N - new window
O - open file
P - print
Q
R - reload
S - save page as
T - new tab
U - view page source
V - paste
W - close tab (shift - close window)
X - cut
Y - redo
Z - undo
ctrl-0, ctrl-+ ctrl-minus - adjust text size

In addition, various FireFox plugins (such as Firebug) also assign key
bindings to ctrl+shift+letter and, because these plugins are
implemented at a browser-native level (as opposed to TW javascript),
their key bindings are likely to take precedent, even if you could
capture the keystrokes in TW. 
{{borderless{
|vertical-align:bottom;<<toolbar fullscreen>><<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;Open in a new window[img[Open outside link in a new window|http://img229.imageshack.us/img229/1687/extlink7226466sx5.gif][http://www.tiddlytools.com/faq.html]]|
----
<html><div align="center"><iframe  src ="http://www.tiddlytools.com/faq.html" width="100%" align="center" height="600" scrolling="auto" frameborder="0" allowtransparency style="border:none;"></iframe></div></html>}}}
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[FavIcon]]^^<<tiddler CloseThisOpen with: FormattingThePage  '« back'>>|<<toolbar editTiddler>>» ^^>>

Would you like to display your own icon [img[http://img99.imageshack.us/img99/1614/kittyiconrc9.jpg]] on the browser address bar and browser tabs when visitors view your web pages?

Now it's easy to create icons and marquees for your web pages with ~FavIcon from Pics. Simply select a picture, logo or other graphic (of any size/resolution) for the "Source Image" then...

#Go here @@color:#C06;''&raquo; &raquo;'' @@ <html><a href="http://www.chami.com/html-kit/services/favicon/" target="_blank"
>~FavIcon from Pics</a></html> to make your ''~FavIcon'' from the picture of your choice.
#Then add the following code containing the link to your new ''~FavIcon'' to the Shadow Tiddler MarkupPreHead 
{{{<link rel="shortcut icon" href="http://LinkToYourFavIcon.jpg">}}}
!!!End



{{tablecenter{
|>|>|>|>| !February 2007 Statistics |
|&nbsp;|''Page Loads'' |''Unique Visitors''|''First Time Visitors''| ''Returning Visitors''|
|Total 	| 4,050| 3,319| 2,432| 887|
|Average| 145| 119| 87| 32|
|>|>|>|>|<<tiddler ./feb>>|
}}}
<part feb hidden>
*''~StatsCounter Hits for the month of'': @@color:#c06;06 Feb <<sparkline 0 0 0 0 0 0 0 0 16 0 150 0 162 0 157 0 194 0 146 0 193 0 257 0 216 0 320 0 161 0 164 0 102 0 190 0 161 0 159 0 205 0 168 0 181 0 96 0 144 0 210 0 203 0 >> 28 Feb 2007@@
**[Feb 24-min (96) ] 
**[Feb 15-max (320)] 
**grand total (''4050'') as of @@color:#04f; ''&raquo;'' 28.02.07 16:14@@
</part>
|<<tiddler ./refreshit>>|@@color:#C06;''&raquo; &raquo;'' @@|<<tiddler ./randomtid>>|
|borderless|k

<part refreshit hidden>
<script label="I'm feeling lucky">
        var here=story.findContainingTiddler(place);
        if (here)
story.refreshTiddler(here.getAttribute("tiddler"),null,true);
</script> 
</part>

<part randomtid hidden>
<script>
  var tids=store.getTaggedTiddlers("ft");
  if (tids.length)
    return "[["+tids[Math.floor(Math.random()*tids.length)].title+"]]";
</script>
</part>
{{menublueLink {
<html><hide linebreaks>
<form action="http://www.fileinfo.net/extension/" method="post" name="FileInfo" target="_blank">
<tr><td align="center" valign="middle" bgcolor="white"><a href="http://www.fileinfo.net/" target="_blank">Search for File Ext.</a><br/></td></tr>
<tr height="28"><td align="center" valign="middle" nowrap bgcolor="white" height="28"><input type="text" name="extension" size="10" maxlength="30"><img src="http://www.fileinfo.net/images/main/offsite.gif" alt="" width="4" height="4" border="0"><input type="submit" name="submit" value="Go">
</td></tr></form></html>
}}}
{{borderless{
|vertical-align:bottom;<<toolbar fullscreen>><<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://www.fileinfo.net/]]&nbsp;&raquo;|
----
<html><div align="center"><iframe  src ="http://www.fileinfo.net/" width="100%" align="center" height="600" scrolling="auto" frameborder="0" allowtransparency style="border:none;"></iframe></div></html>}}}
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[FireFox Tips]]^^ <<toolbar editTiddler>>» ^^>>
----
<<<
Are you looking for a simple interface to manage per-file privileges in Firefox »
* Get the code and instructions at An interface to manage per-file privileges in Firefox
See http://firefoxprivileges.tiddlyspot.com/

There is a bookmarklet you can drag to your Firefox
toolbar.  It's on the above site but you might not find it.  You can
easily set privileges for any of your ~TiddlyWikis
http://icanhaz.com/firefoxprivileges

''Html code for this bookmarklet link''<html><a href='javascript:void(eval(decodeURIComponent("(function()%250A%257B%250Avar%2520script%253Ddocument.createElement(%2522script%2522)%253B%250Ascript.src%253D%2522http%253A%252F%252Ftrac.tiddlywiki.org%252Fbrowser%252FTrunk%252Fcontributors%252FXavierVerges%252Fplugins%252FFirefoxPrivilegesPlugin.js%253Fformat%253Draw%2522%253B%250Ascript.onload%253Dfunction()%257Bvar%2520b%253Dbackstage%253B%2520var%2520fp%253D%2522firefoxPrivileges%2522%253B%250Avar%2520bt%253DcreateTiddlyButton(b.toolbar%252C%2522security%2522%252Bglyph(%2522downTriangle%2522)%252C%2522%2522%252Cb.onClickTab%252C%2522backstageTab%2522)%253B%250Abt.setAttribute(%2522task%2522%252Cfp)%253Bb.switchTab(fp)%253B%257D%253B%250Adocument.getElementsByTagName(%2522head%2522)%255B0%255D.appendChild(script)%253B%250A%257D)()")))'>~FirefoxPrivileges</a></textarea></html>
<html><textarea cols="60" rows ="3" ><a href='javascript:void(eval(decodeURIComponent("(function()%250A%257B%250Avar%2520script%253Ddocument.createElement(%2522script%2522)%253B%250Ascript.src%253D%2522http%253A%252F%252Ftrac.tiddlywiki.org%252Fbrowser%252FTrunk%252Fcontributors%252FXavierVerges%252Fplugins%252FFirefoxPrivilegesPlugin.js%253Fformat%253Draw%2522%253B%250Ascript.onload%253Dfunction()%257Bvar%2520b%253Dbackstage%253B%2520var%2520fp%253D%2522firefoxPrivileges%2522%253B%250Avar%2520bt%253DcreateTiddlyButton(b.toolbar%252C%2522security%2522%252Bglyph(%2522downTriangle%2522)%252C%2522%2522%252Cb.onClickTab%252C%2522backstageTab%2522)%253B%250Abt.setAttribute(%2522task%2522%252Cfp)%253Bb.switchTab(fp)%253B%257D%253B%250Adocument.getElementsByTagName(%2522head%2522)%255B0%255D.appendChild(script)%253B%250A%257D)()")))'>FirefoxPrivileges</a></textarea></html>

''Bookmarklet code''
<html><textarea cols="60" rows ="15" >(function()
{
var script=document.createElement("script");
script.src="http://trac.tiddlywiki.org/browser/Trunk/contributors/XavierVerges/plugins/FirefoxPrivilegesPlugin.js?format=raw";
script.onload=function(){var b=backstage; var fp="firefoxPrivileges";
var bt=createTiddlyButton(b.toolbar,"security"+glyph("downTriangle"),"",b.onClickTab,"backstageTab");
bt.setAttribute("task",fp);b.switchTab(fp);};
document.getElementsByTagName("head")[0].appendChild(script);
})()</textarea></html>

<<<
----
{{textleft{
@@color(#C06):''Links''@@

<<<
*+++[Better Ad Blocking in FireFox]...
<<tiddler BetterAdBlocking>>
===

*In Firefox 3 the script for loading an HTML page into the sidebar {{{<a href="#" target="_search">}}} has been considered an exploit and is now disabled!
*[[Quicktime/Real/Windows Media Player Issues (Windows)|http://forums.mozillazine.org/viewtopic.php?t=206216]]
*+++[General: speed up your web pages]...
<<tiddler SpeedUpWebPages>>
===

*2008.04 If you're sick of Firefox 2 eating up over a gigabyte of memory only to freeze up and crash, it may be time to move onto Firefox 3. The new version of our favorite browser has seen its fifth and final beta release, and Mozilla says its for testing purposes only. However, the Firefox 3 beta is leaner, meaner, faster, and just plain better than Firefox 2—and don't tell Daddy Mozilla, but even at this early stage, we've found it to be stable enough for full-time use. There are a few ways you can start using Firefox 3 without blowing your browser setup to hell or losing your most important extensions. Here's how. http://tinyurl.com/6699x2
*[[FireFox - Editing configuration|http://kb.mozillazine.org/Editing_configuration]]
*[[Lifehacker Firefox 2 config tweaks|http://www.lifehacker.com/software/firefox-2/geek-to-live-top-firefox-2-config-tweaks-209941.php]]
*~FireFox memory leak
**http://kb.mozillazine.org/Memory_Leak
* reduce memory consumption (using browser.sessionhistory.max_entries)
**http://www.ghacks.net/2007/02/25/reduce-firefox-memory-consumption/
* fixing access keys
**http://jrandomhacker.info/Firefox/how_to_fix_FireFox2_accesskeys
* Firefox Quick Find as it should (and used to) be
**http://mozillalinks.org/wp/2006/10/firefox-quick-search-as-it-should-and-used-to-be/
<<<
@@color(#C06):Tweaks Implemented at ~TWHelp@@
<<<
@@color(#C06):''Fetch only what you click''@@

Fx .6 and up: Firefox has this wacky little feature that downloads pages from links it thinks you may click on pages you view, like the top result on a page of Google results. This means you use up bandwidth and CPU cycles and store history for web pages you may not have ever viewed. Creepy, eh? To stop that madness, set the network.prefetch-next key to false.

   1. Type "about:config" the address bar.
   2. Scroll down to the setting "network.prefetch-next" and set the value to "False".

    * Key: network.prefetch-next
    * Modified Value: false
----
@@color(#C06):''Limit RAM usage''@@

All versions: Goodness knows I've done a good amount of belly-aching about Firefox's voracious appetite for RAM. (It's consistently the most memory-intensive process on both my PC and Mac.) Happily a simple config tweak got Mem Use right back down to a more comfortable number. Along with the previous prefetch mod, set your browser.cache.disk.capacity browser.cache.memory.capacity to a value that fits your total RAM.

    * Key: browser.cache.memory.capacity
    * Modified Value: Depends on your system's total memory. According to Computerworld:

          For RAM sizes between 512BM and 1GB, start with 15000. For RAM sizes between 128MB and 512M, try 5000.

----
@@color(#C06):''Spellcheck''@@
1. Type "about:config" the address bar.
2. Scroll down to the setting
layout.spellcheckDefault = 2 turns on Firefox 2's spell-checking in input fields as well as text areas. 
<<<
@@color(#C06):Other tweaks Implemented  at ~TWHelp@@
<<<
@@color(#C06):''Save RAM''@@
Someone sent me a link to an interesting ~FireFox tweak that could save
~FireFox users a LOT of working memory overhead.

# Type 'about:config' in Firefox address bar and press Enter.
# Right click in the page and select 'New > Boolean'.
# Type 'config.trim_on_minimize' in the box that pops up. Press Enter.
# Select 'True' and then press Enter.
# Restart Firefox.

What this does is cause FireFox to automatically its reduce working
memory whenever the  browser window is minimized.  I tested this under
FF2002 on WinXPSP2 using a local copy of TiddlyTools, and the
browser's memory usage (as shown by the Task Manager "Processes" tab)
went from around 38Mb down to around 5Mb, just by minimizing the
window!!

In addition, not only does this setting dramatically reduce the memory
used by FireFox while it is minimized, but after you restore the
browser window, it appears that FireFox continues to use significantly
less memory than before (though more than when minimized).  I've also
noticed that FireFox seems to run a bit quicker after a minimize/
restore, especially if it has been running all day with an actively
edited TW document.

These side-effects are most likely the result of some *global* garbage
collection process that is apparently being performed to reclaim
wasted memory space each time the window is minimized. 

Eric Shulman 
----
@@color(#C06):''Reduce Firefox Memory Consumption''@@

Firefox seems to need more memory when I have it open for a long time and surf to many different websites. I was never able to find out why it behaved this way and assumed that it was either a memory leak or an extension which would be responsible for this behavior.

It seems that my assumption was wrong. Firefox saves the last 50 visited websites of a single session in memory which means that it could add up quickly if you visit lots of content filled websites. The reason behind this is that it is faster to access a already visited website if it still resides in memory instead of loading it from disk cache or from the server.

50 sites on the other hand seems a lot to me. I usually do not visit sites again that I visited a while ago - I tend to visit many different sites and only a few ones more than once daily. The fix is relatively simple. Type about:config in the Firefox address bar and search for the term:

browser.sessionhistory.max_entries

Right-click the entry, select modify from the list and change it to a lower value. I set it to 5 which works well for my surfing habits. Other values might be better for yours.
<<<
----
''FireFox Tweek'' Is there any way to configure FF so that I don't get the "unresponsive script" messages on complex tiddlers?
<<<
1) enter "about:config" into the address field in FF
2) search for dom.max_script_run_time in the resulting list of
configuration parameters
3) double-click that entry to change the value

The default is 5 seconds...
I recommend increasing it in 5 second increments until the
'unresponsive' messages disappear.

-e
Eric Shulman
TiddlyTools / ELS Design Studios
<<< 
}}}
===

----
&darr;+++[Windows UNSAFE Message]
> When I try to save [from FireFox], I get this message:
> A script from "file://" is requesting enhanced abilities
> that are UNSAFE and could be used to compromise
> your machine or data
> Allow or Deny
> But what exactly is it doing? Am I opening up any kind of security
> hole by allowing this? Is there a way I can view the setting in
> Firefox that is being changed?

It is asking for permission to READ the existing TW document file from
your local hard drive, so it can then insert the changed tiddlers from
the currently loaded document into that file content, and then WRITE
that file content back to your hard drive... In other words: it's
saving the changes in your document!!!

So... why does this create a warning?  Because, underneath the hood,
TiddlyWiki is still just a web page, and ALL web pages running in your
browser MUST ask for permission before accessing your local hard
drive.  That's just basic, common-sense security.  You don't want
random web sites that you visit to start reading/writing your locally-
stored files!

However, while TiddlyWiki is a web page, and CAN be opened from a
*remotely-hosted* document (i.e., an "http" URL), it is mostly
designed to opened and used as a *locally-stored file* (i.e., a "file"
URL), and NEEDS to be granted permission to access the local hard
drive in order for some key TW core functions (such as saving changes)
to work properly.

Unfortunately, even though one could presume that "file://" is, by
definition, a "trusted source" -- after all, it is YOUR drive, and YOU
opened the TW document in the first place -- the browser still asks
for permission to access the local hard drive from that locally-loaded
document.

I suggest that, once you are comfortable with the idea, you simply
"Allow" the file:// access and also [x] "remember this decision", so
you aren't nagged to death with security warnings.

Fortunately, the browser treats "file://" as a separate domain from
all other remote domains, so granting permissions to locally-stored
documents won't create any security holes when accessing remote web
sites.

To find the internal FireFox setting:
1) look for "prefs.js", a file that is automatically written by
FireFox to store your current browser settings.  Under Windows, this
is generally located at:
-----
C:\Documents and Settings\Your Name\Application Data\Mozilla\Firefox
\Profiles\abcdef12345.default\prefs.js
-----
2) Open that file with a plain text editor (make sure FireFox is NOT
running at the time!), and find these two lines (or similar):
-----
user_pref("capability.principal.codebase.p0.granted",
"UniversalXPConnect  UniversalBrowserRead");
user_pref("capability.principal.codebase.p0.id", "file://");
-----
3) Delete those lines to restore FireFox's default "ask for
permission" state for the "file://" domain

HTH,
-e
Eric Shulman
TiddlyTools / ELS Design Studios 
===

!!!!!End
^^[[Top|FireFox Tips]]^^
!!!<<gradient horiz #fc3 #ffffff>>FirstLetter ^^<<tiddler CloseThisOpen with: FormattingText  '« back'>>|<<toolbar editTiddler>>» ^^>>
|>|bgcolor:#abf; <<gradient horiz #abf #fff #abf>>font-family:Verdana, Arial; @@color:#000; ''Large First Letter''@@>> |
|<<tiddler ./firstletter>>|<<tiddler ./code>>|



<part firstletter hidden>

{{textjustify{
{{firstletterK{
@@color:#c06;K@@
}}}''arl Popper'' CH, MA, Ph.D., D.LITT, FBA, FRS (July 28, 1902 to September 17, 1994), was an Austrian and British philosopher {{imgfloatright{
[img[Click to go to a web page on Popper.|http://img391.imageshack.us/img391/362/kpopperqk2.jpg][http://www.eeng.dcu.ie/~tkpw/]]  
}}}and a professor at the London School of Economics. He is counted among the most influential philosophers of science of the 20th century, and also wrote extensively on social and political philosophy. Popper is perhaps best known for repudiating the classical observationalist-inductivist account of scientific method by advancing ''empirical falsifiability'' as the criterion for distinguishing scientific theory from non-science.
}}}
Source: http://science.tiddlyspot.com
</part>

<part code hidden>
!!!<<gradient horiz #ccc #ffffff>>Code in ~StyleSheet>>

{{{ .firstletter{
 float:left;
 width:0.75em;
 font-size:400%;
 font-family:times,arial;
 line-height:60%;
 }}}}

!!!<<gradient horiz #ccc #ffffff>>In Use>>
{{{
 {{firstletter{
 @@color:#c06;K@@
 }}}
}}}
</part>
<<forEachTiddler
 where
 'tiddler.tags.length == 0'
 script
 '
 function getFirstLine(s) {
 var m = s.match(/\s*(.*)/);
 return m != null && m.length >= 1 ? m[1] : "";
 }
 '
 write
 '"*[["+tiddler.title+"]] &rarr; "+getFirstLine(tiddler.text)+"\n"' 
>>
!~GiveMeTheFirstLine
{{{
<<forEachTiddler
 where 
 'tiddler.tags.containsAny(["ft"]) && ! tiddler.tags.containsAny([""])'
   script
        '
                function giveMeTheFirstLine(s) {
                    var m = s.match(/\s*(.*)/);
                    return m != null && m.length >= 1 ? m[1] : "";
                }
        '
    write
'"*"+giveMeTheFirstLine(tiddler.text)+"   &rarr; [["+tiddler.title+"]]\n"'
 >> 
}}}
{{{

/***
|Name:|FitWindowPlugin|
|Source:|http://tiddlyyap.tiddlyspot.com/|
|License:|Public domain|
|~CoreVersion:|2.3|
|Browser:|Tested on Firefox 2, IE7|
|Type:|script|
|Requires:|none|
|Overrides:|none|
|Description:|Set tiddler height to fit browser window and add vertical scrollbar when needed|
|References:|http://tinyurl.com/2srh4y|
!Usage
*This plugin determines the height of the user's browser window and sets the maximum height of tiddlers to fit, with a vertical scrollbar displayed as needed.
*Using the plugin only makes sense if you are also using the [[SinglePageModePlugin|http://www.tiddlytools.com/#SinglePageModePlugin]] so that only one tiddler is displayed at a time.
*The variable windowDiff set near the top of the script can be changed to accommodate shorter or taller TW heading panels. If tiddlers extend below the bottom of the browser window, increase this number; if they don't extend far enough, decrease the number.
*Note that if the //height// or //overflow// property is set for the //.tiddler// class in ~StyleSheet, that setting will override this script.

!Code
***/
//{{{

function getHeight()
 { var windowHeight = 0;
   var windowDiff = 110;
   if (typeof(window.innerHeight)=='number')
    { windowHeight=window.innerHeight; }
   else
    { if (document.documentElement && document.documentElement.clientHeight)
       { windowHeight=document.documentElement.clientHeight; }
      else
       { if (document.body&&document.body.clientHeight)
          { windowHeight=document.body.clientHeight; }
         }
      }
   if(readOnly) {tiddlerHeight = windowHeight - windowDiff + 17;}
    else {tiddlerHeight = windowHeight - windowDiff;}
   return tiddlerHeight;
   }
setStylesheet(".tiddler {max-height:"+getHeight()+"px; overflow: auto;}","ScrollStyle")

//}}}

}}}
<html><table width="96%" style="border:none;margin:1px;background:transparent;clear:both;"><div align="center"><iframe id="threeflags" name="threeflags" src="http://www.symbex.net.au/Wiki/threeflags.htm" width="120" height="25"  scrolling="no" frameborder="0" allowtransparency style="border:none;"></iframe></div></table></html>
+++^30em^[click here to see LatinHtmlEntities in a floating panel]
	<<moveablePanel>>LatinHtmlEntities
----
	<<tiddler LatinHtmlEntities>>
===
|Name| Date| Size|
|File2| 08.07.09| 1230kb|
|File3| 18.07.09| 230kb|
|File4| 20.07.09| 3230kb|
|Name| Date| Size|
|File A| 08.07.09| 1230kb|
|File C| 18.07.09| 230kb|
|File F| 20.07.09| 3230kb|
{{textcenter{
@@color:#c06;Table heading links to w3schools references on this subject.@@}}}
|>|>|>| ![[Font Properties|http://www.w3schools.com/css/css_font.asp]] |
| ''Property'' | ''Valid Values'' | ''Example'' | ''Inherited?'' |
| font-family |[font name or type] | font-family: Verdana, Arial; | Y |
| font-style |normal, italic, oblique | font-style:italic; | Y |
| font-variant |normal, small-cap | font-variant:small-caps; | Y |
| font-weight |normal, bold | font-weight:bold; | Y |
| font-size |[ xx-large, x-large, large, medium, small, x-small, xx-small ], [ larger, smaller ], \\percentage'\\, //length// | font-size:12pt; | Y |
| font |[//font-style// / //font-variant// / //font-weight//] ? //font-size// [//line-height//] ? //font-family// | font: bold 12pt Arial; | Y |
!!!<<gradient horiz #fc3 #ffffff>>FontPropertiesDemo ^^<<tiddler CloseThisOpen with: FormattingText  '« back'>>|<<toolbar editTiddler>>» ^^>>

You can change font sizes any time within a tiddler using HTML or CSS.
*+++[See the avaiable font properties here]
<<<
<<tiddler [[Font Properties - CSS]]>>
<<<
===

|<<tiddler ./inline>>|<<tiddler ./inlinecss>>|
|<<tiddler ./html>>|<<tiddler ./htmlcode>>|
|<<tiddler ./fontstyledemo>>|<<tiddler ./democode>>|
|vertical-align:middle;Put this in your<br> StyleSheet @@color:#C06;''&raquo; &raquo;'' @@|<<tiddler ./stylesheetdemo>>|
See [[Font Properties - CSS]]

<part inline hidden>
!!!!!<<gradient horiz #9ae #ffffff>>&nbsp;Example>>
@@font-size:12pt;12pt text@@
@@font-variant:small-caps;Font Varient Small Caps@@
@@font-weight:bold;Font weight is bold@@
</part>

<part inlinecss hidden>
!!!!!<<gradient horiz #9ae #ffffff>>&nbsp;Code inline CSS>>
"""@@font-size:12pt;''12pt text''@@"""
"""@@font-variant:small-caps;FontVarient Small Caps@@"""
"""@@font-weight:bold;Font weight is bold@@"""
</part>





<part html hidden>
!!!!!<<gradient horiz #9ae #ffffff>>&nbsp;Example>>
<html><div align="center">
<font size="3" color="#00f">This is font size 3</font>
<font size="-1" color="#00f">This is font size -1</font>
<font size="-2" color="#00f">This is font size -2</font>
</div></html>
</part>

<part htmlcode hidden>
!!!!!<<gradient horiz #9ae #ffffff>>&nbsp;Code>>
{{{
<html><div align="center">
<font size="3" color="#00f">This is font size 3</font>
<font size="-1" color="#00f">This is font size -1</font>
<font size="-2" color="#00f">This is font size -2</font>
</div></html>
}}}
</part>

<part fontstyledemo hidden>
!!!!!<<gradient horiz #9ae #ffffff>>&nbsp;Example CSS>>
{{fontsize18pt{This is a demo}}}
{{fontboldTimes{This is a demo}}}
{{smallcaps{This Is Small Caps}}}
</part>

<part democode hidden>
!!!!!<<gradient horiz #9ae #ffffff>>&nbsp;Code CSS>>
@@color(#00F):Put this in your tiddler.@@
{{{
{{fontsize18pt{This is a demo}}}
{{fontboldTimes{This is a demo}}}
{{smallcaps{This Is Small Caps}}}
}}}
</part>

<part stylesheetdemo hidden>
{{{
.fontsize18pt {font-size:18pt;}
.fontboldTimes {font: bold 12pt Times;}
.smallcaps {font-variant:small-caps;}
}}}
</part>


/***
|Name|FontSizePlugin|
|Created by|SaqImtiaz|
|Location|http://lewcid.googlepages.com/lewcid.html#FontSizePlugin|
|Version|1.0|
|Requires|~TW2.x|
!Description:
Resize tiddler text on the fly. The text size is remembered between sessions by use of a cookie.
You can customize the maximum and minimum allowed sizes.
(only affects tiddler content text, not any other text)

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

!Demo:
Try using the font-size buttons in the sidebar, or in the MainMenu above.

!Installation:
Copy the contents of this tiddler to your TW, tag with systemConfig, save and reload your TW.
Then put {{{<<fontSize "font-size:">>}}} in your SideBarOptions tiddler, or anywhere else that you might like.

!Usage
{{{<<fontSize>>}}} results in <<fontSize>>
{{{<<fontSize font-size: >>}}} results in <<fontSize font-size:>>

!Customizing:
The buttons and prefix text are wrapped in a span with class fontResizer, for easy css styling.
To change the default font-size, and the maximum and minimum font-size allowed, edit the config.fontSize.settings section of the code below.

!Notes:
This plugin assumes that the initial font-size is 100% and then increases or decreases the size by 10%. This stepsize of 10% can also be customized.

!History:
*27-07-06, version 1.0 : prevented double clicks from triggering editing of containing tiddler.
*25-07-06,  version 0.9

!Code
***/

//{{{
config.fontSize={};

//configuration settings
config.fontSize.settings =
{
            defaultSize : 100,  // all sizes in %
            maxSize : 200,
            minSize : 40,
            stepSize : 10
};

//startup code
var fontSettings = config.fontSize.settings;

if (!config.options.txtFontSize)
            {config.options.txtFontSize = fontSettings.defaultSize;
            saveOptionCookie("txtFontSize");}
setStylesheet(".tiddler .viewer {font-size:"+config.options.txtFontSize+"%;}\n","fontResizerStyles");
setStylesheet("#contentWrapper .fontResizer .button {display:inline;font-size:105%; font-weight:bold; margin:0 1px; padding: 0 3px; text-align:center !important;}\n .fontResizer {margin:0 0.5em;}","fontResizerButtonStyles");

//macro
config.macros.fontSize={};
config.macros.fontSize.handler = function (place,macroName,params,wikifier,paramString,tiddler)
{

               var sp = createTiddlyElement(place,"span",null,"fontResizer");
               sp.ondblclick=this.onDblClick;
               if (params[0])
                           createTiddlyText(sp,params[0]);
               createTiddlyButton(sp,"+","increase font-size",this.incFont);
               createTiddlyButton(sp,"=","reset font-size",this.resetFont);
               createTiddlyButton(sp,"–","decrease font-size",this.decFont);
}

config.macros.fontSize.onDblClick = function (e)
{
             if (!e) var e = window.event;
             e.cancelBubble = true;
             if (e.stopPropagation) e.stopPropagation();
             return false;
}

config.macros.fontSize.setFont = function ()
{
               saveOptionCookie("txtFontSize");
               setStylesheet(".tiddler .viewer {font-size:"+config.options.txtFontSize+"%;}\n","fontResizerStyles");
}

config.macros.fontSize.incFont=function()
{
               if (config.options.txtFontSize < fontSettings.maxSize)
                  config.options.txtFontSize = (config.options.txtFontSize*1)+fontSettings.stepSize;
               config.macros.fontSize.setFont();
}

config.macros.fontSize.decFont=function()
{

               if (config.options.txtFontSize > fontSettings.minSize)
                  config.options.txtFontSize = (config.options.txtFontSize*1) - fontSettings.stepSize;
               config.macros.fontSize.setFont();
}

config.macros.fontSize.resetFont=function()
{

               config.options.txtFontSize=fontSettings.defaultSize;
               config.macros.fontSize.setFont();
}

config.paramifiers.font =
{
               onstart: function(v)
                  {
                   config.options.txtFontSize = v;
                   config.macros.fontSize.setFont();
                  }
};
//}}}
!!!<<gradient horiz #fc3 #fff>>&nbsp;FontTextStyleWizard^^<<tiddler CloseThisOpen with: FormattingText  '« back'>>|<<toolbar editTiddler>>» ^^>>
{{borderless textcenter{
|vertical-align:bottom;<<toolbar fullscreen>><<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;[[Open in a new window|http://www.somacon.com/p334.php]]&nbsp;&raquo;|
''This tiddler is best viewed <<toolbar fullscreen>>''
----
<html><div align:center;><A HREF="http://www.somacon.com/p357.php" target="wizard" title="CSS List Style Wizard">List Style</A>&nbsp;|&nbsp;<A HREF="http://www.somacon.com/p141.php" target="wizard" title="HTML and CSS Table Border Style Wizard">Table Border Style</A>&nbsp;|&nbsp;<A HREF="http://www.somacon.com/p334.php" target="wizard" title="CSS Font and Text Style Wizard">Font and Text Style</A></div></html>
<html><div align="center"><iframe  id="wizard" name="wizard" src ="http://www.somacon.com/p334.php" width="100%" align="center" height="1200" scrolling="auto" frameborder="0" allowtransparency style="border:none;"></iframe></div></html>}}}
/%
!column1
''Other ~TiddlyWikis by TW Help''

[[Science|http://science.tiddlyspot.com]] A Personal Science Site
[[SideMinder|http://sideminder.tiddlyspot.com]] Track your time
[[SideSnips|http://sidesnips.tiddlyspot.com]] Snips From Discussion Group
[[SidebarPluginVault|http://sidebarpluginvault.tiddlyspot.com]] List of TW Plugins
[[SidebarRadio|http://sidebarradio.tiddlyspot.com]] Personal Embedded Radio/Video
[[TWT-Blackicity|http://twt-blackicity.tiddlyspot.com/index.html]] @@color:#c06; NEW! Menu System@@
[[TW Equation|http://twequation.tiddlyspot.com/]] Empty TW with Equations
[[TW Math|http://twmath.tiddlyspot.com/]] Equations for ~TiddlyWiki
[[TW Math|http://twligninger.tiddlyspot.com/]] @@color:#c06; (Danish)@@  Skrive Ligninger 
[[TW Notes|http://twnotes.tiddlyspot.com/]] Note taking made easy
[[TWT-Treeview|http://twt-treeview.tiddlyspot.com/index.html]] @@color:#c06; NEW! Menu System@@
[[TW TuDu|http://twtudu.tiddlyspot.com/]] Personal Organizer
[[TWT-Notes|http://twt-notes.tiddlyspot.com/]] Tabbed Notes
[[TWT-Notes|http://gdsskole.tiddlyspot.com/]] @@color:#c06; (Danish)@@ Sygemelding & weekendlister
[[TW Help|http://twhelp.tiddlyspot.com/]] Help for Beginners
!end
%/

/%
!column2
''Other Helpful ~TiddlyWiki Sites''

[[tiddlywiki.com|http://tiddlywiki.com]]
[[Discussion Group|http://groups.google.com/group/TiddlyWiki/]]
[[Developers Group|http://groups.google.com/group/TiddlyWikiDev?lnk=]] 
[[Sidebar Group|http://groups.google.com/group/sidebarnews?lnk=]]
[[TiddlySnip Group|http://groups.google.com/group/TiddlySnip?lnk=]]
[[tiddlywiki.org|http://www.tiddlywiki.org/]]
!end
%/
!!!<<gradient horiz #fc3 #fff>>&nbsp;ForEachGroupByTag^^<<tiddler CloseThisOpen with: ListTiddlersBy  '« back'>>|<<toolbar editTiddler>>» ^^>>
@@color:#00a;This code will sort all tiddlers by tag into groups.  It can be quite time consuming if there are a lot of tiddlers so it is not demonstrated here.@@

{{{

<<forEachTiddler
	sortBy 
		'getSortedTagsText(tiddler)+"###"+tiddler.title'
	
	script
		'
		function getSortedTagsText(tiddler) {
			var tags = tiddler.tags; 
			if (!tags || !tags.length) 
				return "{no tags}"; 
			tags.sort(); 
			var result = ""; 
			for (var i = 0; i < tags.length;i++) {
				result += tags[i]+ " ";
			} 
			return result;
		} 

		function getGroupTitle(tiddler, context) {
			if (!context.lastGroup || context.lastGroup != getSortedTagsText(tiddler)) {
				context.lastGroup = getSortedTagsText(tiddler); 
				return "{{{"+(context.lastGroup?context.lastGroup:"no tags")+"}}}";
			} else 
				return "";
		}
		'
	
	write
		'"|"+(index+1)+"|"+ getGroupTitle(tiddler, context)+"|[[" + tiddler.title+"]]|\n"'
>>
}}}


<script>
      place.style.color="#c06"; /* set text color */
</script>
!!!<<gradient horiz #fc3 #fff>>&nbsp;[[ForEachInAnotherTW]]^^<<tiddler CloseThisOpen with: ListTiddlersBy  '« back'>>|<<toolbar editTiddler>>» ^^>>
''Lists tiddlers from another ~TiddlyWiki.''
{{{
<<forEachTiddler
 in 
 'file:///F:/TiddlyWiki/TW%20Help/twhelp.html'
 write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |@@color:#c06;&raquo;@@ |"+tiddler.tags+"|\n"'
>>
}}}


''Lists plugins from another ~TiddlyWiki.''
{{{
<<forEachTiddler
 in 
'file:///F:/TiddlyWiki/TW%20Help/twhelp.html'
where 
 'tiddler.tags.contains("systemConfig")'
sortBy '(tiddler.title)' 
 ascending
write
 '"|"+(index+1)+"|[["+tiddler.title+"]] |@@color:#c06;&raquo;@@ |"+tiddler.tags+"|\n"'
>>
}}}
{{textcenter{
This script calls the first line of each tiddler with the tag 'help'.
}}}
<<forEachTiddler
 where
 'tiddler.tags.contains("help")'
 script
 '
 function getFirstLine(s) {
 var m = s.match(/\s*(.*)/);
 return m != null && m.length >= 1 ? m[1] : "";
 }
 '
 write
 '"*[["+tiddler.title+"]] &raquo;&raquo; "+getFirstLine(tiddler.text)+"\n"' 
>>
//~~(Part of the [[ForEachTiddlerPlugin]])~~//

Create customizable lists, tables etc. for your selections of tiddlers. Specify the tiddlers to include and their order through a powerful language.

''Syntax:'' 
|>|{{{<<}}}''forEachTiddler'' [''in'' //tiddlyWikiPath//] [''where'' //whereCondition//] [''sortBy'' //sortExpression// [''ascending'' //or// ''descending'']] [''script'' //scriptText//] [//action// [//actionParameters//]]{{{>>}}}|
|//tiddlyWikiPath//|The filepath to the TiddlyWiki the macro should work on. When missing the current TiddlyWiki is used.|
|//whereCondition//|(quoted) JavaScript boolean expression. May refer to the build-in variables {{{tiddler}}} and {{{context}}}.|
|//sortExpression//|(quoted) JavaScript expression returning "comparable" objects (using '{{{<}}}','{{{>}}}','{{{==}}}'. May refer to the build-in variables {{{tiddler}}} and {{{context}}}.|
|//scriptText//|(quoted) JavaScript text. Typically defines JavaScript functions that are called by the various JavaScript expressions (whereClause, sortClause, action arguments,...)|
|//action//|The action that should be performed on every selected tiddler, in the given order. By default the actions [[addToList|AddToListAction]] and [[write|WriteAction]] are supported. When no action is specified [[addToList|AddToListAction]] is used.|
|//actionParameters//|(action specific) parameters the action may refer while processing the tiddlers (see action descriptions for details). <<tiddler [[JavaScript in actionParameters]]>>|
|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|


''Using JavaScript''

To give you a lot of flexibility the [[ForEachTiddlerMacro]] uses JavaScript in its arguments. Even if you are not that familiar with JavaScript you may find forEachTiddler useful. Just have a look at the various ready-to-use [[ForEachTiddlerExamples]] and adapt them to your needs.

''The Elements of the Macro''

The arguments of the ForEachTiddlerMacro consist of multiple parts, each of them being optional.

<<slider chkFETInClause [[inClause]] "inClause" "inClause">>
<<slider chkFETWhereClause [[whereClause]] "whereClause" "whereClause">>
<<slider chkFETSortClause [[sortClause]] "sortClause" "sortClause">>
<<slider chkFETScriptClause [[scriptClause]] "scriptClause" "scriptClause">>
<<slider chkFETActions [[Action Specification]] "Action Specification" "Action Specification">>

''Using Macros and ">" inside the forEachTiddler Macro''

You may use other macro calls into the expression, especially in the actionParameters. To avoid that the {{{>>}}} of such a macro call is misinterpreted as the end of the {{{<<forEachTiddler...>>}}} macro you must escape the {{{>>}}} of the inner macro with {{{$))}}} E.g. if you want to use {{{<<tiddler ...>>}}} inside the {{{forEachTiddler}}} macro you have to write {{{<<tiddler ...$))}}}.

In addition it is necessary to escape single {{{>}}} with the text {{{$)}}}.



See also [[ForEachTiddlerExamples]].
/***
|''Name:''|ForEachTiddlerPlugin|
|''Version:''|1.0.8 (2007-04-12)|
|''Source:''|http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin|
|''Author:''|UdoBorkowski (ub [at] abego-software [dot] de)|
|''Licence:''|[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]|
|''Copyright:''|&copy; 2005-2007 [[abego Software|http://www.abego-software.de]]|
|''TiddlyWiki:''|1.2.38+, 2.0|
|''Browser:''|Firefox 1.0.4+; Firefox 1.5; InternetExplorer 6.0|
!Description

Create customizable lists, tables etc. for your selections of tiddlers. Specify the tiddlers to include and their order through a powerful language.

''Syntax:'' 
|>|{{{<<}}}''forEachTiddler'' [''in'' //tiddlyWikiPath//] [''where'' //whereCondition//] [''sortBy'' //sortExpression// [''ascending'' //or// ''descending'']] [''script'' //scriptText//] [//action// [//actionParameters//]]{{{>>}}}|
|//tiddlyWikiPath//|The filepath to the TiddlyWiki the macro should work on. When missing the current TiddlyWiki is used.|
|//whereCondition//|(quoted) JavaScript boolean expression. May refer to the build-in variables {{{tiddler}}} and  {{{context}}}.|
|//sortExpression//|(quoted) JavaScript expression returning "comparable" objects (using '{{{<}}}','{{{>}}}','{{{==}}}'. May refer to the build-in variables {{{tiddler}}} and  {{{context}}}.|
|//scriptText//|(quoted) JavaScript text. Typically defines JavaScript functions that are called by the various JavaScript expressions (whereClause, sortClause, action arguments,...)|
|//action//|The action that should be performed on every selected tiddler, in the given order. By default the actions [[addToList|AddToListAction]] and [[write|WriteAction]] are supported. When no action is specified [[addToList|AddToListAction]]  is used.|
|//actionParameters//|(action specific) parameters the action may refer while processing the tiddlers (see action descriptions for details). <<tiddler [[JavaScript in actionParameters]]>>|
|>|~~Syntax formatting: Keywords in ''bold'', optional parts in [...]. 'or' means that exactly one of the two alternatives must exist.~~|

See details see [[ForEachTiddlerMacro]] and [[ForEachTiddlerExamples]].

!Revision history
* v1.0.8 (2007-04-12)
** Adapted to latest TiddlyWiki 2.2 Beta importTiddlyWiki API (introduced with changeset 2004). TiddlyWiki 2.2 Beta builds prior to changeset 2004 are no longer supported (but TiddlyWiki 2.1 and earlier, of cause)
* v1.0.7 (2007-03-28)
** Also support "pre" formatted TiddlyWikis (introduced with TW 2.2) (when using "in" clause to work on external tiddlers)
* v1.0.6 (2006-09-16)
** Context provides "viewerTiddler", i.e. the tiddler used to view the macro. Most times this is equal to the "inTiddler", but when using the "tiddler" macro both may be different.
** Support "begin", "end" and "none" expressions in "write" action
* v1.0.5 (2006-02-05)
** Pass tiddler containing the macro with wikify, context object also holds reference to tiddler containing the macro ("inTiddler"). Thanks to SimonBaird.
** Support Firefox 1.5.0.1
** Internal
*** Make "JSLint" conform
*** "Only install once"
* v1.0.4 (2006-01-06)
** Support TiddlyWiki 2.0
* v1.0.3 (2005-12-22)
** Features: 
*** Write output to a file supports multi-byte environments (Thanks to Bram Chen) 
*** Provide API to access the forEachTiddler functionality directly through JavaScript (see getTiddlers and performMacro)
** Enhancements:
*** Improved error messages on InternetExplorer.
* v1.0.2 (2005-12-10)
** Features: 
*** context object also holds reference to store (TiddlyWiki)
** Fixed Bugs: 
*** ForEachTiddler 1.0.1 has broken support on win32 Opera 8.51 (Thanks to BrunoSabin for reporting)
* v1.0.1 (2005-12-08)
** Features: 
*** Access tiddlers stored in separated TiddlyWikis through the "in" option. I.e. you are no longer limited to only work on the "current TiddlyWiki".
*** Write output to an external file using the "toFile" option of the "write" action. With this option you may write your customized tiddler exports.
*** Use the "script" section to define "helper" JavaScript functions etc. to be used in the various JavaScript expressions (whereClause, sortClause, action arguments,...).
*** Access and store context information for the current forEachTiddler invocation (through the build-in "context" object) .
*** Improved script evaluation (for where/sort clause and write scripts).
* v1.0.0 (2005-11-20)
** initial version

!Code
***/
//{{{

	
//============================================================================
//============================================================================
//		   ForEachTiddlerPlugin
//============================================================================
//============================================================================

// Only install once
if (!version.extensions.ForEachTiddlerPlugin) {

if (!window.abego) window.abego = {};

version.extensions.ForEachTiddlerPlugin = {
	major: 1, minor: 0, revision: 8, 
	date: new Date(2007,3,12), 
	source: "http://tiddlywiki.abego-software.de/#ForEachTiddlerPlugin",
	licence: "[[BSD open source license (abego Software)|http://www.abego-software.de/legal/apl-v10.html]]",
	copyright: "Copyright (c) abego Software GmbH, 2005-2007 (www.abego-software.de)"
};

// For backward compatibility with TW 1.2.x
//
if (!TiddlyWiki.prototype.forEachTiddler) {
	TiddlyWiki.prototype.forEachTiddler = function(callback) {
		for(var t in this.tiddlers) {
			callback.call(this,t,this.tiddlers[t]);
		}
	};
}

//============================================================================
// forEachTiddler Macro
//============================================================================

version.extensions.forEachTiddler = {
	major: 1, minor: 0, revision: 8, date: new Date(2007,3,12), provider: "http://tiddlywiki.abego-software.de"};

// ---------------------------------------------------------------------------
// Configurations and constants 
// ---------------------------------------------------------------------------

config.macros.forEachTiddler = {
	 // Standard Properties
	 label: "forEachTiddler",
	 prompt: "Perform actions on a (sorted) selection of tiddlers",

	 // actions
	 actions: {
		 addToList: {},
		 write: {}
	 }
};

// ---------------------------------------------------------------------------
//  The forEachTiddler Macro Handler 
// ---------------------------------------------------------------------------

config.macros.forEachTiddler.getContainingTiddler = function(e) {
	while(e && !hasClass(e,"tiddler"))
		e = e.parentNode;
	var title = e ? e.getAttribute("tiddler") : null; 
	return title ? store.getTiddler(title) : null;
};

config.macros.forEachTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) {
	// config.macros.forEachTiddler.traceMacroCall(place,macroName,params,wikifier,paramString,tiddler);

	if (!tiddler) tiddler = config.macros.forEachTiddler.getContainingTiddler(place);
	// --- Parsing ------------------------------------------

	var i = 0; // index running over the params
	// Parse the "in" clause
	var tiddlyWikiPath = undefined;
	if ((i < params.length) && params[i] == "in") {
		i++;
		if (i >= params.length) {
			this.handleError(place, "TiddlyWiki path expected behind 'in'.");
			return;
		}
		tiddlyWikiPath = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the where clause
	var whereClause ="true";
	if ((i < params.length) && params[i] == "where") {
		i++;
		whereClause = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the sort stuff
	var sortClause = null;
	var sortAscending = true; 
	if ((i < params.length) && params[i] == "sortBy") {
		i++;
		if (i >= params.length) {
			this.handleError(place, "sortClause missing behind 'sortBy'.");
			return;
		}
		sortClause = this.paramEncode(params[i]);
		i++;

		if ((i < params.length) && (params[i] == "ascending" || params[i] == "descending")) {
			 sortAscending = params[i] == "ascending";
			 i++;
		}
	}

	// Parse the script
	var scriptText = null;
	if ((i < params.length) && params[i] == "script") {
		i++;
		scriptText = this.paramEncode((i < params.length) ? params[i] : "");
		i++;
	}

	// Parse the action. 
	// When we are already at the end use the default action
	var actionName = "addToList";
	if (i < params.length) {
	   if (!config.macros.forEachTiddler.actions[params[i]]) {
			this.handleError(place, "Unknown action '"+params[i]+"'.");
			return;
		} else {
			actionName = params[i]; 
			i++;
		}
	} 
	
	// Get the action parameter
	// (the parsing is done inside the individual action implementation.)
	var actionParameter = params.slice(i);


	// --- Processing ------------------------------------------
	try {
		this.performMacro({
				place: place, 
				inTiddler: tiddler,
				whereClause: whereClause, 
				sortClause: sortClause, 
				sortAscending: sortAscending, 
				actionName: actionName, 
				actionParameter: actionParameter, 
				scriptText: scriptText, 
				tiddlyWikiPath: tiddlyWikiPath});

	} catch (e) {
		this.handleError(place, e);
	}
};

// Returns an object with properties "tiddlers" and "context".
// tiddlers holds the (sorted) tiddlers selected by the parameter,
// context the context of the execution of the macro.
//
// The action is not yet performed.
//
// @parameter see performMacro
//
config.macros.forEachTiddler.getTiddlersAndContext = function(parameter) {

	var context = config.macros.forEachTiddler.createContext(parameter.place, parameter.whereClause, parameter.sortClause, parameter.sortAscending, parameter.actionName, parameter.actionParameter, parameter.scriptText, parameter.tiddlyWikiPath, parameter.inTiddler);

	var tiddlyWiki = parameter.tiddlyWikiPath ? this.loadTiddlyWiki(parameter.tiddlyWikiPath) : store;
	context["tiddlyWiki"] = tiddlyWiki;
	
	// Get the tiddlers, as defined by the whereClause
	var tiddlers = this.findTiddlers(parameter.whereClause, context, tiddlyWiki);
	context["tiddlers"] = tiddlers;

	// Sort the tiddlers, when sorting is required.
	if (parameter.sortClause) {
		this.sortTiddlers(tiddlers, parameter.sortClause, parameter.sortAscending, context);
	}

	return {tiddlers: tiddlers, context: context};
};

// Returns the (sorted) tiddlers selected by the parameter.
//
// The action is not yet performed.
//
// @parameter see performMacro
//
config.macros.forEachTiddler.getTiddlers = function(parameter) {
	return this.getTiddlersAndContext(parameter).tiddlers;
};

// Performs the macros with the given parameter.
//
// @param parameter holds the parameter of the macro as separate properties.
//				  The following properties are supported:
//
//						place
//						whereClause
//						sortClause
//						sortAscending
//						actionName
//						actionParameter
//						scriptText
//						tiddlyWikiPath
//
//					All properties are optional. 
//					For most actions the place property must be defined.
//
config.macros.forEachTiddler.performMacro = function(parameter) {
	var tiddlersAndContext = this.getTiddlersAndContext(parameter);

	// Perform the action
	var actionName = parameter.actionName ? parameter.actionName : "addToList";
	var action = config.macros.forEachTiddler.actions[actionName];
	if (!action) {
		this.handleError(parameter.place, "Unknown action '"+actionName+"'.");
		return;
	}

	var actionHandler = action.handler;
	actionHandler(parameter.place, tiddlersAndContext.tiddlers, parameter.actionParameter, tiddlersAndContext.context);
};

// ---------------------------------------------------------------------------
//  The actions 
// ---------------------------------------------------------------------------

// Internal.
//
// --- The addToList Action -----------------------------------------------
//
config.macros.forEachTiddler.actions.addToList.handler = function(place, tiddlers, parameter, context) {
	// Parse the parameter
	var p = 0;

	// Check for extra parameters
	if (parameter.length > p) {
		config.macros.forEachTiddler.createExtraParameterErrorElement(place, "addToList", parameter, p);
		return;
	}

	// Perform the action.
	var list = document.createElement("ul");
	place.appendChild(list);
	for (var i = 0; i < tiddlers.length; i++) {
		var tiddler = tiddlers[i];
		var listItem = document.createElement("li");
		list.appendChild(listItem);
		createTiddlyLink(listItem, tiddler.title, true);
	}
};

abego.parseNamedParameter = function(name, parameter, i) {
	var beginExpression = null;
	if ((i < parameter.length) && parameter[i] == name) {
		i++;
		if (i >= parameter.length) {
			throw "Missing text behind '%0'".format([name]);
		}
		
		return config.macros.forEachTiddler.paramEncode(parameter[i]);
	}
	return null;
}

// Internal.
//
// --- The write Action ---------------------------------------------------
//
config.macros.forEachTiddler.actions.write.handler = function(place, tiddlers, parameter, context) {
	// Parse the parameter
	var p = 0;
	if (p >= parameter.length) {
		this.handleError(place, "Missing expression behind 'write'.");
		return;
	}

	var textExpression = config.macros.forEachTiddler.paramEncode(parameter[p]);
	p++;

	// Parse the "begin" option
	var beginExpression = abego.parseNamedParameter("begin", parameter, p);
	if (beginExpression !== null) 
		p += 2;
	var endExpression = abego.parseNamedParameter("end", parameter, p);
	if (endExpression !== null) 
		p += 2;
	var noneExpression = abego.parseNamedParameter("none", parameter, p);
	if (noneExpression !== null) 
		p += 2;

	// Parse the "toFile" option
	var filename = null;
	var lineSeparator = undefined;
	if ((p < parameter.length) && parameter[p] == "toFile") {
		p++;
		if (p >= parameter.length) {
			this.handleError(place, "Filename expected behind 'toFile' of 'write' action.");
			return;
		}
		
		filename = config.macros.forEachTiddler.getLocalPath(config.macros.forEachTiddler.paramEncode(parameter[p]));
		p++;
		if ((p < parameter.length) && parameter[p] == "withLineSeparator") {
			p++;
			if (p >= parameter.length) {
				this.handleError(place, "Line separator text expected behind 'withLineSeparator' of 'write' action.");
				return;
			}
			lineSeparator = config.macros.forEachTiddler.paramEncode(parameter[p]);
			p++;
		}
	}
	
	// Check for extra parameters
	if (parameter.length > p) {
		config.macros.forEachTiddler.createExtraParameterErrorElement(place, "write", parameter, p);
		return;
	}

	// Perform the action.
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(textExpression, context);
	var count = tiddlers.length;
	var text = "";
	if (count > 0 && beginExpression)
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(beginExpression, context)(undefined, context, count, undefined);
	
	for (var i = 0; i < count; i++) {
		var tiddler = tiddlers[i];
		text += func(tiddler, context, count, i);
	}
	
	if (count > 0 && endExpression)
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(endExpression, context)(undefined, context, count, undefined);

	if (count == 0 && noneExpression) 
		text += config.macros.forEachTiddler.getEvalTiddlerFunction(noneExpression, context)(undefined, context, count, undefined);
		

	if (filename) {
		if (lineSeparator !== undefined) {
			lineSeparator = lineSeparator.replace(/\\n/mg, "\n").replace(/\\r/mg, "\r");
			text = text.replace(/\n/mg,lineSeparator);
		}
		saveFile(filename, convertUnicodeToUTF8(text));
	} else {
		var wrapper = createTiddlyElement(place, "span");
		wikify(text, wrapper, null/* highlightRegExp */, context.inTiddler);
	}
};


// ---------------------------------------------------------------------------
//  Helpers
// ---------------------------------------------------------------------------

// Internal.
//
config.macros.forEachTiddler.createContext = function(placeParam, whereClauseParam, sortClauseParam, sortAscendingParam, actionNameParam, actionParameterParam, scriptText, tiddlyWikiPathParam, inTiddlerParam) {
	return {
		place : placeParam, 
		whereClause : whereClauseParam, 
		sortClause : sortClauseParam, 
		sortAscending : sortAscendingParam, 
		script : scriptText,
		actionName : actionNameParam, 
		actionParameter : actionParameterParam,
		tiddlyWikiPath : tiddlyWikiPathParam,
		inTiddler : inTiddlerParam, // the tiddler containing the <<forEachTiddler ...>> macro call.
		viewerTiddler : config.macros.forEachTiddler.getContainingTiddler(placeParam) // the tiddler showing the forEachTiddler result
	};
};

// Internal.
//
// Returns a TiddlyWiki with the tiddlers loaded from the TiddlyWiki of 
// the given path.
//
config.macros.forEachTiddler.loadTiddlyWiki = function(path, idPrefix) {
	if (!idPrefix) {
		idPrefix = "store";
	}
	var lenPrefix = idPrefix.length;
	
	// Read the content of the given file
	var content = loadFile(this.getLocalPath(path));
	if(content === null) {
		throw "TiddlyWiki '"+path+"' not found.";
	}
	
	var tiddlyWiki = new TiddlyWiki();

	// Starting with TW 2.2 there is a helper function to import the tiddlers
	if (tiddlyWiki.importTiddlyWiki) {
		if (!tiddlyWiki.importTiddlyWiki(content))
			throw "File '"+path+"' is not a TiddlyWiki.";
		tiddlyWiki.dirty = false;
		return tiddlyWiki;
	}
	
	// The legacy code, for TW < 2.2
	
	// Locate the storeArea div's
	var posOpeningDiv = content.indexOf(startSaveArea);
	var posClosingDiv = content.lastIndexOf(endSaveArea);
	if((posOpeningDiv == -1) || (posClosingDiv == -1)) {
		throw "File '"+path+"' is not a TiddlyWiki.";
	}
	var storageText = content.substr(posOpeningDiv + startSaveArea.length, posClosingDiv);
	
	// Create a "div" element that contains the storage text
	var myStorageDiv = document.createElement("div");
	myStorageDiv.innerHTML = storageText;
	myStorageDiv.normalize();
	
	// Create all tiddlers in a new TiddlyWiki
	// (following code is modified copy of TiddlyWiki.prototype.loadFromDiv)
	var store = myStorageDiv.childNodes;
	for(var t = 0; t < store.length; t++) {
		var e = store[t];
		var title = null;
		if(e.getAttribute)
			title = e.getAttribute("tiddler");
		if(!title && e.id && e.id.substr(0,lenPrefix) == idPrefix)
			title = e.id.substr(lenPrefix);
		if(title && title !== "") {
			var tiddler = tiddlyWiki.createTiddler(title);
			tiddler.loadFromDiv(e,title);
		}
	}
	tiddlyWiki.dirty = false;

	return tiddlyWiki;
};


	
// Internal.
//
// Returns a function that has a function body returning the given javaScriptExpression.
// The function has the parameters:
// 
//	 (tiddler, context, count, index)
//
config.macros.forEachTiddler.getEvalTiddlerFunction = function (javaScriptExpression, context) {
	var script = context["script"];
	var functionText = "var theFunction = function(tiddler, context, count, index) { return "+javaScriptExpression+"}";
	var fullText = (script ? script+";" : "")+functionText+";theFunction;";
	return eval(fullText);
};

// Internal.
//
config.macros.forEachTiddler.findTiddlers = function(whereClause, context, tiddlyWiki) {
	var result = [];
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(whereClause, context);
	tiddlyWiki.forEachTiddler(function(title,tiddler) {
		if (func(tiddler, context, undefined, undefined)) {
			result.push(tiddler);
		}
	});
	return result;
};

// Internal.
//
config.macros.forEachTiddler.createExtraParameterErrorElement = function(place, actionName, parameter, firstUnusedIndex) {
	var message = "Extra parameter behind '"+actionName+"':";
	for (var i = firstUnusedIndex; i < parameter.length; i++) {
		message += " "+parameter[i];
	}
	this.handleError(place, message);
};

// Internal.
//
config.macros.forEachTiddler.sortAscending = function(tiddlerA, tiddlerB) {
	var result = 
		(tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) 
			? 0
			: (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)
			   ? -1 
			   : +1; 
	return result;
};

// Internal.
//
config.macros.forEachTiddler.sortDescending = function(tiddlerA, tiddlerB) {
	var result = 
		(tiddlerA.forEachTiddlerSortValue == tiddlerB.forEachTiddlerSortValue) 
			? 0
			: (tiddlerA.forEachTiddlerSortValue < tiddlerB.forEachTiddlerSortValue)
			   ? +1 
			   : -1; 
	return result;
};

// Internal.
//
config.macros.forEachTiddler.sortTiddlers = function(tiddlers, sortClause, ascending, context) {
	// To avoid evaluating the sortClause whenever two items are compared 
	// we pre-calculate the sortValue for every item in the array and store it in a 
	// temporary property ("forEachTiddlerSortValue") of the tiddlers.
	var func = config.macros.forEachTiddler.getEvalTiddlerFunction(sortClause, context);
	var count = tiddlers.length;
	var i;
	for (i = 0; i < count; i++) {
		var tiddler = tiddlers[i];
		tiddler.forEachTiddlerSortValue = func(tiddler,context, undefined, undefined);
	}

	// Do the sorting
	tiddlers.sort(ascending ? this.sortAscending : this.sortDescending);

	// Delete the temporary property that holds the sortValue.	
	for (i = 0; i < tiddlers.length; i++) {
		delete tiddlers[i].forEachTiddlerSortValue;
	}
};


// Internal.
//
config.macros.forEachTiddler.trace = function(message) {
	displayMessage(message);
};

// Internal.
//
config.macros.forEachTiddler.traceMacroCall = function(place,macroName,params) {
	var message ="<<"+macroName;
	for (var i = 0; i < params.length; i++) {
		message += " "+params[i];
	}
	message += ">>";
	displayMessage(message);
};


// Internal.
//
// Creates an element that holds an error message
// 
config.macros.forEachTiddler.createErrorElement = function(place, exception) {
	var message = (exception.description) ? exception.description : exception.toString();
	return createTiddlyElement(place,"span",null,"forEachTiddlerError","<<forEachTiddler ...>>: "+message);
};

// Internal.
//
// @param place [may be null]
//
config.macros.forEachTiddler.handleError = function(place, exception) {
	if (place) {
		this.createErrorElement(place, exception);
	} else {
		throw exception;
	}
};

// Internal.
//
// Encodes the given string.
//
// Replaces 
//	 "$))" to ">>"
//	 "$)" to ">"
//
config.macros.forEachTiddler.paramEncode = function(s) {
	var reGTGT = new RegExp("\\$\\)\\)","mg");
	var reGT = new RegExp("\\$\\)","mg");
	return s.replace(reGTGT, ">>").replace(reGT, ">");
};

// Internal.
//
// Returns the given original path (that is a file path, starting with "file:")
// as a path to a local file, in the systems native file format.
//
// Location information in the originalPath (i.e. the "#" and stuff following)
// is stripped.
// 
config.macros.forEachTiddler.getLocalPath = function(originalPath) {
	// Remove any location part of the URL
	var hashPos = originalPath.indexOf("#");
	if(hashPos != -1)
		originalPath = originalPath.substr(0,hashPos);
	// Convert to a native file format assuming
	// "file:///x:/path/path/path..." - pc local file --> "x:\path\path\path..."
	// "file://///server/share/path/path/path..." - FireFox pc network file --> "\\server\share\path\path\path..."
	// "file:///path/path/path..." - mac/unix local file --> "/path/path/path..."
	// "file://server/share/path/path/path..." - pc network file --> "\\server\share\path\path\path..."
	var localPath;
	if(originalPath.charAt(9) == ":") // pc local file
		localPath = unescape(originalPath.substr(8)).replace(new RegExp("/","g"),"\\");
	else if(originalPath.indexOf("file://///") === 0) // FireFox pc network file
		localPath = "\\\\" + unescape(originalPath.substr(10)).replace(new RegExp("/","g"),"\\");
	else if(originalPath.indexOf("file:///") === 0) // mac/unix local file
		localPath = unescape(originalPath.substr(7));
	else if(originalPath.indexOf("file:/") === 0) // mac/unix local file
		localPath = unescape(originalPath.substr(5));
	else // pc network file
		localPath = "\\\\" + unescape(originalPath.substr(7)).replace(new RegExp("/","g"),"\\");	
	return localPath;
};

// ---------------------------------------------------------------------------
// Stylesheet Extensions (may be overridden by local StyleSheet)
// ---------------------------------------------------------------------------
//
setStylesheet(
	".forEachTiddlerError{color: #ffffff;background-color: #880000;}",
	"forEachTiddler");

//============================================================================
// End of forEachTiddler Macro
//============================================================================


//============================================================================
// String.startsWith Function
//============================================================================
//
// Returns true if the string starts with the given prefix, false otherwise.
//
version.extensions["String.startsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.startsWith = function(prefix) {
	var n =  prefix.length;
	return (this.length >= n) && (this.slice(0, n) == prefix);
};



//============================================================================
// String.endsWith Function
//============================================================================
//
// Returns true if the string ends with the given suffix, false otherwise.
//
version.extensions["String.endsWith"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.endsWith = function(suffix) {
	var n = suffix.length;
	return (this.length >= n) && (this.right(n) == suffix);
};


//============================================================================
// String.contains Function
//============================================================================
//
// Returns true when the string contains the given substring, false otherwise.
//
version.extensions["String.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
String.prototype.contains = function(substring) {
	return this.indexOf(substring) >= 0;
};

//============================================================================
// Array.indexOf Function
//============================================================================
//
// Returns the index of the first occurance of the given item in the array or 
// -1 when no such item exists.
//
// @param item [may be null]
//
version.extensions["Array.indexOf"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.indexOf = function(item) {
	for (var i = 0; i < this.length; i++) {
		if (this[i] == item) {
			return i;
		}
	}
	return -1;
};

//============================================================================
// Array.contains Function
//============================================================================
//
// Returns true when the array contains the given item, otherwise false. 
//
// @param item [may be null]
//
version.extensions["Array.contains"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.contains = function(item) {
	return (this.indexOf(item) >= 0);
};

//============================================================================
// Array.containsAny Function
//============================================================================
//
// Returns true when the array contains at least one of the elements 
// of the item. Otherwise (or when items contains no elements) false is returned.
//
version.extensions["Array.containsAny"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.containsAny = function(items) {
	for(var i = 0; i < items.length; i++) {
		if (this.contains(items[i])) {
			return true;
		}
	}
	return false;
};


//============================================================================
// Array.containsAll Function
//============================================================================
//
// Returns true when the array contains all the items, otherwise false.
// 
// When items is null false is returned (even if the array contains a null).
//
// @param items [may be null] 
//
version.extensions["Array.containsAll"] = {major: 1, minor: 0, revision: 0, date: new Date(2005,11,20), provider: "http://tiddlywiki.abego-software.de"};
//
Array.prototype.containsAll = function(items) {
	for(var i = 0; i < items.length; i++) {
		if (!this.contains(items[i])) {
			return false;
		}
	}
	return true;
};


} // of "install only once"

// Used Globals (for JSLint) ==============
// ... DOM
/*global 	document */
// ... TiddlyWiki Core
/*global 	convertUnicodeToUTF8, createTiddlyElement, createTiddlyLink, 
			displayMessage, endSaveArea, hasClass, loadFile, saveFile, 
			startSaveArea, store, wikify */
//}}}


/***
!Licence and Copyright
Copyright (c) abego Software ~GmbH, 2005 ([[www.abego-software.de|http://www.abego-software.de]])

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 abego Software 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 OWNER 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.
***/

<<tabs tabsClass [[TextMarkup]] "" [[TextMarkup]]  [[TextColor]] "" [[TextColor]]  [[TextAlignment]] "" [[TextAlignment]] [[FirstLetter]] "" [[FirstLetter]] [[Font Properties]] "" [[Font Properties - CSS]] [[FontPropertiesDemo]] "" [[FontPropertiesDemo]] [[Links ]] "" [[HowToUseLinks]] [[TextProperties ]] "" [[Text Properties - CSS]]  [[ Entities-Codes]] "" [[Non-Keyboard]] [[ToolTips]] "" [[PlainTextTooltip]]  [[WikiWords]] "" [[WikiWords]] >>
<<tabs tabsCookie [[Intro ]] "tooltip 1" [[IntroImages]]  [[ResizingImages ]] "" [[ResizingImages]]  [[TBA]] "" [[Tiddler three]] [[TBA ]] "" [[Tiddler four]] >>
!!!<<gradient horiz #fc3 #ffffff>>[[Intro|FormattingIntro]]^^<<tiddler CloseThisOpen with:FormattingTiddlers  '« back'>>|<<toolbar editTiddler>>» ^^>>

''There are a number of formatting techniques available for tiddlers- click on a tab to view them.''

''Examples''
|color:#008; !Blockquote |color:#008; !Ordered List |color:#008; !Slider |
|bgcolor:white;width:20%;<<tiddler FormattingIntro##block>>|bgcolor:white;padding-right:5px;<<tiddler FormattingIntro##ordered>>|vertical-align:top;text-align:left;bgcolor:white; <<tiddler FormattingIntro##slider>> |

/%
!slider
+++[This an example of a slider try it]
Get the slider plugin at [[tiddlytools.com|http://www.tiddlytools.com#NestedSlidersPlugin]]

{{{
+++[This is a slider try it]
This is the code for it.
===
}}}
===
!end
%/

/%
!unordered
*Entry One
**Sub-entry A
***Sub-sub-entry i
***Sub-sub-entry ii
**Sub-entry B
*Entry Two
*Entry Three
!end
%/

/%
!ordered
#Entry One
##Sub-entry A
###Sub-sub-entry i
###Sub-sub-entry ii
##Sub-entry B
#Entry Two
#Entry Three
!end
%/

/%
!block
>This is a blockquote
>>For emphasizing text
>>Quite effective
>Use sparingly
!end
%/
<<tabs ""  
[[CommentingAndEscapes ]] "" [[CommentingAndEscapes]]
[[CustomCSSClass ]] "" [[CustomCSSClass]]
[[Encryption ]] "" [[Encryption]]
[[Entities-Codes ]] "" [[Non-Keyboard]]
[[FirstLetter ]] "" [[FirstLetter]]
[[Font Properties ]] "" [[Font Properties - CSS]]
[[FontPropertiesDemo ]] "" [[FontPropertiesDemo]]
[[FontTextStyleWizard ]] "" [[FontTextStyleWizard]]
[[FormattingDates ]] "" [[Date]]
[[Links ]] "" [[HowToUseLinks]]
[[PixelsToEmConverter ]] "" [[PixelsToEmConverter]]
[[TextAlignment ]] "" [[TextAlignment]]
[[TextArea ]] "" [[TextArea]]
[[TextColor ]] "" [[TextColor]]
[[TextMarkup ]] "" [[TextMarkup]]
[[TextProperties ]] "" [[Text Properties - CSS]]
[[ToolTips ]] "" [[ToolTips]]
[[VariableSpacing ]] "" [[VariableSpacing]]
[[ViewingCode ]] "" [[ViewingCode]]
[[WikiWords ]] "" [[WikiWords]]
[[WysiwygEditors ]] "" [[WysiwygEditors]] >>
<<tabs "" [[Intro ]] "" [[IntroFormattingPage]]
 [[AlternateViews ]] "AlternateViews" [[AlternateViews]] 
[[BackstageTweaks ]] " " [[BackstageTweaks]] 
[[ChangePageTitle ]] " " [[ChangePageTitle]]
[[DatedFooter ]] "" [[DatedFooter]]  
[[DualEditToolbars ]] "DualEditToolbars" [[DualEditToolbars]] 
[[FavIcon ]] " " [[FavIcon]] 
[[NestedStyleSheets ]] "NestedStyleSheets" [[NestedStyleSheets]] 
[[SideBarTabsScroll ]] "" [[SideBarTabsScroll]] 
[[StyleSheet ]] " " [[styleSheet]]  
[[StyleSheetColors ]] "" [[styleSheetColors]] 
[[StyleSheetLayout ]] "" [[styleSheetLayout]] 
[[ PageTemplate ]] "" [[pageTemplate]]  
[[ViewTemplate ]] "" [[viewTemplate]] 
[[EditTemplate ]] "" [[editTemplate]]  
[[StyleSheetPrint ]] "" [[styleSheetPrint]]
[[TagDisplayModifcation ]]  "" [[TagDisplayModifcation]]
[[Themes ]] "" [[TiddlyWikiThemes]]
[[ToggleTiddlersBarTabs ]] "" [[ToggleTiddlersBarTabs]] 
[[ToggleSideBars ]] "" [[ToggleSideBars]] 
[[TiddlyBar ]] " " [[TiddlyBar]]>>
<<tabs "" 
[[Intro ]]""[[FormattingIntro]] [[BlockQuotes ]]""[[BlockQuotes]] [[CheckBoxes ]] "" [[CheckBoxes]] [[DefaultTiddlers ]]"DefaultTiddlers"[[AboutDefaultTiddlers]] [[EmbedObject ]]""[[Embed]][[Editing ]] "" [[Editing]] [[FormattingText ]]""[[FormattingText]] [[Headings ]]""[[Headings]] [[HorizontalRule ]]""[[hr]] [[iframes ]]""[[iframes]] [[Images ]]"Images"[[FormattingImages]] [[Links ]]""[[HowToUseLinks]] [[ListsOrdered ]]""[[ListsOrdered]] [[ListsUnordered ]]""[[ListsUnordered]] [[ListsMixed ]] "mixed ordered and unordered" [[ListsMixed]] [[PartPlugin ]]"PartPlugin"[[PartPlugin]] [[ShadowTiddlers ]]"ShadowTiddlers"[[ShadowTiddlers]] [[SlidersOther ]]""[[SlidersOther]]  [[StylingSpecificTiddlers ]]""[[StylingSpecificTiddlers]] [[Tables ]]""[[Tables]] [[Tabs ]]""[[tabs]] [[Tags ]]""[[Tags]] [[TiddlerSections ]]"TiddlerSections"[[TiddlerSections]] [[TiddlerSlicing ]]"TiddlerSlicing"[[TiddlerSlicing]] [[TiddlerBookmark ]]"TiddlerBookmark"[[TiddlerBookmark]] [[TextArea ]] "" [[TextArea]][[TwoColumns ]]""[[TwoColumns]] [[TwoColumnsCSS ]] "TwoColumns using CSS" [[TwoColumnsCSS]] [[WikiWords ]]""[[WikiWords]]>>





!!!<<gradient horiz #fc3 #fff>>&nbsp;Forms^^<<tiddler CloseThisOpen with: WhatsInATiddler  '« back'>>|<<toolbar editTiddler>>» ^^>>
The two plugins you would need are DataTiddlersPlugin and
FormTiddlerPlugin:

http://tiddlywiki.abego-software.de/#DataTiddlerPlugin
http://tiddlywiki.abego-software.de/#FormTiddlerPlugin

Abego extension has some documentation on how to use these two. 
/***
|Name|FullScreenPlugin|
|Created by|SaqImtiaz|
|Location|http://tw.lewcid.org/#FullScreenPlugin|
|Version|1.1|
|Requires|~TW2.x|
!Description:
Toggle between viewing tiddlers fullscreen and normally. Very handy for when you need more viewing space.

!Demo:
Click the ↕ button in the toolbar for this tiddler. Click it again to turn off fullscreen.

!Installation:
Copy the contents of this tiddler to your TW, tag with systemConfig, save and reload your TW.
Edit the ViewTemplate to add the fullscreen command to the toolbar.

!History:
*25-07-06: ver 1.1
*20-07-06: ver 1.0

!Code
***/
//{{{
var lewcidFullScreen = false;

config.commands.fullscreen =
{
            text:" «FullScreen» ",
            tooltip:"Fullscreen mode"
};

config.commands.fullscreen.handler = function (event,src,title)
{
            if (lewcidFullScreen == false)
               {
                lewcidFullScreen = true;
                setStylesheet('#sidebar, .header ,  #mainMenu{display:none;} #displayArea{margin:0em 0 0 0 !important;}',"lewcidFullScreenStyle");
               }
            else
               {
                lewcidFullScreen = false;
                setStylesheet(' ',"lewcidFullScreenStyle");
               }
}

config.macros.fullscreen={};
config.macros.fullscreen.handler =  function(place,macroName,params,wikifier,paramString,tiddler)
{
        var label = params[0]||" «Screen» ";
        var tooltip = params[1]||"Fullscreen mode";
        createTiddlyButton(place,label,tooltip,config.commands.fullscreen.handler);
}

var lewcid_fullscreen_closeTiddler = Story.prototype.closeTiddler;
Story.prototype.closeTiddler =function(title,animate,slowly)
{
           lewcid_fullscreen_closeTiddler.apply(this,arguments);
           if (story.isEmpty() && lewcidFullScreen == true)
              config.commands.fullscreen.handler();
}


Slider.prototype.lewcidStop = Slider.prototype.stop;
Slider.prototype.stop = function()
{
           this.lewcidStop();
           if (story.isEmpty() && lewcidFullScreen == true)
              config.commands.fullscreen.handler();
}
//}}}
{{tablecenter{
<<forEachTiddler 
where
'tiddler.title.toLowerCase().startsWith("g")'
sortBy '(tiddler.title.toLowerCase())' 
 ascending
write
 '"|bgcolor:#fcf; "+(index+1)+"|[["+tiddler.title+"]]| "+tiddler.text.length+"|"+tiddler.tags+"|bgcolor:#fcf;"+tiddler.modified.formatString("YYYY.0MM.0DD")+"|\n"'
 begin '"|sort &raquo;| Title | Size | Tags |Modified|h\n"'
>>
<script>
<!-- hide from old browsers
  var curDateTime = new Date()
  var curHour = curDateTime.getHours() 
     + curDateTime.getTimezoneOffset()/60
  if (curHour > 24)  curHour -= 24
  if (curHour < 0) curHour += 24
  var curMin = curDateTime.getMinutes()
  var curSec = curDateTime.getSeconds()
  var curTime = 
    ((curHour < 10) ? "0" : "") + curHour + ":" 
    + ((curMin < 10) ? "0" : "") + curMin + ":" 
    + ((curSec < 10) ? "0" : "") + curSec 
  document.write(curTime + " GMT") 
//-->
</script>
{{borderless{
|vertical-align:bottom;<<toolbar fullscreen>><<toggleSideBar>>|<<tiddler NavButtons>>|vertical-align:bottom;Open in a new window[img[Open outside link in a new window|http://img229.imageshack.us/img229/1687/extlink7226466sx5.gif][http://theorem.ca/~mvcorks/cgi-bin/unicode.pl.cgi?start=25A0&end=25FF]]|
----
<html><div align="center"><iframe  src ="http://theorem.ca/~mvcorks/cgi-bin/unicode.pl.cgi?start=25A0&end=25FF" width="100%" align="center" height="600" scrolling="auto" frameborder="0" allowtransparency style="border:none;"></iframe></div></html>}}}
<script>
var tids=store.getTaggedTiddlers("CSSRef","modified").reverse();
var now=new Date();
var limit=10000*60*60*24*7; // one week, in 100/sec
var out="";
for (i=0; i<tids.length; i++) {
        if (now-tids[i].modified>limit) break;
        out+="[["+tids[i].title+"]]\n";
}
return out;
</script>
{{textleft{
!!!<<gradient horiz #fc3 #ffffff>>&nbsp;[[Glossary]]>>
*@@color(#00F):''CCS''@@ - Cascading Style Sheets
**Cascading Style Sheets (CSS) is a simple mechanism for adding style (@@color(#C06):e.g. fonts, colors, spacing@@) to Web documents. Tutorials, books, mailing lists for users, etc. can be found on the “[[learning CSS|http://www.w3.org/Style/CSS/learning]]” page. For tutorial on style sheets see:  http://www.w3schools.com/css/default.asp
*@@color(#00F):''HTML''@@ stands for Hyper Text Markup Language
** An HTML file is a text file containing small markup tags
** The markup tags tell the Web browser how to display the page
** An HTML file must have an htm or html file extension
** An HTML file can be created using a simple text editor
** http://www.w3schools.com/html/html_intro.asp
*@@color(#00F):''~JavaScript''@@
**~JavaScript is a prototype-based scripting language with a syntax loosely based on C. Like C, the language has no input or output constructs of its own. Where C relies on standard I/O libraries, a ~JavaScript engine relies on a host environment into which it is embedded. There are many such host environment applications, of which web technologies are the best-known examples. These are examined first.
**One major use of web-based ~JavaScript is to write functions that are embedded in or included from HTML pages and interact with the Document Object Model (DOM) of the page to perform tasks not possible in HTML alone.
**+++[See some JavaScript]
<<tiddler script>>
===

**&nbsp; [[Learn JavaScript|http://www.w3schools.com/js/default.asp]]
<part permalink>
*@@color(#00F):''perma''@@@@color(#C06):''link''@@
**''S''uppose you wish to send a link to a friend to show them your latest tiddler named OverView. Just call up your ~TiddlyWiki online e.g. http://tiddlyspot.com/twhelp/index.html load the tiddler you wish your friend to see then click on @@color(#00F):''perma''@@@@color(#C06):''link''@@ on the __toolbar__.
**''N''otice in your ''browser's'' address box the address is now something like this: http://tiddlyspot.com/twhelp/index.html#OverView. Now copy and paste this link into your email program and send it. When your friend clicks on the link they will see exactly what you were seeing (all other things being equal of course.)
</part>
<part permaview>
*@@color(#00F):''perma''@@@@color(#C06):''view''@@
**''S''uppose you wish your friend to see two (or more) tiddlers e.g. OverView and [[JavaScript]].  Just call up your ~TiddlyWiki online e.g. http://tiddlyspot.com/twhelp/index.html load the tiddlers you wish your friend to see. After you have both tiddlers showing in your ~TiddlyWiki then click on @@color(#00F):''perma''@@@@color(#C06):''view''@@ on the __right sidebar__.
**''N''ow from your browser's address box copy and paste this link <http://tiddlyspot.com/twhelp/index.html#OverView%20JavaScript> into your email program and send it.
</part>
*@@color(#00F):''tiddler''@@
**A tiddler is the basic building block of a ~TiddlyWiki. The web page you are viewing is called a ~TiddlyWiki. The ~TiddlyWiki structure can be considered similiar to a card file used for recipes or an address book but does muc