<!--{{{-->
<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]];}
.readOnly {background:[[ColorPalette::TertiaryPale]];}

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

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

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

hr {height:1px;}

a {text-decoration:none;}

dt {font-weight:bold;}

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

.txtOptionInput {width:11em;}

#contentWrapper .chkOptionInput {border:0;}

.externalLink {text-decoration:underline;}

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

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

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

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

.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0 1em 1em; left: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:0 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 0.3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding: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 0; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}

.fieldsetFix {border:0; padding:0; margin: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;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0; right:0;}
#backstageButton a {padding:0.1em 0.4em; margin:0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin-left:3em; padding:1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}

.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
StyleSheet for use when a translation requires any css style changes.
This StyleSheet can be used directly by languages such as Chinese, Japanese and Korean which need larger font sizes.
***/
/*{{{*/
body {font-size:0.8em;}
#sidebarOptions {font-size:1.05em;}
#sidebarOptions a {font-style:normal;}
#sidebarOptions .sliderPanel {font-size:0.95em;}
.subtitle {font-size:0.8em;}
.viewer table.listView {font-size:0.95em;}
/*}}}*/
/*{{{*/
@media print {
#mainMenu, #sidebar, #messageArea, .toolbar, #backstageButton, #backstageArea {display: none !important;}
#displayArea {margin: 1em 1em 0em;}
noscript {display:none;} /* Fixes a feature in Firefox 1.5.0.2 where print preview displays the noscript content */
}
/*}}}*/
<!--{{{-->
<div class='header' macro='gradient vert [[ColorPalette::PrimaryLight]] [[ColorPalette::PrimaryMid]]'>
<div class='headerShadow'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
<div class='headerForeground'>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'></span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></div>
<div class='title' macro='view title'></div>
<div class='editor' macro='edit title'></div>
<div macro='annotations'></div>
<div class='editor' macro='edit text'></div>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<!--}}}-->
To get started with this blank [[TiddlyWiki]], you'll need to modify the following tiddlers:
* [[SiteTitle]] & [[SiteSubtitle]]: The title and subtitle of the site, as shown above (after saving, they will also appear in the browser title bar)
* [[MainMenu]]: The menu (usually on the left)
* [[DefaultTiddlers]]: Contains the names of the tiddlers that you want to appear when the TiddlyWiki is opened
You'll also need to enter your username for signing your edits: <<option txtUserName>>
These [[InterfaceOptions]] for customising [[TiddlyWiki]] are saved in your browser

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

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

----
Also see [[AdvancedOptions]]
<<importTiddlers>>
Alsamixer is one of the audio configuration tools. This is where you can select sound cards, adjust volume, turn microphones on or off etc.

The default soundmixer is retrovol. This provide similar functionality to Alsamixer but has a better Graphical User Interface (GUI).

Although retrovol does not have an entry in the Menu System it can be invoked by double clicking here or right mouse clicking on the little speaker at the bottom right of the screen. This will bring up a menu, select Full Window.

Sound can sometimes be a challenge to get working. Most times the lack of sound is due to the volume being turned down. If it's muted, right click on the little speaker on the task bar at the bottom right of the screen or double click here. Make sure the Master, PCM boxes are ticked and you have yellow over the red sliders. Use your mouse to increase and decrease the sound.

The volume can also be increased and decreased with the mouse scroll wheel while pointing at the little speaker on the task bar.

The volume level should keep it settings after reboot. Sometimes it takes a little while to wake up and other times you might have to repeat this procedure. 

I have never had this problem myself but some users have reported this as a problem.

The Puppy Linux forums will probably have a fix for it.

A really good Puppy Linux search tool is Puppy Google Search.
Double click > http://wellminded.com/puppy/pupsearch.html
|sortable widetable|k
|<<tiddler MeMo##toggleReadonly>><<tiddler RefreshTiddler with: genopfrisk>>|c
| Spørgsmål | Svar |h
|<<editSection [[##Spørgsmål]] [[redigér Spørgsmål]]>><<tiddler [[##Spørgsmål]]>>|<<tiddler [[##Link]] with:{{store.getValue(tiddler,'link')}}>><<editSection [[##Svar]] [[redigér Svar]]>><<tiddler [[##Svar]]>>|
|>|<<editSection [[##Notat]] [[redigér]]>>Notat:<<tiddler [[##Notat]]>>|
/%
!Spørgsmål

!Svar

!Notat
Distro/andet: Alle
!Link

[[Link »|http://google.dk/search?q=Alternativt software&sitesearch=linux-abc.dk/phpBB3/]]
!end %/
Dette er programmer, der vises i startmenukategorien ''Arbejde'' (Business)
{{nobullets{<<tagglyTagging Arbejde>>}}}
text/plain
.txt .text .js .vbs .asp .cgi .pl
----
text/html
.htm .html .hta .htx .mht
----
text/comma-separated-values
.csv
----
text/javascript
.js
----
text/css
.css
----
text/xml
.xml .xsl .xslt
----
image/gif
.gif
----
image/jpeg
.jpg .jpe .jpeg
----
image/png
.png
----
image/bmp
.bmp
----
image/tiff
.tif .tiff
----
audio/basic
.au .snd
----
audio/wav
.wav
----
audio/x-pn-realaudio
.ra .rm .ram
----
audio/x-midi
.mid .midi
----
audio/mp3
.mp3
----
audio/m3u
.m3u
----
video/x-ms-asf
.asf
----
video/avi
.avi
----
video/mpeg
.mpg .mpeg
----
video/quicktime
.qt .mov .qtvr
----
application/pdf
.pdf
----
application/rtf
.rtf
----
application/postscript
.ai .eps .ps
----
application/wordperfect
.wpd
----
application/mswrite
.wri
----
application/msexcel
.xls .xls3 .xls4 .xls5 .xlw
----
application/msword
.doc
----
application/mspowerpoint
.ppt .pps
----
application/x-director
.swa
----
application/x-shockwave-flash
.swf
----
application/x-zip-compressed
.zip
----
application/x-gzip
.gz
----
application/x-rar-compressed
.rar
----
application/octet-stream
.com .exe .dll .ocx
----
application/java-archive
.jar
/***
|Name|AttachFilePlugin|
|Source|http://www.TiddlyTools.com/#AttachFilePlugin|
|Documentation|http://www.TiddlyTools.com/#AttachFilePluginInfo|
|Version|4.0.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires|AttachFilePluginFormatters, AttachFileMIMETypes|
|Description|Store binary files as base64-encoded tiddlers with fallback links for separate local and/or remote file storage|
Store or link binary files (such as jpg, gif, pdf or even mp3) within your TiddlyWiki document and then use them as images or links from within your tiddler content.
> Important note: As of version 3.6.0, in order to //render// images and other binary attachments created with this plugin, you must also install [[AttachFilePluginFormatters]], which extends the behavior of the TiddlyWiki core formatters for embedded images ({{{[img[tooltip|image]]}}}), linked embedded images ({{{[img[tooltip|image][link]]}}}), and external/"pretty" links ({{{[[label|link]]}}}), so that these formatter will process references to attachment tiddlers as if a normal file reference had been provided. |
!!!!!Documentation
>see [[AttachFilePluginInfo]]
!!!!!Inline interface (live)
>see [[AttachFile]] (shadow tiddler)
><<tiddler AttachFile>>
!!!!!Revisions
<<<
2011.02.14 4.0.1 fix OSX error: use picker.file.path
2009.06.04 4.0.0 changed attachment storage format to use //sections// instead of embedded substring markers.
|please see [[AttachFilePluginInfo]] for additional revision details|
2005.07.20 1.0.0 Initial Release
<<<
!!!!!Code
***/
// // version
//{{{
version.extensions.AttachFilePlugin= {major: 4, minor: 0, revision: 1, date: new Date(2011,2,14)};

// shadow tiddler
config.shadowTiddlers.AttachFile="<<attach inline>>";

// add 'attach' backstage task (insert before built-in 'importTask')
if (config.tasks) { // for TW2.2b or above
	config.tasks.attachTask = {
		text: "attach",
		tooltip: "Attach a binary file as a tiddler",
		content: "<<attach inline>>"
	}
	config.backstageTasks.splice(config.backstageTasks.indexOf("importTask"),0,"attachTask");
}

config.macros.attach = {
// // lingo
//{{{
	label: "attach file",
	tooltip: "Attach a file to this document",
	linkTooltip: "Attachment: ",

	typeList: "AttachFileMIMETypes",

	titlePrompt: " enter tiddler title...",
	MIMEPrompt: "<option value=''>select MIME type...</option><option value='editlist'>[edit list...]</option>",
	localPrompt: " enter local path/filename...",
	URLPrompt: " enter remote URL...",

	tiddlerErr: "Please enter a tiddler title",
	sourceErr: "Please enter a source path/filename",
	storageErr: "Please select a storage method: embedded, local or remote",
	MIMEErr: "Unrecognized file format.  Please select a MIME type",
	localErr: "Please enter a local path/filename",
	URLErr: "Please enter a remote URL",
	fileErr: "Invalid path/file or file not found",

	tiddlerFormat: '!usage\n{{{%0}}}\n%0\n!notes\n%1\n!type\n%2\n!file\n%3\n!url\n%4\n!data\n%5\n',

//}}}
// // macro definition
//{{{
	handler:
	function(place,macroName,params) {
		if (params && !params[0])
			{ createTiddlyButton(place,this.label,this.tooltip,this.toggleAttachPanel); return; }
		var id=params.shift();
		this.createAttachPanel(place,id+"_attachPanel",params);
		document.getElementById(id+"_attachPanel").style.position="static";
		document.getElementById(id+"_attachPanel").style.display="block";
	},
//}}}
//{{{
	createAttachPanel:
	function(place,panel_id,params) {
		if (!panel_id || !panel_id.length) var panel_id="_attachPanel";
		// remove existing panel (if any)
		var panel=document.getElementById(panel_id); if (panel) panel.parentNode.removeChild(panel);
		// set styles for this panel
		setStylesheet(this.css,"attachPanel");
		// create new panel
		var title=""; if (params && params[0]) title=params.shift();
		var types=this.MIMEPrompt+this.formatListOptions(store.getTiddlerText(this.typeList)); // get MIME types
		panel=createTiddlyElement(place,"span",panel_id,"attachPanel",null);
		var html=this.html.replace(/%id%/g,panel_id);
		html=html.replace(/%title%/g,title);
		html=html.replace(/%disabled%/g,title.length?"disabled":"");
		html=html.replace(/%IEdisabled%/g,config.browser.isIE?"disabled":"");
		html=html.replace(/%types%/g,types);
		panel.innerHTML=html;
		if (config.browser.isGecko) { // FF3 FIXUP
			document.getElementById("attachSource").style.display="none";
			document.getElementById("attachFixPanel").style.display="block";
		}
		return panel;
	},
//}}}
//{{{
	toggleAttachPanel:
	function (e) {
		if (!e) var e = window.event;
		var parent=resolveTarget(e).parentNode;
		var panel = document.getElementById("_attachPanel");
		if (panel==undefined || panel.parentNode!=parent)
			panel=config.macros.attach.createAttachPanel(parent,"_attachPanel");
		var isOpen = panel.style.display=="block";
		if(config.options.chkAnimate)
			anim.startAnimating(new Slider(panel,!isOpen,e.shiftKey || e.altKey,"none"));
		else
			panel.style.display = isOpen ? "none" : "block" ;
		e.cancelBubble = true;
		if (e.stopPropagation) e.stopPropagation();
		return(false);
	},
//}}}
//{{{
	formatListOptions:
	function(text) {
		if (!text || !text.trim().length) return "";
		// get MIME list content from text
		var parts=text.split("\n----\n");
		var out="";
		for (var p=0; p<parts.length; p++) {
			var lines=parts[p].split("\n");
			var label=lines.shift(); // 1st line=display text
			var value=lines.shift(); // 2nd line=item value
			out +='<option value="%1">%0</option>'.format([label,value]);
		}
		return out;
	},
//}}}
// // interface definition
//{{{
	css:
	".attachPanel { display: none; position:absolute; z-index:10; width:35em; right:105%; top:0em;\
		background-color: #eee; color:#000; font-size: 8pt; line-height:110%;\
		border:1px solid black; border-bottom-width: 3px; border-right-width: 3px;\
		padding: 0.5em; margin:0em; -moz-border-radius:1em;-webkit-border-radius:1em; text-align:left }\
	.attachPanel form { display:inline;border:0;padding:0;margin:0; }\
	.attachPanel select { width:99%;margin:0px;font-size:8pt;line-height:110%;}\
	.attachPanel input  { width:98%;padding:0px;margin:0px;font-size:8pt;line-height:110%}\
	.attachPanel textarea { width:98%;margin:0px;height:2em;font-size:8pt;line-height:110%}\
	.attachPanel table { width:100%;border:0;margin:0;padding:0;color:inherit; }\
	.attachPanel tbody, .attachPanel tr, .attachPanel td { border:0;margin:0;padding:0;color:#000; }\
	.attachPanel .box { border:1px solid black; padding:.3em; margin:.3em 0px; background:#f8f8f8; \
		-moz-border-radius:5px;-webkit-border-radius:5px; }\
	.attachPanel .chk { width:auto;border:0; }\
	.attachPanel .btn { width:auto; }\
	.attachPanel .btn2 { width:49%; }\
	",
//}}}
//{{{
	html:
	'<form>\
		attach from source file\
		<input type="file" id="attachSource" name="source" size="56"\
			onChange="config.macros.attach.onChangeSource(this)">\
		<div id="attachFixPanel" style="display:none"><!-- FF3 FIXUP -->\
			<input type="text" id="attachFixSource" style="width:90%"\
				title="Enter a path/file to attach"\
				onChange="config.macros.attach.onChangeSource(this);">\
			<input type="button" style="width:7%" value="..."\
				title="Enter a path/file to attach"\
				onClick="config.macros.attach.askForFilename(document.getElementById(\'attachFixSource\'));">\
		</div><!--end FF3 FIXUP-->\
		<div class="box">\
		<table style="border:0"><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			embed data <input type=checkbox class=chk name="useData" %IEdisabled% \
				onclick="if (!this.form.MIMEType.value.length)\
					this.form.MIMEType.selectedIndex=this.checked?1:0; ">&nbsp;\
		</td><td style="border:0">\
			<select size=1 name="MIMEType" \
				onchange="this.title=this.value; if (this.value==\'editlist\')\
					{ this.selectedIndex=this.form.useData.checked?1:0; story.displayTiddler(null,config.macros.attach.typeList,2); return; }">\
				<option value=""></option>\
				%types%\
			</select>\
		</td></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			local link <input type=checkbox class=chk name="useLocal"\
				onclick="this.form.local.value=this.form.local.defaultValue=this.checked?config.macros.attach.localPrompt:\'\';">&nbsp;\
		</td><td style="border:0">\
			<input type=text name="local" size=15 autocomplete=off value=""\
				onchange="this.form.useLocal.checked=this.value.length" \
				onkeyup="this.form.useLocal.checked=this.value.length" \
				onfocus="if (!this.value.length) this.value=config.macros.attach.localPrompt; this.select()">\
		</td></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			remote link <input type=checkbox class=chk name="useURL"\
				onclick="this.form.URL.value=this.form.URL.defaultValue=this.checked?config.macros.attach.URLPrompt:\'\';\">&nbsp;\
		</td><td style="border:0">\
			<input type=text name="URL" size=15 autocomplete=off value=""\
				onfocus="if (!this.value.length) this.value=config.macros.attach.URLPrompt; this.select()"\
				onchange="this.form.useURL.checked=this.value.length;"\
				onkeyup="this.form.useURL.checked=this.value.length;">\
		</td></tr></table>\
		</div>\
		<table style="border:0"><tr style="border:0"><td style="border:0;text-align:right;vertical-align:top;width:1%;white-space:nowrap">\
			notes&nbsp;\
		</td><td style="border:0" colspan=2>\
			<textarea name="notes" style="width:98%;height:3.5em;margin-bottom:2px"></textarea>\
		</td><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			attach as&nbsp;\
		</td><td style="border:0" colspan=2>\
			<input type=text name="tiddlertitle" size=15 autocomplete=off value="%title%"\
				onkeyup="if (!this.value.length) { this.value=config.macros.attach.titlePrompt; this.select(); }"\
				onfocus="if (!this.value.length) this.value=config.macros.attach.titlePrompt; this.select()" %disabled%>\
		</td></tr></tr><tr style="border:0"><td style="border:0;text-align:right;width:1%;white-space:nowrap">\
			add tags&nbsp;\
		</td><td style="border:0">\
			<input type=text name="tags" size=15 autocomplete=off value="" onfocus="this.select()">\
		</td><td style="width:40%;text-align:right;border:0">\
			<input type=button class=btn2 value="attach"\
				onclick="config.macros.attach.onClickAttach(this)"><!--\
			--><input type=button class=btn2 value="close"\
				onclick="var panel=document.getElementById(\'%id%\'); if (panel) panel.parentNode.removeChild(panel);">\
		</td></tr></table>\
	</form>',
//}}}
// // control processing
//{{{
	onChangeSource:
	function(here) {
		var form=here.form;
		var list=form.MIMEType;
		var theFilename  = here.value;
		var theExtension = theFilename.substr(theFilename.lastIndexOf('.')).toLowerCase();
		// if theFilename is in current document folder, remove path prefix and use relative reference
		var h=document.location.href; folder=getLocalPath(decodeURIComponent(h.substr(0,h.lastIndexOf("/")+1)));
		if (theFilename.substr(0,folder.length)==folder) theFilename='./'+theFilename.substr(folder.length);
		else theFilename='file:///'+theFilename; // otherwise, use absolute reference
		theFilename=theFilename.replace(/\\/g,"/"); // fixup: change \ to /
		form.useLocal.checked = true;
		form.local.value = theFilename;
		form.useData.checked = !form.useData.disabled;
		list.selectedIndex=1;
		for (var i=0; i<list.options.length; i++) // find matching MIME type
			if (list.options[i].value.indexOf(theExtension)!=-1) { list.selectedIndex = i; break; }
		if (!form.tiddlertitle.disabled)
			form.tiddlertitle.value=theFilename.substr(theFilename.lastIndexOf('/')+1); // get tiddlername from filename
	},
//}}}
//{{{
	onClickAttach:
	function (here) {
		clearMessage();
		// get input values
		var form=here.form;
		var src=form.source; if (config.browser.isGecko) src=document.getElementById("attachFixSource");
		src=src.value!=src.defaultValue?src.value:"";
		var when=(new Date()).formatString(config.macros.timeline.dateFormat);
		var title=form.tiddlertitle.value;
		var local = form.local.value!=form.local.defaultValue?form.local.value:"";
		var url = form.URL.value!=form.URL.defaultValue?form.URL.value:"";
		var notes = form.notes.value;
		var tags = "attachment excludeMissing "+form.tags.value;
		var useData=form.useData.checked;
		var useLocal=form.useLocal.checked;
		var useURL=form.useURL.checked;
		var mimetype = form.MIMEType.value.length?form.MIMEType.options[form.MIMEType.selectedIndex].text:"";
		// validate checkboxes and get filename
		if (useData) {
			if (src.length) { if (!theLocation) var theLocation=src; }
			else { alert(this.sourceErr); src.focus(); return false; }
		}
		if (useLocal) {
			if (local.length) { if (!theLocation) var theLocation = local; }
			else { alert(this.localErr); form.local.focus(); return false; }
		}
		if (useURL) {
			if (url.length) { if (!theLocation) var theLocation = url; }
			else { alert(this.URLErr); form.URL.focus(); return false; }
		}
		if (!(useData||useLocal||useURL))
			{ form.useData.focus(); alert(this.storageErr); return false; }
		if (!theLocation)
			{ src.focus(); alert(this.sourceErr); return false; }
		if (!title || !title.trim().length || title==this.titlePrompt)
			{ form.tiddlertitle.focus(); alert(this.tiddlerErr); return false; }
		// if not already selected, determine MIME type based on filename extension (if any)
		if (useData && !mimetype.length && theLocation.lastIndexOf('.')!=-1) {
			var theExt = theLocation.substr(theLocation.lastIndexOf('.')).toLowerCase();
			var theList=form.MIMEType;
			for (var i=0; i<theList.options.length; i++)
				if (theList.options[i].value.indexOf(theExt)!=-1)
					{ var mimetype=theList.options[i].text; theList.selectedIndex=i; break; }
		}
		// attach the file
		return this.createAttachmentTiddler(src, when, notes, tags, title,
			useData, useLocal, useURL, local, url, mimetype);
	},
	getMIMEType:
	function(src,def) {
		var ext = src.substr(src.lastIndexOf('.')).toLowerCase();
		var list=store.getTiddlerText(this.typeList);
		if (!list || !list.trim().length) return def;
		// get MIME list content from tiddler
		var parts=list.split("\n----\n");
		for (var p=0; p<parts.length; p++) {
			var lines=parts[p].split("\n");
			var mime=lines.shift(); // 1st line=MIME type
			var match=lines.shift(); // 2nd line=matching extensions
			if (match.indexOf(ext)!=-1) return mime;
		}
		return def;
	},
	createAttachmentTiddler:
	function (src, when, notes, tags, title, useData, useLocal, useURL, local, url, mimetype, noshow) {
		if (useData) { // encode the data
			if (!mimetype.length) {
				alert(this.MIMEErr);
				form.MIMEType.selectedIndex=1; form.MIMEType.focus();
				return false;
			}
			var d = this.readFile(src); if (!d) { return false; }
			displayMessage('encoding '+src);
			var encoded = this.encodeBase64(d);
			displayMessage('file size='+d.length+' bytes, encoded size='+encoded.length+' bytes');
		}
		var usage=(mimetype.substr(0,5)=="image"?'[img[%0]]':'[[%0|%0]]').format([title]);
		var theText=this.tiddlerFormat.format([
			usage, notes.length?notes:'//none//', mimetype,
			useLocal?local.replace(/\\/g,'/'):'', useURL?url:'',
			useData?('data:'+mimetype+';base64,'+encoded):'' ]);
		store.saveTiddler(title,title,theText,config.options.txtUserName,new Date(),tags);
		var panel=document.getElementById("attachPanel"); if (panel) panel.style.display="none";
		if (!noshow) { story.displayTiddler(null,title); story.refreshTiddler(title,null,true); }
		displayMessage('attached "'+title+'"');
		return true;
	},
//}}}
// // base64 conversion
//{{{
	encodeBase64:
	function (d) {
		if (!d) return null;
		// encode as base64
		var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
		var out="";
		var chr1,chr2,chr3="";
		var enc1,enc2,enc3,enc4="";
		for (var count=0,i=0; i<d.length; ) {
			chr1=d.charCodeAt(i++);
			chr2=d.charCodeAt(i++);
			chr3=d.charCodeAt(i++);
			enc1=chr1 >> 2;
			enc2=((chr1 & 3) << 4) | (chr2 >> 4);
			enc3=((chr2 & 15) << 2) | (chr3 >> 6);
			enc4=chr3 & 63;
			if (isNaN(chr2)) enc3=enc4=64;
			else if (isNaN(chr3)) enc4=64;
			out+=keyStr.charAt(enc1)+keyStr.charAt(enc2)+keyStr.charAt(enc3)+keyStr.charAt(enc4);
			chr1=chr2=chr3=enc1=enc2=enc3=enc4="";
		}
		return out;
	},
	decodeBase64: function(input) {
		var out="";
		var chr1,chr2,chr3;
		var enc1,enc2,enc3,enc4;
		var i = 0;
		// remove all characters that are not A-Z, a-z, 0-9, +, /, or =
		input=input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
		do {
			enc1=keyStr.indexOf(input.charAt(i++));
			enc2=keyStr.indexOf(input.charAt(i++));
			enc3=keyStr.indexOf(input.charAt(i++));
			enc4=keyStr.indexOf(input.charAt(i++));
			chr1=(enc1 << 2) | (enc2 >> 4);
			chr2=((enc2 & 15) << 4) | (enc3 >> 2);
			chr3=((enc3 & 3) << 6) | enc4;
			out=out+String.fromCharCode(chr1);
			if (enc3!=64) out=out+String.fromCharCode(chr2);
			if (enc4!=64) out=out+String.fromCharCode(chr3);
		} while (i<input.length);
		return out;
	},
//}}}
// // I/O functions
//{{{
	readFile: // read local BINARY file data
	function(filePath) {
		if(!window.Components) { return null; }
		try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); }
		catch(e) { alert("access denied: "+filePath); return null; }
		var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
		try { file.initWithPath(filePath); } catch(e) { alert("cannot read file - invalid path: "+filePath); return null; }
		if (!file.exists()) { alert("cannot read file - not found: "+filePath); return null; }
		var inputStream = Components.classes["@mozilla.org/network/file-input-stream;1"].createInstance(Components.interfaces.nsIFileInputStream);
		inputStream.init(file, 0x01, 00004, null);
		var bInputStream = Components.classes["@mozilla.org/binaryinputstream;1"].createInstance(Components.interfaces.nsIBinaryInputStream);
		bInputStream.setInputStream(inputStream);
		return(bInputStream.readBytes(inputStream.available()));
	},
//}}}
//{{{
	writeFile:
	function(filepath,data) {
		// TBD: decode base64 and write BINARY data to specified local path/filename
		return(false);
	},
//}}}
//{{{
	askForFilename: // for FF3 fixup
	function(target) {
		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.mozAskForFilename(msg,path,file,true); // FF3 FIXUP ONLY
		if (target && result.length) // set target field and trigger handling
			{ target.value=result; target.onchange(); }
		return result; 
	}
};
//}}}
//{{{
if (window.mozAskForFilename===undefined) { // also defined by CoreTweaks (for ticket #604)
	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='';
			picker.defaultString=file;
			picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterText|nsIFilePicker.filterHTML);
			if (picker.show()!=nsIFilePicker.returnCancel)
				var result=picker.file.path;
		}
		catch(ex) { displayMessage(ex.toString()); }
		return result;
	}
}
//}}}
/***
|Name|AttachFilePluginFormatters|
|Source|http://www.TiddlyTools.com/#AttachFilePluginFormatters|
|Version|4.0.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1.3|
|Type|plugin|
|Description|run-time library for displaying attachment tiddlers|
Runtime processing for //rendering// attachment tiddlers created by [[AttachFilePlugin]].   Attachment tiddlers are tagged with<<tag attachment>>and contain binary file content (e.g., jpg, gif, pdf, mp3, etc.) that has been stored directly as base64 text-encoded data or can be loaded from external files stored on a local filesystem or remote web server.  Note: after creating new attachment tiddlers, you can remove [[AttachFilePlugin]], as long as you retain //this// tiddler (so that images can be rendered later on).
!!!!!Formatters
<<<
This plugin extends the behavior of the following TiddlyWiki core "wikify()" formatters:
* embedded images: {{{[img[tooltip|image]]}}}
* linked embedded images: {{{[img[tooltip|image][link]]}}}
* external/"pretty" links: {{{[[label|link]]}}}
''Please refer to AttachFilePlugin (source: http://www.TiddlyTools.com/#AttachFilePlugin) for additional information.''
<<<
!!!!!Revisions
<<<
2009.10.10 [4.0.1] in fileExists(), check for IE to avoid hanging Chrome during startup
2009.06.04 [4.0.0] changed attachment storage format to use //sections// instead of embedded substring markers.
2008.01.08 [*.*.*] plugin size reduction: documentation moved to ...Info
2007.12.04 [*.*.*] update for TW2.3.0: replaced deprecated core functions, regexps, and macros
2007.10.29 [3.7.0] more code reduction: removed upload handling from AttachFilePlugin (saves ~7K!)
2007.10.28 [3.6.0] removed duplicate formatter code from AttachFilePlugin (saves ~10K!) and updated documentation accordingly.  This plugin ([[AttachFilePluginFormatters]]) is now //''required''// in order to display attached images/binary files within tiddler content.
2006.05.20 [3.4.0] through 2007.03.01 [3.5.3] sync with AttachFilePlugin
2006.05.13 [3.2.0] created from AttachFilePlugin v3.2.0
<<<
!!!!!Code
***/
// // version
//{{{
version.extensions.AttachFilePluginFormatters= {major: 4, minor: 0, revision: 1, date: new Date(2009,10,10)};
//}}}

//{{{
if (config.macros.attach==undefined) config.macros.attach= { };
//}}}
//{{{
if (config.macros.attach.isAttachment==undefined) config.macros.attach.isAttachment=function (title) {
	var tiddler = store.getTiddler(title);
	if (tiddler==undefined || tiddler.tags==undefined) return false;
	return (tiddler.tags.indexOf("attachment")!=-1);
}
//}}}

//{{{
// test for local file existence - returns true/false without visible error display
if (config.macros.attach.fileExists==undefined) config.macros.attach.fileExists=function(f) {
	if(window.Components) { // MOZ
		try { netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); }
		catch(e) { return false; } // security access denied
		var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
		try { file.initWithPath(f); }
		catch(e) { return false; } // invalid directory
		return file.exists();
	}
	else if (config.browser.isIE) { // IE
		var fso = new ActiveXObject("Scripting.FileSystemObject");
		return fso.FileExists(f);
	}
	else return true; // other browsers: assume file exists
}
//}}}

//{{{
if (config.macros.attach.getAttachment==undefined) config.macros.attach.getAttachment=function(title) {

	// extract embedded data, local and remote links (if any)
	var text=store.getTiddlerText(title,'');
	var embedded=store.getTiddlerText(title+'##data','').trim();
	var locallink=store.getTiddlerText(title+'##file','').trim();
	var remotelink=store.getTiddlerText(title+'##url','').trim();

	// backward-compatibility for older attachments (pre 4.0.0)
	var startmarker="---BEGIN_DATA---\n";
	var endmarker="\n---END_DATA---";
	var pos=0; var endpos=0;
	if ((pos=text.indexOf(startmarker))!=-1 && (endpos=text.indexOf(endmarker))!=-1)
		embedded="data:"+(text.substring(pos+startmarker.length,endpos)).replace(/\n/g,'');
	if ((pos=text.indexOf("/%LOCAL_LINK%/"))!=-1)
		locallink=text.substring(text.indexOf("|",pos)+1,text.indexOf("]]",pos));
	if ((pos=text.indexOf("/%REMOTE_LINK%/"))!=-1)
		remotelink=text.substring(text.indexOf("|",pos)+1,text.indexOf("]]",pos));

	// if there is a data: URI defined (not supported by IE)
	if (embedded.length && !config.browser.isIE) return embedded;

	// document is being served remotely... use remote URL (if any)  (avoids security alert)
	if (remotelink.length && document.location.protocol!="file:")
		return remotelink;  

	// local link only... return link without checking file existence (avoids security alert)
	if (locallink.length && !remotelink.length) 
		return locallink; 

	// local link, check for file exist... use local link if found
	if (locallink.length) { 
		locallink=locallink.replace(/^\.[\/\\]/,''); // strip leading './' or '.\' (if any)
		if (this.fileExists(getLocalPath(locallink))) return locallink;
		// maybe local link is relative... add path from current document and try again
		var pathPrefix=document.location.href;  // get current document path and trim off filename
		var slashpos=pathPrefix.lastIndexOf("/"); if (slashpos==-1) slashpos=pathPrefix.lastIndexOf("\\"); 
		if (slashpos!=-1 && slashpos!=pathPrefix.length-1) pathPrefix=pathPrefix.substr(0,slashpos+1);
		if (this.fileExists(getLocalPath(pathPrefix+locallink))) return locallink;
	}

	// no embedded data, no local (or not found), fallback to remote URL (if any)
	if (remotelink.length) return remotelink;

	// attachment URL doesn't resolve, just return input as is
	return title;
}
//}}}
//{{{
if (config.macros.attach.init_formatters==undefined) config.macros.attach.init_formatters=function() {
	if (this.initialized) return;

	// find the formatter for "image" and replace the handler
	for (var i=0; i<config.formatters.length && config.formatters[i].name!="image"; i++);
	if (i<config.formatters.length)	config.formatters[i].handler=function(w) {
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) // Simple bracketted link
			{
			var e = w.output;
			if(lookaheadMatch[5])
				{
				var link = lookaheadMatch[5];
				// ELS -------------
				var external=config.formatterHelpers.isExternalLink(link);
				if (external)
					{
					if (config.macros.attach.isAttachment(link))
						{
						e = createExternalLink(w.output,link);
						e.href=config.macros.attach.getAttachment(link);
						e.title = config.macros.attach.linkTooltip + link;
						}
					else
						e = createExternalLink(w.output,link);
					}
				else 
					e = createTiddlyLink(w.output,link,false,null,w.isStatic);
				// ELS -------------
				addClass(e,"imageLink");
				}
			var img = createTiddlyElement(e,"img");
			if(lookaheadMatch[1])
				img.align = "left";
			else if(lookaheadMatch[2])
				img.align = "right";
			if(lookaheadMatch[3])
				img.title = lookaheadMatch[3];
			img.src = lookaheadMatch[4];
			// ELS -------------
			if (config.macros.attach.isAttachment(lookaheadMatch[4]))
				img.src=config.macros.attach.getAttachment(lookaheadMatch[4]);
			// ELS -------------
			w.nextMatch = this.lookaheadRegExp.lastIndex;
		}
	}
//}}}
//{{{
	// find the formatter for "prettyLink" and replace the handler
	for (var i=0; i<config.formatters.length && config.formatters[i].name!="prettyLink"; i++);
	if (i<config.formatters.length)	{
		config.formatters[i].handler=function(w) {
			this.lookaheadRegExp.lastIndex = w.matchStart;
			var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
			if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
				var e;
				var text = lookaheadMatch[1];
				if(lookaheadMatch[3]) {
					// Pretty bracketted link
					var link = lookaheadMatch[3];
					if (config.macros.attach.isAttachment(link)) {
						e = createExternalLink(w.output,link);
						e.href=config.macros.attach.getAttachment(link);
						e.title=config.macros.attach.linkTooltip+link;
					}
					else e = (!lookaheadMatch[2] && config.formatterHelpers.isExternalLink(link))
						? createExternalLink(w.output,link)
						: createTiddlyLink(w.output,link,false,null,w.isStatic);
				} else {
					e = createTiddlyLink(w.output,text,false,null,w.isStatic);
				}
				createTiddlyText(e,text);
				w.nextMatch = this.lookaheadRegExp.lastIndex;
			}
		}
	} // if "prettyLink" formatter found
	this.initialized=true;
}
//}}}
//{{{
config.macros.attach.init_formatters(); // load time init
//}}}
//{{{
if (TiddlyWiki.prototype.coreGetRecursiveTiddlerText==undefined) {
	TiddlyWiki.prototype.coreGetRecursiveTiddlerText = TiddlyWiki.prototype.getRecursiveTiddlerText;
	TiddlyWiki.prototype.getRecursiveTiddlerText = function(title,defaultText,depth) {
		return config.macros.attach.isAttachment(title)?
			config.macros.attach.getAttachment(title):this.coreGetRecursiveTiddlerText.apply(this,arguments);
	}
}
//}}}
/***
|''Name:''|BackstageSidebarPlugin|
|''Description:''|Moves the sidebar to the backstage, as suggested at http://www.tiddlywiki.org/wiki/Dev:Backstage#Customization|
|''Author''|JonathanLister|
|''CodeRepository:''|n/a |
|''Version:''|0.1|
|''Comments:''|Please make comments at http://groups.google.co.uk/group/TiddlyWikiDev |
|''License''|[[BSD License|http://www.opensource.org/licenses/bsd-license.php]] |
|''~CoreVersion:''|2.4|

***/

//{{{
if(!version.extensions.BackstageSidebarPlugin) {
version.extensions.BackstageSidebarPlugin = {installed:true};

config.tasks.sidebar = {
	text: "sidebar",
	tooltip: "sidebar options",
	content: "<<tiddler SideBarOptions>><<tiddler SideBarTabs>>"
};
config.backstageTasks.push("sidebar");

config.macros.BackstageSidebarPlugin = {
	tiddler:tiddler
};

config.macros.BackstageSidebarPlugin.init = function() {
	var tiddler = this.tiddler;
	setStylesheet(store.getTiddlerText(tiddler.title+'##Stylesheet'),'BackstageSidebarPlugin');
};

} //# end of 'install only once'
//}}}
!usage
{{{[img[Birthe.jpg]]}}}
[img[Birthe.jpg]]
!notes
//none//
!type
image/jpeg
!file

!url
http://www.linux-abc.dk/phpBB3/download/file.php?avatar=1957_1295560979.jpg
!data

!usage
{{{[img[BlackCat.gif]]}}}
[img[BlackCat.gif]]
!notes
//none//
!type
image/gif
!file
file:////mnt/home/Dropbox/Dropbox/Public/Black_Cat_Animation.gif
!url
http://dl.dropbox.com/u/15835063/Black_Cat_Animation.gif
!data
data:image/gif;base64,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
Today the browser is one of the most commonly used applications.

Lucid Puppy 525 doesn't come with a browser installed as there are too many different opinions which is the best. The first time you click on the browse icon you will be given the option to download and install a choice of popular browsers. No, you don't need a browser to download a browser.

There are actually a couple of small browsers that are bundled that really are not secure enough for browsing the internet. They are called Dillo and Midori. They are normally used for setting up your printer or reading HTML documents.

By double clicking on the blue hyperlinks, it will either open a program, load a html page or take you to the internet.

I recommend Seamonkey as a browser as it also comes with a mail client, chat client and a html editor. This package is very similar to windows internet explorer and outlook so only a small learning curve required.
Background: #fff
Foreground: #000
PrimaryPale: #ddaa99
PrimaryLight: #552233
PrimaryMid: #552233
PrimaryDark: #014
SecondaryPale: #994444
SecondaryLight: #994444
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #ffeedd
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
Calc is actually gnumeric and it's very similar to MS Excel and is also compatible with MS Excel. Once again you need to be aware it will save files in it's own format so use Save As to save the files as .xls.
ChatZilla is a chat program for communcating in chat rooms, and believe me there are many.

I am only interested in one, Puppylinux. You can waste far too many heartbeats in chatrooms.

Before you can use ChatZilla you need to install Seamonkey. ChatZilla may be available standalone but I have made the assumption you will download the integrated package from Quickpet.

Seamonkey 2.1 can be installed via quickpet > Internet Pets

If it's not displayed you might need to update the Quickpet repository by clicking on Quickpet > More Pets > Update Lupu PPM

Ok, lets assume you now have Seamonkey 2.1 installed. Make sure you set Seamonkey to be your default browser by clicking on the world icon on the task bar, left bottom of screen, then select Seamonkey2.

You could click on the browse icon on the desktop then press Ctrl+6 or Window on menu bar and select IRC Chat. Naa, that's the sissy way of doing it. Lets try something way more cool.

In a terminal window type seamonkey irc://freenode/puppylinux or click on the link. This will automatically run seamonkey, fireup ChatZilla, and log into Puppylinux on freenode. You may then change the Nickname of root to something more appropriate in the bottom left of the ChatZilla window. It will normally remember your last Nickname.

You can close the seamonkey browser window and just leave the ChatZilla window open if you prefer as it's not required.
/***
|Name|ClickifyPlugin|
|Source|http://www.TiddlyTools.com/#ClickifyPlugin|
|Documentation|http://www.TiddlyTools.com/#ClickifyPlugin|
|Version|1.0.2|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|re-compute parameters when a 'command link' macro is clicked|
!!!!!Usage
<<<
Normally, when you use a //computed parameter// in a macro, it's value is determined when the macro is rendered.  The {{{<<clickify>>}}} macro can be used to force the macro parameters of an 'on-click' command link (such as created by the {{{<<newTiddler>>}}} macro) to be automatically re-computed when the command link is clicked, rather than when it is initially displayed.  This allows use of computed values that depend upon data that may change between the time the macro is rendered and when it's action is actually triggered by a click.

To apply this extended processing to any macro that creates a command link, simply insert the 'clickify' keyword in front of the usual macro name, like this:
{{{
<<clickify macroName param param param ...>>
}}}
<<<
!!!!!Example
<<<
When {{{<<newTiddler>>}}} is clicked, prompt for a title and set default text to current timestamp:
{{{
<<clickify newTiddler title:{{prompt('enter a title','NewTiddler')}} text:{{new Date()}}>>
}}}
><<clickify newTiddler title:{{prompt('enter a title','NewTiddler')}} text:{{new Date()}}>>
<<<
!!!!!Revisions
<<<
2010.07.17 [1.0.2] in b.onclick handler, pass event data ('ev') to command link click handler
2009.02.08 [1.0.1] make sure command link has been rendered before trying to modify it
2009.01.25 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.ClickifyPlugin={major: 1, minor: 0, revision: 2, date: new Date(2010,7,17)};
config.macros.clickify={
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var cmd='<<'+paramString+'>>';
		var e=createTiddlyElement(place,'span');
		wikify(cmd.replace(/alert\(|prompt\(|confirm\(/g,'isNaN('),e);
		var b=e.getElementsByTagName('a')[0]; if (!b) return;
		b.setAttribute('cmd',cmd);
		b.onclick=function(ev) {
			var cmd=this.getAttribute('cmd');
			var e=createTiddlyElement(this.parentNode,'span');
			e.style.display='none';
			wikify(cmd,e);
			e.getElementsByTagName('a')[0].onclick(ev);
			this.parentNode.removeChild(e);
		}
	}
}
//}}}
/%
!info
|Name|CloseOtherTiddlers|
|Source|http://www.TiddlyTools.com/#CloseOtherTiddlers|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|transclusion|
|Description|close all other tiddlers when a specific tiddler is viewed|
Usage:
<<<
{{{
<<tiddler CloseOtherTiddlers>>
}}}
<<<
!end
%/<<tiddler {{
	var out='CloseOtherTiddlers##info';
	if (!tiddler||tiddler.title!='CloseOtherTiddlers') {
		var here=story.findContainingTiddler(place);
		story.closeAllTiddlers(here?here.getAttribute("tiddler"):null);
		out='';
	}
out;}}>>
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
/**
 * Cookie plugin
 *
 * Copyright (c) 2006 Klaus Hartl (stilbuero.de)
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
 *
 */

/**
 * Create a cookie with the given name and value and other optional parameters.
 *
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Set the value of a cookie.
 * @example $.cookie('the_cookie', 'the_value', {expires: 7, path: '/', domain: 'jquery.com', secure: true});
 * @desc Create a cookie with all available options.
 * @example $.cookie('the_cookie', 'the_value');
 * @desc Create a session cookie.
 * @example $.cookie('the_cookie', null);
 * @desc Delete a cookie by passing null as value.
 *
 * @param String name The name of the cookie.
 * @param String value The value of the cookie.
 * @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
 * @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
 *                             If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
 *                             If set to null or omitted, the cookie will be a session cookie and will not be retained
 *                             when the the browser exits.
 * @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
 * @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
 * @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
 *                        require a secure protocol (like HTTPS).
 * @type undefined
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */

/**
 * Get the value of a cookie with the given name.
 *
 * @example $.cookie('the_cookie');
 * @desc Get the value of a cookie.
 *
 * @param String name The name of the cookie.
 * @return The value of the cookie.
 * @type String
 *
 * @name $.cookie
 * @cat Plugins/Cookie
 * @author Klaus Hartl/klaus.hartl@stilbuero.de
 */
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        var path = options.path ? '; path=' + options.path : '';
        var domain = options.domain ? '; domain=' + options.domain : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};
/*{{{*/
Background: #ddf0f7
Foreground: #071a21
PrimaryPale: #e8f5fa
PrimaryLight: #8fcfe7
PrimaryMid: #36aad4
PrimaryDark: #092129
SecondaryPale: #effae8
SecondaryLight: #afe78f
SecondaryMid: #70d436
SecondaryDark: #152909
TertiaryPale: #f8e8fa
TertiaryLight: #de8fe7
TertiaryMid: #c436d4
TertiaryDark: #260929
Error: #f88
ColorPaletteParameters: HSL([196|82], [0.6463700151070952],[0.1|0.9469053440261632])
/*}}}*/
The convential way to Copy and Paste text with key stokes is Ctrl+C to Copy and Ctrl+V to Paste.

Puppy Linux is able to do this as well, however, Puppy does it so much easier. Try this:

Copy this line by highlighting the text by left mouse clicking and drag over the text.

Now place the cursor on a new line and press the scroll wheel on the mouse.



You can also Copy & Paste from/to a terminal window.

Click here to open a terminal window.

Copy the word geany and paste into the terminal window and press Enter.

Geany the text editor is now running.

Have you also noticed all programs can be run either in X windows (the desktop) or from the terminal. Windows can't do that either.

Another benefit is to be able to scroll back through the terminal window and see the history. 

While in the terminal window try using the up scroll key on the keypad. You can press enter to repeat a command.

OMG when will it stop.

/%
!info
|Name|CycleThemes|
|Source|http://www.TiddlyTools.com/#CycleThemes|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|transclusion|
|Description|creates command link to cycle through systemThemes|
Usage
<<<
{{{
<<tiddler CycleThemes>>
<<tiddler CycleThemes with: label "theme theme theme">>
}}}
*''label'' (optional)<br>text of command link. default='next theme'
*''"theme theme theme"'' (optional)<br>list of theme tiddlers to cycle through.   default=[[StyleSheet]] plus all tiddlers tagged with<<tag systemTheme>>, except those tagged with<<tag excludeTheme>>or<<tag excludeLists>>
<<<
Examples
<<<
*Cycle through all themes:<br>{{{<<tiddler CycleThemes>>}}}<br><<tiddler CycleThemes##show with: 'next theme' >>
*Toggle between two themes:<br>{{{<<tiddler CycleThemes with: "toggle" "StyleSheet Plain">>}}}<br><<tiddler CycleThemes##show with: "toggle" "StyleSheet Plain">>
*Apply a theme:<br>{{{<<tiddler CycleThemes with: "default" StyleSheet>>}}}<br><<tiddler CycleThemes##show with: "use default StyleSheet" StyleSheet>>
<<<
!end
!show
<html><nowiki><a href="javascript:;"
onmouseover="
	this.title='current theme: '+config.options.txtTheme;
	this.href='javascript:void(eval(decodeURIComponent(%22(function(){try{('
	+encodeURIComponent(encodeURIComponent(this.onclick))
	+')()}catch(e){alert(e.description?e.description:e.toString())}})()%22)))';"
onclick="
	var titles='$2'.readBracketedList();
	if ('$2'=='$'+'2') {
		var tids=store.getTaggedTiddlers('systemTheme');
		titles=tids.map(function(t){return t.tags.contains('excludeTheme','excludeLists')?null:t.title;});
		titles.pushUnique('StyleSheet');
	}
	var curr=titles.indexOf(config.options.txtTheme);
	var next=curr+1>=titles.length?0:curr+1;
	while(!titles[next] && next!=curr) next=next+1>=titles.length?0:next+1;
	story.switchTheme(titles[next]);
	return false;"
>$1</a></html>
!end
%/<<tiddler {{var src='CycleThemes'; src+(tiddler&&tiddler.title==src?'##info':'##show')}}
	with: {{'$1'=='$'+'1'?'next theme':'$1'}} "$2">>
/***
|''Navn:''|DanishTranslation|
|''Beskrivelse:''|Translation of TiddlyWiki into Danish|
|''Forfatter:''|MartinBudden (mjbudden (at) gmail (dot) com)|
|''Kilde:''|www.example.com |
|''CodeRepository:''|http://svn.tiddlywiki.org/Trunk/association/locales/core/en/locale.en.js |
|''Version:''|0.3.7|
|''Dato:''|Jul 6, 2007|
|''Kommentarer:''|Please make comments at http://groups.google.co.uk/group/TiddlyWikiDev |
|''Licens:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]] |
|''~CoreVersion:''|2.4|
***/

//{{{
//--
//-- Translateable strings
//--

// Strings in "double quotes" should be translated; strings in 'single quotes' should be left alone

config.locale = "da"; // W3C language tag

if (config.options.txtUserName == 'YourName') // do not translate this line, but do translate the next line
	merge(config.options,{txtUserName: "DitNavn"});

merge(config.tasks,{
	save: {text: "gem", tooltip: "Gem dine ændringer til denne TiddlyWiki", action: saveChanges},
	sync: {text: "synk", tooltip: "Synkronisér ændringer med andre TiddlyWiki filer og servere", content: '<<sync>>'},
	importTask: {text: "importér", tooltip: "Importér tiddlers og plugins fra andre TiddlyWiki filer og servere", content: '<<importTiddlers>>'},
	tweak: {text: "Tilpas", tooltip: "Tilpas TiddlyWikis udseende og opførsel", content: '<<options>>'},
	upgrade: {text: "upgradér", tooltip: "Upgrader TiddlyWikis kerne kode", content: '<<upgrade>>'},
	plugins: {text: "udvidelser", tooltip: "Administrér installerede udvidelser", content: '<<plugins>>'}
});

// Options that can be set in the options panel and/or cookies
merge(config.optionsDesc,{
	txtUserName: "Brugernavn til signering af dine ændringer",
	chkRegExpSearch: "Avend almindelige udtryk til søgninger",
	chkCaseSensitiveSearch: "Forskel på store og små bogstaver",
	chkIncrementalSearch: "Bogstav for bogstav-søgning",
	chkAnimate: "Anvend animationer",
	chkSaveBackups: "Gem en backupfil når der gemmes ændringer",
	chkAutoSave: "Gem automatisk ændringer",
	chkGenerateAnRssFeed: "Lav et RSS feed når der gemmes ændringer",
	chkSaveEmptyTemplate: "Lav en tom skabelon når der gemmes ændringer",
	chkOpenInNewWindow: "Åben internet links i et nyt vindue",
	chkToggleLinks: "Når man klikker på et link i åbne tiddlers lukkes de",
	chkHttpReadOnly: "Skjul redigeringsværktøjer når den vises over HTTP",
	chkForceMinorUpdate: "Opdatér ikke brugernavn og dato når tiddlers bliver ændrede",
	chkConfirmDelete: "Bed om bekræftelse før tiddlers slettes",
	chkInsertTabs: "Brug tab tasten til at indsætte tab tegn istedet for at hoppe imellem felter",
	txtBackupFolder: "Navn på mappe til brug for backups",
	txtMaxEditRows: "Maximum antal af rækker i edit bokse",
	txtFileSystemCharSet: "Default tegnsæt til at gemme ændringer (Kun i Firefox/Mozilla)"});

merge(config.messages,{
	customConfigError: "Der opstod problemer ved loading af udvidelser. Se PluginManager for detaljer",
	pluginError: "Fejl: %0",
	pluginDisabled: "Ikke udført fordi det er slået fra via 'systemConfigDisable' tag",
	pluginForced: "Udført fordi det er tvunget via 'systemConfigForce' tag",
	pluginVersionError: "Ikke udført fordi denne udvidelse kræver en nyere udgave af TiddlyWiki",
	nothingSelected: "Intet er valgt. Du er nødt til at vælge en eller flere ting først",
	savedSnapshotError: "Det ser ud som om denne TiddlyWiki er blevet gemt forkert. Se venligst http://www.tiddlywiki.com/#DownloadSoftware for details",
	subtitleUnknown: "(ukendt)",
	undefinedTiddlerToolTip: "Tiddleren '%0' findes ikke endnu",
	shadowedTiddlerToolTip: "Tiddleren '%0' findes ikke endnu, men har en foruddefineret skygge værdi",
	tiddlerLinkTooltip: "%0 - %1, %2",
	externalLinkTooltip: "Internet link til %0",
	noTags: "Der er ingen taggede tiddlere",
	notFileUrlError: "Du er nødt til at gemme denne TiddlyWiki til en fil før du kan gemme ændringer",
	cantSaveError: "Det er ikke muligt at gemme ændringer. Mulige grunde indbefatter:\n- din browser understøtter det ikke (Firefox, Internet Explorer, Safari og Opera virker alle fint hvis de er konfigurerede korrekt)\n- stien til din TiddlyWiki fil indeholder ulovlige tegn\n- TiddlyWiki HTML filen er blevet flyttet eller omdøbt",
	invalidFileError: "Den originale fil '%0' lader ikke til at være en rigtig TiddlyWiki",
	backupSaved: "Backup gemt",
	backupFailed: "Det lykkedes IKKE at gemme en backup fil",
	rssSaved: "RSS feed gemt",
	rssFailed: "Det lykkedes IKKE at gemme et RSS feed",
	emptySaved: "Tom skabelon gemt",
	emptyFailed: "Det lykkedes IKKE at gemme en tom skabelon",
	mainSaved: "Hoved TiddlyWiki fil gemt",
	mainFailed: "Det lykkedes IKKE at gemme hoved TiddlyWiki filen. Dine ændringer er IKKE blevet gemt",
	macroError: "Fejl i makro <<\%0>>",
	macroErrorDetails: "Fejl ved udførsel af makro <<\%0>>:\n%1",
	missingMacro: "Ingen sådan makro",
	overwriteWarning: "En tiddler med navnet '%0' findes allerede. Vælg OK for at overskrive den",
	unsavedChangesWarning: "ADVARSEL! Der er ugemte ændringer i TiddlyWikien\n\nVælg OK for at gemme\nVælg FORTRYD for at afvise",
	confirmExit: "--------------------------------\n\nDer er ugemte ændringer i TiddlyWikien. Hvis du fortsætter vil du miste disse ændringer\n\n--------------------------------",
	saveInstructions: "GemÆndringer",
	unsupportedTWFormat: "Ikke understøttet TiddlyWiki format '%0'",
	tiddlerSaveError: "Fejl ved forsøg på at gemme tiddler '%0'",
	tiddlerLoadError: "Fejl ved load af tiddler '%0'",
	wrongSaveFormat: "Kan ikke gemme med formatet '%0'. Bruger standard format til at gemme.",
	invalidFieldName: "Ikke tilladt feltnavn %0",
	fieldCannotBeChanged: "Felt '%0' kan ikke ændres",
	loadingMissingTiddler: "Forsøger at hente tiddleren '%0' fra '%1' serveren ved:\n\n'%2' i arbejdsområdet '%3'",
	upgradeDone: "Opgradering til version %0 er nu fuldført\n\nKlik 'OK' for at genopfriske den nyligt opgraderede TiddlyWiki"});

merge(config.messages.messageClose,{
	text: "luk",
	tooltip: "luk dette meddelelsesområde"});

config.messages.backstage = {
	open: {text: "bagscenen", tooltip: "Åben bagsceneområdet for at ændre på nogle grundlæggende indstillinger"},
	close: {text: "luk", tooltip: "Luk bagsceneområdet"},
	prompt: "bagscenen: ",
	decal: {
		edit: {text: "edit", tooltip: "Redigér tiddleren '%0'"}
	}
};

config.messages.listView = {
	tiddlerTooltip: "Klik for at se hele denne tiddlers tekst",
	previewUnavailable: "(forhåndsvisning er ikke tilgængelig)"
};

config.messages.dates.months = ["Januar", "Februar", "Marts", "April", "Maj", "Juni", "Juli", "August", "September", "Oktober", "November","December"];
config.messages.dates.days = ["Søndag", "Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag"];
config.messages.dates.shortMonths = ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"];
config.messages.dates.shortDays = ["Søn", "Man", "Tir", "Ons", "Tor", "Fre", "Lør"];
// suffixes for dates, eg "1ste","2den","3die"..."30te","31te"
config.messages.dates.daySuffixes = ["ste","den","die","te","te","te","te","te","te","te",
		"te","te","te","te","te","te","te","te","te","te",
		"ste","den","die","te","te","te","te","te","te","te",
		"te"];
config.messages.dates.am = "formiddag";
config.messages.dates.pm = "eftermiddag";

merge(config.messages.tiddlerPopup,{
	});

merge(config.views.wikified.tag,{
	labelNoTags: "ingen tags",
	labelTags: "tags: ",
	openTag: "Åben tag '%0'",
	tooltip: "Vis tiddlere der er taggede med '%0'",
	openAllText: "Åben alle",
	openAllTooltip: "Åben alle disse tiddlere",
	popupNone: "Ingen andre tiddlere er taggede med '%0'"});

merge(config.views.wikified,{
	defaultText: "Tiddleren '%0' findes ikke endnu. Dobbelt-klik for at lave den",
	defaultModifier: "(mangler)",
	shadowModifier: "(indbygget skygge tiddler)",
	dateFormat: "DD MMM YYYY", // use this to change the date format for your locale, eg "YYYY MMM DD", do not translate the Y, M or D
	createdPrompt: "lavet"});

merge(config.views.editor,{
	tagPrompt: "Skriv tags delt med mellemrum, [[brug 2 dobbelte firkantede klammer]] om nødvendigt, eller tilføj allerede eksisterende",
	defaultText: "Skriv teksten til '%0'"});

merge(config.views.editor.tagChooser,{
	text: "tags",
	tooltip: "Vælg eksisterende tags som tilføjelse til denne tiddler",
	popupNone: "Der er ikke defineret nogen tags",
	tagTooltip: "Tilføj tagget '%0'"});

merge(config.messages,{
	sizeTemplates:
		[
		{unit: 1024*1024*1024, template: "%0\u00a0GB"},
		{unit: 1024*1024, template: "%0\u00a0MB"},
		{unit: 1024, template: "%0\u00a0KB"},
		{unit: 1, template: "%0\u00a0B"}
		]});

merge(config.macros.search,{
	label: "søg",
	prompt: "Søg i denne TiddlyWiki",
	accessKey: "F",
	successMsg: "Der er fundet %0 tiddlere som matcher %1",
	failureMsg: "Der er ikke fundet nogen tiddlere som matcher %0"});

merge(config.macros.tagging,{
	label: "tagger: ",
	labelNotTag: "tagger ikke",
	tooltip: "Liste over tiddlere der er taggede med '%0'"});

merge(config.macros.timeline,{
	dateFormat: "DD MMM YYYY"});// use this to change the date format for your locale, eg "YYYY MMM DD", do not translate the Y, M or D

merge(config.macros.allTags,{
	tooltip: "Vis tiddlere der er taggede med '%0'",
	noTags: "Der er ingen taggede tiddlere"});

config.macros.list.all.prompt = "Alle tiddlere i alfabetisk orden";
config.macros.list.missing.prompt = "Tiddlere der linkes til men som ikke er definerede";
config.macros.list.orphans.prompt = "Tiddlere som der ikke linkes til fra nogen andre tiddlere";
config.macros.list.shadowed.prompt = "Tiddlere som er skyggede med grundlæggende indhold";
config.macros.list.touched.prompt = "Tiddlere som er blevet ændret lokalt ";

merge(config.macros.closeAll,{
	label: "luk alle",
	prompt: "Luk alle viste tiddlere (untaget dem som er ved at blive redigerede)"});

merge(config.macros.permaview,{
	label: "vis permalink",
	prompt: "Lav et link til en URL som henter alle de netop nu synlige tiddlere"});

merge(config.macros.saveChanges,{
	label: "gem ændringer",
	prompt: "Gem alle tiddlere for at lave en ny TiddlyWiki",
	accessKey: "S"});

merge(config.macros.newTiddler,{
	label: "ny tiddler",
	prompt: "Lav en ny tiddler",
	title: "Ny Tiddler",
	accessKey: "N"});

merge(config.macros.newJournal,{
	label: "ny journal",
	prompt: "Lav en ny tiddler ud fra nuværende dato og tid",
	accessKey: "J"});

merge(config.macros.options,{
	wizardTitle: "Tilpas avancerede muligheder",
	step1Title: "Disse muligheder gemmes i cookies i din browser",
	step1Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='false' name='chkUnknown'>Show unknown options</input>",
	unknownDescription: "//(ukendt)//",
	listViewTemplate: {
		columns: [
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'}
			]}
	});

merge(config.macros.plugins,{
	wizardTitle: "Administrer udvidelser",
	step1Title: "Aktive udvidelser",
	step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
	skippedText: "(Denne udvidelse er ikke blevet aktiveret fordi den først er blevet tilføjet efter start)",
	noPluginText: "Der er ikke installeret nogen udvidelser",
	confirmDeleteText: "Er du sikker på at du vil slette disse udvidelser:\n\n%0",
	removeLabel: "Fjern systemConfig tag",
	removePrompt: "Fjern systemConfig tag",
	deleteLabel: "slet",
	deletePrompt: "Slet disse tiddlere permanent",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Size", type: 'Size'},
			{name: 'Forced', field: 'forced', title: "Forced", tag: 'systemConfigForce', type: 'TagCheckbox'},
			{name: 'Disabled', field: 'disabled', title: "Disabled", tag: 'systemConfigDisable', type: 'TagCheckbox'},
			{name: 'Executed', field: 'executed', title: "Loaded", type: 'Boolean', trueText: "Yes", falseText: "No"},
			{name: 'Startup Time', field: 'startupTime', title: "Startup Time", type: 'String'},
			{name: 'Error', field: 'error', title: "Status", type: 'Boolean', trueText: "Error", falseText: "OK"},
			{name: 'Log', field: 'log', title: "Log", type: 'StringList'}
			],
		rowClasses: [
			{className: 'error', field: 'error'},
			{className: 'warning', field: 'warning'}
			]}
	});

merge(config.macros.toolbar,{
	moreLabel: "mere",
	morePrompt: "Vis flere muligheder"
	});

merge(config.macros.refreshDisplay,{
	label: "genopfrisk",
	prompt: "Genopfrisk hele TiddlyWikiens udseende"
	});

merge(config.macros.importTiddlers,{
	readOnlyWarning: "Du kan ikke importere til en låst TiddlyWiki fil. Prøv at åbne den fra en fil:// URL",
	wizardTitle: "Importer tiddlere fra en anden fil eller server",
	step1Title: "Trin 1: Find serveren eller TiddlyWiki filen",
	step1Html: "Vælg servertypen: <select name='selTypes'><option value=''>Choose...</option></select><br>Indskriv webadresse eller sti her: <input type='text' size=50 name='txtPath'><br>...eller søg efter en fil: <input type='file' size=50 name='txtBrowse'><br><hr>...eller vælg et forudbestemt feed: <select name='selFeeds'><option value=''>Vælg...</option></select>",
	openLabel: "åbn",
	openPrompt: "Åbn forbindelsen til denne fil eller server",
	openError: "Der var problemer med at hente tiddlywiki filen",
	statusOpenHost: "Forbinder til hosten",
	statusGetWorkspaceList: "Henter en liste over tilgængelige arbejdsområder",
	step2Title: "Trin 2: Vælg arbejdsområde",
	step2Html: "Indskriv et navn på arbejdsområdet: <input type='text' size=50 name='txtWorkspace'><br>...eller vælg et der allerede er der: <select name='selWorkspace'><option value=''>Choose...</option></select>",
	cancelLabel: "fortryd",
	cancelPrompt: "Fortryd denne import",
	statusOpenWorkspace: "Åben arbejdsområdet",
	statusGetTiddlerList: "Henter listen over tilgængelige tiddlere",
	errorGettingTiddlerList: "Fejl ved hentning af liste over tiddlere, klik Fortryd for at prøve igen",
	step3Title: "Trin 3: Vælg hvilke tiddlere der skal importeres",
	step3Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='true' name='chkSync'>Keep these tiddlers linked to this server so that you can synchronise subsequent changes</input><br><input type='checkbox' name='chkSave'>Save the details of this server in a 'systemServer' tiddler called:</input> <input type='text' size=25 name='txtSaveTiddler'>",
	importLabel: "importer",
	importPrompt: "Importer disse tiddlere",
	confirmOverwriteText: "Er du sikker på at du vil overskrive disse tiddlere:\n\n%0",
	step4Title: "Trin 4: Importerer %0 tiddler(e)",
	step4Html: "<input type='hidden' name='markReport'></input>", // DO NOT TRANSLATE
	doneLabel: "udført",
	donePrompt: "Luk denne wizard",
	statusDoingImport: "Importerer tiddlere",
	statusDoneImport: "Alle tiddlere er importede",
	systemServerNamePattern: "%2 on %1",
	systemServerNamePatternNoWorkspace: "%1",
	confirmOverwriteSaveTiddler: "Tiddleren '%0' findes allerede. Klik 'OK' for at overskrive den med detaljerne fra denne server, eller 'Fortryd' for at efterlade uændret",
	serverSaveTemplate: "|''Type:''|%0|\n|''URL:''|%1|\n|''Workspace:''|%2|\n\nDenne tiddler blev lavet automatisk for at skrive denne servers detaljer",
	serverSaveModifier: "(System)",
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
			{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Size", type: 'Size'},
			{name: 'Tags', field: 'tags', title: "Tags", type: 'Tags'}
			],
		rowClasses: [
			]}
	});

merge(config.macros.upgrade,{
	wizardTitle: "Opgrader TiddlyWikis kerne kode",
	step1Title: "Opdater eller reparer denne TiddlyWiki til sidste nye udgivelse",
	step1Html: "Du er ved at opgradere til sidste nye udgave af TiddlyWikis kerne kode (from <a href='%0' class='externalLink' target='_blank'>%1</a>). Dit indhold vil blive bibeholdt under opgraderinen.<br><br>Bemærk at opgraderinger kan konfikte med gamle udvidelser. Hvis du får problemer med den opgraderede fil se her <a href='http://www.tiddlywiki.org/wiki/CoreUpgrades' class='externalLink' target='_blank'>http://www.tiddlywiki.org/wiki/CoreUpgrades</a>",
	errorCantUpgrade: "Kan ikke opgradere denne TiddlyWiki. Du kan kun opgradere en TiddlyWiki fil som er gemt lokalt på en pc",
	errorNotSaved: "Du skal gemme ændringer før du kan gennemføre en opgradering",
	step2Title: "Bekræft opgraderingsdetaljer",
	step2Html_downgrade: "Du er ved at nedgradere til TiddlyWiki version %0 fra %1.<br><br>Nedgradering til en ældre udgave af kerne koden er IKKE tilrådeligt",
	step2Html_restore: "Denne tiddlyWike bruger allerede den sidste nye kerne kode (%0).<br><br>Du kan fortsætte med opgraderingen for at sikre dig at koden ikke er blevet ødelagt",
	step2Html_upgrade: "Du er ved at opgradere til TiddlyWiki version %0 fra %1",
	upgradeLabel: "opgrader",
	upgradePrompt: "Forbered opgraderingsprocessen",
	statusPreparingBackup: "Forbereder backup",
	statusSavingBackup: "Gemmer backup fil",
	errorSavingBackup: "Der var problemer med at gemme backup filen",
	statusLoadingCore: "Loader kernekoden",
	errorLoadingCore: "Fejl ved load af kernekoden",
	errorCoreFormat: "Fejl ved den nye kernekode",
	statusSavingCore: "Gemmer den nye kernekode",
	statusReloadingCore: "Genloader den nye kernekode",
	startLabel: "start",
	startPrompt: "Start opgraderingsprocessen",
	cancelLabel: "fortryd",
	cancelPrompt: "Fortryd opgraderingsprocessen",
	step3Title: "Opgradering afbrudt",
	step3Html: "Du har afbrudt opgraderingsprocessen"
	});

merge(config.macros.sync,{
	listViewTemplate: {
		columns: [
			{name: 'Selected', field: 'selected', rowName: 'title', type: 'Selector'},
			{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
			{name: 'Server Type', field: 'serverType', title: "Server type", type: 'String'},
			{name: 'Server Host', field: 'serverHost', title: "Server host", type: 'String'},
			{name: 'Server Workspace', field: 'serverWorkspace', title: "Server workspace", type: 'String'},
			{name: 'Status', field: 'status', title: "Synchronisation status", type: 'String'},
			{name: 'Server URL', field: 'serverUrl', title: "Server URL", text: "View", type: 'Link'}
			],
		rowClasses: [
			],
		buttons: [
			{caption: "Synkronisér disse tiddlere", name: 'sync'}
			]},
	wizardTitle: "Synkroniser med internet servere og filer",
	step1Title: "Vælg hvilke tiddlere du vil synkronisere",
	step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
	syncLabel: "synk",
	syncPrompt: "Synkronisér disse tiddlere",
	hasChanged: "Ændret imens den var koblet fra",
	hasNotChanged: "Uændret imens den var koblet fra",
	syncStatusList: {
		none: {text: "...", color: "gennemsigtig", display:null},
		changedServer: {text: "Ændret på serveren", color: '#8080ff', display:null},
		changedLocally: {text: "Ændret imens den var koblet fra", color: '#80ff80', display:null},
		changedBoth: {text: "ændret imens den var koblet fra også på serveren", color: '#ff8080', display:null},
		notFound: {text: "Ikke fundet på serveren", color: '#ffff80', display:null},
		putToServer: {text: "Gemt update på serveren", color: '#ff80ff', display:null},
		gotFromServer: {text: "Hentet update fra serveren", color: '#80ffff', display:null}
		}
	});

merge(config.commands.closeTiddler,{
	text: "luk",
	tooltip: "Luk denne tiddler"});

merge(config.commands.closeOthers,{
	text: "luk andre",
	tooltip: "Luk alle andre tiddlere"});

merge(config.commands.editTiddler,{
	text: "redigér",
	tooltip: "Redigér denne tiddler",
	readOnlyText: "se",
	readOnlyTooltip: "Se denne tiddlers kilde"});

merge(config.commands.saveTiddler,{
	text: "færdig",
	tooltip: "Gem ændringer til denne tiddler"});

merge(config.commands.cancelTiddler,{
	text: "fortryd",
	tooltip: "Fortryd ændringer til denne tiddler",
	warning: "Er du sikker på at du vil fortryde dine ændringer til  '%0'?",
	readOnlyText: "færdig",
	readOnlyTooltip: "Se tiddlere normalt"});

merge(config.commands.deleteTiddler,{
	text: "slet",
	tooltip: "Slet denne tiddler",
	warning: "Er du sikker på at du vil slette '%0'?"});

merge(config.commands.permalink,{
	text: "permalink",
	tooltip: "Permalink til denne tiddler"});

merge(config.commands.references,{
	text: "referencer",
	tooltip: "Vis tiddlere som linker til denne tiddler",
	popupNone: "Ingen referencer"});

merge(config.commands.jump,{
	text: "spring",
	tooltip: "Spring til en anden tiddler"});

merge(config.commands.syncing,{
	text: "synkroniserer",
	tooltip: "Kontroller synkronisering af denne tiddler med en server eller en fil",
	currentlySyncing: "<div>Currently syncing via <span class='popupHighlight'>'%0'</span> to:</"+"div><div>host: <span class='popupHighlight'>%1</span></"+"div><div>workspace: <span class='popupHighlight'>%2</span></"+"div>", // Note escaping of closing <div> tag
	notCurrentlySyncing: "Sykroniserer ikke lige nu",
	captionUnSync: "Stop synkronisering af denne tiddler",
	chooseServer: "Synkronisér denne tiddler med en anden server:",
	currServerMarker: "\u25cf ",
	notCurrServerMarker: "  "});

merge(config.commands.fields,{
	text: "felter",
	tooltip: "Vis denne tiddlers udvidede felter",
	emptyText: "Der er ingen udvidede felter til rådighed for denne tiddler",
	listViewTemplate: {
		columns: [
			{name: 'Field', field: 'field', title: "Field", type: 'String'},
			{name: 'Value', field: 'value', title: "Value", type: 'String'}
			],
		rowClasses: [
			],
		buttons: [
			]}});

merge(config.shadowTiddlers,{
	DefaultTiddlers: "[[Kom i gang]]",
	MainMenu: "[[Kom i gang]]\n\n\n^^~TiddlyWiki version <<version>>\n© 2007 [[UnaMesa|http://www.unamesa.org/]]^^",
	"Kom i gang": "For at komme i gang med denne tomme tiddlywiki, skal du ændre på de følgende tiddlere:\n* SiteTitle & SiteSubtitle: Sidens titel og undertitel, som vist øverst (efter de er gemt, vil de også vise sig i browserens titelmenu)\n* MainMenu: er hovedmenuen (oftest placeret til venstre)\n* DefaultTiddlers: Indeholder navnene på de tiddlere du vil have skal starte op når du åbner TiddlyWiki\nDu skal også skrive dit brugernavn for at signere dine redigeringer: <<option txtUserName>>",
	SiteTitle: "Min TiddlyWiki",
	SiteSubtitle: "en genbrugelig ikke-liniær personlig web notesbog",
	SiteUrl: "http://www.tiddlywiki.com/",
	OptionsPanel: "Disse muligheder for at ændre på TiddlyWiki bliver gemt i din browser\n\nDit brugernavn til at signere dine ændringer. Skriv det som et WikiOrd (f.eks. PerPoulsen)\n<<option txtUserName>>\n\n<<option chkSaveBackups>> Save backups\n<<option chkAutoSave>> Auto save\n<<option chkRegExpSearch>> Regexp search\n<<option chkCaseSensitiveSearch>> Case sensitive search\n<<option chkAnimate>> Enable animations\n\n----\nSe også [[Avancerede muligheder|AdvancedOptions]]",
	SideBarOptions: '<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "muligheder \u00bb" "TiddlyWikis avancerede muligheder">>',
	SideBarTabs: '<<tabs txtMainTab "Tidslinie" "Tidslinie" TabTimeline "Alle" "Alle tiddlere" TabAll "Tags" "Alle tags" TabTags "Flere" "Flere lister" TabMore>>',
	TabMore: '<<tabs txtMoreTab "Manglende" "Manglende tiddlere" TabMoreMissing "Uden tilknytning" "Tiddlere" TabMoreOrphans "Skyggede" "Skyggede tiddlere" TabMoreShadowed>>'
	});

merge(config.annotations,{
	AdvancedOptions: "Denne skyggetiddler giver adgang til flere avancerede muligheder",
	ColorPalette: "Værdierne i denne skyggetiddler bestemmer hvilket farveskema, der bliver brugt til ~TiddlyWikis brugerflade",
	DefaultTiddlers: "Tiddlere som er listede i denne skyggetiddler vil automatisk blive vist når ~TiddlyWiki starter op",
	EditTemplate: "HTML skabelonen i denne skyggetiddler bestemmer hvordan tiddlere ser ud når de bliver redigerede",
	GettingStarted: "Denne skyggetiddler giver instruktioner om grundlæggende anvendelse",
	ImportTiddlers: "Denne skyggetiddler giver mulighed for at importere tiddlere",
	MainMenu: "Denne tiddler bliver brugt til at definere indholdet af hoved menuen i venstre side af skærmen",
	MarkupPreHead: "Denne tiddler bliver indsat i toppen af <head> sektionen på TiddlyWiki HTML filen",
	MarkupPostHead: "Denne tiddler bliver indsat i bunden af <head> sektionen på TiddlyWiki HTML filen",
	MarkupPreBody: "Denne tiddler bliver indsat i toppen af<body> sektionen på TiddlyWiki HTML filen",
	MarkupPostBody: "Denne tiddler bliver indsat i slutningen af  <body> sektionen på TiddlyWiki HTML filen umiddelbart efter script blokken",
	OptionsPanel: "Denne skyggetiddler bliver brugt til indholdet af muligheder skydepanelet i højre side",
	PageTemplate: "HTML skabelonen i denne skyggetiddler bestemmer det overordnede ~TiddlyWiki layout",
	PluginManager: "Denne skyggetiddler giver adgang til udvidelsesadministrationen",
	SideBarOptions: "Denne skyggetiddler bruges til indholdet af muligheder panelet i højre sidemenu",
	SideBarTabs: "Denne skyggetiddler bruges til indholdet af fanebladspanelet i højre sidemenu",
	SiteSubtitle: "Denne skyggetiddler bruges som anden del af sidens titel",
	SiteTitle: "Denne skyggetiddler bruges som første del af sidens titel",
	SiteUrl: "Denne skyggetiddler bør sættes til den fulde mål-URL til publikation",
	StyleSheetColors: "Denne skyggetiddler indeholder CSS definitionerne der bestemmer farverne på side elementerne. ''REDIGÉR IKKE DENNE TIDDLER'', lav i stedet dine ændringer i StyleSheet skyggetiddleren",
	StyleSheet: "Denne tiddler kan indeholde specialle CSS definitioner",
	StyleSheetLayout: "Denne skyggetiddler indeholder CSS definitioner der bestemmer layoutet på side elementer. ''REDIGÉR IKKE DENNE TIDDLER'', lav i stedet dine ændringer i StyleSheet skyggetiddleren",
	StyleSheetLocale: "Denne skyggetiddler indeholder CSS definitioner relateret til lokale oversættelser",
	StyleSheetPrint: "Denne skyggetiddler indeholder CSS definitioner til print",
	TabAll: "Denne skyggetiddler indeholder hvad der er i 'Alle' fanen i højre sidemenu",
	TabMore: "Denne skyggetiddler indeholder  hvad der er i 'Flere' fanen i højre sidemenu",
	TabMoreMissing: "Denne skyggetiddler indeholder  hvad der er i 'Mangler' fanen i højre sidemenu",
	TabMoreOrphans: "Denne skyggetiddler indeholder  hvad der er i  'Mangler tilknytning' fanen i højre sidemenu",
	TabMoreShadowed: "Denne skyggetiddler indeholder  hvad der er i 'Skyggede' fanen i højre sidemenu",
	TabTags: "Denne skyggetiddler indeholder  hvad der er i 'Tags' fanen i højre sidemenu",
	TabTimeline: "Denne skyggetiddler indeholder hvad der er i 'Tidslinie' fanen i højre sidemenu",
	ToolbarCommands: "Denne skyggetiddler bestemmer hvilke værktøjer der vises i tiddleres værktøjslinier",
	ViewTemplate: "HTML skabelonen i denne skyggetiddler bestemmer hvordan tiddlere ser ud"
	});

//}}}
Current theme:<<switchTheme width:auto>><<switchTheme label:Aktivér {{tiddler.title}} >>
/***
|Name|DefaultTheme|
|Source|http://www.TiddlyTools.com/#DefaultTheme|
|Version|1.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|Description|Default systemTheme definition|

|StyleSheet|##StyleSheet|
|PageTemplate|##PageTemplate|
|ViewTemplate|##ViewTemplate|
|EditTemplate|##EditTemplate|
|PageTemplateReadOnly|##PageTemplateReadOnly|
|ViewTemplateReadOnly|##ViewTemplateReadOnly|
|EditTemplateReadOnly|##EditTemplateReadOnly|

!StyleSheet
/*{{{*/
[[StyleSheet]]
/*}}}*/
!PageTemplate
<!--{{{-->
[[PageTemplate]]
<!--}}}-->
!ViewTemplate
<!--{{{-->
[[ViewTemplate]]
<!--}}}-->
!EditTemplate
<!--{{{-->
[[EditTemplate]]
<!--}}}-->
!PageTemplateReadOnly
<!--{{{-->
[[PageTemplateReadOnly]]
<!--}}}-->
!ViewTemplateReadOnly
<!--{{{-->
[[ViewTemplate]]
<!--}}}-->
!EditTemplateReadOnly
<!--{{{-->
[[EditTemplateReadOnly]]
<!--}}}-->
***/
[[Velkommen]]
[[Kom i gang]]
One of the first changes many users make to their new operating system is to change the wallpaper/background. I guess it provides that personal feel.

Puppy is also capable of doing this. By now you will have probably discovered how to get to the Menu system. Simply click on the Menu button on the task bar at the bottom left of the screen or right click anywhere on the desktop. This will give you many choices of software to run under a structured three tiered menu structure.

Select Nathan Wallpaper setter to change the background or click here.

If you want to add additional wallpapers, place them in:
/usr/share/backgrounds so the Wallpaper Setter can find them.
Most of your desktop settings can be found under the Desktop menu Item.

Click the twistie to see what available.
@@position:relative;+++^65em^[dialog »|her kan vi diskutere uden overskrivningsproblemer - i realtime!!]...
<html><div align="center"><iframe src="http://typewith.me/dialog-mellem-Hans-Henrik-og-Maans-om-TiddlyWiki" frameborder="0" width="100%" height="600"></iframe></div></html>===@@
Dette er programmer, der vises i startmenukategorien ''Dokument'' (Document)
{{nobullets{<<tagglyTagging Dokument>>}}}
@@float:right;<<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>>@@
/***
|Name|EditSectionPlugin|
|Source|http://www.TiddlyTools.com/#EditSectionPlugin|
|Documentation|http://www.TiddlyTools.com/#EditSectionPlugin|
|Version|1.5.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|invoke popup 'section editor' for specified section of a tiddler|
!!!!!Usage
<<<
{{{
<<editSection TiddlerName##sectionname label tooltip>>
}}}
where:
* ''~TiddlerName##sectionname'' specifies the tiddler and section you want to edit.
** If you omit the "##sectionname" portion (i.e., only enter "~TiddlerName"), the entire content of the indicated tiddler is edited.
** If you omit the "~TiddlerName" portion (i.e., only enter "##sectionname"), the current containing tiddler (if any) is assumed.
** Changing the section name in the popup editor //renames// that section within the tiddler.
** Changing the tiddler title in the popup editor //copies// that section to another tiddler.
** If the indicated tiddler and/or section does not yet exist, it will be created when you press 'save'.
* ''label'' and ''tooltip'' (both //optional//) specify the link label and mouseover help text for the 'edit section' command link.
Note: when a document is viewed in 'readOnly' mode, the macro is bypassed and a command link is not rendered.
<<<
!!!!!Sample
<<<
This is a sample section for you to try
<<<
!!!!!Example
<<<
{{{
<<editSection ##Sample>>
}}}
<<editSection ##Sample>>
<<<
!!!!!Configuration
<<<
To customize and/or translate the HTML form layout used to render the section editor, edit the [[EditSectionTemplate]] shadow tiddler.
<<<
!!!!!Revisions
<<<
2011.01.09 1.5.1 in handler(), don't render command link if document is readOnly
2010.12.24 1.5.0 replace use of core Popups with custom panel handling (bypass core interactions and errors)
2010.11.07 1.4.0 in popup(), render HTML form from EditSectionTemplate, and then applyHtmlMacros() to render wiki-syntax macro-generated form elements (e.g., {{{<<option>>, <<select>>}}}, etc.).  Also, refactored form init/save handling to add customization 'hooks'
2010.10.25 1.3.0 added support for editing complete tiddlers using "~TiddlerName" syntax (omit "##sectionname")
2010.07.15 1.2.0 added confirmation when section rename will overwrite other section
2010.07.13 1.1.1 added 'dirty flag' confirmation to popup handling to avoid discarding unsaved changes
2010.07.11 1.1.0 fixed handling for creating new sections in existing tiddlers. Copied StickyPopupPlugin to eliminate dependency. Added Popup.showHere()
2010.05.24 1.0.2 in save(), escape regexp chars in section titles (e.g. "!SectionNameWith?InIt")
2009.09.07 1.0.1 documentation/code cleanup
2009.09.01 1.0.0 initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.EditSectionPlugin= {major: 1, minor: 5, revision: 1, date: new Date(2011,1,9)};

config.macros.editSection = {
	label: 'edit section...',
	tip: 'edit %0',
	sectionfmt: '{{hidden{\n!%0\n%1\n!end\n}}}',
	sectionerr: 'Invalid tiddler/section name: %0',
	newtiddlertxt: '',
	discardmsg: 'Discard unsaved changes for %0%1%2?',
	overwritemsg: '%0##%2 already exists. Choose OK to overwrite it',
	template: 'EditSectionTemplate',
	init: function() {
		// SHADOW PAYLOAD FOR EditSectionTemplate FORM DEFINITION
		config.shadowTiddlers[this.template]
			=store.getTiddlerText('EditSectionPlugin##HTML','');

		// CLOSE PANELS IF CLICK on other than POPUP OR EDITOR PANEL
		addEvent(document,'click',function(ev) {
			var p=resolveTarget(ev||window.event);
			while (p) {
				if (hasClass(p,'editSectionPanel')) break;
				if (hasClass(p,'popup')) break;
				p=p.parentNode;
			}
			if (!p) config.macros.editSection.removeAllPanels();
			return true;
		});

		// HIJACK QuickEditPlugin's getField() to support use with editSectionPanel
		if (config.quickEdit) {
			config.quickEdit.getTiddlerField=config.quickEdit.getField;
			config.quickEdit.getField=function(where) {
				var e=where; while(e) {	if (hasClass(e,'editSectionPanel')) break; e=e.parentNode; }
				return e?e.getElementsByTagName('textarea')[0]:this.getTiddlerField(where);
			}

		}
	},
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		if (readOnly) return;
		var here=story.findContainingTiddler(place);
		var tid=params[0];
		var label=params[1]||this.label.format([tid]);
		var tip=params[2]||this.tip.format([tid]);
		var btn=createTiddlyButton(place,label,tip,this.click);
		btn.setAttribute('tid',tid);
	},
	processed: function(ev) {
		ev.cancelBubble=true;
		if(ev.stopPropagation)ev.stopPropagation();
		return false;
	},
	click: function(ev,template,initForm,saveForm) {
		var parts=this.getAttribute('tid').split('##');
		var title=parts[0]; var section=parts[1];
		var here=story.findContainingTiddler(this);
		if (!title&&here) title=here.getAttribute('tiddler');
		if (!title) return false;
		return config.macros.editSection.createPanel(this,ev,title,section,template,initForm,saveForm);
	},
	createPanel: function(here,ev,title,section,template,initForm,saveForm) {
		if (!this.removeAllPanels()) return this.processed(ev);
		var p=createTiddlyElement(document.body,"ol","popup","popup smallform editSectionPanel");
		p.root=here; 
		p.setAttribute('dirty',null);
		p.setAttribute('message',this.discardmsg.format([title,section?'##':'',section]));
		p.innerHTML=store.getRecursiveTiddlerText(template||this.template,'',10);
		applyHtmlMacros(p,store.getTiddler(title));
		var f=p.getElementsByTagName('form')[0];
		this.initPanel(p,here,f,title,section,initForm,saveForm);
		this.showPanel(p,here,ev);
		return this.processed(ev);
	},
	initPanel: function(p,here,f,title,section,initForm,saveForm) {
		f.panel=p;
		f.title.value=title;
		f.section.value=section;
		f.newsection.value=title+(section?'##'+section:'');
		f.content.value=store.getTiddlerText(f.newsection.value,'');
		if (version.extensions.TextAreaPlugin) new window.TextAreaResizer(f.content);
		f.initForm=initForm;
		f.saveForm=saveForm;
		if (f.initForm) f.initForm(here,f,title,section);
	},
	showPanel: function(p,here,ev) {
		var x=ev.pageX; var y=ev.pageY;
		if (config.browser.isIE)	{ x=ev.clientX+findScrollX(); y=ev.clientY+findScrollY(); }
		var winw=findWindowWidth();
		var scrollw=winw-document.body.offsetWidth;
		if(p.offsetWidth>winw*0.75) p.style.width=winw*0.75 + "px";
		if(x+p.offsetWidth>winw-scrollw-1) x=winw-p.offsetWidth-scrollw-1;
		var s=p.style; s.left=x+'px'; s.top=y+'px'; s.display='block';
		if(config.options.chkAnimate && anim)	anim.startAnimating(new Scroller(p));
		else					window.scrollTo(0,ensureVisible(p));
	},
	removePanel: function(p) {
		if (!p || p.getAttribute('dirty')!='true' || confirm(p.getAttribute('message')))
			{ if (p) removeNode(p); return true; }
		return false;
	},
	removeAllPanels: function() {
		var ok=true;
		jQuery('.editSectionPanel').each(function(index){
			var f=this.getElementsByTagName('form')[0];
			f.content.blur(); // force onchange (sets 'dirty' flag as needed)
			ok=config.macros.editSection.removePanel(this);
			return true;
		});
		return ok; // FALSE if panels remain
	},
	changed: function(here,ev) {
		here.form.panel.setAttribute('dirty','true');
		return this.processed(ev);
	},
	cancel: function(here,ev) {
		this.removePanel(here.form.panel);
		return this.processed(ev);
	},
	save: function(here,ev) {
		var f=here.form;

		// GET TARGET TITLE/SECTION
		var tid=f.newsection.value;
		var parts=tid.split('##');
		var title=parts[0];
		var section=parts[1];
		var where=here.form.panel.root;
		if (!title) title=story.findContainingTiddler(where).getAttribute('tiddler');
		if (!title) {
			displayMessage(this.sectionerr.format([f.newsection.value]));
			f.newsection.focus(); f.newsection.select(); return false;
		}

		// GET (or CREATE) TIDDLER
		var t=store.getTiddler(title);
		var who =t&&config.options.chkForceMinorUpdate?t.modifier:config.options.txtUserName;
		var when=t&&config.options.chkForceMinorUpdate?t.modified:new Date();
		if (!t) {
			t=new Tiddler(); t.text=store.getTiddlerText(title,'');
			if (section&&!t.text.length) t.text=this.newtiddlertxt.format([title,section]);
		}

		// GET NEW CONTENT FROM FORM CONTROLS (DEFAULT = TEXT CONTENT ONLY)
		var txt=f.saveForm?f.saveForm(where,f):f.content.value;

		// CHECK FOR TIDDLER OVERWRITE
		if (!section && title!=f.title.value && store.tiddlerExists(title)) {
			if (!confirm(config.messages.overwriteWarning.format([title])))
				{ f.newsection.focus(); f.newsection.select(); return this.processed(ev); }

		}

		// ADD/REVISE/RENAME SECTION CONTENT (if any)
		if (section) {
			// GET SECTION VALUES
			var oldsection=f.section.value;
			var oldval=store.getTiddlerText(title+'##'+oldsection); // previous section value
			var newval=txt; // revised section value
			var existingval=store.getTiddlerText(title+'##'+section); // existing section value

			// REVISE TIDDLER TEXT
			var txt=t.text; // default tiddler text = unchanged
			var pattern=new RegExp('(.*!{1,6})'+oldsection.escapeRegExp()+'\\n'
				+(oldval||'').escapeRegExp()+'((?:\\n!{1,6}|$).*)');
			var altpattern=this.sectionfmt.format([oldsection,oldval||'']);
			if (section!=oldsection && existingval) { // rename overwrites another section...
				if (!confirm(this.overwritemsg.format([title,section])))
					return this.processed(ev);
				txt=txt.replace(altpattern,''); // REMOVE old section (auto-generated)
				txt=txt.replace(pattern,'$2');  // REMOVE old section (generic format)
				// TARGET new section name and value
				pattern=new RegExp('(.*!{1,6})'+section.escapeRegExp()+'\\n'
					+existingval.escapeRegExp()+'((?:\\n!{1,6}|$).*)');
				oldval=existingval;
			}
			if (typeof oldval=="string") // section exists... update/rename it
				txt=txt.replace(pattern,'$1'+section+'\n'+newval+'$2');
			else // otherwise, append a new section to end of tiddler
				txt=txt+this.sectionfmt.format([section,newval]);
		}

		// SAVE TIDDLER
		store.saveTiddler(title,title,txt,who,when,t.tags,t.fields);
		story.refreshTiddler(title,null,true);
		f.panel.setAttribute('dirty',null);
		this.removePanel(f.panel);
		return this.processed(ev);
	}
}
//}}}
/***
//{{{
!HTML
<!--{{{-->
<!--
|Name|EditSectionTemplate|
|Source||
|Version||
|Author||
|License|http://www.TiddlyTools.com/#LegalStatements|
|Type|template|
|Requires|EditSectionPlugin|
|Description|popup editor form template used by EditSectionPlugin|
-->
<form action='javascript:;' style="white-space:nowrap">
<input type="hidden" name="title" value="">
<input type="hidden" name="section" value="">
<input type="text" name="newsection" value="" autocomplete="off" style="width:73%"
	onchange="return config.macros.editSection.changed(this,event);">
<input type=button value="save" style="width:12%"
	onclick="return config.macros.editSection.save(this,event)">
<input type=button value="cancel" style="width:12%"
	onclick="return config.macros.editSection.cancel(this,event)">
<div macro="tiddler QuickEditToolbar"></div>
<textarea name="content" rows="15" cols="80" autocomplete="off"
	onchange="return config.macros.editSection.changed(this,event)"></textarea>
</form>
<!--}}}-->
!end
//}}}
***/
 
<!--{{{-->
<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 macro='tiddler QuickEditToolbar'></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>
<!--}}}-->
As already stated in the browser section, Seamonkey mail is bundled. This is already installed too and Seamonkey mail should open when you click on the yellow envelope icon.

It is quite easy to setup. You just need to know your ISP details. Mine is Internode and the mail server is:

mail.internode.on.net

Bigpond would be:

mail.bigpond.com and in some cases mail.bigpond.com.au or mail.bigpond.net

You will also be required to enter your username and password.
@@color:#800;Tiddlers tagged with EmbeddedImages@@
----
{{twocolumns{
<script>
// get all tiddlers tagged with "EmbeddedImages"
var tids=store.getTaggedTiddlers("EmbeddedImages");
// keep only tiddlers *also* tagged with New
var list=[];
for (var t=0; t<tids.length; t++)
   if (tids[t].isTagged("EmbeddedImages")) 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>
}}} 
{{floatright{<<tiddler [[SideBarOptions##tema]]>>}}}
Søg på Linux-abc: <<tiddler abc-Søgning>>
<<tiddler MeMo2 with: emne Emne Underemner 26>>
<<tiddler CloseOtherTiddlers>>
/***
|Name|FileDropPlugin|
|Source|http://www.TiddlyTools.com/#FileDropPlugin|
|Version|2.1.4|
|Author|BradleyMeck and Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|drag-and-drop files/directories to create tiddlers|
''requires FireFox or another Mozilla-compatible browser.''
!!!!!Usage
<<<
This plugin automatically creates tiddlers from files that are dropped onto an open TiddlyWiki document.  You can drop multiple selected files and/or folders to create many tiddlers at once.  New tiddler titles are created using the filename of each dropped file (i.e., omitting the path).  If a title is already in use, you are prompted to enter a new title for that file.  If you drop a folder, you will be asked if you want to create a simple 'directory list' of files in a single tiddler or create one tiddler for each file in that folder.  

By default, it is assumed that all dropped files contain text.  However, if [[AttachFilePlugin]], [[AttachFilePluginFormatters]] and [[AttachFileMIMETypes]] are installed, then you can drop ''//binary data files//'' as well as text files.  If the MIME type of a dropped file is not "text/plain", then AttachFilePlugin is used to create an 'attachment' tiddler, rather than creating a simple text tiddler.

When creating text tiddlers, you can embed a //link// to the original external file at the top of the new tiddler, in addition to (or instead of) the text content itself.  The format for this link (see Configuration, below) uses embedded ''//replacement markers//'' that allow you to generate a variety of wiki-formatted output, where:
*%0 = filename (without path)
*%1 = local """file://...""" URL
*%2 = local path and filename (OS-native format)
*%3 = relative path (if subdirectory of current document directory)
*%4 = file size
*%5 = file date
*%6 = current date
*%7 = current ~TiddlyWiki username
*\n = newline
By default, the link format uses the filename (%0) and local URL (%1), enclosed within a //hidden section// syntax, like this:
{{{
/%
!link
[[%0|%1]]
!end
%/
}}}
This permits the link to be embedded along with the text content, without changing the appearance of that content when the tiddler is viewed.  To display the link in your tiddler content, use:
{{{
<<tiddler TiddlerName##link>>
}}}
<<<
!!!!!Configuration
<<<
__FileDropPlugin options:__
<<option chkFileDropContent>>Copy file content into tiddlers if smaller than: <<option txtFileDropDataLimit>> bytes
&nbsp; //(note: excess text content will be truncated, oversized binary files will skipped, 0=no limit)//
<<option chkFileDropLink>>Generate external links to files, using this format:{{editor{<html><nowiki><textarea rows="4" onchange="
config.macros.option.propagateOption('txtFileDropLinkFormat','value',this.value.escapeLineBreaks(),'input');
"></textarea></html><<tiddler {{
	var ta=place.lastChild.getElementsByTagName('textarea')[0];
	var v=config.options.txtFileDropLinkFormat.unescapeLineBreaks();
	ta.value=v;
"";}}>>}}}<<option chkFileDropTrimFilename>>Omit file extensions from tiddler titles
<<option chkFileDropDisplay>>Automatically display newly created tiddlers
Tag newly created tiddlers with: <<option txtFileDropTags>>

__FileDropPlugin+AttachFilePlugin options:__ //(binary file data as encoded 'base64' text)//
<<option chkFileDropAttachLocalLink>> attachment includes reference to local path/filename
>Note: if the plugin does not seem to work, enter ''about:config'' in the Firefox address bar, and make sure that {{{signed.applets.codebase_principal_support}}} is set to ''true''
<<<
!!!!!Examples (custom handler functions)
<<<
Adds a single file with confirmation and prompting for title:
{{{
config.macros.fileDrop.addEventListener('application/x-moz-file',
	function(nsiFile) {
		var msg='You have dropped the file:\n'
			+nsiFile.path+'\n'
			+'onto the page, it will be imported as a tiddler. Is that ok?'
		if(confirm(msg)) {
			var newDate = new Date();
			var title = prompt('what would you like to name the tiddler?');
			store.saveTiddler(title,title,loadFile(nsiFile.path),config.options.txtUserName,newDate,[]);
		}
		return true;
	});
}}}
Adds a single file without confirmation, using path/filename as tiddler title:
{{{
config.macros.fileDrop.addEventListener('application/x-moz-file',
	function(nsiFile) {
		var newDate = new Date();
		store.saveTiddler(nsiFile.path,nsiFile.path,loadFile(nsiFile.path),config.options.txtUserName,newDate,[]);
		story.displayTiddler(null,nsiFile.path)
		return true;
	});
}}}
<<<
!!!!!Revisions
<<<
2010.03.06 2.1.4 added event listener for 'dragover' (for FireFox 3.6+)
2009.10.10 2.1.3 fixed IE code error
2009.10.08 2.1.2 fixed chkFileDropContent bypass handling for binary attachments
2009.10.07 2.1.0 added chkFileDropContent and chkFileDropLink/txtFileDropLinkFormat
2009.08.19 2.0.0 fixed event listener registration for FireFox 3.5+.  Also, merged with FileDropPluginConfig, with code cleanup/reduction
2008.08.11 1.5.1 added chkFileDropAttachLocalLink option to allow suppression of local path/file link
2007.xx.xx *.*.* add suspend/resume of notifications to improve performance when multiple files are handled
2007.01.01 0.9.9 extensions for AttachFilePlugin
2006.11.04 0.1.1 initial release by Bradley Meck
<<<
!!!!!Code
***/
//{{{
version.extensions.FileDropPlugin={major:2, minor:1, revision:4, date: new Date(2010,3,6)};

config.macros.fileDrop = {
	customDropHandlers: [],
	addEventListener: function(paramflavor,func,inFront) {
		var obj={}; obj.flavor=paramflavor; obj.handler=func;
		if (!inFront) this.customDropHandlers.push(obj);
		else this.customDropHandlers.shift(obj);
	},
	dragDropHandler: function(evt) {
		netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
		var dragService = Components.classes['@mozilla.org/widget/dragservice;1'].getService(Components.interfaces.nsIDragService);
		var dragSession = dragService.getCurrentSession();
		var transferObject = Components.classes['@mozilla.org/widget/transferable;1'].createInstance();
		transferObject = transferObject.QueryInterface(Components.interfaces.nsITransferable);
		transferObject.addDataFlavor('application/x-moz-file');
		var numItems = dragSession.numDropItems;
		if (numItems>1) {
			clearMessage();
			displayMessage('Reading '+numItems+' files...');
			store.suspendNotifications();
		}
		for (var i = 0; i < numItems; i++) {
			dragSession.getData(transferObject, i);
			var dataObj = {};
			var dropSizeObj = {};
			for(var ind=0; ind<config.macros.fileDrop.customDropHandlers.length; ind++) {
				var item = config.macros.fileDrop.customDropHandlers[ind];
				if(dragSession.isDataFlavorSupported(item.flavor)) {
					transferObject.getTransferData(item.flavor, dataObj, dropSizeObj);
					var droppedFile = dataObj.value.QueryInterface(Components.interfaces.nsIFile);
					var result = item.handler.call(item,droppedFile);
					evt.stopPropagation();
					evt.preventDefault();
					if (result) break;
				}
			}
		}
		if (numItems>1) {
			store.resumeNotifications();
			store.notifyAll();
			displayMessage(numItems+' files have been processed');
		}
	}
}
//}}}
/***
!!!!!window event handlers
***/
//{{{
if(!window.event) {
	window.addEventListener('dragdrop',	// FireFox3.1-
		config.macros.fileDrop.dragDropHandler, true);
	window.addEventListener('drop',		// FireFox3.5+
		config.macros.fileDrop.dragDropHandler, true);
	window.addEventListener('dragover',	// FireFox3.6+
		function(e){e.stopPropagation();e.preventDefault();}, true); 
}
//}}}
/***
!!!!!handler for files, directories and binary attachments (see [[AttachFilePlugin]])
***/
//{{{
var defaults={
	chkFileDropDisplay:		true,
	chkFileDropTrimFilename:	false,
	chkFileDropContent:		true,
	chkFileDropLink:		true,
	txtFileDropLinkFormat:		'/%\\n!link\\n[[%0|%1]]\\n!end\\n%/',
	txtFileDropDataLimit:		'32768',
	chkFileDropAttachLocalLink:	true,
	txtFileDropTags:		''
};
for (var id in defaults) if (config.options[id]===undefined)
	config.options[id]=defaults[id];

config.macros.fileDrop.addEventListener('application/x-moz-file',function(nsiFile) {
	var co=config.options; // abbrev
	var header='Index of %0\n^^(as of %1)^^\n|!filename| !size | !modified |\n';
	var item='|[[%0|%1]]| %2|%3|\n';
	var footer='Total of %0 bytes in %1 files\n';
	var now=new Date();
	var files=[nsiFile];
	if (nsiFile.isDirectory()) {
		var folder=nsiFile.directoryEntries;
		var files=[];
		while (folder.hasMoreElements()) {
			var f=folder.getNext().QueryInterface(Components.interfaces.nsILocalFile);
			if (f instanceof Components.interfaces.nsILocalFile && !f.isDirectory()) files.push(f);
		}
		var msg=nsiFile.path.replace(/\\/g,'/')+'\n\n';
		msg+='contains '+files.length+' files... ';
		msg+='select OK to attach all files or CANCEL to create a list...';
		if (!confirm(msg)) { // create a list in a tiddler
			var title=nsiFile.leafName; // tiddler name is last directory name in path
			while (title && title.length && store.tiddlerExists(title)) {
				if (confirm(config.messages.overwriteWarning.format([title]))) break;
				title=prompt('Enter a new tiddler title',nsiFile.path.replace(/\\/g,'/'));
			}
			if (!title || !title.length) return true; // cancelled
			var text=header.format([nsiFile.path.replace(/\\/g,'/'),now.toLocaleString()]);
			var total=0;
			for (var i=0; i<files.length; i++) { var f=files[i];
				var name=f.leafName;
				if (co.chkFileDropTrimFilename)
					{ var p=name.split('.'); if (p.length>1) p.pop(); name=p.join('.'); }
				var path='file:///'+f.path.replace(/\\/g,'/');
				var size=f.fileSize; total+=size;
				var when=new Date(f.lastModifiedTime).formatString('YYYY.0MM.0DD 0hh:0mm:0ss');
				text+=item.format([name,path,size,when]);
			}
			text+=footer.format([total,files.length]);
			var newtags=co.txtFileDropTags?co.txtFileDropTags.readBracketedList():[];
			store.saveTiddler(null,title,text,co.txtUserName,now,newtags);
			if (co.chkFileDropDisplay) story.displayTiddler(null,title);
			return true;
		}
	}
	if (files.length>1) store.suspendNotifications();
	for (i=0; i<files.length; i++) {
		var file=files[i];
		if (file.isDirectory()) continue; // skip over nested directories
		var type='text/plain';
		var title=file.leafName; // tiddler name is file name
		if (co.chkFileDropTrimFilename)
			{ var p=title.split('.'); if (p.length>1) p.pop(); title=p.join('.'); }
		var name=file.leafName;
		var path=file.path;
		var url='file:///'+path.replace(/\\/g,'/');
		var size=file.fileSize;
		var when=new Date(file.lastModifiedTime);
		var now=new Date();
		var who=config.options.txtUserName;
		var h=document.location.href;
		var cwd=getLocalPath(decodeURIComponent(h.substr(0,h.lastIndexOf('/')+1)));
		var relpath=path.startsWith(cwd)?'./'+path.substr(cwd.length):path;
		while (title && title.length && store.tiddlerExists(title)) {
			if (confirm(config.messages.overwriteWarning.format([title]))) break;
			title=prompt('Enter a new tiddler title',path.replace(/\\/g,'/'));
		}
		if (!title || !title.length) continue; // cancelled
		if (config.macros.attach) {
			type=config.macros.attach.getMIMEType(name,'');
			if (!type.length)
				type=prompt('Unknown file type.  Enter a MIME type','text/plain');
			if (!type||!type.length) continue; // cancelled
		}
		var newtags=co.txtFileDropTags?co.txtFileDropTags.readBracketedList():[];
		if (type=='text/plain' || !co.chkFileDropContent) {
			var txt=''; var fmt=co.txtFileDropLinkFormat.unescapeLineBreaks();
			if (co.chkFileDropLink) txt+=fmt.format([name,url,path,relpath,size,when,now,who]);
			if (co.chkFileDropContent) {
				var out=loadFile(path); var lim=co.txtFileDropDataLimit;
				txt+=co.txtFileDropDataLimit?out.substr(0,lim):out;
				if (size>lim) txt+='\n----\nfilesize ('+size+')'
					+' is larger than FileDrop limit ('+lim+')...\n'
					+'additional content has been omitted';
			}
			store.saveTiddler(null,title,txt,co.txtUserName,now,newtags);
		} else {
			var embed=co.chkFileDropContent
				&& (!co.txtFileDropDataLimit||size<co.txtFileDropDataLimit);
			newtags.push('attachment'); newtags.push('excludeMissing');
			config.macros.attach.createAttachmentTiddler(path,
				now.formatString(config.macros.timeline.dateFormat),
				'attached by FileDropPlugin', newtags, title,
				embed, co.chkFileDropAttachLocalLink, false,
				relpath, '', type,!co.chkFileDropDisplay);
		}
		if (co.chkFileDropDisplay) story.displayTiddler(null,title);
	}
	if (files.length>1) { store.resumeNotifications(); store.notifyAll(); }
	return true;
})
//}}}
Dette er programmer, der vises i startmenukategorien ''Filsystem'' (Filesystem)
{{nobullets{<<tagglyTagging Filsystem>>}}}
Har du nogensinde prøvet at stå i den situation at et vindue var for stort til skærmen, især på en lille skærm f.eks. en netbook? Du havde brug for at finde en knap, du vidste den var der du kunne bare ikke se den.

Det har jeg.

Prøv dette: Tryk Alt tasten og venstre museknap ned samtidig.

Placér musemarkeren hvor som helst i vinduet og flyt musen!!
/***
|''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.
***/
This allows you to change the theme. There are six included and Emacs is the default.

To have a look what is available double click here.
//{{{
TiddlyWiki.prototype.getValue = function(tiddler,fieldName)
{
	var t = this.resolveTiddler(tiddler);
	if(!t)
		return undefined;
	fieldName = fieldName.toLowerCase();
	var primitives = config.textPrimitives;
	if(fieldName.indexOf(primitives.sectionSeparator) === 0 || fieldName.indexOf(primitives.sliceSeparator) === 0) {
		var sliceType = fieldName.substr(0, 2);
		var sliceName = fieldName.substring(2);
		return store.getTiddlerText("%0%1%2".format(t.title,sliceType,sliceName));
	} else {
		var accessor = TiddlyWiki.standardFieldAccess[fieldName];
		if(accessor) {
			return accessor.get(t);
		}
		return t.fields[fieldName];
	}
};
//}}}
Dette er programmer, der vises i startmenukategorien ''Grafik'' (Graphic)
{{nobullets{<<tagglyTagging Grafik>>}}}
Background: #fff
Foreground: #000
PrimaryPale: #ddeeaa
PrimaryLight: #ddeeaa
PrimaryMid: #666633
PrimaryDark: #014
SecondaryPale: #bbdd88
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #666633
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #aacc88
Error: #f88
Denne guide er skrevet til [[Puppy Linux 525]]*. Hvis du bruger den i andre versioner af Puppy vil du sandsynligvis opdage at nogle af linksene ikke virker.
!Tip:
>{{span{Når du ser et blåt ord (evt. understreget) eller et ord med samme farve som baggrundsfarven i denne TiddlyWiki, så er det sandsynligvis et link som vil føre dig til et andet indlæg i guiden, starte et program eller åbne en internetside. Klik f.eks. [[her|http://puppylinux.com/]] for at besøge den officielle Puppy Linux hjemmeside,
eller <<tiddler rox##program3 with:[[/usr/bin/viewnior]][[/usr/share/pixmaps/]][[viewnior.png]][[her]]>> for at se billedet "viewnior.png" [img(12px,auto)[file:///usr/share/pixmaps/viewnior.png]], der ligger i mappen /usr/share/pixmaps/ med programmet Viewnior.. - eller  for <<tiddler rox##program3 with:[[/usr/local/Pictureviewer/Pictureviewer]][[/usr/share/pixmaps/]][[viewnior.png]][[her]]>> at se det samme billede med Pictureviewer.

Bemærk fanebladene i højre menupanel. Hvis du klikker på fanebladet Guide får du et "mappe-træ" til forskellige ressourcer i denne guide. Klikker du på en af mapperne får du adgang til artikler der er tagget med mappens navn. 
Dette er blot en ud af mange mulige måder at organisere og genfinde information i en TiddlyWiki. Se i de andre faneblade for andre typer lister...}}}
----. 
@@font-family:Lucida Console,Monaco,monospaced;Denne wiki kan @@@@font-family:"mpact,Charcoal,sans-serif;[[downloades|http://phelp.tiddlyspot.com/download]]@@ @@font-family:Lucida Console,Monaco,monospaced;og bruges til personlige notater. @@
*Original: [[Puppy Help 101 for Lucid 5.2.5 prepared by Smokey01|http://www.murga-linux.com/puppy/viewtopic.php?t=69321]]
Du kan ændre laange linkadresser til "pretty links" ved at sætte dobbelte firkantede paranteser {{{[[url]]}}} omkring og skrive et-eller-andet (f.eks:Link ») FØR adressen og skille de to ad med en lodret streg {{{|}}}. Således: {{{[[Link »|url]]}}}.^^ (Se første post...)^^
|sortable|k
|Emne|Distro/andet|Svar /link|h
|[[Svarsamling/katalog]]|Alle|[[Link »|http://www.linux-abc.dk/phpBB3/viewtopic.php?f=16&t=769&sid=368e895fcc9b8197639d8a4a5bb67aa7&start=10#p3211]]|
|[[Alternativt software]]|Alle|http://www.linux-abc.dk/phpBB3/viewtopic.php?f=6&t=38&sid=4f659a4d0d28e5ae566eba8a71f75f2b&start=10#p3208|
|[[Libre Office dansk]]|MijnPup|http://www.linux-abc.dk/phpBB3/viewtopic.php?f=17&t=729&sid=116fa0efebace4a0c9a854fb0fd26b26#p3184|
|UnetBootin|Mange distros|http://www.linux-abc.dk/phpBB3/viewtopic.php?f=6&t=38&sid=6bd83985b9cb4085729866eebbc1c512&start=10#p3147|
|[[Gå direkte til Linux-abc|http://www.linux-abc.dk/phpBB3/search.php?search_id=active_topics&sid=09b986574522e8470b91732f7f6f19fd]]||http://www.linux-abc.dk/phpBB3/search.php?search_id=active_topics&sid=09b986574522e8470b91732f7f6f19fd|
|[[Nas|NAS]]||http://www.linux-abc.dk/phpBB3/viewtopic.php?f=6&t=38&sid=4fa3aebf54b8e6342ac3af70263538fd&start=10#p2969|
|[[Suse Studio]]||http://www.linux-abc.dk/phpBB3/viewtopic.php?f=6&t=38&sid=8f5e527593d3aca40e2ba65ad0e493c7&start=10#p2979|
/***
|Name:|HideWhenPlugin|
|Description:|Allows conditional inclusion/exclusion in templates|
|Version:|3.1 ($Rev: 3919 $)|
|Date:|$Date: 2008-03-13 02:03:12 +1000 (Thu, 13 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#HideWhenPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
For use in ViewTemplate and EditTemplate. Example usage:
{{{<div macro="showWhenTagged Task">[[TaskToolbar]]</div>}}}
{{{<div macro="showWhen tiddler.modifier == 'BartSimpson'"><img src="bart.gif"/></div>}}}
***/
//{{{

window.hideWhenLastTest = false;

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


merge(config.macros,{

	hideWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( eval(paramString), place);
	}},

	showWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !eval(paramString), place);
	}},

	hideWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAll(params), place);
	}},

	showWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAll(params), place);
	}},

	hideWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAny(params), place);
	}},

	showWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAny(params), place);
	}},

	hideWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.tags.containsAll(params), place);
	}},

	showWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !tiddler.tags.containsAll(params), place);
	}},

	hideWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0]), place);
	}},

	showWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !(store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0])), place);
	}},

	hideWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.title == params[0], place);
	}},

	showWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( tiddler.title != params[0], place);
	}},

	'else': { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		removeElementWhen( !window.hideWhenLastTest, place);
	}}

});

//}}}
If you are anything like me I hate typing long pathnames. I would rather navigate with ROX.

For example: Click here to open a terminal window and type:

cd /usr/local/lib/X11/pixmaps/

There are times when you need to run software from a particular directory from a terminal window. For example: When you click on a program icon and it doesn't run. If you run the program from a terminal window it will usually give you an error and a clue to what is wrong.

The easy way to get to that elusive directory using the same example path above. Click on ROX on the desktop, click the green up arrow, click on usr, local, lib, X11 and finally pixmaps. Now press the key below the Esc key with the ~ and ` on it. A terminal window opened up in the required directory. Now type ls and press the Enter key to see if the files are the same. Of course they are.

Remember lowercase and uppercase are different in Linux so it's easy to make mistakes when typing. x11 and X11 are not the same. You may have just discovered that.
/***
|''Name''|ImageMacroPlugin|
|''Version''|0.9.31|
|''Description''|Allows the rendering of svg images in a TiddlyWiki|
|''Author''|Osmosoft|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''Notes''|Currently only works in modern browsers (not IE)|
|''Requires''|BinaryTiddlersPlugin|
!Usage
{{{<<image SVG>>}}} will render the text of the tiddler with title SVG as an SVG image (but not in ie where it will fail silently)
!!Parameters
width/height: specify width/height parameters
link: make the image link to a given location
tiddlyLink: link to a tiddler

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

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

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

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

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

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

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

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

})(jQuery);
//}}}
/***
|Name|ImageSizePlugin|
|Source|http://www.TiddlyTools.com/#ImageSizePlugin|
|Version|1.2.2|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|adds support for resizing images|
This plugin adds optional syntax to scale an image to a specified width and height and/or interactively resize the image with the mouse.
!!!!!Usage
<<<
The extended image syntax is:
{{{
[img(w+,h+)[...][...]]
}}}
where ''(w,h)'' indicates the desired width and height (in CSS units, e.g., px, em, cm, in, or %). Use ''auto'' (or a blank value) for either dimension to scale that dimension proportionally (i.e., maintain the aspect ratio). You can also calculate a CSS value 'on-the-fly' by using a //javascript expression// enclosed between """{{""" and """}}""". Appending a plus sign (+) to a dimension enables interactive resizing in that dimension (by dragging the mouse inside the image). Use ~SHIFT-click to show the full-sized (un-scaled) image. Use ~CTRL-click to restore the starting size (either scaled or full-sized).
<<<
!!!!!Examples
<<<
{{{
[img(100px+,75px+)[images/meow2.jpg]]
}}}
[img(100px+,75px+)[images/meow2.jpg]]
{{{
[<img(34%+,+)[images/meow.gif]]
[<img(21% ,+)[images/meow.gif]]
[<img(13%+, )[images/meow.gif]]
[<img( 8%+, )[images/meow.gif]]
[<img( 5% , )[images/meow.gif]]
[<img( 3% , )[images/meow.gif]]
[<img( 2% , )[images/meow.gif]]
[img(  1%+,+)[images/meow.gif]]
}}}
[<img(34%+,+)[images/meow.gif]]
[<img(21% ,+)[images/meow.gif]]
[<img(13%+, )[images/meow.gif]]
[<img( 8%+, )[images/meow.gif]]
[<img( 5% , )[images/meow.gif]]
[<img( 3% , )[images/meow.gif]]
[<img( 2% , )[images/meow.gif]]
[img(  1%+,+)[images/meow.gif]]
{{tagClear{
}}}
<<<
!!!!!Revisions
<<<
2010.07.24 [1.2.2] moved tip/dragtip text to config.formatterHelpers.imageSize object to enable customization
2009.02.24 [1.2.1] cleanup width/height regexp, use '+' suffix for resizing
2009.02.22 [1.2.0] added stretchable images
2008.01.19 [1.1.0] added evaluated width/height values
2008.01.18 [1.0.1] regexp for "(width,height)" now passes all CSS values to browser for validation
2008.01.17 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.ImageSizePlugin= {major: 1, minor: 2, revision: 2, date: new Date(2010,7,24)};
//}}}
//{{{
var f=config.formatters[config.formatters.findByField("name","image")];
f.match="\\[[<>]?[Ii][Mm][Gg](?:\\([^,]*,[^\\)]*\\))?\\[";
f.lookaheadRegExp=/\[([<]?)(>?)[Ii][Mm][Gg](?:\(([^,]*),([^\)]*)\))?\[(?:([^\|\]]+)\|)?([^\[\]\|]+)\](?:\[([^\]]*)\])?\]/mg;
f.handler=function(w) {
	this.lookaheadRegExp.lastIndex = w.matchStart;
	var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
	if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
		var floatLeft=lookaheadMatch[1];
		var floatRight=lookaheadMatch[2];
		var width=lookaheadMatch[3];
		var height=lookaheadMatch[4];
		var tooltip=lookaheadMatch[5];
		var src=lookaheadMatch[6];
		var link=lookaheadMatch[7];

		// Simple bracketted link
		var e = w.output;
		if(link) { // LINKED IMAGE
			if (config.formatterHelpers.isExternalLink(link)) {
				if (config.macros.attach && config.macros.attach.isAttachment(link)) {
					// see [[AttachFilePluginFormatters]]
					e = createExternalLink(w.output,link);
					e.href=config.macros.attach.getAttachment(link);
					e.title = config.macros.attach.linkTooltip + link;
				} else
					e = createExternalLink(w.output,link);
			} else 
				e = createTiddlyLink(w.output,link,false,null,w.isStatic);
			addClass(e,"imageLink");
		}

		var img = createTiddlyElement(e,"img");
		if(floatLeft) img.align="left"; else if(floatRight) img.align="right";
		if(width||height) {
			var x=width.trim(); var y=height.trim();
			var stretchW=(x.substr(x.length-1,1)=='+'); if (stretchW) x=x.substr(0,x.length-1);
			var stretchH=(y.substr(y.length-1,1)=='+'); if (stretchH) y=y.substr(0,y.length-1);
			if (x.substr(0,2)=="{{")
				{ try{x=eval(x.substr(2,x.length-4))} catch(e){displayMessage(e.description||e.toString())} }
			if (y.substr(0,2)=="{{")
				{ try{y=eval(y.substr(2,y.length-4))} catch(e){displayMessage(e.description||e.toString())} }
			img.style.width=x.trim(); img.style.height=y.trim();
			config.formatterHelpers.addStretchHandlers(img,stretchW,stretchH);
		}
		if(tooltip) img.title = tooltip;

		// GET IMAGE SOURCE
		if (config.macros.attach && config.macros.attach.isAttachment(src))
			src=config.macros.attach.getAttachment(src); // see [[AttachFilePluginFormatters]]
		else if (config.formatterHelpers.resolvePath) { // see [[ImagePathPlugin]]
			if (config.browser.isIE || config.browser.isSafari) {
				img.onerror=(function(){
					this.src=config.formatterHelpers.resolvePath(this.src,false);
					return false;
				});
			} else
				src=config.formatterHelpers.resolvePath(src,true);
		}
		img.src=src;
		w.nextMatch = this.lookaheadRegExp.lastIndex;
	}
}

config.formatterHelpers.imageSize={
	tip: 'SHIFT-CLICK=show full size, CTRL-CLICK=restore initial size',
	dragtip: 'DRAG=stretch/shrink, '
}

config.formatterHelpers.addStretchHandlers=function(e,stretchW,stretchH) {
	e.title=((stretchW||stretchH)?this.imageSize.dragtip:'')+this.imageSize.tip;
	e.statusMsg='width=%0, height=%1';
	e.style.cursor='move';
	e.originalW=e.style.width;
	e.originalH=e.style.height;
	e.minW=Math.max(e.offsetWidth/20,10);
	e.minH=Math.max(e.offsetHeight/20,10);
	e.stretchW=stretchW;
	e.stretchH=stretchH;
	e.onmousedown=function(ev) { var ev=ev||window.event;
		this.sizing=true;
		this.startX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
		this.startY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
		this.startW=this.offsetWidth;
		this.startH=this.offsetHeight;
		return false;
	};
	e.onmousemove=function(ev) { var ev=ev||window.event;
		if (this.sizing) {
			var s=this.style;
			var currX=!config.browser.isIE?ev.pageX:(ev.clientX+findScrollX());
			var currY=!config.browser.isIE?ev.pageY:(ev.clientY+findScrollY());
			var newW=(currX-this.offsetLeft)/(this.startX-this.offsetLeft)*this.startW;
			var newH=(currY-this.offsetTop )/(this.startY-this.offsetTop )*this.startH;
			if (this.stretchW) s.width =Math.floor(Math.max(newW,this.minW))+'px';
			if (this.stretchH) s.height=Math.floor(Math.max(newH,this.minH))+'px';
			clearMessage(); displayMessage(this.statusMsg.format([s.width,s.height]));
		}
		return false;
	};
	e.onmouseup=function(ev) { var ev=ev||window.event;
		if (ev.shiftKey) { this.style.width=this.style.height=''; }
		if (ev.ctrlKey)  { this.style.width=this.originalW; this.style.height=this.originalH; }
		this.sizing=false;
		clearMessage();
		return false;
	};
	e.onmouseout=function(ev) { var ev=ev||window.event;
		this.sizing=false;
		clearMessage();
		return false;
	};
}
//}}}
On man 01 aug 2011 16:28:49 CEST, DitNavn imported 1 tiddler from
[[http://phelp.tiddlyspot.com|http://phelp.tiddlyspot.com]]:
<<<
#[[TspotSetupPlugin]] - replaces TspotSetupPlugin - 4/9/2011 16:13:00 by DitNavn
<<<

----
On man 01 aug 2011 16:22:22 CEST, DitNavn imported 16 tiddlers from
[[http://folders.tiddlyspace.com/|http://folders.tiddlyspace.com/]]:
<<<
#[[book.gif]] - added
#[[file.gif]] - added
#[[folder-closed.gif]] - added
#[[folder.gif]] - added
#[[openbook.gif]] - added
#[[treeview-black-line.gif]] - added
#[[treeview-black.gif]] - added
#[[treeview-default-line.gif]] - added
#[[treeview-default.gif]] - added
#[[treeview-famfamfam-line.gif]] - added
#[[treeview-famfamfam.gif]] - added
#[[treeview-gold-line.gif]] - added
#[[treeview-gray-line.gif]] - added
#[[treeview-gray.gif]] - added
#[[treeview-red-line.gif]] - added
#[[treeview-red.gif]] - added
<<<

----
On man 01 aug 2011 16:12:54 CEST, DitNavn imported 7 tiddlers from
[[http://folders.tiddlyspace.com/|http://folders.tiddlyspace.com/]]:
<<<
#[[Cookie plugin]] - added
#[[EmbeddedImages]] - added
#[[InlineJavascriptPlugin]] - skipped after asking
#[[JqueryTreeviewCSS-B]] - added
#[[JqueryTreeviewCSS-G]] - added
#[[JqueryTreeviewCSS-T]] - added
#[[MarkupPostBody]] - added
#[[TreeviewPluginPlugin.24]] - added
<<<
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.6|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|Insert Javascript executable code directly into your tiddler content.|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Documentation
>see [[InlineJavascriptPluginInfo]]
!!!!!Revisions
<<<
2010.12.15 1.9.6 allow (but ignore) type="..." syntax
|please see [[InlineJavascriptPluginInfo]] for additional revision details|
2005.11.08 1.0.0 initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.InlineJavascriptPlugin= {major: 1, minor: 9, revision: 6, date: new Date(2010,12,15)};

config.formatters.push( {
	name: "inlineJavascript",
	match: "\\<script",
	lookahead: "\\<script(?: type=\\\"[^\\\"]*\\\")?(?: src=\\\"([^\\\"]*)\\\")?(?: label=\\\"([^\\\"]*)\\\")?(?: title=\\\"([^\\\"]*)\\\")?(?: key=\\\"([^\\\"]*)\\\")?( show)?\\>((?:.|\\n)*?)\\</script\\>",
	handler: function(w) {
		var lookaheadRegExp = new RegExp(this.lookahead,"mg");
		lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var src=lookaheadMatch[1];
			var label=lookaheadMatch[2];
			var tip=lookaheadMatch[3];
			var key=lookaheadMatch[4];
			var show=lookaheadMatch[5];
			var code=lookaheadMatch[6];
			if (src) { // external script library
				var script = document.createElement("script"); script.src = src;
				document.body.appendChild(script); document.body.removeChild(script);
			}
			if (code) { // inline code
				if (show) // display source in tiddler
					wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
				if (label) { // create 'onclick' command link
					var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",wikifyPlainText(label));
					var fixup=code.replace(/document.write\s*\(/gi,'place.bufferedHTML+=(');
					link.code="function _out(place,tiddler){"+fixup+"\n};_out(this,this.tiddler);"
					link.tiddler=w.tiddler;
					link.onclick=function(){
						this.bufferedHTML="";
						try{ var r=eval(this.code);
							if(this.bufferedHTML.length || (typeof(r)==="string")&&r.length)
								var s=this.parentNode.insertBefore(document.createElement("span"),this.nextSibling);
							if(this.bufferedHTML.length)
								s.innerHTML=this.bufferedHTML;
							if((typeof(r)==="string")&&r.length) {
								wikify(r,s,null,this.tiddler);
								return false;
							} else return r!==undefined?r:false;
						} catch(e){alert(e.description||e.toString());return false;}
					};
					link.setAttribute("title",tip||"");
					var URIcode='javascript:void(eval(decodeURIComponent(%22(function(){try{';
					URIcode+=encodeURIComponent(encodeURIComponent(code.replace(/\n/g,' ')));
					URIcode+='}catch(e){alert(e.description||e.toString())}})()%22)))';
					link.setAttribute("href",URIcode);
					link.style.cursor="pointer";
					if (key) link.accessKey=key.substr(0,1); // single character only
				}
				else { // run script immediately
					var fixup=code.replace(/document.write\s*\(/gi,'place.innerHTML+=(');
					var c="function _out(place,tiddler){"+fixup+"\n};_out(w.output,w.tiddler);";
					try	 { var out=eval(c); }
					catch(e) { out=e.description?e.description:e.toString(); }
					if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);
				}
			}
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
		}
	}
} )
//}}}

// // Backward-compatibility for TW2.1.x and earlier
//{{{
if (typeof(wikifyPlainText)=="undefined") window.wikifyPlainText=function(text,limit,tiddler) {
	if(limit > 0) text = text.substr(0,limit);
	var wikifier = new Wikifier(text,formatter,null,tiddler);
	return wikifier.wikifyPlain();
}
//}}}

// // GLOBAL FUNCTION: $(...) -- 'shorthand' convenience syntax for document.getElementById()
//{{{
if (typeof($)=='undefined') { function $(id) { return document.getElementById(id.replace(/^#/,'')); } }
//}}}
These are the default Internet tools and applications that come bundled with Puppy Linux 525.
----
These days a computer is quite restricted without a connection to the internet.

Puppy has many tools that will allow you to connect in various ways:

a.	ethernet via an adsl/modem/router,
b.	WIFI from a hot spot or a wireless modem router,
c.	Wireless, and 
d.	dialup.

If you have a live connection via ethernet then puppy will connect you automagically.

The are a number of tools for the various other methods. I find SNS (simple network setup) to be very good and reliable. Using this tool will scan for available wifi networks. When it find one all you need to do is choose the connection type, enter your username and password and you should be connected.

When you shutdown the computer your setting will be saved The next time you turn the computer on you should be automatically connected the internet.

Dialup modems are becoming used less these days and Windows does not support them as well as it did in past years. Puppy continues to support dialup as it likes to support older computers. This doesn't mean puppy won't work on modern computers, it sure does and very well.
Dette er Linux, ikke Windows og ja,- der er nogle forskelle, men det behøver ikke tage lang tid at vænne sig til dem.
!!!Nogle vigtige konventioner du bør kende til:
Puppy er normalt sat til at åbne programmer, filer og mapper med et enkelt museklik, ikke to ligesom Windows. Der er situationer, hvor der kræves to museklik men klik altid først en enkelt gang, hvis det ikke virkede, så prøv med dobbeltklik. Puppy kan indstilles til altid at bruge dobbeltklik, hvis du virkelig har brug for det.

I Windows er dine lagermedier normalt betegnet som:
>{{span{a: drevet er normalt floppydiskdrevet,
c: harddiskdrevet, og
d: er ofte cd/dvd drevet, med mindre du har mere end et harddiskdrev og/eller flere partitioner.}}}
I Linux er drevbetegnelserne anderledes. Se f.eks. herunder.
|borderless widetable|k
|bgcolor(lightblue): ''Windows'' |bgcolor(yellow): ''Linux'' ||
|bgcolor(lightblue): a: |bgcolor(yellow): fd0 |= det første floppydrev|
|bgcolor(lightblue): c: |bgcolor(yellow): sda1 |= harddiskdrev eller første partition på harddiskdrevet|
|bgcolor(lightblue): d: |bgcolor(yellow): sr0 |= cd eller dvd drev|

@@background-color:lightblue;Hvis du har en fysisk harddisk med fire partitioner, ville betegnelserne være (i Windows):

c: første partition, d: anden partition, e: tredie partiton og f: fjerde partition.@@

@@background-color:yellow;Det tilsvarende i Linux ville være:

sda1 (første partition), sda2 (anden), sda3 (tredie) og sda4 (fjerde). I linux forbliver cd/dvd drevet sr0 (for det første cd/dvd drev) og sr1 bliver betegnelsen for det andet. cd/dvd drev, hvis du har sådan et..@@

Det er faktisk mest forvirrende i Windows, eftersom det første cd/dvd drev ville komme til at hedde g: hvis du har en harddisk med fire partitioner, fordi betegnelsen for et cd/dvd drev vil blive bestemt af antallet af harddisk partitioner.
!!Montering/tilkobling af drev
I Windows bliver alle partitioner "monteret" ved opstart. Det betyder at de bliver koblet fysisk til din computer og tændt.

Ved opstarten i Linux, bliver harddisken tændt men normalt ikke koblet til. Det anvendte udtryk for atkoble et drev eller en partition til, er "at montere" det. I puppy er det meget nemt at gøre, klik på et af drevikonerne nederst til venstre på skærmen. Der vil komme en grøn prik på ikonet, for at angive at drevet/partitionen er blevet monteret. Hvis prikken er blå betyder det at drevet ikke kan afmonteres.

Der er store fordele ved at kunne montere og afmontere drev på denne måde. F.eks., hvis du surfer rundt på nettet og pådrager dig en eller anden grim virus eller anden skadelig software (malware) og dit drev IKKE er monteret så kan virussen/malwaren ikke blive gemt til dit harddisk. Så prisen for en stor beskyttelse er derfor meget lille.
/***
!!!<<gradient horiz #4EB93E #fff >><<tiddler RefreshStyles>>&nbsp;StyleSheetTiddlersBar>>/%==================================================%/
***/

 .treeview, .treeview ul { 
	padding: 0;
	margin: 0;
	list-style: none;
}

.treeview ul {
	background-color:transparent;
	margin-top: 4px;
}

.treeview .hitarea {
	background: url([[treeview-default.gif]]) -64px -25px no-repeat;
	height: 16px;
	width: 16px;
	margin-left: -16px;
	float: left;
	cursor: pointer;
}
/* fix for IE6 */
* html .hitarea {
	display: inline;
	float:none;
}

.treeview li { 
	margin: 0;
	padding: 3px 0pt 3px 16px;
}

.treeview a.selected {
	background-color: #eee;
}

#treecontrol { margin: 1em 0; display: none; }

.treeview .hover { color: red; cursor: pointer; }

.treeview li { background: url([[treeview-red-line.gif]]) 0 0 no-repeat; }
.treeview li.collapsable, .treeview li.expandable { background-position: 0 -176px; }

.treeview .expandable-hitarea { background-position: -80px -3px; }

.treeview li.last { background-position: 0 -1766px }
.treeview li.lastCollapsable, .treeview li.lastExpandable { background-image: url([[treeview-default.gif]]); }  
.treeview li.lastCollapsable { background-position: 0 -111px }
.treeview li.lastExpandable { background-position: -32px -67px }

.treeview div.lastCollapsable-hitarea, .treeview div.lastExpandable-hitarea { background-position: 0; }

.treeview-red li { background-image: url([[treeview-red-line.gif]]); }
.treeview-red .hitarea, .treeview-red li.lastCollapsable, .treeview-red li.lastExpandable { background-image: url([[treeview-red.gif]]); } 

.treeview-black li { background-image: url([[treeview-black-line.gif]]); }
.treeview-black .hitarea, .treeview-black li.lastCollapsable, .treeview-black li.lastExpandable { background-image: url([[treeview-black.gif]]); }  

.treeview-gray li { background-image: url([[treeview-gray-line.gif]]); }
.treeview-gray .hitarea, .treeview-gray li.lastCollapsable, .treeview-gray li.lastExpandable { background-image: url([[treeview-gray.gif]]); } 

.treeview-famfamfam li { background-image: url([[treeview-famfamfam-line.gif]]); }
.treeview-famfamfam .hitarea, .treeview-famfamfam li.lastCollapsable, .treeview-famfamfam li.lastExpandable { background-image: url([[treeview-famfamfam.gif]]); } 


.filetree li { padding: 3px 0 2px 16px; }
.filetree span.folder, .filetree span.file { padding: 1px 0 1px 16px; display: block; }
.filetree span.folder { background: url([[openbook.gif]]) 0 0 no-repeat; }
.filetree li.expandable span.folder { background: url([[book.gif]]) 0 0 no-repeat; }
.filetree span.file { background: url([[file.gif]]) 0 0 no-repeat; }
/***
!!!<<gradient horiz #4EB93E #fff >><<tiddler RefreshStyles>>&nbsp;StyleSheetTiddlersBar>>/%==================================================%/
***/

 .treeview, .treeview ul { 
	padding: 0;
	margin: 0;
	list-style: none;
}

.treeview ul {
	background-color:transparent;
	margin-top: 4px;
}

.treeview .hitarea {
	background: url([[treeview-default.gif]]) -64px -25px no-repeat;
	height: 16px;
	width: 16px;
	margin-left: -16px;
	float: left;
	cursor: pointer;
}
/* fix for IE6 */
* html .hitarea {
	display: inline;
	float:none;
}

.treeview li { 
	margin: 0;
	padding: 3px 0pt 3px 16px;
}

.treeview a.selected {
	background-color: #eee;
}

#treecontrol { margin: 1em 0; display: none; }

.treeview .hover { color: red; cursor: pointer; }

.treeview li { background: url([[treeview-red-line.gif]]) 0 0 no-repeat; }
.treeview li.collapsable, .treeview li.expandable { background-position: 0 -176px; }

.treeview .expandable-hitarea { background-position: -80px -3px; }

.treeview li.last { background-position: 0 -1766px }
.treeview li.lastCollapsable, .treeview li.lastExpandable { background-image: url([[treeview-default.gif]]); }  
.treeview li.lastCollapsable { background-position: 0 -111px }
.treeview li.lastExpandable { background-position: -32px -67px }

.treeview div.lastCollapsable-hitarea, .treeview div.lastExpandable-hitarea { background-position: 0; }

.treeview-red li { background-image: url([[treeview-red-line.gif]]); }
.treeview-red .hitarea, .treeview-red li.lastCollapsable, .treeview-red li.lastExpandable { background-image: url([[treeview-red.gif]]); } 


.treeview-black li { background-image: url([[treeview-black-line.gif]]); }
.treeview-black .hitarea, .treeview-black li.lastCollapsable, .treeview-black li.lastExpandable { background-image: url([[treeview-black.gif]]); }  

.treeview-gray li { background-image: url([[treeview-gray-line.gif]]); }
.treeview-gray .hitarea, .treeview-gray li.lastCollapsable, .treeview-gray li.lastExpandable { background-image: url([[treeview-gray.gif]]); } 

.treeview-famfamfam li { background-image: url([[treeview-famfamfam-line.gif]]); }
.treeview-famfamfam .hitarea, .treeview-famfamfam li.lastCollapsable, .treeview-famfamfam li.lastExpandable { background-image: url([[treeview-famfamfam.gif]]); } 


.filetree li { padding: 3px 0 2px 16px; }
.filetree span.folder, .filetree span.file { padding: 1px 0 1px 16px; display: block; }
.filetree span.folder { background: url([[folder.gif]]) 0 0 no-repeat; }
.filetree li.expandable span.folder { background: url([[folder-closed.gif]]) 0 0 no-repeat; }
.filetree span.file { background: url([[file.gif]]) 0 0 no-repeat; }
/***
!!!<<gradient horiz #4EB93E #fff >><<tiddler RefreshStyles>>&nbsp;StyleSheetTiddlersBar>>/%==================================================%/
***/

 .treeview, .treeview ul { 
	padding: 0;
	margin: 0;
	list-style: none;
}

.treeview ul {
	background-color:transparent;
	margin-top: 4px;
}

.treeview .hitarea {
	background: url([[treeview-gold.gif]]) -64px -25px no-repeat;
	height: 16px;
	width: 16px;
	margin-left: -16px;
	float: left;
	cursor: pointer;
}
/* fix for IE6 */
* html .hitarea {
	display: inline;
	float:none;
}

.treeview li { 
	margin: 0;
	padding: 3px 0pt 3px 16px;
}

.treeview a.selected {
	background-color: #eee;
}

#treecontrol { margin: 1em 0; display: none; }

.treeview .hover { color: red; cursor: pointer; }

.treeview li { background: url([[treeview-gold-line.gif]]) 0 0 no-repeat; }
.treeview li.collapsable, .treeview li.expandable { background-position: 0 -176px; }

.treeview .expandable-hitarea { background-position: -80px -3px; }

.treeview li.last { background-position: 0 -1766px }
.treeview li.lastCollapsable, .treeview li.lastExpandable { background-image: url([[treeview-gold.gif]]); }  
.treeview li.lastCollapsable { background-position: 0 -111px }
.treeview li.lastExpandable { background-position: -32px -67px }

.treeview div.lastCollapsable-hitarea, .treeview div.lastExpandable-hitarea { background-position: 0; }

.treeview-red li { background-image: url([[treeview-red-line.gif]]); }
.treeview-red .hitarea, .treeview-red li.lastCollapsable, .treeview-red li.lastExpandable { background-image: url([[treeview-red.gif]]); } 

.treeview-gold li { background-image: url([[treeview-gold-line.gif]]); }
.treeview-gold .hitarea, .treeview-gold li.lastCollapsable, .treeview-gold li.lastExpandable { background-image: url([[treeview-gold.gif]]); } 


.treeview-black li { background-image: url([[treeview-black-line.gif]]); }
.treeview-black .hitarea, .treeview-black li.lastCollapsable, .treeview-black li.lastExpandable { background-image: url([[treeview-black.gif]]); }  

.treeview-gray li { background-image: url([[treeview-gray-line.gif]]); }
.treeview-gray .hitarea, .treeview-gray li.lastCollapsable, .treeview-gray li.lastExpandable { background-image: url([[treeview-gray.gif]]); } 

.treeview-famfamfam li { background-image: url([[treeview-famfamfam-line.gif]]); }
.treeview-famfamfam .hitarea, .treeview-famfamfam li.lastCollapsable, .treeview-famfamfam li.lastExpandable { background-image: url([[treeview-famfamfam.gif]]); } 


.filetree li { padding: 3px 0 2px 16px; }
.filetree span.folder, .filetree span.file { padding: 1px 0 1px 16px; display: block; }
.filetree span.folder { background: url([[folder.gif]]) 0 0 no-repeat; }
.filetree li.expandable span.folder { background: url([[folder-closed.gif]]) 0 0 no-repeat; }
.filetree span.file { background: url([[file.gif]]) 0 0 no-repeat; }
For at komme i gang med denne tomme tiddlywiki, skal du ændre på de følgende tiddlere:
* SiteTitle & SiteSubtitle: Sidens titel og undertitel, som vist øverst (efter de er gemt, vil de også vise sig i browserens titelmenu)
* MainMenu: er hovedmenuen (er oftest placeret til venstre)
* DefaultTiddlers: Indeholder navnene på de tiddlere du vil have skal starte op når du åbner TiddlyWiki
Du skal også skrive dit brugernavn for at signere dine redigeringer: <<option txtUserName>>
{{floatright{<<tiddler [[SideBarOptions##tema]]>>}}}
//Alle artikler tagget med $1//
<<list filter "[tag[$1]][sort[-created]]">>
/***
|''Name:''|LaunchApplicationPlugin|
|''Author:''|Lyall Pearce|
|''Source:''|http://www.Remotely-Helpful.com/TiddlyWiki/LaunchApplication.html|
|''License:''|[[Creative Commons Attribution-Share Alike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''Version:''|1.4.0|
|''~CoreVersion:''|2.3.0|
|''Requires:''| |
|''Overrides:''| |
|''Description:''|Launch an application from within TiddlyWiki using a button|
!!!!!Usage
<<<
{{{<<LaunchApplication "buttonLabel" "tooltip" "application" ["arguments" ...]>>}}}
{{{<<LaunchApplicationButton "buttonLabel" "tooltip" "application" ["arguments" ...]>>}}}
{{{<<LaunchApplicationLink "buttonLabel" "tooltip" "application" ["arguments" ...]>>}}}
* buttonLabel is anything you like
* tooltip is anything you like
* application is a path to the executable (which is Operating System dependant)
* arguments is any command line arguments the application requires.
* You must supply relative path from the location of the TiddlyWiki OR a fully qualified path
* Forward slashes works fine for Windows

{{{<<LaunchApplication...>>}}} functions the same as {{{<<LaunchApplicationButton...>>}}}

eg.

{{{
<<LaunchApplicationButton "Emacs" "Linux Emacs" "file:///usr/bin/emacs">>
}}}
<<LaunchApplicationButton "Emacs" "Linux Emacs" "file:///usr/bin/emacs">>

{{{
<<LaunchApplicationLink "LocalProgram" "Program relative to Tiddly html file" "localDir/bin/emacs">>
}}}
<<LaunchApplicationLink "LocalProgram" "Program relative to Tiddly html file" "localDir/bin/emacs">>
					     
{{{
<<LaunchApplicationButton "Open Notepad" "Text Editing" "file:///e:/Windows/notepad.exe">>
}}}
<<LaunchApplicationButton "Open Notepad" "Text Editing" "file:///e:/Windows/notepad.exe">>

{{{
<<LaunchApplicationLink "C Drive" "Folder" "file:///c:/">>
}}}
<<LaunchApplicationLink "C Drive" "Folder" "file:///c:/">>


!!!!!Revision History
* 1.1.0 - leveraged some tweaks from from Bradly Meck's version (http://bradleymeck.tiddlyspot.com/#LaunchApplicationPlugin) and the example text.
* 1.2.0 - Make launching work in Linux too and use displayMessage() to give diagnostics/status info.
* 1.3.0 - execute programs relative to TiddlyWiki html file plus fix to args for firefox.
* 1.3.1 - parameters to the macro are properly parsed, allowing dynamic paramters using {{{ {{javascript}} }}} notation.
* 1.4.0 - updated core version and fixed empty tooltip and added launch link capability

<<<
***/
//{{{
version.extensions.LaunchApplication = {major: 1, minor: 4, revision: 0, date: new Date(2007,12,29)};
config.macros.LaunchApplication = {};
config.macros.LaunchApplicationButton = {};
config.macros.LaunchApplicationLink = {};

function LaunchApplication(appToLaunch,appParams) {
    if(! appToLaunch)
	return;
    var tiddlyBaseDir = self.location.pathname.substring(0,self.location.pathname.lastIndexOf("\\")+1);
    if(!tiddlyBaseDir || tiddlyBaseDir == "") {
	tiddlyBaseDir = self.location.pathname.substring(0,self.location.pathname.lastIndexOf("/")+1);
    }
    // if Returns with a leading slash, we don't want that.
    if(tiddlyBaseDir.substring(0,1) == "/") {
	tiddlyBaseDir = tiddlyBaseDir.substring(1);
    }
    if(appToLaunch.indexOf("file:///") == 0) // windows would have C:\ as the resulting file
    {
	tiddlyBaseDir = "";
	appToLaunch = appToLaunch.substring(8);
    }

    if (config.browser.isIE) {
	// want where the tiddly is actually located, excluding tiddly html file

	var theShell = new ActiveXObject("WScript.Shell");
	if(theShell) {
            // the app name may have a directory component, need that too
	    // as we want to start with current working dir as the location
	    // of the app.
	    var appDir = appToLaunch.substring(0, appToLaunch.lastIndexOf("\\"));
	    if(! appDir || appDir == "") {
		appDir = appToLaunch.substring(0, appToLaunch.lastIndexOf("/"));
	    }
	    appParams = appParams.length > 0 ? " \""+appParams.join("\" \"")+"\"" : "";
	    try {
		theShell.CurrentDirectory = decodeURI(tiddlyBaseDir + appDir);
		var commandString = ('"' +decodeURI(tiddlyBaseDir+appToLaunch) + '" ' + appParams);
		pluginInfo.log.push(commandString);
	        theShell.run(commandString);
	    } catch (e) {
		displayMessage("LaunchApplication cannot locate/execute file '"+tiddlyBaseDir+appToLaunch+"'");
		return;
	    }
	} else {
	    displayMessage("LaunchApplication failed to create ActiveX component WScript.Shell");
	}
    } else { // Not IE
	// want where the tiddly is actually located, excluding tiddly html file
	netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
        var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
        var launchString;
	try { // try linux/unix format
            launchString = decodeURI(tiddlyBaseDir+appToLaunch);
	    file.initWithPath(launchString);
	} catch (e) {
	    try { // leading slash on tiddlyBaseDir
                launchString = decodeURI("/"+tiddlyBaseDir+appToLaunch);
		file.initWithPath(launchString);
	    } catch (e) {
		try { // try windows format
		    launchString = decodeURI(appToLaunch).replace(/\//g,"\\");
		    file.initWithPath(launchString);
		} catch (e) {
		    try { // try windows format
			launchString = decodeURI(tiddlyBaseDir+appToLaunch).replace(/\//g,"\\");
			file.initWithPath(launchString);
		    } catch (e) {
			displayMessage("LaunchApplication cannot locate file '"+launchString+"' : "+e);
			return;
		    } // try windows mode
		} // try windows mode
	    }; // try with leading slash in tiddlyBaseDir
	}; // try linux/unix mode
	try {
	    if (file.isFile() && file.isExecutable()) {
		displayMessage("LaunchApplication executing '"+launchString+"' "+appParams.join(" "));
		var process = Components.classes['@mozilla.org/process/util;1'].createInstance(Components.interfaces.nsIProcess);
		process.init(file);
		process.run(false, appParams, appParams.length);
	    }
	    else
	    {
		displayMessage("LaunchApplication launching '"+launchString+"' "+appParams.join(" "));
		file.launch(); // No args available with this option
	    }
	} catch (e) {
	    displayMessage("LaunchApplication cannot execute/launch file '"+launchString+"'");
	}
    }
};

config.macros.LaunchApplication.handler = function (place,macroName,params,wikifier,paramString,tiddler) {
    // 0=ButtonText, 1=toolTip, 2=AppToLaunch, 3...AppParameters
    if (params[0] && (params[1] || params[1] == "") && params[2]) {
        var theButton = createTiddlyButton(place, getParam(params,"buttonText",params[0]), getParam(params,"toolTip",params[1]), onClickLaunchApplication);
        theButton.setAttribute("appToLaunch", getParam(params,"appToLaunch",params[2]));
        params.splice(0,3);
        theButton.setAttribute("appParameters", params.join(" "));
        return;
    }
}
config.macros.LaunchApplicationButton.handler = function (place,macroName,params,wikifier,paramString,tiddler) {
    config.macros.LaunchApplication.handler (place,macroName,params,wikifier,paramString,tiddler);
}

config.macros.LaunchApplicationLink.handler = function (place,macroName,params,wikifier,paramString,tiddler) {
    // 0=ButtonText, 1=toolTip, 2=AppToLaunch, 3...AppParameters
    if (params[0] && (params[1] || params[1] == "") && params[2]) {
        //var theLink = createExternalLink(place, getParam(params,"buttonText",params[0]));
        var theLink = createTiddlyButton(place, getParam(params,"buttonText",params[0]), getParam(params,"toolTip",params[1]), onClickLaunchApplication,"link");
        theLink.setAttribute("appToLaunch", getParam(params,"appToLaunch",params[2]));
        params.splice(0,3);
        theLink.setAttribute("appParameters", params.join(" "));
        return;
    }
}

function onClickLaunchApplication(e) {
	var theAppToLaunch = this.getAttribute("appToLaunch");
	var theAppParams = this.getAttribute("appParameters").readMacroParams();
	LaunchApplication(theAppToLaunch,theAppParams);
}

//}}}
|sortable widetable|k
|<<tiddler MeMo##toggleReadonly>><<tiddler RefreshTiddler with: genopfrisk>>|c
| Spørgsmål | Svar |h
|<<editSection [[##Spørgsmål]] [[redigér Spørgsmål]]>><<tiddler [[##Spørgsmål]]>>|<<tiddler [[##Link]] with:{{store.getValue(tiddler,'link')}}>><<editSection [[##Svar]] [[redigér Svar]]>><<tiddler [[##Svar]]>>|
|>|<<editSection [[##Notat]] [[redigér]]>>Notat:<<tiddler [[##Notat]]>>|
/%
!Spørgsmål

!Svar

!Notat
Distro/andet: MijnPup
!Link

[[Link »|http://google.dk/search?q=Libre Office dansk&sitesearch=linux-abc.dk/phpBB3/]]
!end %/
/***
|Name|ListboxPlugin|
|Source|http://www.TiddlyTools.com/#ListboxPlugin|
|Documentation|http://www.TiddlyTools.com/#ListboxPluginInfo|
|Version|1.4.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|set custom field or tiddler tags by selecting from listbox/droplist|
The {{{<<select>>}}} macro allows you to set tiddler field values by selecting pre-configured values from a listbox/droplist control.  
!!!!!Documentation
>see [[ListboxPluginInfo]]
!!!!!Revisions
<<<
2010.03.14 1.4.1 use filterTiddlers() instead of getTaggedTiddlers() - use MatchTagsPlugin for tag expressions
|please see [[ListboxPluginInfo]] for additional revision details|
2007.05.12 0.5.0 started
<<<
!!!!!Code
***/
//{{{
version.extensions.ListboxPlugin= {major: 1, minor: 4, revision: 1, date: new Date(2010,3,14)};

config.macros.select = {
	tooltip: "select a value for %0@%1",
	blankTooltip: "set %0@%1=[no value]",
	valueTooltip: "set %0@%1=%2",
	otherLabel: "other",
	otherTooltip: "set %0@%1=[enter a value...]",
	otherPrompt: "enter a value for '%0'",
	editLabel: "edit list...",
	editTooltip: "edit '%0' list definition (%1)",
	changeMsg: "setting %0@%1=%2",
	verbose: false,
	hereKeyword: "here",
	defaultTarget: "SiteFields",
	handler:
	function(place,macroName,params,wikifier,paramString,tiddler) {

		// default to containing tiddler or "SiteFields" catch-all
		var here=story.findContainingTiddler(place);
		var targetID=here?here.getAttribute("tiddler"):this.defaultTarget;

		// get field name and non-default target (if any)
		var field=params.shift();
		var pos=field.indexOf("@"); // if non-default target ("field@tiddler" syntax)
		if(pos!=-1) { // split field into field and tiddlername.
			if (field.substr(pos+1)!=this.hereKeyword) // "here" == use default target
				targetID=field.substr(pos+1); // use different target tiddler
			field=field.substr(0,pos);
		}
		if(!field || !field.length) return; // no field name... do nothing
		if (field.substr(0,1)=="=") targetID="(system)"; // internal option value

		var items=[]; var listsrc='';
		var autosave=false; var allowBlank=false; var allowOther=false; var allowEdit=false;
		var allowMultiple=false; var wikifyData=false; var rows=0; var width='';
		var p=params.shift();
		while (p) {
			if (p.toLowerCase()=='autosave')	// autosave on change
				autosave=true;
			else if (p.toLowerCase()=='allowblank')	// add empty item
				var allowBlank=true;
			else if (p.toLowerCase()=='allowother')	// add "other: ____" item
				var allowOther=true;
			else if (p.toLowerCase()=='allowedit')	// add "edit list..." item
				var allowEdit=true;
			else if (p.toLowerCase()=='allowmultiple') // multi-select
				var allowMultiple=true;
			else if (p.startsWith('rows:')) // 0=autosize listbox, 1=droplist, n=listbox
				var rows=p.substr(5);
			else if (p.startsWith('width:')) // CSS width of list
				var width=p.substr(6);
			else if (p.startsWith('prompt:')) // prompt text (1st item in list)
				var ptext=p.substr(7);
			else if (p.substr(0,1)=="+"||p.substr(0,1)=="*") { // read HR-separated tiddler
				var listsrc=p.substr(1);
				var listtxt=store.getTiddlerText(listsrc,'');
				var wikifyData=p.substr(0,1)=="*";
				if (listtxt.length && wikifyData) // wikify source to handle macros/scripts
					listtxt=this.getWikifiedData(listtxt);
				if (listtxt.length)
					items=items.concat(listtxt.split(listtxt.indexOf('\n----\n')!=-1?'\n----\n':'\n'));
			}
			else if (p.startsWith("=")) { // get items from tagged tiddlers
				var filter=p.substr(1);
				if (!filter.startsWith('[')) filter='[tag['+filter+']]';
				var tids=store.filterTiddlers(filter);
				for (var t=0; t<tids.length; t++) items.push(tids[t].title);
			}
			else { // param is item value or 'label=value'
				var parts=p.split("=");
				var label=parts[0]; var v=parts[1]?parts[1]:parts[0];
				items.push(label+"="+v);
			}
			p=params.shift();
		}
		if (rows==1) allowMultiple=false; // droplist cannot do multi-select
		if (tiddler && !story.isDirty(tiddler.title)) autosave=true; // tiddler is in VIEW mode, force autosave

		this.render(createTiddlyElement(place,"span"), null,
			targetID, field, ptext, items, listsrc, wikifyData,
			rows, width, autosave, allowBlank, allowOther, allowEdit, allowMultiple);

		store.addNotification(null,this.refresh); // syncs lists when tiddlers are changed
	},
	getWikifiedData: // wikify tiddler content, then extract text WITH newlines and HRs included
	function(txt) {
		var e=createTiddlyElement(document.body,"div"); wikify(txt,e);
		var breaks=e.getElementsByTagName("br");
		for (var b=0; b<breaks.length; b++) breaks[b].parentNode.insertBefore(document.createTextNode("\n"),breaks[b]);
		var lines=e.getElementsByTagName("hr");
		for (var l=0; l<lines.length; l++) lines[l].parentNode.insertBefore(document.createTextNode("----\n"),lines[l]);
		var items=e.getElementsByTagName("li");
		for (var i=0; i<items.length; i++) items[i].parentNode.insertBefore(document.createTextNode("\n"),items[i]);
		var txt=getPlainText(e); removeNode(e); return txt;
	},
	refresh:
	function (title) { // re-render dependent lists
		var lists=document.getElementsByTagName('select');
		for (var i=0; i<lists.length; i++) { var list=lists[i];
			if (list.getAttribute('listsrc')!=title) continue; // no sync needed
			var listtxt=store.getTiddlerText(list.getAttribute('listsrc')||'','');
			if (listtxt.length && list.getAttribute("wikifyData")=="true")
				listtxt=this.getWikifiedData(listtxt);
			if (listtxt.length)
				var items=listtxt.split(listtxt.indexOf('\n----\n')!=-1?'\n----\n':'\n');
			config.macros.select.render(list.parentNode, list,
				list.getAttribute('tiddler'),
				list.getAttribute('edit'),
				list.getAttribute('ptext'),
				items||[],
				list.getAttribute('listsrc'),
				list.getAttribute("wikifyData")=="true",
				list.getAttribute("rows"),
				list.getAttribute("width"),
				list.getAttribute("autosave")=="true",
				list.getAttribute("allowBlank")=="true",
				list.getAttribute("allowOther")=="true",
				list.getAttribute("allowEdit")=="true",
				list.getAttribute("allowMultiple")=="true");
		}
	},
	render:
	function (place, here, targetID, field, ptext, items, listsrc, wikifyData,
		rows, width, autosave, allowBlank, allowOther, allowEdit, allowMultiple) {

		var values=[]; var opts=[];

		// use current selection(s) (if any) (except for "edit list..." item)
		if (here) for (var i=0; i<here.options.length; i++) {
			var opt=here.options[i];
			if (opt.selected && opt.text!=config.macros.select.editLabel) values.push(opt.value);
		}
		// no listbox or no selections... get value(s) from field (if any)
		if (!values.length) {
			var v=(field.substr(0,1)=='=')?config.options[field.substr(1)]:store.getValue(targetID,field);
			if (v) values=(field=='tags'||allowMultiple)?v.readBracketedList():[v];
		}
		// add prompt item
		if (ptext&&ptext.length)
			opts.push('<option value="_ptext" title="">'+ptext+'</option>');
		// add 'no value' item
		if ((!allowMultiple && !values.length) || allowBlank)
			opts.push('<option value="" title="'+this.blankTooltip.format([field,targetID])+'"></option>');
		// add enumerated items
		var isOther=values.length; // assume no matching value
		for (var opt=0; opt<items.length; opt++) {
			var lines=items[opt].split("\n"); var parts=lines[0].split("=");
			var label=parts[0];
			var v=parts[1]?parts[1]:parts[0];
			var title=lines[1]?lines[1]:this.valueTooltip.format([field,targetID,v]);
			var sel=values.contains(v); if (sel) isOther=false; // found matching value
			opts.push('<option value="'+v+'" '+(sel?'selected':'')+' title="'+title+'">'+label+'</option>');
		}
		// add 'other...'
		if (field=='tags') isOther=false;
		if (isOther||allowOther) {
			var label="other"+(isOther?(": "+values[0]):"...");
			var v=isOther?values[0]:'';
			var t=this.otherTooltip.format([field,targetID]);
			opts.push('<option value="'+v+'" '+(isOther?'selected':'')+' title="'+t+'">'+label+'</option>');
		}
		// add 'edit list...'
		if (listsrc && (!store.getTiddlerText(listsrc) || allowEdit)) {
			var title=this.editTooltip.format([field,listsrc]);
			opts.push('<option value="'+listsrc+'" title="'+title+'">'+this.editLabel+'</option>');
		}
		// render listbox
		var html='<select '+(values[0]?'value="'+values[0]+'" ':' ')
			+' title="'+this.tooltip.format([field,targetID])+'"'
			+' rows="'+rows+'"'+' size="'+(rows!=0?rows:opts.length)+'"'+' style="width:'+width+'"'
			+' tiddler="'+targetID+'"'+' edit="'+field+'"'+' ptext="'+ptext+'"'
			+' listsrc="'+listsrc+'"'+' wikifyData="'+wikifyData+'"'
			+' autosave="'+autosave+'"'+' allowBlank="'+allowBlank+'"'+' allowOther="'+allowOther+'"'
			+' allowEdit="'+allowEdit+'"'+' allowMultiple="'+allowMultiple+'"'+(allowMultiple?' multiple':'')
			+' onclick="return config.macros.select.onClick(this,event)"'
			+' onchange="return config.macros.select.onChange(this,event)"'
			+' ondblclick="return false">'+opts.join('')+'</select>';
		place.innerHTML=html;
	},
	onClick:
	function(here,event) {
		var sel=here.selectedIndex;
		if (sel!=-1 && here.options[sel].text.startsWith(config.macros.select.otherLabel))
			here.onchange.apply(here,arguments);
	},
	onChange:
	function(here,event) {
		var cms=config.macros.select; // abbrev
		var sel=here.selectedIndex;
		if (sel!=-1) {
			if (here.options[sel].text==cms.editLabel) {
				story.displayTiddler(story.findContainingTiddler(here),here.value,DEFAULT_EDIT_TEMPLATE);
				return false;
			}
			if (here.options[sel].text.startsWith(cms.otherLabel)) {
				var newval=prompt(cms.otherPrompt.format([here.getAttribute("edit")]),here.value);
				if (!newval) {// user cancelled
					var v=store.getValue(here.getAttribute("tiddler"),here.getAttribute("edit"));
					{ here.value=v; if (v==undefined) here.selectedIndex=0; return false; }
				};
				here.options[sel].value=newval;
				here.options[sel].text=cms.otherLabel+": "+newval;
				here.value=newval;
			}
			if (here.options[sel].value=='_ptext')
				for (var i=0; i<here.options.length; i++)
					here.options[i].selected=false;
		}
		if (here.getAttribute("autosave")=="true") config.macros.select.setFieldValue(here);
		return false;
	},
	setFieldValue: function(here) {
		var tid=here.getAttribute("tiddler"); if (!tid || !tid.length) return; // no target, do nothing
		var field=here.getAttribute("edit");
		if (field.substr(0,1)=='=') { // option cookie instead of tiddler field
			config.macros.option.propagateOption(field.substr(1),"value",here.value,"input");
			return;
		}
		// ensure tiddler exists
		if (!store.tiddlerExists(tid)) store.saveTiddler(tid,tid,"",config.options.txtUserName,new Date(),[]);
		if (field=='tags') {
			store.suspendNotifications();
			for (var i=0; i<here.options.length; i++) {
				var opt=here.options[i];
				if (opt.text==config.macros.select.editLabel) continue;
				store.setTiddlerTag(tid,opt.selected,opt.value);
			}
			store.resumeNotifications();
		} else {
			// get multi-select items
			var values=[];
			for (var i=0; i<here.options.length; i++) {
				var opt=here.options[i];
				if (opt.text==config.macros.select.editLabel) continue;
				if (opt.selected) values.pushUnique(String.encodeTiddlyLink(opt.value));
			}
			if (values.length==1) values=[here.value]; // remove unneeded brackets around single value
			store.setValue(tid,field,values.length?values.join(' '):null); // if no selections, delete field
		}
		// 'touch' tiddler and report to user
		var t=store.getTiddler(tid);
		var who=config.options.chkForceMinorUpdate?t.modifier:config.options.txtUserName;
		var when=config.options.chkForceMinorUpdate?t.modified:new Date();
		store.saveTiddler(tid,tid,t.body,who,when,t.tags,t.fields);
		if (config.macros.select.verbose)
			{ clearMessage(); displayMessage(config.macros.select.changeMsg.format([field,tid,here.value])); }
	}
}
//}}}
<<tiddler SideBarTabs>>
/***
|''Name:''|LoadRemoteFileThroughProxy (previous LoadRemoteFileHijack)|
|''Description:''|When the TiddlyWiki file is located on the web (view over http) the content of [[SiteProxy]] tiddler is added in front of the file url. If [[SiteProxy]] does not exist "/proxy/" is added. |
|''Version:''|1.1.0|
|''Date:''|mar 17, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#LoadRemoteFileHijack|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
***/
//{{{
version.extensions.LoadRemoteFileThroughProxy = {
 major: 1, minor: 1, revision: 0, 
 date: new Date("mar 17, 2007"), 
 source: "http://tiddlywiki.bidix.info/#LoadRemoteFileThroughProxy"};

if (!window.bidix) window.bidix = {}; // bidix namespace
if (!bidix.core) bidix.core = {};

bidix.core.loadRemoteFile = loadRemoteFile;
loadRemoteFile = function(url,callback,params)
{
 if ((document.location.toString().substr(0,4) == "http") && (url.substr(0,4) == "http")){ 
 url = store.getTiddlerText("SiteProxy", "/proxy/") + url;
 }
 return bidix.core.loadRemoteFile(url,callback,params);
}
//}}}
[[Velkommen]]/%

^^~TiddlyWiki version <<version>>
© 2007 [[UnaMesa|http://www.unamesa.org/]]^^
%/
/*{{{*/
/*
	Malo - CSS Library
	Author:Vladimir Carrer
*/
  
/* CSS Grid */
/* dp = div percent */

.dp10,
.dp20,
.dp25,
.dp33,
.dp50,
.dp100{float:left; display: inline, *margin-left:-0.04em; } /* IE margin hack */

/*
.dp10{width:10%;}
.dp20{width:20%;}
.dp25{width:25%;}
.dp33{width:33.33%;}
.dp50{width:50%;}
.dp100{width:100%;}  */ /* original CSS. no margin possible */

.dp10{width:9%;}
.dp20{width:19%;}
.dp25{width:24%;}
.dp33{width:32.33%;}
.dp50{width:49%;}
.dp100{width:99%;}  /* changed it a little bit */

.clear{ clear:both;}

/* top border */
//.dp100,.dp50,.dp33,.dp25,.dp20,dp10{ border-top:1px solid #111;}

.dp100,.dp50,.dp33,.dp25{ padding-left: 0.5%; padding-right: 0.5%; margin-right:0%;} 
.dp20,.dp10{ padding-left: 0.3%; padding-right: 0.3%; margin-right:0%;} 

/*}}}*/
<script>
/*
 * Treeview 1.4 - jQuery plugin to hide and show branches of a tree
 * 
 * http://bassistance.de/jquery-plugins/jquery-plugin-treeview/
 * http://docs.jquery.com/Plugins/Treeview
 *
 * Copyright (c) 2007 Jörn Zaefferer
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Revision: $Id: jquery.treeview.js 4684 2008-02-07 19:08:06Z joern.zaefferer $
 *
 */


;(function($) {

	$.extend($.fn, {
		swapClass: function(c1, c2) {
			var c1Elements = this.filter('.' + c1);
			this.filter('.' + c2).removeClass(c2).addClass(c1);
			c1Elements.removeClass(c1).addClass(c2);
			return this;
		},
		replaceClass: function(c1, c2) {
			return this.filter('.' + c1).removeClass(c1).addClass(c2).end();
		},
		hoverClass: function(className) {
			className = className || "hover";
			return this.hover(function() {
				$(this).addClass(className);
			}, function() {
				$(this).removeClass(className);
			});
		},
		heightToggle: function(animated, callback) {
			animated ?
				this.animate({ height: "toggle" }, animated, callback) :
				this.each(function(){
					jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ]();
					if(callback)
						callback.apply(this, arguments);
				});
		},
		heightHide: function(animated, callback) {
			if (animated) {
				this.animate({ height: "hide" }, animated, callback);
			} else {
				this.hide();
				if (callback)
					this.each(callback);				
			}
		},
		prepareBranches: function(settings) {
			if (!settings.prerendered) {
				// mark last tree items
				this.filter(":last-child:not(ul)").addClass(CLASSES.last);
				// collapse whole tree, or only those marked as closed, anyway except those marked as open
				this.filter((settings.collapsed ? "" : "." + CLASSES.closed) + ":not(." + CLASSES.open + ")").find(">ul").hide();
			}
			// return all items with sublists
			return this.filter(":has(>ul)");
		},
		applyClasses: function(settings, toggler) {
			this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event) {
				toggler.apply($(this).next());
			}).add( $("a", this) ).hoverClass();
			
			if (!settings.prerendered) {
				// handle closed ones first
				this.filter(":has(>ul:hidden)")
						.addClass(CLASSES.expandable)
						.replaceClass(CLASSES.last, CLASSES.lastExpandable);
						
				// handle open ones
				this.not(":has(>ul:hidden)")
						.addClass(CLASSES.collapsable)
						.replaceClass(CLASSES.last, CLASSES.lastCollapsable);
						
	            // create hitarea
				this.prepend("<div class=\"" + CLASSES.hitarea + "\"/>").find("div." + CLASSES.hitarea).each(function() {
					var classes = "";
					$.each($(this).parent().attr("class").split(" "), function() {
						classes += this + "-hitarea ";
					});
					$(this).addClass( classes );
				});
			}
			
			// apply event to hitarea
			this.find("div." + CLASSES.hitarea).click( toggler );
		},
		treeview: function(settings) {
			
			settings = $.extend({
				cookieId: "treeview"
			}, settings);
			
			if (settings.add) {
				return this.trigger("add", [settings.add]);
			}
			
			if ( settings.toggle ) {
				var callback = settings.toggle;
				settings.toggle = function() {
					return callback.apply($(this).parent()[0], arguments);
				};
			}
		
			// factory for treecontroller
			function treeController(tree, control) {
				// factory for click handlers
				function handler(filter) {
					return function() {
						// reuse toggle event handler, applying the elements to toggle
						// start searching for all hitareas
						toggler.apply( $("div." + CLASSES.hitarea, tree).filter(function() {
							// for plain toggle, no filter is provided, otherwise we need to check the parent element
							return filter ? $(this).parent("." + filter).length : true;
						}) );
						return false;
					};
				}
				// click on first element to collapse tree
				$("a:eq(0)", control).click( handler(CLASSES.collapsable) );
				// click on second to expand tree
				$("a:eq(1)", control).click( handler(CLASSES.expandable) );
				// click on third to toggle tree
				$("a:eq(2)", control).click( handler() ); 
			}
		
			// handle toggle event
			function toggler() {
				$(this)
					.parent()
					// swap classes for hitarea
					.find(">.hitarea")
						.swapClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )
						.swapClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea )
					.end()
					// swap classes for parent li
					.swapClass( CLASSES.collapsable, CLASSES.expandable )
					.swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
					// find child lists
					.find( ">ul" )
					// toggle them
					.heightToggle( settings.animated, settings.toggle );
				if ( settings.unique ) {
					$(this).parent()
						.siblings()
						// swap classes for hitarea
						.find(">.hitarea")
							.replaceClass( CLASSES.collapsableHitarea, CLASSES.expandableHitarea )
							.replaceClass( CLASSES.lastCollapsableHitarea, CLASSES.lastExpandableHitarea )
						.end()
						.replaceClass( CLASSES.collapsable, CLASSES.expandable )
						.replaceClass( CLASSES.lastCollapsable, CLASSES.lastExpandable )
						.find( ">ul" )
						.heightHide( settings.animated, settings.toggle );
				}
			}
			
			function serialize() {
				function binary(arg) {
					return arg ? 1 : 0;
				}
				var data = [];
				branches.each(function(i, e) {
					data[i] = $(e).is(":has(>ul:visible)") ? 1 : 0;
				});
				$.cookie(settings.cookieId, data.join("") );
			}
			
			function deserialize() {
				var stored = $.cookie(settings.cookieId);
				if ( stored ) {
					var data = stored.split("");
					branches.each(function(i, e) {
						$(e).find(">ul")[ parseInt(data[i]) ? "show" : "hide" ]();
					});
				}
			}
			
			// add treeview class to activate styles
			this.addClass("treeview");
			
			// prepare branches and find all tree items with child lists
			var branches = this.find("li").prepareBranches(settings);
			
			switch(settings.persist) {
			case "cookie":
				var toggleCallback = settings.toggle;
				settings.toggle = function() {
					serialize();
					if (toggleCallback) {
						toggleCallback.apply(this, arguments);
					}
				};
				deserialize();
				break;
			case "location":
				var current = this.find("a").filter(function() { return this.href.toLowerCase() == location.href.toLowerCase(); });
				if ( current.length ) {
					current.addClass("selected").parents("ul, li").add( current.next() ).show();
				}
				break;
			}
			
			branches.applyClasses(settings, toggler);
				
			// if control option is set, create the treecontroller and show it
			if ( settings.control ) {
				treeController(this, settings.control);
				$(settings.control).show();
			}
			
			return this.bind("add", function(event, branches) {
				$(branches).prev()
					.removeClass(CLASSES.last)
					.removeClass(CLASSES.lastCollapsable)
					.removeClass(CLASSES.lastExpandable)
				.find(">.hitarea")
					.removeClass(CLASSES.lastCollapsableHitarea)
					.removeClass(CLASSES.lastExpandableHitarea);
				$(branches).find("li").andSelf().prepareBranches(settings).applyClasses(settings, toggler);
			});
		}
	});



	// classes used by the plugin
	// need to be styled via external stylesheet, see first example
	var CLASSES = $.fn.treeview.classes = {
		open: "open",
		closed: "closed",
		expandable: "expandable",
		expandableHitarea: "expandable-hitarea",
		lastExpandableHitarea: "lastExpandable-hitarea",
		collapsable: "collapsable",
		collapsableHitarea: "collapsable-hitarea",
		lastCollapsableHitarea: "lastCollapsable-hitarea",
		lastCollapsable: "lastCollapsable",
		lastExpandable: "lastExpandable",
		last: "last",
		hitarea: "hitarea"
	};
	
	// provide backwards compability
	$.fn.Treeview = $.fn.treeview;


	
})(jQuery);
</script>
<<tiddler MeMo##toggleReadonly>><<saveChanges>>
<<forEachTiddler where 'tiddler.tags.contains("$1")'
sortBy 'tiddler.title'
write 
 '(index < 60)? "|<<editSection [["+tiddler.title+"##$2]] [[redigér "+tiddler.title+" $2]] \>\><<tiddler [["+tiddler.title+"##$2]]\>\>|<<tiddler MeMo##link with:[["+tiddler.title+"]]\>\>@@position:relative;++++^^*[Notat]...<<editSection [["+tiddler.title+"##Notat]] [[redigér "+tiddler.title+" Notat]] \>\>[[->|"+tiddler.title+"]]<<tiddler "+"[["+tiddler.title+"##Notat]]\>\>===@@<<editSection [["+tiddler.title+"##$3]] [[redigér "+tiddler.title+" $3]] \>\><<tiddler "+"[["+tiddler.title+"##$3]]\>\> |\n" : ""'
              begin '"|mem widetable|k\n| $1 {{span{<<tiddler RefreshTiddler with: genstart\>\><<setIcon arrow_refresh.png\>\>}}} |c\n" 
+"| !$2 | !$3 |h\n"
+"| <<tiddler MeMo##heading1\>\> | <<tiddler MeMo##heading2\>\> |\n"' 
end 'count+" tiddlere er tagget med <<tag $1\>\> <<tiddler MeMo##knap\>\> \n"' none '"ingen tiddlere er tagget med $1 <<tiddler MeMo##knap\>\> <<tiddler RefreshTiddler with: genopfrisk\>\> \n"'
>>
{{hidden{
!link
<<tiddler [[$1##Link]] with:{{store.getValue("$1",'link')}}>>
!tabel
|sortable widetable|k
|\||
!heading1
<html><a href="#" onclick="return Mem.start(this.parentNode.parentNode)">(memorér)</a></html><<setIcon arrow_down.png>>
!heading2
<html><a href="#" onclick="return Mem.start(this.parentNode.parentNode)">(memorér)</a></html><<setIcon arrow_down.png "" "right">>
!toggleReadonly
<html><nowiki><span class='button' onclick="return this.getElementsByTagName('input')[0].click();"
	title="slå redigering af dette dokument fra/til">
<input type='checkbox' style="margin:0;padding:0;" onclick="
	window.readOnly=!this.checked;
	config.macros.option.propagateOption('chkHttpReadOnly','checked',window.readOnly,'input')
	config.macros.option.propagateOption('chkSinglePageMode','checked',window.readOnly,'input')
	window.showBackstage=!window.readOnly;
	if(showBackstage && !backstage.area) backstage.init();
	backstage.button.style.display=showBackstage?'block':'none';
	backstage.hide();
	story.switchTheme(config.options.txtTheme);
	store.notifyAll();
	story.refreshAllTiddlers(true);
	return false;
">redigér</span></html><<tiddler {{
	var chk=place.lastChild.getElementsByTagName('input')[0];
	chk.checked=!window.readOnly;
'';}}>>
!end
}}}

{{hidden{
!knap
{{button{<<tiddler [[MeMo##spørg]] with: $1  Spørgsmål Svar>>}}}
!spørg
<script label="Nyt $2/$3" title="opret et nyt $2/$3">
        var tid=prompt("Skriv en titel","");
        if (!tid || !tid.length) return;
        var txt="|sortable widetable|k\n|<<tiddler MeMo##toggleReadonly\>\><<tiddler RefreshTiddler with: genopfrisk\>\>|c\n| $2 | $3 |h\n|<<editSection [[##$2]] [[redigér $2]]\>\><<tiddler [[##$2]]\>\>|<<tiddler [[##Link]] with:{{store.getValue(tiddler,'link')}}\>\><<editSection [[##$3]] [[redigér $3]]\>\><<tiddler [[##$3]]\>\>|\n|>|<<editSection [[##Notat]] [[redigér]]\>\>Notat:<<tiddler [[##Notat]]\>\>|\n/%\n!$2\n\n!$3\n\n!Notat\n\n!Link\n\n[[Link »|$1]]\n!end %/"; 
        var who=config.options.txtUserName;
        var when=new Date();
        var tags=['memo'];
        var url=prompt("Indsæt link","");
        if (!url || !url.length) return;
        var fields={ link: url };
        store.saveTiddler(tid,tid,txt,who,when,tags,fields);
        story.displayTiddler(null,tid);
</script>
!end
}}}   <<tiddler RefreshTiddler>>
<<tiddler MeMo2##toggleReadonly>><<saveChanges>>
@@display:block;height:$4em;overflow:auto;
<<forEachTiddler where 'tiddler.tags.contains("$1")'
sortBy 'tiddler.title'
write 
 '(index < 60)? "|<<editSection [["+tiddler.title+"##$2]] [[redigér "+tiddler.title+" $2]] \>\>[["+tiddler.title+"]]:<<tiddler [["+tiddler.title+"##$2]]\>\>|<<tiddler MeMo2##link with:[["+tiddler.title+"]]\>\>@@position:relative;++++^^*[Notat]...<<tag [["+tiddler.title+"]] tagget\>\><br><<editSection [["+tiddler.title+"##Notat]] [[redigér "+tiddler.title+" Notat]] \>\>[[->|"+tiddler.title+"]]<<tiddler "+"[["+tiddler.title+"##Notat]]\>\>===@@<<editSection [["+tiddler.title+"##$3]] [[redigér "+tiddler.title+" $3]] \>\><<tiddler "+"[["+tiddler.title+"##$3]]\>\><br><<tiddler LV with:[["+tiddler.title+"]]\>\><<newTiddler label:[[Nyt underemne]] tag:[["+tiddler.title+"]] focus:title\>\> |\n" : ""'
              begin '"|mem widetable|k\n| <<tag $1\>\> {{span{<<tiddler RefreshTiddler with: genstart\>\><<setIcon arrow_refresh.png\>\>}}} |c\n" 
+"| !$2 | !$3 |h\n"
+"| <<tiddler MeMo2##heading1\>\> | <<tiddler MeMo2##heading2\>\> |\n"' 
end 'count+" tiddlere er tagget med <<tag $1\>\> <<tiddler MeMo2##knap\>\> \n"' none '"ingen tiddlere er tagget med $1 <<tiddler MeMo2##knap\>\> <<tiddler RefreshTiddler with: genopfrisk\>\> \n"'
>>
@@@@display:block;text-align:right;^^rul ned for mere...^^@@
{{hidden{
!link
<<tiddler [[$1##Link]] with:{{store.getValue("$1",'link')}}>>
!tabel
|sortable widetable|k
|\||
!heading1
<html><a href="#" onclick="return Mem.start(this.parentNode.parentNode)">(memorér)</a></html><<setIcon arrow_down.png>>
!heading2
<html><a href="#" onclick="return Mem.start(this.parentNode.parentNode)">(memorér)</a></html><<setIcon arrow_down.png "" "right">>
!toggleReadonly
<html><nowiki><span class='button' onclick="return this.getElementsByTagName('input')[0].click();"
	title="slå redigering af dette dokument fra/til">
<input type='checkbox' style="margin:0;padding:0;" onclick="
	window.readOnly=!this.checked;
	config.macros.option.propagateOption('chkHttpReadOnly','checked',window.readOnly,'input')
	config.macros.option.propagateOption('chkSinglePageMode','checked',window.readOnly,'input')
	window.showBackstage=!window.readOnly;
	if(showBackstage && !backstage.area) backstage.init();
	backstage.button.style.display=showBackstage?'block':'none';
	backstage.hide();
	story.switchTheme(config.options.txtTheme);
	store.notifyAll();
	story.refreshAllTiddlers(true);
	return false;
">redigér</span></html><<tiddler {{
	var chk=place.lastChild.getElementsByTagName('input')[0];
	chk.checked=!window.readOnly;
'';}}>>
!end
}}}

{{hidden{
!knap
{{button{<<tiddler [[MeMo2##spørg]] with: $1  Emne Underemner>>}}}
!spørg
<script label="Nyt emne" title="opret et nyt emne med $2/$3">
        var tid=prompt("Skriv en titel","");
        if (!tid || !tid.length) return;
        var txt="|sortable widetable|k\n|<<tiddler MeMo##toggleReadonly\>\><<tiddler RefreshTiddler with: genopfrisk\>\>|c\n| $2 | $3 |h\n|<<editSection [[##$2]] [[redigér $2]]\>\><<tiddler [[##$2]]\>\>|<<tiddler [[##Link]] with:{{store.getValue(tiddler,'link')}}\>\><<editSection [[##$3]] [[redigér $3]]\>\><<newTiddler label:[[Nyt underemne]]tag:{{tiddler.title}} focus:title\>\><<tiddler LV with: {{tiddler.title}}\>\><<tiddler [[##$3]]\>\>|\n|>|<<editSection [[##Notat]] [[redigér]]\>\>Notat:<<tiddler [[##Notat]]\>\>|\n/%\n!$2\n\n!$3\n\n!Notat\n\n!Link\n\n[[Link »|$1]]\n!end %/"; 
        var who=config.options.txtUserName;
        var when=new Date();
        var tags=['emne'];
        var url=prompt("Indsæt link","");
        if (!url || !url.length) return;
        var fields={ link: url };
        store.saveTiddler(tid,tid,txt,who,when,tags,fields);
        story.displayTiddler(null,tid);
</script>
!end
}}}   <<tiddler RefreshTiddler>>
Puppy 525 comes standard with GNOME Player which has similar functionality as Windows Media Player.

I like VLC, another media player, better and have it set as the default video player. When you click on video files like .MOV, WMV etc it will automatically play the clip. It also allows you to play DVD movies.

VLC will also play internet radio stations, audio CD, MP3, WAV, and OGG files etc. Just click on the file, REMEMBER ONE CLICK, not two like windows.
/***
!!!<<gradient horiz #fc3 #fff>>&nbsp;MemorizablePlugin>>
|Name|MemorizablePlugin_da|
|Source|URL: http://memorizable.com|
|Version|1.0.0|
|Author|Craig D. Muth Copyright (c) 2007|
|translation|Måns Mårtensson|
|Description|Creats flashcard like tables for memorizing data|
|For use in TiddlyWiki see|http://tinyurl.com/34fjk6|
***/
//{{{
// License
//
// Note: This is a modified version of the X11 (aka MIT) open source
// license.  It lets you use, modify, distribute and sell, etc.,
// requiring only that you leave the "Help" and "About Memorizable
// Tables" links (under "Options") in tact.  If you desire to use the
// software without these links please contact the author.
//
// COPYRIGHT AND PERMISSION NOTICE for Memorizable Tables
//
// Copyright (c) 2007, Craig D. Muth, memorizable.com
// Author's Website URL: http://memorizable.com
//
// All rights reserved.
//
// Permission is hereby granted, free of charge, to any person
// obtaining a copy of this software and associated documentation
// files (the "Software"), to deal in the Software without
// restriction, including without limitation the rights to use, copy,
// modify, merge, publish, distribute, and/or sell copies of the
// Software, and to permit persons to whom the Software is furnished
// to do so, subject to the following conditions:
//
// The above copyright notice, Author's Website URL, and this
// permission notice shall be included in all copies or substantial
// portions of the Software, and any hyperlinks in the user interface
// in the Software which refer to any page on the Author's Website may
// not be removed, disabled, altered, obscured, or repositioned.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
// NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE
// COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR
// ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY
// DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
// WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
// ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
// OF THIS SOFTWARE.
//
// Except as contained in this notice, the name of a copyright holder
// shall not be used in advertising or otherwise to promote the sale,
// use or other dealings in this Software without prior written
// authorization of the copyright holder.
//

Mem = new Object();

Mem.blankRowCount = 9;
Mem.mGray = "#d8d4c0";
Mem.mGreen = "#fff";
Mem.mClicked = "#b8b4a0";

Mem.myCellIndex = function(th) {
 var cells = th.parentNode.cells;
 var inn = 0;
 for(var x=0; x<cells.length; x++) {
  if(cells.item(x) == th)
   inn = x;
 }
 return inn;
}
Mem.start = function( item ) {
 var columnClicked;

 item.parentNode.parentNode.parentNode.parentNode.isMem = true;
 var t = this.setT( item );

 columnClicked = Mem.myCellIndex(item.parentNode);

 // If already in progress
 if( t.s && t.s.tbodyBackup ) {
  // Kill blinking processes
  this.tChile('directionsDiv').cycles = 1;
  Mem.restore();
 }

 // Create new if necessary
 if( typeof( t.s ) != 'object')
  t.s = new Array();

 t.s.column = columnClicked;

 // Create backup
 var bak = t.tBodies[0].cloneNode( true );
 t.s.tbodyBackup = bak;

 // Init correct count
 t.s.correctCount = 0;

 t.s.pending = new Array();

 var initialLength = t.tBodies[0].rows.length;
 for(var x=1; x<initialLength; x++) {
  // Build up list of indexes
  t.s.pending[t.s.pending.length] = t.tBodies[0].rows[1];
  // Remove from table
  t.tBodies[0].removeChild( t.tBodies[0].rows[1] );
 }

 t.s.totalQuestions = t.s.pending.length;

 var tds = t.s.pending[0].getElementsByTagName("TD");
 var numberOfColumns=tds.length;

 // Add blank rows to end
 for(var x=1; x<t.s.pending.length; x++) {
  if( x <= this.blankRowCount ) {
   var tr = document.createElement("TR");

   // For each column
   for(var y=0; y<numberOfColumns; y++) {
     var td = document.createElement("TD");  td.innerHTML = "&nbsp;";
     tr.appendChild( td );
   }
   t.tBodies[0].appendChild( tr );
  }
 }

 // If hidden blank rows
 if( t.s.pending.length > this.blankRowCount + 1 ) {

   // Add ... row
   var tr = document.createElement("TR");
   var td = document.createElement("TD");
   //   td.innerHTML = ". &nbsp; . &nbsp; .";
   td.innerHTML = "<div style='text-align: center; font-weight: bold; font-size: 6px; font-family: arial black; margin-top: 2px;'>. &nbsp; &nbsp; . &nbsp; &nbsp; .</div>";
   var colspan = document.createAttribute("COLSPAN");
   colspan.nodeValue=numberOfColumns;
   td.setAttributeNode(colspan);
   tr.appendChild( td );
   //numberOfColumns
   t.tBodies[0].appendChild( tr );

 }

 this.shuffle( t.s.pending ); t.s.pending.reverse(); this.shuffle( t.s.pending );

 // Add buttons, etc. to end of table.
 var tr = document.createElement("TR");
 var statusTd = document.createElement("TD");
 statusTd.id = 'statusTd';
 tr.appendChild( statusTd );
 var colspan = document.createAttribute("COLSPAN");
 colspan.nodeValue=numberOfColumns;
 statusTd.setAttributeNode(colspan);
 t.tBodies[0].appendChild( tr );


 // Create placeholders for buttons, etc.
 statusTd.innerHTML = "\
  <div id=mode style='text-align:right; height:19px; font-size:10px; color:#666;'>" + Mem.getModeDiv(0) + "</div>\
  <div id=directionsDiv style='margin-bottom:4px; text-align: left; font-size:10px; font-family:verdana,arial,sans-serif; color:#666;'></div>\
  <div id=buttons style='float:left; height:21px;'></div>\
  <div id=options style='padding: 5px 0px 0px 8px; width:55px; margin-top:0px; float:right;'><a href='#' onclick='return Mem.showOptions(this);' id=optionsLink>Muligheder</a></div>\
  <div id=progress style='margin-top:6px; float:right; font-size:8px; font-family:impact; color:#aaa; text-align:right; vertical-align:middle; '></div>\
" + this.getOptions();

 // Enable options if enabled before
 if( t.s.optionsOn )
  this.showOptions( statusTd );

 this.presentQuestion();

 this.glow(100);
 t.s.mode = "flashcard";

 return false;
}

Mem.addEvent = function( obj, type, fn ) {
 if ( obj.attachEvent ) {
  obj['e'+type+fn] = fn;
  obj[type+fn] = function() {obj['e'+type+fn]( window.event );}
  obj.attachEvent( 'on'+type, obj[type+fn] );
 } else
  obj.addEventListener( type, fn, false );
}

Mem.getQuestionCell = function() {
 return Mem.t.s.pending[0].cells[ Mem.t.s.column ];
}

Mem.createProgressBar = function() {
 var progress = "";
 var progressDups = "";
 var foundAlready = new Array();
 for(var x=0; x<Mem.t.s.pending.length ;x++) {

  // If found already
  if( foundAlready[ Mem.t.s.pending[x].innerHTML ] )
   progressDups += "|";
  else
   progress += "|";

  // Remember we found this one
  foundAlready[ Mem.t.s.pending[x].innerHTML ] = true;
 }
 return progress + "<span style='color:#f00;'>" + progressDups + "</span>";
}


Mem.presentQuestion = function() {

 this.tChile('directionsDiv').innerHTML = 
  "<div style='text-align:center;'>Gæt svaret <b style='color:#4d0'>i dit hoved</b>.<span style='font-size:7px;'></span> Klik derefter på <b>vis svar</b>, eller tast <b>1</b>.</div>";
 this.tChile('buttons').innerHTML = "<button id=showAnswer style='margin-right:111px; width:11em; margin-bottom:1px; font-family: verdana,arial,sans-serif; font-size:9px;' onclick='Mem.showAnswer( this )' >vis svar &nbsp;<span style='color:#aaa;text-decoration:underline;'>1</span></button>";

 var iveGuessed = this.tChile('showAnswer');
 Mem.addEvent( iveGuessed, 'mouseover', function(){ if(typeof( iveGuessedOnMouseOver ) =='function') iveGuessedOnMouseOver() } );
 Mem.addEvent( iveGuessed, 'mouseout', function(){ if(typeof( iveGuessedOnMouseOver ) =='function') iveGuessedOnMouseOut() } );

 // Add pending row
 Mem.t.tBodies[0].insertBefore( Mem.t.s.pending[0], Mem.t.tBodies[0].rows[ Mem.t.s.correctCount + 1 ] );

 // Insert "guess the answer", remembering old value
 var questionCell = this.getQuestionCell();
 Mem.t.s.questionCellOld = questionCell.innerHTML;
 questionCell.innerHTML = "<span style='text-decoration:none; color:#4d0; font-weight:bold; cursor:pointer;' title=\"Gæt svaret i dit hoved.  Klik derefter på 'vis svar' button.\">hvad&nbsp;skal der stå&nbsp;her?</span>";

 // Help alert
 Mem.addEvent( questionCell.getElementsByTagName("SPAN")[0], 'mousedown', function(){ alert('Gæt svaret i dit hoved.  Klik derefter på \'vis svar\' knappen, nederst i tabellen.') } );

 this.tChile('progress').innerHTML = this.createProgressBar();
}

Mem.showAnswer = function( button, noScroll ) {
 var t = this.setT( button );

 // Exit if other mode
 if( t.s.mode != "flashcard" )
  return;

 // Exit if no answer to show
 if( t.s.questionCellOld == null )
  return;

 var questionCell = this.getQuestionCell();
 questionCell.innerHTML = t.s.questionCellOld;
 t.s.questionCellOld = null;

 // Default
 var iWasRightText = "Jeg havde ret";

 // Count how many of this remaining
 var timesFound = 0;
 for(var x=0; x<t.s.pending.length ;x++)
  if( t.s.pending[x].innerHTML == t.s.pending[0].innerHTML )
   timesFound++;

 // If not the last time
 if( timesFound > 1 )
  iWasRightText = "vis senere";

 this.tChile('directionsDiv').innerHTML = 
  "<div style='text-align:center;'>Klik på den knap, der svarer til dit gæt, eller tast <b>1</b> eller <b>2</b>.</div>";
 this.tChile('buttons').innerHTML = "\
<button id=iWasWrong style='width:11em; padding:0px; margin: 0px 12px 1px 0px; font-family: verdana,arial,sans-serif; font-size:9px;' onclick='Mem.answer( false, this )'>Jeg tog fejl &nbsp;<span style='color:#aaa;text-decoration:underline;'>1</span></button>\
<button id=iWasRight class='iWasRightButton' style='width:10em; margin-bottom:1px; font-family: verdana,arial,sans-serif; font-size:9px;' onclick='Mem.answer( true, this )' >" + iWasRightText + " &nbsp;<span style='color:#aaa;text-decoration:underline;'>2</span></button>\
";
 this.tChile('progress').innerHTML = this.createProgressBar();

 var iWasRight = this.tChile('iWasRight');
 var iWasWrong = this.tChile('iWasWrong');
 Mem.addEvent( iWasRight, 'mouseover', function(){ if(typeof( iWasRightOnMouseOver ) =='function') iWasRightOnMouseOver() } );
 Mem.addEvent( iWasRight, 'mouseout', function(){ if(typeof( iWasRightOnMouseOut ) =='function') iWasRightOnMouseOut() } );
 Mem.addEvent( iWasWrong, 'mouseover', function(){ if(typeof( iWasWrongOnMouseOver ) =='function') iWasWrongOnMouseOver() } );
 Mem.addEvent( iWasWrong, 'mouseout', function(){ if(typeof( iWasWrongOnMouseOut ) =='function') iWasWrongOnMouseOut() } );

 if(! noScroll)
  this.scrollDownIfNecessary( this.tChile('statusTd') );

}

Mem.answer = function( correct, button, noScroll ) {

 var t = this.setT( button );

 // If answer not shown
 if( t.s.questionCellOld != null )
  return;

 // If other mode
 if( t.s.mode != "flashcard" )
  return;

 var dup = this.currentIsDuplicate();
 var last = t.s.pending[0];

 // Remove from front of pending
 t.s.pending.splice( 0, 1 );

 var allRows = t.tBodies[0].rows;

 if( correct ) {
  // If elsewhere in pending, remove from table
  if( dup )
   t.tBodies[0].removeChild( last );

  // If pending is empty, they're finished
  if( t.s.pending.length == 0 ) {
   this.finished();
   return;
  }

  // If not dup, increase count of correct
  if( ! dup ) {
   t.s.correctCount++;

   // If enough rows in table, remove last one (blank or ...)
   if( t.s.correctCount + this.blankRowCount >= t.s.totalQuestions - 1 )
    t.tBodies[0].removeChild( allRows[allRows.length - 2] );
  }
 }
 // If they missed it
 else {

  // Remove from table
  t.tBodies[0].removeChild( last );
  t.s.pending.push( last );
  t.s.pending.splice( 2, 0, last );
 }

 this.presentQuestion();

 if(this.tChile('directionsDiv').cycles >= 3)
  this.tChile('directionsDiv').cycles = 2;

 if(! noScroll)
  this.scrollDownIfNecessary( this.tChile('statusTd') );
}

Mem.currentIsDuplicate = function() {
 for(var x=1; x<Mem.t.s.pending.length ;x++) {
  if( Mem.t.s.pending[x] == Mem.t.s.pending[0] )
   return true;
 }
 return false;
}

Mem.message = function( s ) {
 var d = document.createElement('div');
 var t = document.createTextNode( s );
 d.appendChild(t);
 document.body.appendChild(d);
}

Mem.shuffle = function( list ) {
  var holder, swaps, i, j;
  for (swaps=0; swaps<(list.length*2); swaps++) {
    i = Math.floor(Math.random()*list.length);
    j = Math.floor(Math.random()*list.length);
    holder = list[i];
    list[i] = list[j];
    list[j]=holder;
  }
  return list;
}

Mem.dump = function( o ) {
 var s = "";
 for(m in o)
  s += m + ", ";
 return s;
}

Mem.keyWasPressed = function( keyp ) {

 var pressed;
 if( navigator.appName == "Netscape" ) pressed = keyp.which;
 if( navigator.appVersion.indexOf("MSIE") != -1 ) pressed = event.keyCode;

 // In case no table in progress
 try {
  // Show answer
  if ( ( pressed == "1".charCodeAt(0) ) || ( pressed == 97 ) ) {
   // If answer not shown yet
   if( Mem.t.s.questionCellOld != null )
    Mem.showAnswer();
   else
    Mem.answer( false );
  }

  // TODO make sure there are no modifiers held down (because of ctrl-r)
  // I was right
  if ( ( pressed == "2".charCodeAt(0) ) || ( pressed == 98 ) )
   Mem.answer( true );

 } catch(e) {}
}

Mem.memorizeAllTables = function( item, onlyDoTheseTables ) {

 // If we are a "hide" link
 if( item.innerHTML == "luk" ) {
  item.innerHTML = item.innerHTML_old;

  var removeThis = item.parentNode.getElementsByTagName("DIV")[0];
  // Close and exit
  item.parentNode.removeChild( removeThis );
  return false;
 }

 // Change link to 'close'
 item.innerHTML_old = item.innerHTML;
 item.innerHTML = "luk";

 // Create table in new div
 var d = document.createElement("div");
 d.innerHTML = "\
 <table class=\"memorizableAll\"><tr> \
   <th>Venstre side <a style=\"font-size: 9px;\" href=\"#\" onclick=\"return Mem.start(this)\">(memorér)</a></th> \
   <th>Højre side <a style=\"font-size: 9px;\" href=\"#\" onclick=\"return Mem.start(this)\">(memorér)</a></th>\
 </tr></table>";

 // Get ref to it
 var tb = d.getElementsByTagName("TBODY")[0];

 var memTableCount = 0;

 // Convert list to map
 var onlyMap = [];
 if( onlyDoTheseTables )
  for(var x=0; x<onlyDoTheseTables.length; x++)
   onlyMap[ onlyDoTheseTables[x].toString() ] = true;

 // For each table
 var ts = document.getElementsByTagName("table");
 for(var x=0; x<ts.length; x++) {

  // In case null pointer when seeking anchor
  try {

   // If mem table
   if( ts[x].id == "memTable" ) {
    memTableCount++;

    if( onlyDoTheseTables && ! onlyMap[memTableCount.toString()] )
     continue;

    var rs = ts[x].rows;

    // If in progress, use backup
    if( ts[x].s && ts[x].s.tbodyBackup )
     rs = ts[x].s.tbodyBackup.rows;

    // Add each row to the table    
    for(var z=1; z<rs.length; z++)
     tb.appendChild( rs[z].cloneNode( true ) );
   }
  } catch(e) {}
 }

 // Append div
 item.parentNode.appendChild( d )

 // Start a session, using the 2nd "(memorér)" link
 Mem.start( d.getElementsByTagName("A")[1] );

 return false;
}

// Returns Y coord of top of element.
Mem.findY = function( o ) {
 var curtop = 0;
 if (o.offsetParent) {
  curtop = o.offsetTop
  while (o = o.offsetParent)
   curtop += o.offsetTop
 }
 return curtop;
}

// Get distance from page top to window bottom
Mem.getWindowBottomY = function() {
 // Get scrollY
 var scrollY = document.body.scrollTop;
 if( window.pageYOffset )
  scrollY = window.pageYOffset

 var winY = document.body.clientHeight;
 if( window.innerHeight )
  winY = window.innerHeight;

 return scrollY + winY;
}

Mem.scrollDownIfNecessary = function( obj ) {
 // If last row close to getting off-screen
 if( this.findY( obj ) + 55 > this.getWindowBottomY() ) {
  // Scroll down smoothly
  var myInterval = window.setInterval(function () { window.scrollBy( 0, 2 ); }, 10);
  window.setTimeout(function () { clearInterval(myInterval); },650);
 }
}

Mem.startFirst = function(level) {
 var as = byid('memTable').getElementsByTagName('a');
 var a = as.length == 1 ? as[0] : as[1];
 Mem.start( a );

 // If 2, start another record
 if(level == 2) {
  Mem.showAnswer(this.tChile('showAnswer'), true);
  Mem.answer(true, this.tChile('iWasRightButton'), true);
  this.tChile('directionsDiv').cycles = 100;
 }
}

Mem.parents = function(node, levels) {
 for(x=1;x<=levels;x++) node = node.parentNode;
 return node; 
}

Mem.showOptions = function(node) {

 this.setT(node);
 this.tChile('optionsLink').style.display="none";
 this.tChile('optionsBox').style.display="block";

 Mem.t.s.optionsOn = true;

 // Don't let clicking on options change default table
 this.restoreTBody();

 return false;
}

Mem.hideOptions = function(node) {

 this.setT(node);
 this.tChile('optionsLink').style.display="block";
 this.tChile('optionsBox').style.display="none";

 Mem.t.s.optionsOn = false;

 // Don't let clicking on options change default table
 this.restoreTBody();

 return false;
}

Mem.close = function( node ) {

 var t = this.setT( node );

 // Don't re-open options
 Mem.t.s.optionsOn = false;

 Mem.restore();

 // Invoke hook if reset
 if(node != null) {
  // In case method not there
  try {
   mem_close( t );
  } catch(e) {}
 }

 return false;
}

Mem.finished = function() {

 var directions = this.tChile('directionsDiv');
 var buttons = this.tChile('buttons');
 // Default values
 directions.innerHTML = "<div style='text-align:center;'>Til lykke, du er færdig.</div>";
 buttons.innerHTML = "";

 // Restore rows
 this.addRowsFromBackup();

 // Call hook
 try {
  mem_finished( [directions, buttons] );
 } catch(e) {}

 Mem.glow(2, "finished");
 return false;
}

Mem.startOver = function( node ) {

 var t = this.setT( node );

 if( t.s.mode == "flashcard" )
  Mem.start( t.getElementsByTagName('a')[t.s.column] );

 else if( t.s.mode == "matching" )
  Mem.startMatching( t );

 return false;
}


Mem.startMatching = function( node ) {
 var t = this.setT( node );

 t.s.match0 = t.s.match1 = null;

 // Change help text
 this.tChile('mode').innerHTML = Mem.getModeDiv(1);
 this.tChile('directionsDiv').innerHTML = 
  "<div style='text-align:center;'><b>NB:</b> denne tabel er blevet <i style='font-weight:bold; color:#f90; cursor: pointer;'><span onclick='Mem.startOver(this);'>blandet</span></i>. Klik på elementer for at identificere svarmuligheder.</div>";
 this.tChile('buttons').innerHTML = "";
 this.tChile('progress').innerHTML = "";

 var rows = t.rows;

 // Add rows from backup
 this.addRowsFromBackup();

 // Format them
 rows = t.rows;
 for(var x=1; x<(rows.length-1); x++) {
  var tds = rows[x].cells;
  // Add click events
  Mem.addEvent( tds[0], 'click', function(){ Mem.matchingClicked( this, 0 ) } );
  Mem.addEvent( tds[1], 'click', function(){ Mem.matchingClicked( this, 1 ) } );
  tds[0].style.cursor = tds[1].style.cursor = "pointer";
  tds[0].style.background = tds[1].style.background = tds[0].style.endColor = tds[1].style.endColor = Mem.mGray;
  // Add indexes
  tds[0].mIndex = tds[1].mIndex = x;
 }

 // Shuffle columns
 for (swaps=0; swaps<(rows.length*4); swaps++) {
  Mem.swapOnce(rows,0);
  Mem.swapOnce(rows,1);
 }

 this.glow(100);

 t.s.mode = "matching";

 return false; 
}

Mem.matchingClicked = function(cell, side) {

 // Exit if already correct
 if(cell.mState == "korrekt")
  return;

 var t = this.setT( cell );

 var rows = t.rows;
 // Update colors of others, and count remaining
 var remaining = 0;
 for(var x=1; x<(rows.length-1); x++) {
  var td = rows[x].cells[side];

  // If gray, clear it
  if((cell != td) && (td.mState == "gæt")) {
   td.mState = null;
   td.style.background = td.endColor= Mem.mGray;
  }

  if(td.mState != "correct")  remaining++;
 }

 // Remember this was clicked
 if(side == 0)  t.s.match0 = cell;
 else  t.s.match1 = cell;

 // If already guessed
 if(cell.mState == "gæt") {
  cell.mState = null;
  cell.style.background = cell.endColor = Mem.mGray;
  // Clear it
  if(side == 0)  t.s.match0 = null;
  else  t.s.match1 = null;

 } else {
  // Make it selected
  cell.mState = "gæt";
  cell.style.background = cell.endColor = Mem.mClicked;
 }

 // Exit if neither are selected
 if(! (t.s.match0 && t.s.match1))
  return;

 // Go through backup table and look for matches
 var found = false;
 var backupRows = t.s.tbodyBackup.getElementsByTagName('tr');

 for(var x=1; x<backupRows.length; x++) {
  var tds = backupRows[x].getElementsByTagName('td');
  if((trim(t.s.match0.innerHTML) == trim(tds[0].innerHTML))
  && (trim(t.s.match1.innerHTML) == trim(tds[1].innerHTML)))
   found = true;
 }

 // If match
 if(found) {
  var directions = this.tChile('directionsDiv');
  if(directions.cycles > 2)
   directions.cycles = 2;

  // Make me dark green
  t.s.match0.mState = t.s.match1.mState = "korrekt";
  t.s.match0.endColor = t.s.match1.endColor = Mem.mGreen;
  t.s.match0.style.cursor = t.s.match1.style.cursor = "";

  // If finished - congrats message, restore rows
  if(remaining == 1) {
   directions.innerHTML = "<div style='text-align:center;'>Til lykke, du er færdig. \
&nbsp; Try <a href='#' onclick='return Mem.flashcardMode(this)'>flashcard mode</a>.</div>";
   Mem.glow(2, "færdig");
   this.addRowsFromBackup();
  } else {
   cell.style.background = Mem.mGray;
   Mem.glow(1, "green", t.s.match0, Mem.mGreen);
   Mem.glow(1, "green", t.s.match1, Mem.mGreen);
  }
  t.s.match0 = t.s.match1 = null;

  return;
 }

 // Must not have been found
 cell.style.background = Mem.mGray;
 Mem.glow(1, "red", cell, Mem.mClicked);

}

Mem.swapOnce = function( rows, index ) {
 var r1 = rows[Math.floor(Math.random() * (rows.length-2)) + 1];
 var r2 = rows[Math.floor(Math.random() * (rows.length-2)) + 1];
 var c1 = r1.cells[index];
 r1.replaceChild(r2.cells[index], c1);
 if(index == 0)
  r2.insertBefore(c1, r2.cells[0]);
 else
  r2.appendChild(c1);
}

Mem.getModeDiv = function( index ) {

 var r = "\
<span style='width:260px; text-align:right; padding: 0px 0px 2px 10px; letter-spacing:2px;\
border-left: solid #ccc 1px; \
border-bottom: solid #ccc 1px;'>\
";

 var modes = [["vendespilstilstand", "return Mem.flashcardMode(this)"], ["matchertilstand", "return Mem.startMatching(this)"]];
 for(var x=0; x<modes.length; x++) {

  if( x > 0 ) r += " | ";

  if(index == x)
   r += "<b>" + modes[x][0] + "</b>";
  else
   r += "<a style='color:#aaa;' href='#' onclick=\"" + modes[x][1] + "\">" + modes[x][0] + "</a>";

 }   
 r += "</span>";

 return r;
}

Mem.getOptions = function() {
 return "\
 <div style='display:none; line-height:17px; margin:27px 6px 4px 6px; padding: 3px 4px 4px 20px; border:dashed #fc0 2px;' id=optionsBox>\
  <a style='float:right; margin-top:-7px; font-size:9px;' href='#' onClick='return Mem.hideOptions(this)'>Skjul muligheder</a>\
  -&nbsp;<a target='_blank' href='http://klasser.tiddlyspace.com/#Hjælp'>Hjælp</a>\
  &nbsp; &nbsp; -&nbsp;<a onclick='return Mem.startOver(this)' href='#'>Genstart</a>\
  &nbsp; &nbsp; -&nbsp;<a onclick='return Mem.close(this)' href='#'>Fortryd</a>\
 <br>\
  -&nbsp;<a target='_blank' href='http://klasser.tiddlyspace.com/#MemorizablePlugin'>Om Memorizable Plugin</a>\
 </div>\
 ";
}

Mem.setT = function(node) {

 // Return current, if no change
 if(! node)
  return this.t;

 // Remember last, for restoreTBody
 if(( typeof( Mem.t ) == 'object'))
   Mem.lastT = Mem.t;

 // Climb up parent until we find table
 while( ! node.isMem )
  node = node.parentNode;

 this.t = node;

 return node;
}

Mem.lookupT = function(nodex) {

 // Climb up parent until we find table
 while(! nodex.isMem)
  nodex = nodex.parentNode;

 return nodex;
}


Mem.restoreTBody = function() {
 Mem.t = Mem.lastT;
}

Mem.restore = function() {
 var orig = Mem.t.s.tbodyBackup;
 Mem.t.replaceChild( orig, Mem.t.tBodies[0] );
 Mem.t = orig.parentNode;
 // Whipe out ref to backup
 Mem.t.s.tbodyBackup = null;
}

Mem.addRowsFromBackup = function() {
 var t = this.t;
 var rows = t.rows;
 // Delete rows - except top and bottom
 var length = rows.length;
 for(var x=1; x<=length-2; x++)
  t.tBodies[0].removeChild( rows[length - (x+1)] );

 // Make copies from backup, add them to table
 var bak = t.s.tbodyBackup.cloneNode( true );
 var backupRows = bak.getElementsByTagName('tr');
 var length = backupRows.length;
 for(var x=1; x<length; x++)
  t.tBodies[0].insertBefore( backupRows[1], rows[rows.length-1] );
}


Mem.glow = function(cycles, color, glowDiv, endColor) {

 // Remember table
 if(!glowDiv) {
  glowDiv = this.tChile('directionsDiv');
  // Do nothing if already going
  if(glowDiv.cycles >= 1)
    return;
 }

 glowDiv.cycles = cycles;

 if(!endColor)
  endColor = "#fff";
 // Set end color to cell
 glowDiv.endColor = endColor;

 var glowLevel = color == "green" ? 35 : 0;
 var glowIncrement = color == "red" ? 8 : 2;
 if(color == "green") glowIncrement = 1;

 var myInterval = window.setInterval(function () {
  // Stop if cycles over
  if(glowDiv.cycles <= 0) {
   clearInterval(myInterval);
   return;
  }

  // Change level
  glowLevel += glowIncrement;
  // Go darker
  if(glowLevel < 0) {
   glowIncrement = 2;
   glowLevel += glowIncrement;
   // If this is the end, set it to the end color
   if(--glowDiv.cycles == 0) {
    glowDiv.style.background = glowDiv.endColor;
    return;
   }
  }
  // Go lighter
  if(glowLevel > 44) {
   glowIncrement = -2;
   glowLevel += glowIncrement;
   if(glowDiv.cycles == 1) {
    glowIncrement = color == "red" ? -6 : -1;
    if(color == "green") glowIncrement = -6;
   }
  }

  if(color == "red")
    Mem.glowColor(glowDiv, glowLevel, 180, 1, -2, -2);
  else if(color == "green")
    Mem.glowColor(glowDiv, glowLevel, 255, -3, 0, -5);
  else if(color == "finished")
    Mem.glowColor(glowDiv, glowLevel, 255, -2, 0, -4);
  else  // Orange
    Mem.glowColor(glowDiv, glowLevel, 255, 0, -1, -4);

 }, 43);
}

Mem.glowColor = function(glowDiv, glowLevel, start, r, g, b) {
  glowDiv.style.background = "rgb(" + (start+glowLevel*r) + "," + (start+glowLevel*g) + "," + (start+glowLevel*b) + ")";
}

Mem.chile = function(root, idName) {

 var maybe = root.getElementsByTagName( '*' );

 for(var x=0; x<maybe.length; x++)
  if( maybe[x].id == idName )
   return maybe[x];
}

Mem.tChile = function(idName) {

 return this.chile(this.t, idName);
}

Mem.flashcardMode = function(node) {

 Mem.setT(node);
 return Mem.start( Mem.t.getElementsByTagName('a')[Mem.t.s.column] );
}


function trim( s ) {
 return s.replace(/^\s*(\S*(\s+\S+)*)\s*$/, "$1");
}

function byid( key ) {
  return document.getElementById( key );
}

Mem.addEvent( document, "keydown", Mem.keyWasPressed );

//}}}
Denne guide er skrevet til [[Puppy Linux 525]]s programmenustruktur.
{{nobullets{<<tagglyTagging [[Menu]]>>}}}.
/*{{{*/
.starbox 
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid;background-image: url('http://dl.dropbox.com/u/15835063/space.gif');color:#fff; }
.starbox .button, .menubox .tiddlyLinkExisting, .menubox .tiddlyLinkNonExisting
	{ color:#fff !important; }
.transbox
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid; background:transparent; color:#fff; }
.transbox .button, .menubox .tiddlyLinkExisting, .menubox .tiddlyLinkNonExisting
	{ color:#fff !important; }
.redbox
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid; background:#C00; color:#fff; }
.redbox .button, .menubox .tiddlyLinkExisting, .menubox .tiddlyLinkNonExisting
	{ color:#fff !important; }
.bluebox
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid; background:#309; color:#fff; }
.bluebox .button, .menubox .tiddlyLinkExisting, .menubox .tiddlyLinkNonExisting
	{ color:#fff !important; }
.greenbox
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid; background:#360; color:#fff; }
.greenbox .button, .menubox .tiddlyLinkExisting, .menubox .tiddlyLinkNonExisting
	{ color:#fff !important; }
.brownbox
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid; background:#633; color:#fff; }
.brownbox .button, .menubox .tiddlyLinkExisting, .menubox .tiddlyLinkNonExisting
	{ color:#fff !important; }
.blackbox
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid; background:#000; color:#fff; }
.blackbox .button, .menubox .tiddlyLinkExisting, .menubox .tiddlyLinkNonExisting
	{ color:#fff !important; }
.yellowbox
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid; background:#ff0; color:#000; }
.yellowbox .button, .menubox .tiddlyLinkExisting, .menubox .tiddlyLinkNonExisting
	{ color:#000 !important; }
.orangebox
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid; background:#F93; color:#000; }
.orangebox .button, .menubox .tiddlyLinkExisting, .menubox .tiddlyLinkNonExisting
	{ color:#000 !important; }

.marmorbox
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid;background-image: url('data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCACAAIABAREA/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/9oACAEBAAA/APcgQtDuMYBqMKTz2ox82O1O2A84pSNuMU8Ht2oOO1IeOtRg847U8c9OlBGDilGDkYpU447Urcmo8fNmozkmjb82CamzgYpO9BbApM0quOlKTignIpoAzmlJxSFsc0BwfrTgeKMmkJAo7cUx1zzSqMDBNOHWlOPxpO1M43Cn5yM0UDk80rKKYQMUmw5GKlAwOaQkGmbRmm+bzjBxQzZpVU5yalxgcUnXk0U3aPSlxjHpTgOtIRjmlCluaa3ApBnFO3EUm3PJpuQDg0xiAcZoGRUg3dSKf703HNKFNP2HqaYf0pytgYpSwximAnn0pO9KBjmnqoxk0jKQPamMoIqArls1Kh6DFTBh0IpxIxQNrdqcAKWmEKaaUI6U32NLnAxTDgd6UMOlPD4U0w7iOtRMGz1qVYc07yzRtI4pduBQue1PJA61E8lM3n8KnU5Uc0yQfnTMkA5puMtT1TNSbR6Uu0VE0ZqcnAprNikEg70MwbpTMkdKaWY9aTbnrTMkHkVIHO3pSb/WnKNxp/lnPtRgp9KepDCncUUGoT1o25oGelIVz0p3l0m3nFBiyKRYiKeYgaEj2mpKRhkYpoTBzmn0Uxmx9ajLZo3A0EkcikByaeDT1xjiloAxRS0GkJwM0A5GaWjNRsuTmoyKTGKUk4piAs1WNg4o2kdDS8ik3ilVs06mlgKaxzxQGIGKeCDSZHrUZemO3cU0k59qmAXZTQAOlSBs/WnUxs55poA9aeoIpWOBSbgacMUxsZ4pgJJp+2lZMnIqJ+OgpoGVpRmlBIPFSKCeTT6jfk0nIFKGI60jMWpM0ocA0ZyaUACnL6GjOBn1qNsHimEFeaUc80o+9T1elLe9NL5p28Y6Uh5X3pApNIenFNxjnvRnv3pwYdTT1I6mm7j2pm7mnZ3Dik7YpM4pCe9KSaWkzTgc0pfB9qaXU8d6SmfzpwbPBp4wBThjOBTWXBqLeF4FIXJpFPOTUmAw4pRxSn1pKQNnpQ2evakUA89KUgjvxSFCeRQFIwTT1K5wa//Z');color:#000; }
.marmorbox .button, .menubox .tiddlyLinkExisting, .menubox .tiddlyLinkNonExisting
	{ color:#black !important; }
/*}}}*/
/*{{{*/
Background: #fff
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #0078a5
PrimaryDark: #014
SecondaryPale: #ededed
SecondaryLight: #f16c7c
SecondaryMid: #00adee
SecondaryDark: #bf404f
TertiaryPale: #eee
TertiaryLight: #ccc
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
Grey: #e9e9e9
/*}}}*/
<<switchTheme label:Aktivér {{tiddler.title}} >>
/***
|!|!|!|!|!|!|!|!|!|!|!|!|!|!|!|!|
|!|!|!|!|!|!|!|!|!|!|!|!|!|!|!|!|
|!|!||||||||||||!|!|!|
|!|!||!|!|!|!|!|!|!|!|!||!|!|!|
|!|!||!||||!||!||!||!|!|!|
|!|!||!||!||!||!||!||!|!|!|
|!|!||!||||!||!||!||!|!|!|
|!|!||!||!||!||!||!||!|!|!|
|!|!||!||||!||!||!||!|!|!|
|!|!||!|!|!|!|!|!|!||!||!|!|!|
|!|!||||||||||!||||!|
|!|!|!|!|!|!|!|!|!|!|!|!|!|!|!|!|
|!|!|!|!|!|!|!|!|!|!|!|!|!|!|!|!|

|''Name''|MineralTheme|
|''Source''|http://bauwebijl-tiddlywiki.appspot.com/#MineralTheme|
|''Version:''|1.0|
|''Author:''|Bauwe Bijl|
|''Date:''|March 15, 2011|
|''License:''|[[BSD License|http://bauwebijl-tiddlywiki.appspot.com/#LegalStatements]]|
|''Comments:''|Please make comments at http://groups.google.nl/group/TiddlyWiki|
|''~CoreVersion:''|2.6.0|
|''Type''|CSS|
|''Description''|a ''~TiddlyWiki'' theme: http://bauwebijl-tiddlywiki.appspot.com/#MineralThemeInfo|
|''PageTemplate:''|##PageTemplate|
|''ViewTemplate:''|##ViewTemplate|
|''EditTemplate:''|##EditTemplate|
|''StyleSheet:''|##StyleSheet|

Depends on BackstageSidebarPlugin, SimpleSearchPlugin and TiddlerTweakerPlugin
***/

!PageTemplate
<!--{{{-->
<div id='header'>
<div id='sidebarSearch'>
<span macro='search'></span>
<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>&nbsp;
<span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>
</div>
</div>
<div id='topMenu' refresh='content' tiddler='MineralTheme##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>
<!--}}}-->
!ViewTemplate
<!--{{{-->
<div macro="hideWhen readOnly"><div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div></div>
<div macro="showWhen readOnly"><div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbarReadOnly]]'></div></div>
<div macro="hideWhenTaggedAny -titel iframe sti"><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>
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
!EditTemplate
<!--{{{-->
<span class='title' macro='edit title'></span></div>
<span class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]]'></span></div>
<div macro='annotations'></div><br>
<div class='editor' macro='edit tags'></div><div class='editorFooter'><span macro='message views.editor.tagPrompt'></span><span macro='tagChooser excludeLists'></span></div>
<div macro='tiddler QuickEditToolbar'></div>
<div class='editor' macro='edit text'></div>
<!--}}}-->
!StyleSheet
[[StyleSheetShortcuts]]
/*{{{*/
#sidebar {
	display:none;
}
#contentWrapper {
    width: 800px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
}
#header {
    [[MineralTheme##StyleGrey]]
    display: block;
    margin-bottom: 6px;
    margin-top: 6px;
    text-align: left;
}
#header .tiddlyLinkExisting, #header .tiddlyLinkNonExisting {
    background: none;
    color:[[ColorPalette::SecondaryMid]];
}
#sidebarSearch .txtOptionInput {
    margin-top: 10px;
    float: right;
    width: 11em;
}
#sidebarSearch .searchButton {
    display: none;
}
#topMenu{
    [[MineralTheme##StyleWhite]]
    width: 770px;
    height: auto;
    padding-top: 4px;
    padding-bottom: 4px;
    text-align: left;
    text-shadow: none;
}
#topMenu .tiddlyLink, #topMenu .button, .viewer .button, #topMenu .externalLink, #tiddlerMainMenu .tiddlyLinkExisting, #tiddlerMainMenu .tiddlyLinkNonExisting, #tiddlerMainMenu .externalLink {
    [[MineralTheme##StyleBlue]]
    font-size:120%;
}
#topMenu .tiddlyLink:hover, #topMenu .button:hover, .viewer .button:hover, #topMenu .externalLink:hover, #tiddlerMainMenu .tiddlyLinkExisting:hover, #tiddlerMainMenu .tiddlyLinkNonExisting:hover, #tiddlerMainMenu .externalLink:hover, .popup li a:hover {
    [[MineralTheme##StyleBlueHover]]
}
#topMenu .tiddlyLink:active, #topMenu .button:active, .viewer .button:active, #topMenu .externalLink:active, #tiddlerMainMenu .tiddlyLinkExisting:active ,#tiddlerMainMenu .tiddlyLinkNonExisting:active, #tiddlerMainMenu .externalLink:active, .popup li a:active {
    [[MineralTheme##StyleBlueActive]]
}
#searchResults .button {
    [[MineralTheme##StyleBlue]]
}
#searchResults .button:hover {
    [[MineralTheme##StyleBlueHover]]
}
#searchResults .button:active {
    [[MineralTheme##StyleBlueActive]]
}
#searchResults {
    [[MineralTheme##StyleWhite]]
    text-shadow: none;
    text-align: left;
    display: block;
    margin-bottom: 10px;
}
.tiddlerTweaker {
    background: [[MineralTheme##StyleWhite]]
    text-shadow: none;
    text-align: left;
}
#displayArea {
    margin-left: 0px;
    margin-right: 0px;
}
.toolbar {
    float: right;
    visibility:hidden;
}
.selected .toolbar, .toolbar a:hover {
    visibility:visible;
}
.annotation {
    margin-bottom: -8px;
}
.tiddler, .viewer pre {
    [[MineralTheme##StyleWhite]]
    display: block;
    margin-bottom: 10px;
    text-align: left;
    text-shadow: none;
}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {
    [[MineralTheme##BlueSharp]]
    text-shadow: none;
    color:[[ColorPalette::Background]];
}
.viewer table, table.twtable {
    border: 1px;
}
.viewer td, .viewer tr, .twtable td, .twtable tr {
    vertical-align: top;
}
.tabContents {
    background: [[MineralTheme##StyleWhite]]
    text-shadow: none;
    text-align: left;
    margin-bottom: 10px;
}
.tabUnselected {
    background: [[MineralTheme##StyleGrey]]
}
.tabSelected {
    background: [[MineralTheme##StyleBlue]]
}
.tagging, .tagged {
    [[MineralTheme##StyleWhite]]
    text-align: left;
    text-shadow: none;
    margin-top: 6px;
    margin-bottom: 10px;
}
.tagging {
    display: none;
}
.tagging .button, .tagged .button, .tagging .tiddlyLinkExisting, .tagging .tiddlyLinkNonExisting {
    [[MineralTheme##StyleWhite]]
}
.tagging .button:hover, .tagged .button:hover, .tagging:hover .tiddlyLinkExisting:hover, .tagging .tiddlyLinkNonExisting:hover {
    [[MineralTheme##StyleWhiteHover]]
}
.tagging .button:active, .tagged .button:active, .tagging:active .tiddlyLinkExisting:active, .tagging .tiddlyLinkNonExisting:active {
    [[MineralTheme##StyleWhiteActive]]
}
.tagged li, .tagging li  {
    margin-bottom: 6px;
    margin-top: 2px;
}
.popup {
    [[MineralTheme##StyleGrey]]
    text-align: left;
}
.popup li a:hover {
    margin-bottom: 4px;
    margin-top: 4px;
}
.popup li a, .popup li a:visited {
    [[MineralTheme##StyleBlue]]
    margin-bottom: 4px;
    margin-top: 4px;
}
.popup li.disabled {
    color:[[ColorPalette::Grey]];
}
.tiddler .toolbar .button {
    [[MineralTheme##StyleRosy]]
}
.tiddler .toolbar .button:hover {
    [[MineralTheme##StyleRosyHover]]
}
.tiddler .toolbar .button:active {
    [[MineralTheme##StyleRosyActive]]
}
#messageArea {
    [[MineralTheme##StyleGrey]]
    display: none;
    text-align: left;
}
#messageArea a, #messageArea a:hover {
    color:[[ColorPalette::SecondaryMid]];
}
[[StyleSheet]]
/*}}}*/
/%
!MainMenu
<<tiddler MainMenu>> -- @@position:relative;+++^^*[Værktøj|vis eller skjul værktøj]...<<tiddler ToolBox>>===@@{{floatright{<<tiddler MineralTheme##toggleReadonly>>}}}
!toggleReadonly
<html><nowiki><span class='checkbox' onclick="return this.getElementsByTagName('input')[0].click();"
	title="slå redigering af dette dokument til/fra">
<input type='checkbox' style="margin:0;padding:0;" onclick="
	window.readOnly=!this.checked;
	config.macros.option.propagateOption('chkHttpReadOnly','checked',window.readOnly,'input')
	config.macros.option.propagateOption('chkSinglePageMode','checked',window.readOnly,'input')
	window.showBackstage=!window.readOnly;
	if(showBackstage && !backstage.area) backstage.init();
	backstage.button.style.display=showBackstage?'block':'none';
	backstage.hide();
	story.switchTheme(config.options.txtTheme);
	store.notifyAll();
	story.refreshAllTiddlers(true);
	return false;
"></span></html><<tiddler {{
	var chk=place.lastChild.getElementsByTagName('input')[0];
	chk.checked=!window.readOnly;
'';}}>>
!StyleBase
/*{{{*/
	display: inline-block;
	zoom: 1; /* zoom and *display = ie7 hack for display:inline-block */
	*display: inline;
	vertical-align: baseline;
	margin: 0 2px;
	outline: none;
	cursor: arrow;
	text-align: center;
	text-decoration: none;
	font-size: 11px/100% Arial, Helvetica, sans-serif;
	padding: .2em 1em .275em;
	text-shadow: 0 1px 1px rgba(0,0,0,.3);
	-webkit-border-radius: .5em; 
	-moz-border-radius: .5em;
	border-radius: .5em;
	-webkit-box-shadow: 0 1px 2px rgba(0,0,0,.2);
	-moz-box-shadow: 0 1px 2px rgba(0,0,0,.2);
	box-shadow: 0 1px 2px rgba(0,0,0,.2);
/*}}}*/
!GreySharp
/*{{{*/
	color: #606060;
	border: solid 1px #b7b7b7 !important;
	color: #e9e9e9;
	border: solid 1px #555 !important;
	background: #6e6e6e;
	background: -webkit-gradient(linear, left top, left bottom, from(#888), to(#575757));
	background: -moz-linear-gradient(top,  #888,  #575757);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#888888', endColorstr='#575757');
/*}}}*/
!StyleGrey
/*{{{*/
[[MineralTheme##StyleBase]]
	color: #606060;
	border: solid 1px #b7b7b7 !important;
	color: #e9e9e9;
	border: solid 1px #555 !important;
	background: #6e6e6e;
	background: -webkit-gradient(linear, left top, left bottom, from(#888), to(#575757));
	background: -moz-linear-gradient(top,  #888,  #575757);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#888888', endColorstr='#575757');
/*}}}*/
!StyleGreyHover
/*{{{*/
	color:#FFFFFF;
	background: #616161;
	background: -webkit-gradient(linear, left top, left bottom, from(#757575), to(#4b4b4b));
	background: -moz-linear-gradient(top,  #757575,  #4b4b4b);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#757575', endColorstr='#4b4b4b');
/*}}}*/
!StyleGreyActive
/*{{{*/
	color: #afafaf;
	background: -webkit-gradient(linear, left top, left bottom, from(#575757), to(#888));
	background: -moz-linear-gradient(top,  #575757,  #888);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#575757', endColorstr='#888888');
	position: relative;
	top: 1px;
/*}}}*/
!WhiteSharp
/*{{{*/
	color: #606060;
	border: solid 1px #b7b7b7 !important;
	background: #fff;
	background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#ededed));
	background: -moz-linear-gradient(top,  #fff,  #ededed);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed');
/*}}}*/
!StyleWhite
/*{{{*/
[[MineralTheme##StyleBase]]
	color: #606060;
	border: solid 1px #b7b7b7 !important;
	background: #fff;
	background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#ededed));
	background: -moz-linear-gradient(top,  #fff,  #ededed);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ededed');
/*}}}*/
!StyleWhiteHover
/*{{{*/
	color: #606060;
	background: #ededed;
	background: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#dcdcdc));
	background: -moz-linear-gradient(top,  #fff,  #dcdcdc);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#dcdcdc');
/*}}}*/
!StyleWhiteActive
/*{{{*/
	color: #999;
	background: -webkit-gradient(linear, left top, left bottom, from(#ededed), to(#fff));
	background: -moz-linear-gradient(top,  #ededed,  #fff);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#ededed', endColorstr='#ffffff');
	position: relative;
	top: 1px;
/*}}}*/
!BlueSharp
/*{{{*/
	color: #d9eef7;
	border: solid 1px #0076a3 !important;
	background: #0095cd;
	background: -webkit-gradient(linear, left top, left bottom, from(#00adee), to(#0078a5));
	background: -moz-linear-gradient(top,  #00adee,  #0078a5);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#00adee', endColorstr='#0078a5');
/*}}}*/
!StyleBlue
/*{{{*/
[[MineralTheme##StyleBase]]
	color: #d9eef7;
	border: solid 1px #0076a3 !important;
	background: #0095cd;
	background: -webkit-gradient(linear, left top, left bottom, from(#00adee), to(#0078a5));
	background: -moz-linear-gradient(top,  #00adee,  #0078a5);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#00adee', endColorstr='#0078a5');
/*}}}*/
!StyleBlueHover
/*{{{*/
	color:#FFFFFF;
	background: #007ead;
	background: -webkit-gradient(linear, left top, left bottom, from(#0095cc), to(#00678e));
	background: -moz-linear-gradient(top,  #0095cc,  #00678e);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#0095cc', endColorstr='#00678e');
/*}}}*/
!StyleBlueActive
/*{{{*/
	color: #80bed6;
	background: -webkit-gradient(linear, left top, left bottom, from(#0078a5), to(#00adee));
	background: -moz-linear-gradient(top,  #0078a5,  #00adee);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#0078a5', endColorstr='#00adee');
	position: relative;
	top: 1px;
/*}}}*/
!RosySharp
/*{{{*/
	color: #fae7e9;
	border: solid 1px #b73948 !important;
	background: #da5867;
	background: -webkit-gradient(linear, left top, left bottom, from(#f16c7c), to(#bf404f));
	background: -moz-linear-gradient(top,  #f16c7c,  #bf404f);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#f16c7c', endColorstr='#bf404f');
/*}}}*/
!StyleRosy
/*{{{*/
[[MineralTheme##StyleBase]]
	color: #fae7e9;
	border: solid 1px #b73948 !important;
	background: #da5867;
	background: -webkit-gradient(linear, left top, left bottom, from(#f16c7c), to(#bf404f));
	background: -moz-linear-gradient(top,  #f16c7c,  #bf404f);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#f16c7c', endColorstr='#bf404f');
/*}}}*/
!StyleRosyHover
/*{{{*/
	color:#FFFFFF;
	background: #ba4b58;
	background: -webkit-gradient(linear, left top, left bottom, from(#cf5d6a), to(#a53845));
	background: -moz-linear-gradient(top,  #cf5d6a,  #a53845);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#cf5d6a', endColorstr='#a53845');
/*}}}*/
!StyleRosyActive
/*{{{*/
	color: #dca4ab;
	background: -webkit-gradient(linear, left top, left bottom, from(#bf404f), to(#f16c7c));
	background: -moz-linear-gradient(top,  #bf404f,  #f16c7c);
	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#bf404f', endColorstr='#f16c7c');
	position: relative;
	top: 1px;
/*}}}*/
!End
%/
<<tiddler [[SideBarOptions##tema]]>><<switchTheme label:Aktivér {{tiddler.title}} >>
[[link|http://maans.bplaced.net/TiddlyHome/temaer/index.html#txtTheme:StyleSheetCaspian StyleSheetCaspian]]
/***
|Name|StyleSheetCaspian|
|Source|http://caspian.tiddlyspace.com/|
|Version|1.0.0|
|Author|@jon|
|License||
|Requires|<<tag StyleSheetCaspian>>|
|Description|Caspian systemTheme definition|

|StyleSheet|##StyleSheet|
|PageTemplate|##PageTemplate|
|ViewTemplate|##ViewTemplate|
|EditTemplate|##EditTemplate|
|PageTemplateReadOnly|##PageTemplate|
|ViewTemplateReadOnly|##ViewTemplateReadOnly|
|EditTemplateReadOnly|##EditTemplateReadOnly|
|ViewTemplateTS|##ViewTemplateTS|
|EditTemplateTS|##EditTemplateTS|
|PageTemplateTS|##PageTemplateTS|
|ViewTemplateTSReadOnly|##ViewTemplateTSReadOnly|
|EditTemplateTSReadOnly|##EditTemplateTSReadOnly|
|PageTemplateTSReadOnly|##PageTemplateTSReadOnly|

!StyleSheet
[[StyleSheetTiddler]]
[[StyleSheetTiddlySpace]]
[[StyleSheetShortcuts]]
/*{{{*/
.noButton .button { border: 0px solid transparent;}
.noButton .button:hover { 
color: white;
background-color: [[ColorPalette::PrimaryMid]] !important;
} 
.loggedInUser.readOnly #sidebar .tools .button {
margin-left: 0px;
margin-right: 16px;
}
.loggedInUser.readOnly #sidebar .tools .pushLeft.button {
margin-right: 0px;
}
@media all and (max-width: 960px) {
	#header { width: 300px; }
	#sidebar { display: none; }
	.tiddler .modifierIcon img,
	.tiddler .modifierIcon svg,
	.tiddler .spaceSiteIcon .originButton img,
	.originButton svg {
		width: 32px;
		height: 32px;
		margin-left: 15px;
		margin-right: 0px;
	}
}
#backstageArea .button:active {
color: white;
background: #DB4;
border: 1px solid #841;
}
#backstageArea .button:hover {
color: #014;
background: #FE8;
border-color: #DB4;
}
#contentWrapper {
margin-left: 166px;
margin-right: 166px;
width: 845px;
}
#searchResults {
margin: auto;
background: white;
margin-bottom: 20px;
padding: 8px;
border-radius: 8px;
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
}

body.readOnly,
body {
background-image: url(/BackgroundImage);
background-color: [[ColorPalette::PrimaryMid]] !important; 
}
#contentWrapper {
width: 845px;
font-size: 0.8em;
}
#header {
margin-left: 12px;
color: white;
width: 845px;
margin-top: 30px;
margin-bottom: 30px;
letter-spacing: -1px;
font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif;
font-size: 50px;
font-weight: bold;
height: 58px;
text-shadow: rgba(0, 0, 0, 0.496094) 1px 3px 5px;
}

/* content */
#content {
width: 520px;
float: left;
}
#content .tiddler {
border-top: none;
/*box-shadow: 1px 10px 10px [[ColorPalette::PrimaryLight]];*/
}
.tiddler .subtitle {
font-style: normal;
}
.tiddler .titleBar {
margin-left: 68px;
}
a.externalLink {
background: transparent url(/externalLink.png) no-repeat scroll 100% 45%;
padding-right: 1em;
}

.tiddler div.toolbar {
right: -6px;
}
#content  .tiddler .heading {
left: -55px;
}
.tiddler.missing .spaceSiteIcon {
display: none;
}
.readOnly .tiddler .spaceSiteIcon,
.tiddler .spaceSiteIcon {
visibility: hidden;
}
.tiddler.selected .spaceSiteIcon {
visibility: visible;
}
.readOnly .tiddler.selected .spaceSiteIcon {
visibility: hidden;
}
#content .tiddler .spaceSiteIcon {
margin-right: 10px;
padding: 5px;
border-radius: 10px 0px 0px 10px;
o-border-radius: 10px 0px 0px 10px;
moz-border-radius: 10px 0px 0px 10px;
webkit-border-radius: 10px 0px 0px 10px;
}
#content  .tiddler .editorHeading {
left: 0px;
}
#content .tiddler .modifierIcon {
right: -18px
}
#content  .tiddler .heading,
#content .tiddler .content {
width: 490px;
}
.tiddler .viewer {
margin: 0px 0px 0px 10px;
}
#displayArea, #tiddlerDisplay {
margin:auto;
width: 500px;
}
.tagInfo {
border-left: none;
border-right: none;
margin-left: 0px;
}
/* side bar */
.anonymousUser #sidebar .tools .button.followMenuButton {
display: none;
}
#sidebar {
width: 250px;
float: right;
position: relative;
right: auto;
/*font-family: 'Lucida Sans', 'Lucida Grande', 'Lucida Sans Unicode', sans-serif;*/
}
.tabContents .timeline {
background: none;
}
#sidebar .avatar {
-webkit-box-shadow: #CCC 1px 4px 4px;
background-color: white;
left: -5px;
padding: 8px;
position: relative;
top: -24px;
width: 128px;
}
#sidebar .avatar .image {
display: block;
background-color: whiteSmoke;
}
.twSearch .searchButton {
display: none;
}
.twSearch .searchField {
width: 210px;
}
#sidebar .tools .button {
width: 91px;
height: 32px;
display: inline-block;
text-align: center;
vertical-align: middle;
margin-top: 6px;
line-height: 32px;
font-size: 12px;
color: white;
background-color: [[ColorPalette::PrimaryMid]] !important;
font-weight: bold;
border: none;
border-radius: 5px;
margin-right: 0px;
margin-left: 16px;
margin-bottom: 6px;
}
#sidebar .tools .pushLeft.button,
#sidebar .tools .pushLeft .button{
margin-left: 0px;
}
.readOnly #sidebar .tools .button{
margin-left: 0px;
margin-right: 16px;
}
#sidebar .tools .button a {
color: white;
}
#sidebar .tools .button:hover {
opacity:0.8;
}
#sidebarCaspian {
padding-left: 20px;
padding-right: 20px;
width: 210px;
background-color: white;
border-radius: 10px;
-webkit-border-radius: 10px;
position: relative;
}
.twSearch input {
float: left;
}
[[StyleSheet]]
/*}}}*/
!PageTemplate
<!--{{{-->
<div id='header' tiddler='SiteTitle##image' refresh='content'> </div>
<div id='content'>
	<div id='displayArea'>
		<div id='messageArea'></div>
		<div id='tiddlerDisplay'></div>
	</div>
</div>
<div id='sidebar'>
	<div id='sidebarCaspian' refresh='content' force='true' tiddler='MiniBlog##SideBar' class='viewer'></div>
</div>
<div class="clear"><div>
<!--}}}-->
!ViewTemplate
<!--{{{-->
<div class='toolbar'>
<span macro='toolbar [[ToolbarCommands::ViewToolbar]] icons:yes height:16 width:16 more:popup'></span><span macro='tiddler nyHer'></span>
</div>
<div class='heading'>
	<span class="titleBar">
		<div class='title' macro='view title text'></div>
		<span class="subtitle" macro="view modified date"></span>
		</span>
	</span>
	<div class='tagClear'></div>
</div>
<div class='content'>
	<div class='viewer' macro='view text wikified'></div>
</div>
<div class='tagInfo'>
	[[ViewTemplateExtras]]
	<div class='tidTags' macro='tags'></div>
	<div class='tagging' macro='tagging'></div>
</div>
<!--}}}-->
!EditTemplate
<!--{{{-->
<div class='toolbar'
	macro='toolbar [[ToolbarCommands::EditToolbar]] icons:yes'>
</div>
<div class='heading editorHeading'>
	<div class='editor title' macro='edit title'></div>
	<div class='tagClear'></div>
</div>
<div class='annotationsBox' macro='annotations'></div>
	<div class='tagClear'></div>
</div><div macro='tiddler QuickEditToolbar'></div>
<div class='editor' macro='edit text'></div>
<div class='editorFooter'>
	<div class='tagTitle'>tags</div>
	<div class='editor' macro='edit tags'></div>
	<div class='tagAnnotation'>
		<span macro='message views.editor.tagPrompt'></span>
		<span macro='tagChooser excludeLists'></span>
	</div>
</div>
[[EditTemplateExtras]]
<!--}}}-->
!PageTemplateReadOnly
<!--{{{-->
[[PageTemplateReadOnly]]
<!--}}}-->
!ViewTemplateReadOnly
<!--{{{-->
<!--{{{-->
<div class='toolbar'
	macro='toolbar [[ToolbarCommands::ViewToolbarReadOnly]] icons:yes height:16 width:16 more:popup'>
</div>
<div class='heading'>
	<span class="titleBar">
		<div class='title' macro='view title text'></div>
		<span class="subtitle" macro="view modified date"></span>
		</span>
	</span>
	<div class='tagClear'></div>
</div>
<div class='content'>
	<div class='viewer' macro='view text wikified'></div>
</div>
<div class='tagInfo'>
	[[ViewTemplateExtras]]
	<div class='tidTags' macro='tags'></div>
	<div class='tagging' macro='tagging'></div>
</div>
<!--}}}-->
<!--}}}-->
!EditTemplateReadOnly
<!--{{{-->
[[EditTemplateReadOnly]]
<!--}}}-->
!PageTemplateTS
<!--{{{-->
<div id='header' tiddler='SiteTitle##image' refresh='content'> </div>
<div id='content'>
	<div id='displayArea'>
		<div id='messageArea'></div>
		<div id='tiddlerDisplay'></div>
	</div>
</div>
<div id='sidebar'>
	<div id='sidebarCaspian' refresh='content' force='true' tiddler='CaspianTS##SideBar' class='viewer'></div>
</div>
<div class="clear"><div>
<!--}}}-->
!ViewTemplateTS
<!--{{{-->
<div class='toolbar'
	macro='toolbar [[ToolbarCommands::ViewToolbar]] icons:yes height:16 width:16 more:popup'>
</div>
<div class='heading'>
	<span class='spaceSiteIcon'
		macro='tiddlerOrigin label:no spaceLink:yes height:24 width:24 preserveAspectRatio:yes'>
	</span>
	<span class="titleBar">
		<div class='title' macro='view title text'></div>
		<span class="subtitle" macro='viewRevisions page:5'>
			<span macro='image clock.png'></span>
			<span macro="view modified date"></span>
		</span>
		<div macro="view title replyLink"></div>
	</span>
	<span class='followPlaceHolder' macro='followTiddlers'></span>
	<span class='modifierIcon'
		macro='view modifier SiteIcon label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
	</span>
	<div class='tagClear'></div>
</div>
<div class='content'>
	<div class='viewer' macro='view text wikified'></div>
</div>
<div class='tagInfo'>
	[[ViewTemplateExtras]]
	<div class='tidTags' macro='tags'></div>
	<div class='tagging' macro='tagging'></div>
</div>
<!--}}}-->
!EditTemplateTS
<!--{{{-->
<div class='toolbar'
	macro='toolbar [[ToolbarCommands::EditToolbar]] icons:yes'>
</div>
<div class='heading editorHeading'>
	<div class='editor title' macro='edit title'></div>
	<div class='tagClear'></div>
</div>
<div class='annotationsBox' macro='annotations'>
	<div class='editSpaceSiteIcon'
		macro='tiddlerOrigin height:16 width:16 label:no interactive:no'>
	</div>
	<div class="privacyEdit" macro='setPrivacy label:no interactive:no'></div>
	<div class='tagClear'></div>
</div>
<div class='editor' macro='edit text'></div>
<div class='editorFooter'>
	<div class='tagTitle'>tags</div>
	<div class='editor' macro='edit tags'></div>
	<div class='tagAnnotation'>
		<span macro='message views.editor.tagPrompt'></span>
		<span macro='tagChooser excludeLists'></span>
	</div>
</div>
[[EditTemplateExtras]]
<!--}}}-->
***/
!SideBar
<<tiddler MiniBlog##nestedImage with:{{store.getTiddlerText("SiteSubtitle")}}{{store.getValue("MiniBlog","logo")}}>>

{{twSearch{
<<search>>
}}}
{{tools{
{{pushLeft{<<newTiddler>>}}}<<permaview>>{{pushLeft{<<newJournal>>}}}<<closeAll>>
}}}
<<tiddler SideBarTabs>>

!MissingAndOrphans
<<tiddler TabMoreMissing>>
<<tiddler TabMoreOrphans>>
!nestedImage
{{noButton{@@position:relative;+++^^*[»|Klik her for at skifte tema, farve, logo og tilstand!]...{{tools{
<<select logo@MiniBlog rows:1 width:7 "Vælg logo"autoSave  allowOther allowMultiple =logo>>
{{pushLeft tiny{<<tiddler SideBarOptions##toggleReadonly>>
<<switchTheme width:auto>>
{{smallform{<<selectPalette>>}}}
{{pushLeft tiny{<<RandomColorPaletteButton>>}}} ⇐ [[Ny palet|ColorPalette]]  }}}
|borderless widetable pushLeft|k
| <html><a href='http://phelp.tiddlyspot.com/download' class='button pushleft'>download</a></html> | <<upload http://phelp.tiddlyspot.com/store.cgi index.html . .  phelp>> |
{{pushLeft tiny{<<saveChanges>>}}}
}}}
===@@<<setIcon "$2""-webkit-box-shadow: [[ColorPalette::PrimaryMid]] 1px 4px 4px;
background-color: white;left: -5px;padding: 8px;position: relative;top: -24px;width:128px;height:auto">>}}}<br>{{description{$1}}}
!end
<<tiddler AutoRefresh with: force paneID1>>
<<tiddler [[SideBarOptions##tema]]>> <<switchTheme label:Aktivér {{tiddler.title}} >>
/***
|Name|StyleSheetLottie|
|Source|http://lottie.tiddlyspace.com/|
|Version|1.0.0|
|Author|@jon|
|License||
|Requires|<<tag StyleSheetLottie>>|
|Description|Lottie systemTheme definition|

|StyleSheet|##StyleSheet|
|PageTemplate|##PageTemplate|
|ViewTemplate|##ViewTemplate|
|EditTemplate|##EditTemplate|
|PageTemplateReadOnly|##PageTemplate|
|ViewTemplateReadOnly|##ViewTemplateReadOnly|
|EditTemplateReadOnly|##EditTemplateReadOnly|
|ViewTemplateTS|##ViewTemplateTS|
|EditTemplateTS|##EditTemplateTS|
|ViewTemplateTSReadOnly|##ViewTemplateTSReadOnly|
|EditTemplateTSReadOnly|##EditTemplateTSReadOnly|
|PageTemplateTSReadOnly|##PageTemplateTSReadOnly|

!StyleSheet
[[StyleSheetTiddlySpace2]]
[[StyleSheetShortcuts]]
/*{{{*/
/* general */
.tiddlyLinkExisting, .siteTitle {
font-weight: normal;
}
body {
background-color: [[ColorPalette::PrimaryDark]];
font: normal normal normal 16px/1.6 'helvetica neue', helvetica, arial, sans-serif;
}
#contentWrapper {
margin: auto;
margin-top: 20px;
margin-bottom: 20px;
width: 600px;
background-color: white;
padding-top: 20px;
padding-left: 50px;
padding-right: 50px;
padding-bottom: 20px;
}
.tiddler,
.menu,
.siteTitle {
border-bottom: solid 1px #CCC;
}
.tiddler .listTitle {
display: none;
}
.tiddler .origin {
display: inline;
margin-right: 8px;
float: left;
}
.tiddler .titleBar {
margin-right: 0px;
}
.tiddler .origin,
.tiddler .titleBar,
.tiddler .viewer {
margin-left: 0px;
}
.tiddler .originButton {
display: inline;
}
.tiddler .followPlaceHolder {
bottom: 0px;
right: 16px;
top: auto;
}
/*header*/
.siteTitle {
font-family: Georgia, serif;
font-size: 50px;
}
.menu {
text-transform: uppercase;
font-size: 12px;
padding-bottom: 30px;
}
.siteTitle {
padding: 40px 0px;
text-align: center;
}
.menu .searchButton {
display: none;
}
.searchField {
float: right;
}
/*body*/
#tiddlerDisplay, #searchResults {
margin: 0px;
}
.tiddler {
border-top: none;
}
.tiddler .header {
line-height: 48px;
}
.tiddler,
#footer {
font-size: 12px;
}
.tiddler .tagInfo {
margin: 10px 0 0 0px;
padding: 10px 0px;
background: none;
border: none;
-webkit-box-shadow: none;
-moz-box-shadow: none;
box-shadow: none;
}

.tagInfo ul {
padding-left: 0;
}
.tiddler .tidTags {
float: right;
margin-right: 6px;
}
.tiddler .tidTags a {
border: solid 1px #CCC;
border-radius: 8px;
background-color: white;
}
.tiddler .tagInfo a:hover {
border-color: red;
}
[[StyleSheet]]
/*}}}*/
!PageTemplate
<!--{{{-->
<div id='header'>
	<div class='menu'>
		<span refresh='content' tiddler='MiniSite##MainMenu'></span>
		<div macro='search'></div>
	</div>
	<span class='siteTitle' refresh='content' tiddler='SiteTitle'></span>
</div>
<div id='body'>
	<div id='displayArea'>
		<div id='messageArea'></div>
		<div id='tiddlerDisplay'></div>	
	</div>
</div>
<div id='footer' refresh='content' tiddler='Footer'></div>
<!--}}}-->
!ViewTemplate
<!--{{{-->
<div class='toolbar'
	macro='toolbar [[ToolbarCommands::ViewToolbar]] icons:yes height:16 width:16 more:popup'></div>
<div class='heading'>
	<div class="titleBar">
		<div class='title' macro='view title text'></div>
	</div>
	<div class='tagInfo'>
		<div class='tidTags' macro='tags'></div>
		<div class='tagging' macro='tagging'></div>
	</div>
	<div class='tagClear'></div>
</div>
<div class='content'>
	<div class='viewer' macro='view text wikified'></div>
</div>
<span class="subtitle" macro="view modified date"></span>
</span>
<!--}}}-->
!EditTemplate
<!--{{{-->
<div class='toolbar'
	macro='toolbar [[ToolbarCommands::EditToolbar]] icons:yes'>
</div>
<div class='heading editorHeading'>
	<div class='editor title' macro='edit title'></div>
	<div class='tagClear'></div>
</div>
<div class='annotationsBox' macro='annotations'></div>
	<div class='tagClear'></div>
</div><div macro='tiddler QuickEditToolbar'></div>
<div class='editor' macro='edit text'></div>
<div class='editorFooter'>
	<div class='tagTitle'>tags</div>
	<div class='editor' macro='edit tags'></div>
	<div class='tagAnnotation'>
		<span macro='message views.editor.tagPrompt'></span>
		<span macro='tagChooser excludeLists'></span>
	</div>
</div>
<!--}}}-->
!PageTemplateReadOnly
<!--{{{-->
[[PageTemplateReadOnly]]
<!--}}}-->
!ViewTemplateReadOnly
<!--{{{-->
<div class='toolbar'
	macro='toolbar [[ToolbarCommands::ViewToolbarReadOnly]] icons:yes height:16 width:16 more:popup'></div>
<div class='heading'>
	<div class="titleBar">
		<div class='title' macro='view title text'></div>
	</div>
	<div class='tagInfo'>
		<div class='tidTags' macro='tags'></div>
		<div class='tagging' macro='tagging'></div>
	</div>
	<div class='tagClear'></div>
</div>
<div class='content'>
	<div class='viewer' macro='view text wikified'></div>
</div>
<span class="subtitle" macro="view modified date"></span>
</span>
<!--}}}-->
!EditTemplateReadOnly
<!--{{{-->
[[EditTemplateReadOnly]]
<!--}}}-->
!ViewTemplateTS
<!--{{{-->
<div class='toolbar'
	macro='toolbar [[ToolbarCommands::ViewToolbar]] icons:yes height:16 width:16 more:popup'></div>
<div class='heading'>
	<div class="titleBar">
		<div class='title' macro='view title text'></div>
	</div>
	<div class='tagInfo'>
		<ul class='origin'>
			<li macro='tiddlerOrigin label:no spaceLink:yes height:16 width:16 preserveAspectRatio:yes'></li>
		</ul>
		<div class='tidTags' macro='tags'></div>
		<div class='tagging' macro='tagging'></div>
	</div>
	<div class='modifierIcon'
		macro='view modifier SiteIcon label:no spaceLink:yes height:48 width:48 preserveAspectRatio:yes'>
	</div>
	<div class='tagClear'></div>
</div>
<div class='content'>
	<div class='viewer' macro='view text wikified'></div>
</div>
<span class="subtitle" macro='viewRevisions page:5'>
	<span macro='image clock.png'></span>
	<span macro="view modified date"></span>
</span>
<div macro="view title replyLink"></div>
<div class='followPlaceHolder' macro='followTiddlers'></div>
<!--}}}-->
!EditTemplateTS
<!--{{{-->
<div class='toolbar'
	macro='toolbar [[ToolbarCommands::EditToolbar]] icons:yes'>
</div>
<div class='heading editorHeading'>
	<div class='editor title' macro='edit title'></div>
	<div class='tagClear'></div>
</div>
<div class='annotationsBox' macro='annotations'>
	<div class='editSpaceSiteIcon'
		macro='tiddlerOrigin height:16 width:16 label:no interactive:no'>
	</div>
	<div class="privacyEdit" macro='setPrivacy label:no interactive:no'></div>
	<div class='tagClear'></div>
</div>
<div class='editor' macro='edit text'></div>
<div class='editorFooter'>
	<div class='tagTitle'>tags</div>
	<div class='editor' macro='edit tags'></div>
	<div class='tagAnnotation'>
		<span macro='message views.editor.tagPrompt'></span>
		<span macro='tagChooser excludeLists'></span>
	</div>
</div>
<!--}}}-->
***/
!MainMenu
{{floatleft{<<tiddler MainMenu>>}}} {{floatright{<<tiddler [[SideBarOptions##tema]]>>}}}
!end
!usage
{{{[img[Morten.png]]}}}
[img[Morten.png]]
!notes
//none//
!type
image/png
!file

!url
http://www.linux-abc.dk/phpBB3/download/file.php?avatar=4451_1300174891.png
!data

Programmer, der vises i startmenukategorien ''Multimedie'' (Multimedia)
{{nobullets{<<tagglyTagging Multimedie>>}}}
!usage
{{{[img[http://mama.tiddlyspace.com/bags/mama_public/tiddlers/SiteIcon]]}}}
[img[http://mama.tiddlyspace.com/bags/mama_public/tiddlers/SiteIcon]]
!notes
//none//
!type

!file

!url
http://mama.tiddlyspace.com/bags/mama_public/tiddlers/SiteIcon
!data

!usage
{{{[img[Måns2.png]]}}}
[img[Måns2.png]]
!notes
//none//
!type

!file

!url
http://www.linux-abc.dk/phpBB3/download/file.php?avatar=190_1295546407.png
!data

|sortable widetable|k
|<<tiddler MeMo##toggleReadonly>><<tiddler RefreshTiddler with: genopfrisk>>|c
| Spørgsmål | Svar |h
|<<editSection [[##Spørgsmål]] [[redigér Spørgsmål]]>><<tiddler [[##Spørgsmål]]>>|<<tiddler [[##Link]] with:{{store.getValue(tiddler,'link')}}>><<editSection [[##Svar]] [[redigér Svar]]>><<tiddler [[##Svar]]>>|
|>|<<editSection [[##Notat]] [[redigér]]>>Notat:<<tiddler [[##Notat]]>>|
/%
!Spørgsmål

!Svar

!Notat

!Link

[[Link »|http://google.dk/search?q=NAS&sitesearch=linux-abc.dk/phpBB3/]]
!end %/
/***
|Name|NestedSlidersPlugin|
|Source|http://www.TiddlyTools.com/#NestedSlidersPlugin|
|Documentation|http://www.TiddlyTools.com/#NestedSlidersPluginInfo|
|Version|2.4.9|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|show content in nest-able sliding/floating panels, without creating separate tiddlers for each panel's content|
!!!!!Documentation
>see [[NestedSlidersPluginInfo]]
!!!!!Configuration
<<<
<<option chkFloatingSlidersAnimate>> allow floating sliders to animate when opening/closing
>Note: This setting can cause 'clipping' problems in some versions of InternetExplorer.
>In addition, for floating slider animation to occur you must also allow animation in general (see [[AdvancedOptions]]).
<<<
!!!!!Revisions
<<<
2008.11.15 - 2.4.9 in adjustNestedSlider(), don't make adjustments if panel is marked as 'undocked' (CSS class).  In onClickNestedSlider(), SHIFT-CLICK docks panel (see [[MoveablePanelPlugin]])
|please see [[NestedSlidersPluginInfo]] for additional revision details|
2005.11.03 - 1.0.0 initial public release.  Thanks to RodneyGomes, GeoffSlocock, and PaulPetterson for suggestions and experiments.
<<<
!!!!!Code
***/
//{{{
version.extensions.NestedSlidersPlugin= {major: 2, minor: 4, revision: 9, date: new Date(2008,11,15)};

// options for deferred rendering of sliders that are not initially displayed
if (config.options.chkFloatingSlidersAnimate===undefined)
	config.options.chkFloatingSlidersAnimate=false; // avoid clipping problems in IE

// default styles for 'floating' class
setStylesheet(".floatingPanel { position:absolute; z-index:10; padding:0.5em; margin:0em; \
	background-color:#eee; color:#000; border:1px solid #000; text-align:left; }","floatingPanelStylesheet");

// if removeCookie() function is not defined by TW core, define it here.
if (window.removeCookie===undefined) {
	window.removeCookie=function(name) {
		document.cookie = name+'=; expires=Thu, 01-Jan-1970 00:00:01 UTC; path=/;'; 
	}
}

config.formatters.push( {
	name: "nestedSliders",
	match: "\\n?\\+{3}",
	terminator: "\\s*\\={3}\\n?",
	lookahead: "\\n?\\+{3}(\\+)?(\\([^\\)]*\\))?(\\!*)?(\\^(?:[^\\^\\*\\@\\[\\>]*\\^)?)?(\\*)?(\\@)?(?:\\{\\{([\\w]+[\\s\\w]*)\\{)?(\\[[^\\]]*\\])?(\\[[^\\]]*\\])?(?:\\}{3})?(\\#[^:]*\\:)?(\\>)?(\\.\\.\\.)?\\s*",
	handler: function(w)
		{
			lookaheadRegExp = new RegExp(this.lookahead,"mg");
			lookaheadRegExp.lastIndex = w.matchStart;
			var lookaheadMatch = lookaheadRegExp.exec(w.source)
			if(lookaheadMatch && lookaheadMatch.index == w.matchStart)
			{
				var defopen=lookaheadMatch[1];
				var cookiename=lookaheadMatch[2];
				var header=lookaheadMatch[3];
				var panelwidth=lookaheadMatch[4];
				var transient=lookaheadMatch[5];
				var hover=lookaheadMatch[6];
				var buttonClass=lookaheadMatch[7];
				var label=lookaheadMatch[8];
				var openlabel=lookaheadMatch[9];
				var panelID=lookaheadMatch[10];
				var blockquote=lookaheadMatch[11];
				var deferred=lookaheadMatch[12];

				// location for rendering button and panel
				var place=w.output;

				// default to closed, no cookie, no accesskey, no alternate text/tip
				var show="none"; var cookie=""; var key="";
				var closedtext=">"; var closedtip="";
				var openedtext="<"; var openedtip="";

				// extra "+", default to open
				if (defopen) show="block";

				// cookie, use saved open/closed state
				if (cookiename) {
					cookie=cookiename.trim().slice(1,-1);
					cookie="chkSlider"+cookie;
					if (config.options[cookie]==undefined)
						{ config.options[cookie] = (show=="block") }
					show=config.options[cookie]?"block":"none";
				}

				// parse label/tooltip/accesskey: [label=X|tooltip]
				if (label) {
					var parts=label.trim().slice(1,-1).split("|");
					closedtext=parts.shift();
					if (closedtext.substr(closedtext.length-2,1)=="=")	
						{ key=closedtext.substr(closedtext.length-1,1); closedtext=closedtext.slice(0,-2); }
					openedtext=closedtext;
					if (parts.length) closedtip=openedtip=parts.join("|");
					else { closedtip="show "+closedtext; openedtip="hide "+closedtext; }
				}

				// parse alternate label/tooltip: [label|tooltip]
				if (openlabel) {
					var parts=openlabel.trim().slice(1,-1).split("|");
					openedtext=parts.shift();
					if (parts.length) openedtip=parts.join("|");
					else openedtip="hide "+openedtext;
				}

				var title=show=='block'?openedtext:closedtext;
				var tooltip=show=='block'?openedtip:closedtip;

				// create the button
				if (header) { // use "Hn" header format instead of button/link
					var lvl=(header.length>5)?5:header.length;
					var btn = createTiddlyElement(createTiddlyElement(place,"h"+lvl,null,null,null),"a",null,buttonClass,title);
					btn.onclick=onClickNestedSlider;
					btn.setAttribute("href","javascript:;");
					btn.setAttribute("title",tooltip);
				}
				else
					var btn = createTiddlyButton(place,title,tooltip,onClickNestedSlider,buttonClass);
				btn.innerHTML=title; // enables use of HTML entities in label

				// set extra button attributes
				btn.setAttribute("closedtext",closedtext);
				btn.setAttribute("closedtip",closedtip);
				btn.setAttribute("openedtext",openedtext);
				btn.setAttribute("openedtip",openedtip);
				btn.sliderCookie = cookie; // save the cookiename (if any) in the button object
				btn.defOpen=defopen!=null; // save default open/closed state (boolean)
				btn.keyparam=key; // save the access key letter ("" if none)
				if (key.length) {
					btn.setAttribute("accessKey",key); // init access key
					btn.onfocus=function(){this.setAttribute("accessKey",this.keyparam);}; // **reclaim** access key on focus
				}
				btn.setAttribute("hover",hover?"true":"false");
				btn.onmouseover=function(ev) {
					// optional 'open on hover' handling
					if (this.getAttribute("hover")=="true" && this.sliderPanel.style.display=='none') {
						document.onclick.call(document,ev); // close transients
						onClickNestedSlider(ev); // open this slider
					}
					// mouseover on button aligns floater position with button
					if (window.adjustSliderPos) window.adjustSliderPos(this.parentNode,this,this.sliderPanel);
				}

				// create slider panel
				var panelClass=panelwidth?"floatingPanel":"sliderPanel";
				if (panelID) panelID=panelID.slice(1,-1); // trim off delimiters
				var panel=createTiddlyElement(place,"div",panelID,panelClass,null);
				panel.button = btn; // so the slider panel know which button it belongs to
				btn.sliderPanel=panel; // so the button knows which slider panel it belongs to
				panel.defaultPanelWidth=(panelwidth && panelwidth.length>2)?panelwidth.slice(1,-1):"";
				panel.setAttribute("transient",transient=="*"?"true":"false");
				panel.style.display = show;
				panel.style.width=panel.defaultPanelWidth;
				panel.onmouseover=function(event) // mouseover on panel aligns floater position with button
					{ if (window.adjustSliderPos) window.adjustSliderPos(this.parentNode,this.button,this); }

				// render slider (or defer until shown) 
				w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
				if ((show=="block")||!deferred) {
					// render now if panel is supposed to be shown or NOT deferred rendering
					w.subWikify(blockquote?createTiddlyElement(panel,"blockquote"):panel,this.terminator);
					// align floater position with button
					if (window.adjustSliderPos) window.adjustSliderPos(place,btn,panel);
				}
				else {
					var src = w.source.substr(w.nextMatch);
					var endpos=findMatchingDelimiter(src,"+++","===");
					panel.setAttribute("raw",src.substr(0,endpos));
					panel.setAttribute("blockquote",blockquote?"true":"false");
					panel.setAttribute("rendered","false");
					w.nextMatch += endpos+3;
					if (w.source.substr(w.nextMatch,1)=="\n") w.nextMatch++;
				}
			}
		}
	}
)

function findMatchingDelimiter(src,starttext,endtext) {
	var startpos = 0;
	var endpos = src.indexOf(endtext);
	// check for nested delimiters
	while (src.substring(startpos,endpos-1).indexOf(starttext)!=-1) {
		// count number of nested 'starts'
		var startcount=0;
		var temp = src.substring(startpos,endpos-1);
		var pos=temp.indexOf(starttext);
		while (pos!=-1)  { startcount++; pos=temp.indexOf(starttext,pos+starttext.length); }
		// set up to check for additional 'starts' after adjusting endpos
		startpos=endpos+endtext.length;
		// find endpos for corresponding number of matching 'ends'
		while (startcount && endpos!=-1) {
			endpos = src.indexOf(endtext,endpos+endtext.length);
			startcount--;
		}
	}
	return (endpos==-1)?src.length:endpos;
}
//}}}
//{{{
window.onClickNestedSlider=function(e)
{
	if (!e) var e = window.event;
	var theTarget = resolveTarget(e);
	while (theTarget && theTarget.sliderPanel==undefined) theTarget=theTarget.parentNode;
	if (!theTarget) return false;
	var theSlider = theTarget.sliderPanel;
	var isOpen = theSlider.style.display!="none";

	// if SHIFT-CLICK, dock panel first (see [[MoveablePanelPlugin]])
	if (e.shiftKey && config.macros.moveablePanel) config.macros.moveablePanel.dock(theSlider,e);

	// toggle label
	theTarget.innerHTML=isOpen?theTarget.getAttribute("closedText"):theTarget.getAttribute("openedText");
	// toggle tooltip
	theTarget.setAttribute("title",isOpen?theTarget.getAttribute("closedTip"):theTarget.getAttribute("openedTip"));

	// deferred rendering (if needed)
	if (theSlider.getAttribute("rendered")=="false") {
		var place=theSlider;
		if (theSlider.getAttribute("blockquote")=="true")
			place=createTiddlyElement(place,"blockquote");
		wikify(theSlider.getAttribute("raw"),place);
		theSlider.setAttribute("rendered","true");
	}

	// show/hide the slider
	if(config.options.chkAnimate && (!hasClass(theSlider,'floatingPanel') || config.options.chkFloatingSlidersAnimate))
		anim.startAnimating(new Slider(theSlider,!isOpen,e.shiftKey || e.altKey,"none"));
	else
		theSlider.style.display = isOpen ? "none" : "block";

	// reset to default width (might have been changed via plugin code)
	theSlider.style.width=theSlider.defaultPanelWidth;

	// align floater panel position with target button
	if (!isOpen && window.adjustSliderPos) window.adjustSliderPos(theSlider.parentNode,theTarget,theSlider);

	// if showing panel, set focus to first 'focus-able' element in panel
	if (theSlider.style.display!="none") {
		var ctrls=theSlider.getElementsByTagName("*");
		for (var c=0; c<ctrls.length; c++) {
			var t=ctrls[c].tagName.toLowerCase();
			if ((t=="input" && ctrls[c].type!="hidden") || t=="textarea" || t=="select")
				{ try{ ctrls[c].focus(); } catch(err){;} break; }
		}
	}
	var cookie=theTarget.sliderCookie;
	if (cookie && cookie.length) {
		config.options[cookie]=!isOpen;
		if (config.options[cookie]!=theTarget.defOpen) window.saveOptionCookie(cookie);
		else window.removeCookie(cookie); // remove cookie if slider is in default display state
	}

	// prevent SHIFT-CLICK from being processed by browser (opens blank window... yuck!)
	// prevent clicks *within* a slider button from being processed by browser
	// but allow plain click to bubble up to page background (to close transients, if any)
	if (e.shiftKey || theTarget!=resolveTarget(e))
		{ e.cancelBubble=true; if (e.stopPropagation) e.stopPropagation(); }
	Popup.remove(); // close open popup (if any)
	return false;
}
//}}}
//{{{
// click in document background closes transient panels 
document.nestedSliders_savedOnClick=document.onclick;
document.onclick=function(ev) { if (!ev) var ev=window.event; var target=resolveTarget(ev);

	if (document.nestedSliders_savedOnClick)
		var retval=document.nestedSliders_savedOnClick.apply(this,arguments);
	// if click was inside a popup... leave transient panels alone
	var p=target; while (p) if (hasClass(p,"popup")) break; else p=p.parentNode;
	if (p) return retval;
	// if click was inside transient panel (or something contained by a transient panel), leave it alone
	var p=target; while (p) {
		if ((hasClass(p,"floatingPanel")||hasClass(p,"sliderPanel"))&&p.getAttribute("transient")=="true") break;
		p=p.parentNode;
	}
	if (p) return retval;
	// otherwise, find and close all transient panels...
	var all=document.all?document.all:document.getElementsByTagName("DIV");
	for (var i=0; i<all.length; i++) {
		 // if it is not a transient panel, or the click was on the button that opened this panel, don't close it.
		if (all[i].getAttribute("transient")!="true" || all[i].button==target) continue;
		// otherwise, if the panel is currently visible, close it by clicking it's button
		if (all[i].style.display!="none") window.onClickNestedSlider({target:all[i].button})
		if (!hasClass(all[i],"floatingPanel")&&!hasClass(all[i],"sliderPanel")) all[i].style.display="none";
	}
	return retval;
};
//}}}
//{{{
// adjust floating panel position based on button position
if (window.adjustSliderPos==undefined) window.adjustSliderPos=function(place,btn,panel) {
	if (hasClass(panel,"floatingPanel") && !hasClass(panel,"undocked")) {
		// see [[MoveablePanelPlugin]] for use of 'undocked'
		var rightEdge=document.body.offsetWidth-1;
		var panelWidth=panel.offsetWidth;
		var left=0;
		var top=btn.offsetHeight; 
		if (place.style.position=="relative" && findPosX(btn)+panelWidth>rightEdge) {
			left-=findPosX(btn)+panelWidth-rightEdge; // shift panel relative to button
			if (findPosX(btn)+left<0) left=-findPosX(btn); // stay within left edge
		}
		if (place.style.position!="relative") {
			var left=findPosX(btn);
			var top=findPosY(btn)+btn.offsetHeight;
			var p=place; while (p && !hasClass(p,'floatingPanel')) p=p.parentNode;
			if (p) { left-=findPosX(p); top-=findPosY(p); }
			if (left+panelWidth>rightEdge) left=rightEdge-panelWidth;
			if (left<0) left=0;
		}
		panel.style.left=left+"px"; panel.style.top=top+"px";
	}
}
//}}}
//{{{
// TW2.1 and earlier:
// hijack Slider stop handler so overflow is visible after animation has completed
Slider.prototype.coreStop = Slider.prototype.stop;
Slider.prototype.stop = function()
	{ this.coreStop.apply(this,arguments); this.element.style.overflow = "visible"; }

// TW2.2+
// hijack Morpher stop handler so sliderPanel/floatingPanel overflow is visible after animation has completed
if (version.major+.1*version.minor+.01*version.revision>=2.2) {
	Morpher.prototype.coreStop = Morpher.prototype.stop;
	Morpher.prototype.stop = function() {
		this.coreStop.apply(this,arguments);
		var e=this.element;
		if (hasClass(e,"sliderPanel")||hasClass(e,"floatingPanel")) {
			// adjust panel overflow and position after animation
			e.style.overflow = "visible";
			if (window.adjustSliderPos) window.adjustSliderPos(e.parentNode,e.button,e);
		}
	};
}
//}}}
These are the default Network tools that come bundled with Puppy Linux 525.
<<image http://dl.dropbox.com/u/15835063/PuppyProjekt/OpenBoxMenu.jpg>>

Jeg fulgte [[opskriften|Tutorial -How to edit Openbox window manager menus]] - det tager et øjeblik :-)

Mvh Måns
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
Current theme:<<switchTheme width:auto>> <<switchTheme label:Aktivér {{tiddler.title}} >>
/***
|Name|CopperTheme|
|Source|http://copper.tiddlyspace.com/|
|Version|1.0.0|
|Author|Jon|
|License||
|Description|mimics jon's coppertheme in a "normal TW"|

|StyleSheet|##StyleSheet|
|PageTemplate|##PageTemplate|
|ViewTemplate|##ViewTemplate|
|EditTemplate|##EditTemplate|
|PageTemplateReadOnly|##PageTemplate|
|ViewTemplateReadOnly|##ViewTemplateReadOnly|
|EditTemplateReadOnly|##EditTemplateReadOnly|

!StyleSheet
[[StickyStyle]]
[[StyleSheetShortcuts]]
/*{{{*/
.noButton .button { border: 0px solid transparent;}
.noButton .button:hover { 
color: white;
background-color: [[ColorPalette::PrimaryMid]] !important;
} 
.tabset {
padding-bottom: 12px;
padding-top: 24px;
padding-left: 0px;
padding-right: 0px;
}
.tab {
margin: 0px;
padding: 12px;
}
.viewer pre {
	height: 150px;
}
.toolbar,
.tiddlerFooter {
visibility: hidden;
}
.selected .toolbar,
.selected .tiddlerFooter,
.tiddlerFooter:hover {
visibility: visible;
}

.viewer img {
	height: auto;
	max-width: 240px;
}
.expandedSideBar .searchButton {
	display: none;
}
.expandedSideBar {
	position: fixed;
	bottom: 0px;
	left: 5em !important;
	height: 80%;
	margin-left: 10%;
	margin-right: 10%;
	width: 80%;
	opacity: 0.9;
	margin-top: 0px;
	margin-bottom: 10%;
	padding: 10px;
	overflow-y: auto;
}
#sidebarToggler {
	position: fixed;
	left: 0px;
	top: 50%;
	opacity: 0.8;
	background-color: #ccc;
	-webkit-transform: rotate(-90deg);
	-o-transform: rotate(-90deg);
	-moz-transform: rotate(-90deg);
	transform: rotate(-90deg);
	margin-right: 0px;
	font-size: 2em;
}
.button {
	font-size: 1.5em;
	margin-right: 8px;
}

body {
	font-size: 0.8em;
	color: rgba(0, 0, 0, .9);
	background: white;
	font-family: "Century Schoolbook", Century, Georgia, serif;
	text-shadow: 0 0 1px #D1EB78;
}



#footer,
#menuBar {
	border: none;
	background-color: #ffffff;
	padding: 0em;
	overflow: auto;
	line-height: 1.6em;
}

#footer ul,
#mainMenu ul { 
	list-style: none;
	padding-left: 0; 
}

#footer ul li,
#mainMenu ul li {
	display: inline;
}

#footer ul li,
#mainMenu a {
	padding-right: 1em;
}

#footer .content,
#mainMenu {
	left: 0;
	right: 0;
	position: relative;
	background-color: white;
	margin: 0;
	padding: 0.5em 0 0.5em 0;
	min-height: 1em;
	overflow: hidden;
	border-top: 1px solid black;
	border-bottom: 1px solid black;
	width: 100%;
	padding-top: 0.5em;	
	padding-left: 0em;
	padding-right: 11em;
	margin: 1em;
	border-bottom: 2px solid #b1b1b1;
	font-size: 1em;
}


#footer .content,
#mainMenu {
	margin: 0 auto;
	padding: 0;
	text-align: center;
	width: 100%;
	float: none;
}
#footer .content {
border: none;
background-color: [[ColorPalette::PrimaryPale]];
padding: 15px 25px;
}
#footer .content a,
#mainMenu a {
	color: #b1b1b1;
}

#footer .content a:hover,
#mainMenu a:hover {
	background: none;
	color: #d896bb;
}

#heading {
	background: [[ColorPalette::PrimaryLight]];
	padding: 30px 50px;
	text-align: center;
	position: relative;
}
#heading .siteIcon {
	position: absolute;
	top: 12px;
	left: 12px;
}
#heading h1 {
	font-size: 65px;
	font-family: 'Josefin Sans', 'Helvetica Neue', Helvetica, Arial, serif;
	line-height: 1em;
	font-weight: 100;
	color: white;
	text-shadow: -3px -3px 0px [[ColorPalette::TertiaryMid]];
	text-transform: uppercase;
	border-bottom: solid 2px [[ColorPalette::TertiaryMid]];
	width: 500px;
	text-decoration: none;
	margin: auto;
}

#displayArea {
	margin-left: auto;
	margin-right: auto;
	margin-top: 40px;
	margin-bottom: 0px;
	width: 960px;
}
#tiddlerEnd {
	clear: both;
}
.tiddler {
	height: 400px;
	width: 280px;
	float: left;
	position: relative;
	margin-right: 8px;
	border-top: 5px solid rgba(0, 0, 0, .2);
	margin-bottom: 8px;
	background-color: [[ColorPalette::TertiaryLight]];
}
.popup {
	background-color: [[ColorPalette::PrimaryLight]];
}

.tiddler .heading {
	margin-top: 10px;
}

.tiddler .viewer {
	height: 280px;
	overflow-y: auto;
}

.tiddler .spaceSiteIcon {
	float: left;
}
.tiddler .toolbar {
	position: absolute;
	top: 0px;
	right: 0px;
}
.tiddler .toolbar .moreCommand.highlight,
.tiddler .toolbar a:active,
.tiddler .toolbar a:hover {
	background: none;
	border: none;
	background: none;
	color: [[ColorPalette::Background]]
}
.tiddler .toolbar .glyph:hover {
	fill: [[ColorPalette::Background]]
}
.tiddler .toolbar .glyph:active {
	fill: green;
}
.toolbar a svg {
	width: 16px;
	height: 16px;
}
.toolbar a {
	border: none;
}
.tiddler .tagArea {
	margin-top: 10px;
	height: 55px;
	overflow-y: hidden;
	overflow-x: auto;
	width: 280px;
}
.tiddler .tagArea ul {
width: 1000%;
}
.tiddler .tagArea ul,
.tiddler .tagArea li {
	margin-left: 0px;
	padding-left: 0px;
	list-style: none;
}

.tiddler .tagArea li {
	display: inline-block;
}

.tiddler .tagArea li.listTitle {
	display: none;
}
.tiddler .modifiedDate {
	text-align: right;
	font-style: italic;
}

.editor textarea {
	height: 200px;
}
/*}}}*/
!PageTemplate
<!--{{{-->
<div id='menuBar'><div id='mainMenu' refresh='content' tiddler='MainMenu'></div></div>
<div id='heading'>
<div class='siteIcon' macro='tiddler Outline##nestedImage with:{{store.getValue("MiniBlog","logo")}}' ></div>
<h1 refresh='content' force='true' tiddler='SiteTitle'></h1>
</div>
<div id='displayArea'>
	<div id='messageArea'></div>
	<div id='tiddlerDisplay'></div>
	<div id='tiddlerEnd'></div>
</div>
<div id='sidebarToggler' macro='TiddlerPopUp "Outline##sidebar" lister  className:expandedSideBar autoposition:no'></div>
<div id='footer'><div class='content' refresh='content' tiddler='Outline##Footer'></div></div>
<!--}}}-->
!ViewTemplate
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]] icons:yes more:popup'></div>
<div class='heading'>
	<div class='title' macro='view title text'></div>
</div>
<div macro='tags' class='tagArea'></div>
<div class='tagClear'></div>
<div class='content'>
	<div class='viewer' macro='view text wikified'></div>
<div class='tiddlerFooter'>
<div class='modifiedDate'>last edited on <span macro='view modified date'></span></div>
</div>
</div>
<!--}}}-->
!EditTemplate
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::EditToolbar]] icons:yes'></div>
<div class='heading'>
	<div class='editor title' macro='edit title'></div>
	<div class='tagClear'></div>
</div>
<div class='annotationsBox' macro='annotations'></div><div macro='tiddler QuickEditToolbar'></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>
<!--}}}-->
!PageTemplateReadOnly
<!--{{{-->
[[PageTemplateReadOnly]]
<!--}}}-->
!ViewTemplateReadOnly
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbarReadOnly]] icons:yes more:popup'></div>
<div class='heading'>
	<div class='title' macro='view title text'></div>
</div>
<div macro='tags' class='tagArea'></div>
<div class='tagClear'></div>
<div class='content'>
	<div class='viewer' macro='view text wikified'></div>
<div class='tiddlerFooter'>
<div class='modifiedDate'>last edited on <span macro='view modified date'></span></div>
</div>
</div>
<!--}}}-->
!EditTemplateReadOnly
<!--{{{-->
[[EditTemplateReadOnly]]
<!--}}}-->
***/
!Footer
@<<tiddler SiteSubtitle>> @
!nestedImage
{{noButton{@@position:relative;+++^^*[»|Klik her for at skifte tema, farve, logo og tilstand!]#panelID1:...{{span{
<<select logo@MiniBlog rows:1 width:7 "Vælg logo"autoSave  allowOther allowMultiple =logo>>
<<tiddler SideBarOptions##toggleReadonly>>
<<switchTheme width:auto>>
<<selectPalette>>
<<RandomColorPaletteButton>> ⇐ [[Ny palet|ColorPalette]]  }}}
|borderless widetable|k
| <html><a href='http://puppy-abc.tiddlyspot.com/download' class='button'>download</a></html> | <<upload http://puppy-abc.tiddlyspot.com/store.cgi index.html . .  puppy-abc>> |
===@@<<setIcon "$1""width:auto;height:96px">>}}}
!sidebar
<<tabs txtMainTab "Tidslinie" "Tidslinie" TabTimeline "Emner""Alle tiddlere tagget med emne" [[Outline##TabEmner]] "Alle" "Alle tiddlere" TabAll "Tags" "Alle tags" TabTags "Manglende" "Manglende tiddlere" TabMoreMissing "Uden tilknytning" "Tiddlere" TabMoreOrphans "Skyggede" "Skyggede tiddlere" TabMoreShadowed>>
!TabEmner
<<list filter "[tag[emne]][sort[-modified]]">>
!end
<html><p align="center"><textarea id="xclToTw" rows="10" cols="60"></textarea><br><button onclick="(function(){var ta=document.getElementById('xclToTw'); displayMessage('original: ' + ta.value); ta.value=ta.value.replace(/^|$|\t/gm, '|');})();" > Oversæt</button></p></html>
Hvis man går i /usr/share/desktop-directories/ og åbner hver enkelt fil som tekst, skal man blot tilføje:

Kode: {{{
    Name[da_DK]=NytDanskNavnPåEntry
}}}

Denne slags oversættelse indvirker også på ~OpenBox'es skrivbordsmenu - fremtidige installationer, vil automatisk blive vist i BEGGE menuer.
<<image http://www.linux-abc.dk/phpBB3/download/file.php?id=234&t=1&sid=535d80346b95b55e4d63731c23724541 link:"http://www.linux-abc.dk/phpBB3/download/file.php?id=234&sid=535d80346b95b55e4d63731c23724541&mode=view">>
Se også 
#[[TranslatePuppy|http://puppylinux.org/wikka/TranslatePuppy]]
#[[Puppy-desktop NLS system|http://www.murga-linux.com/puppy/viewtopic.php?t=63533]]
#[[Translate LupQ - Quickset edition of Lucid Puppy|http://murga-linux.com/puppy/viewtopic.php?t=59142]]

NB: Rettelse til NLS systemet:
Den oversatte da.mo fil skal IKKE placeres i /usr/local/share/locale/da/~LC_MESSAGES/puppydesktop.mo med derimod i /usr/share/locale/da/~LC_MESSAGES/puppydesktop.mo
(Dvs. den skal omdøbes fra da.mo til puppydesktop.mo)

~NB2: Man skal IKKE oversætte emnerne i  /usr/share/desktop-directories/ - FØR man HAR installeret:
#[[puppy-desktop-20110101.pet|http://shino.pos.to/linux/puppy/]] og
#petget-20110211.pet (samme sted)
for så bliver de bare overskrevet igen :(
~PoEdit.pet kan hentes [[her|http://shino.pos.to/party/bridge.cgi?puppy/lupq/opt/]]
| Date modified | Date created |h
|<<timeline "modified" "20">>|<<timeline "created" "20">>|
| [[Show all Tiddlers|Lists]] |>|f
<!--{{{-->
<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 style="position:fixed;z-index:1001;bottom:.3em;right:.3em;cursor:pointer;font-size:9pt;">
	<a href="javascript:window.scrollTo(0,0)" title="scroll to top of page">&#x25b2;</a>
</div>
<!--}}}-->
/***
|''Name:''|PasswordOptionPlugin|
|''Description:''|Extends TiddlyWiki options with non encrypted password option.|
|''Version:''|1.0.2|
|''Date:''|Apr 19, 2007|
|''Source:''|http://tiddlywiki.bidix.info/#PasswordOptionPlugin|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0 (Beta 5)|
***/
//{{{
version.extensions.PasswordOptionPlugin = {
	major: 1, minor: 0, revision: 2, 
	date: new Date("Apr 19, 2007"),
	source: 'http://tiddlywiki.bidix.info/#PasswordOptionPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	license: '[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D]]',
	coreVersion: '2.2.0 (Beta 5)'
};

config.macros.option.passwordCheckboxLabel = "Save this password on this computer";
config.macros.option.passwordInputType = "password"; // password | text
setStylesheet(".pasOptionInput {width: 11em;}\n","passwordInputTypeStyle");

merge(config.macros.option.types, {
	'pas': {
		elementType: "input",
		valueField: "value",
		eventName: "onkeyup",
		className: "pasOptionInput",
		typeValue: config.macros.option.passwordInputType,
		create: function(place,type,opt,className,desc) {
			// password field
			config.macros.option.genericCreate(place,'pas',opt,className,desc);
			// checkbox linked with this password "save this password on this computer"
			config.macros.option.genericCreate(place,'chk','chk'+opt,className,desc);			
			// text savePasswordCheckboxLabel
			place.appendChild(document.createTextNode(config.macros.option.passwordCheckboxLabel));
		},
		onChange: config.macros.option.genericOnChange
	}
});

merge(config.optionHandlers['chk'], {
	get: function(name) {
		// is there an option linked with this chk ?
		var opt = name.substr(3);
		if (config.options[opt]) 
			saveOptionCookie(opt);
		return config.options[name] ? "true" : "false";
	}
});

merge(config.optionHandlers, {
	'pas': {
 		get: function(name) {
			if (config.options["chk"+name]) {
				return encodeCookie(config.options[name].toString());
			} else {
				return "";
			}
		},
		set: function(name,value) {config.options[name] = decodeCookie(value);}
	}
});

// need to reload options to load passwordOptions
loadOptionsCookie();

/*
if (!config.options['pasPassword'])
	config.options['pasPassword'] = '';

merge(config.optionsDesc,{
		pasPassword: "Test password"
	});
*/
//}}}
Under this topic you will find software that is associated with personal requirements such as encryption and password management.
[[Puppy Linux 525|http://puppylinuxnews.org/releases/lucid-puppy-525-is-released/]]
{{center{<html><iframe width="100%" height="360" src="http://www.youtube.com/embed/EpbxUWAB6i0" frameborder="0" allowfullscreen></iframe></html>}}}
----
<html><iframe width="100%" height="360" src="http://www.youtube.com/embed/uDJFDXOALcM" frameborder="0" allowfullscreen></iframe></html>
----
Se også [[MacPup|http://macpup.org/]]
<html><iframe width="100%" height="360" src="http://www.youtube.com/embed/AI-Rp-9vAvA" frameborder="0" allowfullscreen></iframe></html>
|sortable widetable|k
|<<tiddler MeMo##toggleReadonly>><<tiddler RefreshTiddler with: genopfrisk>>|c
| Spørgsmål | Svar |h
|<<editSection [[##Spørgsmål]] [[redigér Spørgsmål]]>><<tiddler [[##Spørgsmål]]>>|<<tiddler [[##Link]] with:{{store.getValue(tiddler,'link')}}>><<editSection [[##Svar]] [[redigér Svar]]>><<tiddler [[##Svar]]>>|
|>|<<editSection [[##Notat]] [[redigér]]>>Notat:<<tiddler [[##Notat]]>>|
/%
!Spørgsmål
Hvad er Puppy-abc?
!Svar
Det er TW-OS
!Notat
Dette er et notat om ~TW-OS
!Link

[[Link »|http://google.dk/search?q=Puppy-abc&sitesearch=linux-abc.dk/phpBB3/]]
!end %/
!usage
{{{[[Puppy-abc.jpg]]}}}
[img[Puppy-abc.jpg]]
!notes
//none//
!type

!file

!url
http://dl.dropbox.com/u/15835063/PuppyProjekt/puppy-abc.jpg
!data

|sortable widetable|k
|<<tiddler MeMo##toggleReadonly>><<tiddler RefreshTiddler with: genopfrisk>>|c
| Spørgsmål | Svar |h
|<<editSection [[##Spørgsmål]] [[redigér Spørgsmål]]>><<tiddler [[##Spørgsmål]]>>|<<tiddler [[##Link]] with:{{store.getValue(tiddler,'link')}}>><<editSection [[##Svar]] [[redigér Svar]]>><<tiddler [[##Svar]]>>|
|>|<<editSection [[##Notat]] [[redigér]]>>Notat:<<tiddler [[##Notat]]>>|
/%
!Spørgsmål

!Svar

!Notat

!Link

[[Link »|http://google.dk/search?q=Puppy Linux&sitesearch=linux-abc.dk/phpBB3/]]
!end %/
!usage
{{{[img[PuppyLogo.png]]}}}
[img[PuppyLogo.png]]
!notes
//none//
!type
image/png
!file
file:////mnt/home/Dropbox/Dropbox/Public/PuppyProjekt/400px-Puppy_logo.svg.png
!url
http://dl.dropbox.com/u/15835063/PuppyProjekt/400px-Puppy_logo.svg.png
!data
data:image/png;base64,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
This package provides a toolbar of interactive 'power tools' that you can use while editing a tiddler to quickly insert TiddlyWiki tiddler links, images, macros, etc. or common formatting sequences directly into tiddler content, as well as perform other functions (such as find/replace, sort, split, convert, etc.) that can be used to modify the current tiddler's source content in a variety of ways.

<<tiddler QuickEditToolbar with: show>>
!!!!!Installation:
<<<
Individual ~QuickEdit buttons are defined in separate tiddlers (e.g., [[QuickEdit_replace]]) that have also been //transcluded// into a single toolbar definition named [[QuickEditToolbar]].  You can edit this definition to add, remove, or rearrange the toolbar buttons to best suit your needs, and then embed the [[QuickEditToolbar]] tiddler into your document's [[EditTemplate]], like this:
{{{
<div macro='tiddler QuickEditToolbar'></div>
}}}
Next, in order to support some of the formatting 'shortcuts' provided by the toolbar, add a reference to the shortcuts CSS class definitions in your [[StyleSheet]]:
{{{
[[StyleSheetShortcuts]]
}}}
By default, the QuickEdit toolbar is hidden until you enable it by using the ''toggleQuickEdit'' command, which you can add to the ~EditToolbar definition in [[ToolbarCommands]]:
{{{
|EditToolbar|... toggleQuickEdit ...|
}}}
You can also toggle the ~QuickEdit toolbar display via a single checkbox option that can be added to [[SideBarOptions]] (or any other desired location):
{{{
<<option chkShowQuickEdit>> show QuickEdit toolbar
}}}
Note: You can 'hard-code' the ''chkShowQuickEdit'' setting, so that the toolbar will be //initially// displayed, by creating a tiddler (e.g., ConfigTweaks), tagged with <<tag systemConfig>>, containing:
{{{
config.options.chkShowQuickEdit=true;
}}}
Alternatively, if you want the toolbar to //always// be displayed, regardless of the option setting, you can add a special keyword, ''show'', to the [[EditTemplate]] syntax, like this:
{{{
<div macro='tiddler QuickEditToolbar with: show'></div>
}}}
<<<
/***
|Name|QuickEditPlugin|
|Source|http://www.TiddlyTools.com/#QuickEditPlugin|
|Documentation|http://www.TiddlyTools.com/#QuickEditPlugin|
|Version|2.4.4|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Description|Support functions for ~QuickEdit package: styles, utility functions, and 'toggleQuickEdit' command|
!!!!!Revisions
<<<
2011.02.14 2.4.4 fix OSX error: use picker.file.path
2009.06.11 2.4.3 added keyup() function to abbreviate listbox handling for CR and ESC
2009.05.07 2.4.2 added processed() function to abbreviate event handler code
2008.09.07 2.4.1 added removeCookie() function for compatibility with [[CookieManagerPlugin]]
2008.05.17 2.4.0 copied code from StickyPopupPlugin to remove dependency
2008.05.12 2.3.0 added "toggleQuickEdit" command handler (replaces inline script command)
2008.01.11 2.2.0 converted from inline script
2007.03.29 1.0.0 initial release (as inline script)
<<<
!!!!!Code
***/
//{{{
version.extensions.QuickEditPlugin= {major: 2, minor: 4, revision: 4, date: new Date(2011,2,14)};

// SET STYLESHEET
setStylesheet("\
.quickEdit a { border:2px outset ButtonFace; padding:0px 3px !important; \
	-moz-border-radius:.5em; -webkit-border-radius:.5em; \
	-moz-appearance:button !important; -webkit-appearance:push-button !important; \
	background-color:ButtonFace; color:ButtonText !important;  \
	line-height:200%; font-weight:normal; } \
.quickEdit a:hover { border: 2px inset ButtonFace; background-color:ButtonFace; }\
", "quickEditStyles");

// REMOVE COOKIE
if (window.removeCookie===undefined) {
	window.removeCookie=function(name) {
		document.cookie = name+'=; expires=Thu, 01-Jan-1970 00:00:01 UTC; path=/;'; 
	}
}

// UTILITY FUNCTIONS
config.quickEdit = {
	processed: function(ev) { ev=ev||window.event;
		ev.cancelBubble=true;
		if(ev.stopPropagation) ev.stopPropagation();
		return false;
	},
	keyup: function(ev){ var k=(ev||window.event).keyCode;
		if (k==13) this.onclick();
		if (k==27) Popup.remove();
	},
	getField: function(where) {
		var here=story.findContainingTiddler(where); if (!here) return null;
		var e=story.getTiddlerField(here.getAttribute("tiddler"),"text");
		if (e&&e.getAttribute("edit")=="text") return e;
		return null;
	},
	setSelection: function(where,newtext) {
		var e=this.getField(where); if (!e) return false;
		e.focus(); replaceSelection(e,newtext);
		return false;
	},
	wrapSelection: function(where,before,after) {
		var e=this.getField(where); if (!e) return false;
		e.focus(); replaceSelection(e,before+config.quickEdit.getSelection(e)+after);
		return false;
	},
	getSelection: function(e) {
		var seltext="";
		if (e&&e.setSelectionRange)
			seltext=e.value.substr(e.selectionStart,e.selectionEnd-e.selectionStart);
		else if (document.selection) {
			var range = document.selection.createRange();
			if (range.parentElement()==e) seltext=range.text
		}
		return seltext;
	},
	promptForFilename: function(msg,path,file) {
		if(window.Components) { // moz
			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, nsIFilePicker.modeOpen);
				var thispath = Components.classes['@mozilla.org/file/local;1'].createInstance(Components.interfaces.nsILocalFile);
				thispath.initWithPath(path);
				picker.displayDirectory=thispath;
				picker.defaultExtension='jpg';
				picker.defaultString=file;
				picker.appendFilters(nsIFilePicker.filterAll|nsIFilePicker.filterImages);
				if (picker.show()!=nsIFilePicker.returnCancel)
					var result="file:///"+picker.file.path.replace(/\\/g,'/');
			}
			catch(e) { alert('error during local file access: '+e.toString()) }
		}
		else { // IE
			try { // XP only
				var s = new ActiveXObject('UserAccounts.CommonDialog');
				s.Filter='All files|*.*|JPG files|*.jpg|GIF files|*.gif|PNG files|*.png|';
				s.FilterIndex=1; // default to JPG
				s.InitialDir=path;
				s.FileName=file;
				if (s.showOpen()) var result=s.FileName;
			}
			catch(e) { var result=prompt(msg,path+file); } // fallback for non-XP IE
		}
		return result;
	}
}
//}}}

//{{{
if (config.options.chkShowQuickEdit===undefined) config.options.chkShowQuickEdit=false;
config.commands.toggleQuickEdit = {
	hideReadOnly: true,
	getText: function() { return config.options.chkShowQuickEdit?'\u221Aquickedit':'quickedit'; },

	tooltip: 'show QuickEdit toolbar buttons',
	handler: function(event,src,title) {
		var opt='chkShowQuickEdit';
		config.options[opt]=!config.options[opt];
		config.macros.option.propagateOption(opt,"checked", config.options[opt],"input");
		if (config.options[opt]) saveOptionCookie(opt);	else removeCookie(opt);
		src.innerHTML=config.commands.toggleQuickEdit.getText();
		story.forEachTiddler(function(t,e){if (story.isDirty(t)) refreshElements(e);});
		return false;
	}
};
//}}}

// // COPIED FROM [[StickyPopupPlugin]] TO ELIMINATE PLUGIN DEPENDENCY
//{{{
if (config.options.chkStickyPopups==undefined) config.options.chkStickyPopups=false;
Popup.stickyPopup_onDocumentClick = function(ev)
{
	// if click is in a sticky popup, ignore it so popup will remain visible
	var e = ev ? ev : window.event; var target = resolveTarget(e);
	var p=target; while (p) {
		if (hasClass(p,"popup") && (hasClass(p,"sticky")||config.options.chkStickyPopups)) break;
		else p=p.parentNode;
	}
	if (!p) // not in sticky popup (or sticky popups disabled)... use normal click handling
		Popup.onDocumentClick(ev);
	return true;
};
try{removeEvent(document,"click",Popup.onDocumentClick);}catch(e){};
try{addEvent(document,"click",Popup.stickyPopup_onDocumentClick);}catch(e){};
//}}}
/%
|Name|QuickEditToolbar|
|Source|http://www.TiddlyTools.com/#QuickEditToolbar|
|Version|2.4.4|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.2|
|Type|transclusion|
|Requires|QuickEditPlugin|
|Optional|QuickEdit_*|
|Description|format/insert TiddlyWiki content using toolbar buttons|

Usage:
* install [[QuickEditPlugin]] (runtime support functions)

* add the toolbar to [[EditTemplate]]:
	<div macro='tiddler QuickEditToolbar with: show'></div>

* 'show' (optional) forces the toolbar to always be displayed or,
  omit keyword and use <<option chkShowQuickEdit>> setting

* selected QuickEdit buttons can also be added individually to the
  regular tiddler toolbar by adding references directly in [[EditTemplate]]:
	<span class='toolbar' macro='tiddler QuickEdit_...'></span>

* see [[QuickEditPackage]] for additional installation options

%/{{hidden fine center quickEdit{
<<tiddler {{ // show/hide toolbar
	var here=story.findContainingTiddler(place); if (here) var tid=here.getAttribute('tiddler');
	var show='$1'!='$'+'1'||config.options.chkShowQuickEdit||tid=='QuickEditToolbar'; 
	place.style.display=show?'block':'none';
'';}}>>/%

TOOLBAR DEFINITION - add, remove, or re-order items as desired:
= = = = = = = = = =
%/<<tiddler QuickEdit_format>>/%
%/<<tiddler QuickEdit_align>>/%
%/<<tiddler QuickEdit_color>>/%
%/<<tiddler QuickEdit_font>>/%
%/<<tiddler QuickEdit_custom>>/%
%/ &nbsp;/% (SPACER)
%/<<tiddler QuickEdit_replace>>/%
%/<<tiddler QuickEdit_split>>/%
%/<<tiddler QuickEdit_sort>>/%
%/<<tiddler QuickEdit_convert>>/%
%/ &nbsp;/% (SPACER)
%/<<tiddler QuickEdit_link>>/%
%/<<tiddler QuickEdit_insert>>/%
%/<<tiddler QuickEdit_macro>>/%
%/<<tiddler QuickEdit_image>>/%
%/}}}
/%
|Name|QuickEdit_align|
|Source|http://www.TiddlyTools.com/#QuickEdit_align|
|Version|2.4.3|
|Author|Eric Shulman|
|License|see http://www.TiddlyTools.com/#QuickEditPlugin|
|Type|html|
|Requires|QuickEditPlugin|
|Description|quickedit - text alignment|

Usage: see  http://www.TiddlyTools.com/#QuickEditToolbar

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="justér tekst"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('vælg tekstjustering...','');
	s.options[s.length]=new Option('venstre','left');
	s.options[s.length-1].title='{{left{...}}}';
	s.options[s.length]=new Option('centrer','center');
	s.options[s.length-1].title='{{center{...}}}';
	s.options[s.length]=new Option('højre','right');
	s.options[s.length-1].title='{{right{...}}}';
	s.options[s.length]=new Option('ret','justify');
	s.options[s.length-1].title='{{justify{...}}}';
	s.options[s.length]=new Option('flyd til venstre','floatleft');
	s.options[s.length-1].title='{{floatleft{...}}}';
	s.options[s.length]=new Option('flyd til højre','floatright');
	s.options[s.length-1].title='{{floatright{...}}}';
	s.size=s.length;
	s.onclick=function(){ if (!this.value.length) return;
		config.quickEdit.wrapSelection(this.button,'{{'+this.value+'{','}}}');
		Popup.remove(); return false;
	};
	s.onkeyup=config.quickEdit.keyup;
	Popup.show();
	s.focus();
	return config.quickEdit.processed(event);"
>justér</a></html>
/%
|Name|QuickEdit_color|
|Source|http://www.TiddlyTools.com/#QuickEdit_color|
|Version|2.4.3|
|Author|Eric Shulman|
|License|see http://www.TiddlyTools.com/#QuickEditPlugin|
|Type|html|
|Requires|QuickEditPlugin|
|Description|quickedit - text/background color|

Usage: see  http://www.TiddlyTools.com/#QuickEditToolbar

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="tekst/baggrundsfarve - @@color:#RGB;background-color:#RGB;...@@"
onclick="var p=Popup.create(this,null,'popup sticky smallform'); if (!p) return false;
 	p.style.padding='2px';
	function hex(d) { return '0123456789ABCDEF'.substr(d,1); }
	var fg=createTiddlyElement(p,'select'); fg.button=this;
	fg.style.width='12em';
	fg.options[0]=new Option('tekstfarve...','');
	fg.options[1]=new Option('\xa0 eller skriv en værdi','_ask');
	fg.options[2]=new Option('\xa0 eller brug standardfarve','');
	for (var r=0;r<16;r+=3) for (var g=0;g<16;g+=3) for (var b=0;b<16;b+=3) {
		var label=hex(r)+hex(g)+hex(b);
		fg.options[fg.length]=new Option(label,'#'+label);
		fg.options[fg.length-1].style.color='#'+label;
	}
	fg.onchange=function(){ var val=this.value;
		if (val=='_ask') { val=prompt('Skriv en CSS farveværdi');
		if (!val||!val.length) return false; }
		this.options[0].value=val; this.options[0].text=val.length?'text: '+val:'text color...';
		var bg=this.nextSibling;
		for (var i=3;i<bg.options.length;i++) bg.options[i].style.color=val;
		var preview=this.nextSibling.nextSibling.nextSibling;
		var t=config.quickEdit.getSelection(config.quickEdit.getField(this.button));
		t=t.replace(/^@@(color\:.+;)?(background-color\:.+;)?/,'').replace(/@@$/,'');
		if (!t.length) t='~AaBbCcDdEeFfGgHhIiJj 1234567890';
		var fg=this.value; if (fg.length) fg='color:'+fg+';';
		var bg=this.nextSibling.value; if (bg.length) bg='background-color:'+bg+';';
		if (fg.length||bg.length) t='@@'+fg+bg+t+'@@';
		removeChildren(preview); wikify(t,preview);
		this.selectedIndex=0; return false;
	};
	var bg=createTiddlyElement(p,'select'); bg.button=this;
	bg.style.width='12em';
	bg.options[0]=new Option('baggrundsfarve...','');
	bg.options[1]=new Option('\xa0 eller skriv en værdi','_ask');
	bg.options[2]=new Option('\xa0 eller brug standardfarve','');
	for (var r=0;r<16;r+=3) for (var g=0;g<16;g+=3) for (var b=0;b<16;b+=3) {
		var label=hex(15-r)+hex(15-g)+hex(15-b);
		bg.options[bg.length]=new Option(label,'#'+label);
		bg.options[bg.length-1].style.backgroundColor='#'+label;
	}
	bg.onchange=function(){ var val=this.value;
		if (val=='_ask') { val=prompt('Skriv en CSS farveværdi');
		if (!val||!val.length) return false; }
		this.options[0].value=val;
		this.options[0].text=val.length?'background: '+val:'baggrundsfarve...';
		var fg=this.previousSibling;
		for (var i=3;i<fg.options.length;i++) fg.options[i].style.backgroundColor=val;
		var preview=this.nextSibling.nextSibling;
		var t=config.quickEdit.getSelection(config.quickEdit.getField(this.button));
		t=t.replace(/^@@(color\:.+;)?(background-color\:.+;)?/,'').replace(/@@$/,'');
		if (!t.length) t='~AaBbCcDdEeFfGgHhIiJj 1234567890';
		var fg=this.previousSibling.value; if (fg.length) fg='color:'+fg+';';
		var bg=this.value; if (bg.length) bg='background-color:'+bg+';';
		if (fg.length||bg.length) t='@@'+fg+bg+t+'@@';
		removeChildren(preview); wikify(t,preview);
		this.selectedIndex=0; return false;
	};
	var b=createTiddlyElement(p,'input',null,null,null,{type:'button'}); b.button=this;
	b.value='ok'; b.style.width='4em';
	b.onclick=function() {
		var fg=this.previousSibling.previousSibling.value; if (fg.length) fg='color:'+fg+';';
		var bg=this.previousSibling.value; if (bg.length) bg='background-color:'+bg+';';
		var t=config.quickEdit.getSelection(config.quickEdit.getField(this.button));
		t=t.replace(/^@@(color\:.+;)?(background-color\:.+;)?/,'').replace(/@@$/,'');
		if (fg.length||bg.length) config.quickEdit.setSelection(this.button,'@@'+fg+bg+t+'@@');
		Popup.remove(); return false;
	};
	var preview=createTiddlyElement(p,'div',null,'viewer'); var s=preview.style;
	s.border='1px solid'; s.margin='2px'; s.width='24em'; s.padding='3px'; s.MozBorderRadius='3px';
	s.overflow='hidden'; s.textAlign='center'; s.whiteSpace='normal';
	var t=config.quickEdit.getSelection(config.quickEdit.getField(this));
	wikify(t.length?t:'~AaBbCcDdEeFfGgHhIiJj 1234567890',preview);
	Popup.show();
	event.cancelBubble=true;if(event.stopPropagation)event.stopPropagation();return false;"
>farve</a></html>
/%
|Name|QuickEdit_convert|
|Source|http://www.TiddlyTools.com/#QuickEdit_convert|
|Version|2.4.3|
|Author|Eric Shulman|
|License|see http://www.TiddlyTools.com/#QuickEditPlugin|
|Type|html|
|Requires|QuickEditPlugin|
|Description|quickedit - convert between comma/tab-separated and TW table format|

Usage: see  http://www.TiddlyTools.com/#QuickEditToolbar

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="kovertér mellem komma/tab-separeret og TW tabelformat"
onclick="var e=config.quickEdit.getField(this);
	if (e) e.focus(); var txt=config.quickEdit.getSelection(e);
	if (txt.indexOf(',')+txt.indexOf('\t')+txt.indexOf('|')==-3) {
		alert('Vælg tekst der indeholder tabulatorer, kommaer, eller TiddlyWiki tabelsyntaks.');
		return false;
	}
	var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('vælg en konverter...','');
	if (txt.indexOf(',')!=-1) {
		s.options[s.length]=new Option('kommaer -> tabel','commasToTable');
		s.options[s.length]=new Option('kommaer -> tabulatorer','commasToTabs');
	}
	if (txt.indexOf('\t')!=-1) {
		s.options[s.length]=new Option('tabulatorer -> tabel','tabsToTable');
		s.options[s.length]=new Option('tabulatorer -> kommaer','tabsToCommas');
	}
	if (txt.indexOf('|')!=-1) {
		s.options[s.length]=new Option('tabel -> tabulatorer','tableToTabs');
		s.options[s.length]=new Option('tabel -> kommaer','tableToCommas');
	}
	s.size=s.length;
	s.onclick=function(){ if (!this.value.length) return;
	        var e=config.quickEdit.getField(this.button); if (!e) return false;
		e.focus(); var txt=config.quickEdit.getSelection(e);
		switch(this.value) {
			case 'tabsToTable':
				txt=txt.replace(/\t/g,'|').replace(/^|$/g,'|');
				txt=txt.replace(/\n/g,'|\n|').replace(/^\|$/g,'');
				break;
			case 'tableToTabs':
				txt=txt.replace(/\t/g,' ').replace(/\|/g,'\t');
				txt=txt.replace(/^\t/g,'').replace(/\t$/g,'');
				txt=txt.replace(/\n\t/g,'\n').replace(/\t\n/g,'\n');
				break;
			case 'commasToTable':
				txt=txt.replace(/,/g,'|').replace(/^|$/g,'|');
				txt=txt.replace(/\n/g,'|\n|').replace(/^\|$/g,''); 
				break;
			case 'tableToCommas':
				txt=txt.replace(/,/g,' ').replace(/\|/g,',');
				txt=txt.replace(/^,/g,'').replace(/,$/g,''); 
				txt=txt.replace(/\n,/g,'\n').replace(/,\n/g,'\n'); 
				break;
			case 'tabsToCommas':
				txt=txt.replace(/\t/g,',');
				break;
			case 'commasToTabs':
				txt=txt.replace(/,/g,'\t');
				break;
		}
		replaceSelection(e,txt);
		Popup.remove(); return false;
	};
	s.onkeyup=config.quickEdit.keyup;
	Popup.show();
	s.focus();
	return config.quickEdit.processed(event);"
>konvertér</a></html>
/%
|Name|QuickEdit_custom|
|Source|http://www.TiddlyTools.com/#QuickEdit_custom|
|Version|2.4.3|
|Author|Eric Shulman|
|License|see http://www.TiddlyTools.com/#QuickEditPlugin|
|Type|html|
|Requires|QuickEditPlugin|
|Description|quickedit - custom defined formats|

Usage: see  http://www.TiddlyTools.com/#QuickEditToolbar

!help
Påmindelser:

Brugerdefinerede formater gemmes som en "HR-separeret liste" i [[QuickEdit_customList]], hvor den første linie af hvert listeemne er den 'etiket', der vises i rullelisten, efterfulgt af een eller flere linier af wiki indhold der skal sættes ind i tiddlerkilden.

Erstatningsmarkører  kan bruges til dynamisk at indsætte værdier i det formaterede resultat: $1 indsætter tiddler editorens aktuelt markerede tekst. $[[message|default value]] interactively prompts for a value to be inserted. $[[message|$1]] uses the selected text as the default value. $[[message|{{javascript}}]] calculates the default value using javascript code.
!end help

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" title="brugerdefinerede formater"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('vælg et brugerdefineret format...','');
	var items=store.getTiddlerText('QuickEdit_customList','').split('\n----\n');
	for (var i=0; i<items.length; i++) {
		if (!items[i].length) continue; var lines=items[i].split('\n');
		var label=lines.shift(); var val=lines.join('\n');
		s.options[s.length]=new Option(label,val); s.options[s.length-1].title=val;
	}
	s.options[s.length]=new Option('[Redigér brugerdefinerede formater...]','_edit');
	s.options[s.length-1].title='tilføj/skift brugerdefinerede formater...';
	s.size=Math.min(s.length,15);
	s.onclick=function(){ if (!this.value.length) return;
		if (this.value=='_edit') {
			alert(store.getTiddlerText('QuickEdit_custom##help'));
			story.displayTiddler(story.findContainingTiddler(this.button),
				'QuickEdit_customList',DEFAULT_EDIT_TEMPLATE);
		} else {
		        var e=config.quickEdit.getField(this.button); if (!e) return false;
			e.focus(); var txt=config.quickEdit.getSelection(e);
			replaceSelection(e, this.value.replace(/\$\x31/g,txt)
				.replace(/\$\[\[[^\]]+\]\]/g, function(t){
					x=t.substr(3,t.length-5).split('|');
					var msg=x[0]; var def=x[1]||'';
					if (def.startsWith('{{')) {
						try{def=eval(def.substr(2,def.length-4))} catch(ex){showException(ex)}
					}
					return prompt(msg,def)||'';
				})
			);
		}
		Popup.remove(); return false;
	};
	s.onkeyup=config.quickEdit.keyup;
	Popup.show();
	s.focus();
	return config.quickEdit.processed(event);"
>brugerdefineret</a></html>
----
wikilink
[[$1]]
----
iframe
<html><div align="center"><iframe src="$1" frameborder="0" width="100%" height="600"></iframe></div></html>
----
iframe + menubox
<html><div <span class='menubox' style='float:center;margin:0em'<div align="center"><iframe src="$1" frameborder="0" width="100%" height="800"></iframe></div></html>
----
timestamp
$[[enter a date|{{new Date().formatString('DDD, MMM DDth, YYYY hh12:0mm:0ssam')}}]]
----
scrollbox
@@display:block;height:10em;overflow:auto;$[[enter scrolling content|$1]]@@@@display:block;text-align:right;^^scroll for more...^^@@
----
nested slider
+++[$1]<<tiddler $1>>===
----
big red
@@font-size:36pt;color:red;$1@@
----
/%
|Name|QuickEdit_font|
|Source|http://www.TiddlyTools.com/#QuickEdit_font|
|Version|2.4.3|
|Author|Eric Shulman|
|License|see http://www.TiddlyTools.com/#QuickEditPlugin|
|Type|html|
|Requires|QuickEditPlugin|
|Description|quickedit - select font family|

Usage: see  http://www.TiddlyTools.com/#QuickEditToolbar

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="vælg en fontfamilie CSS attribut - @@font-family:facename;...@@"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('vælg en fontfamilie...','');
	var fonts=store.getTiddlerText('QuickEdit_fontList','').split('\n');
	for (var i=0; i<fonts.length; i++) {
		if (!fonts[i].length) continue;
		s.options[s.length]=new Option(fonts[i],fonts[i]);
		s.options[s.length-1].style.fontFamily=fonts[i];
	}
	s.options[s.length]=new Option('[Redigér listen over fonte...]','_edit');
	s.options[s.length-1].title='skriv fontnavn, et pr linie...';
	s.size=Math.min(s.length,15);
	s.onclick=function(){
		if (this.value=='_edit')
			story.displayTiddler(story.findContainingTiddler(this.button),'QuickEdit_fontList',DEFAULT_EDIT_TEMPLATE);			
		else
			config.quickEdit.wrapSelection(this.button,'@@font-family:\x22'+this.value+'\x22;','@@');
		Popup.remove(); return false;
	};
	s.onkeyup=config.quickEdit.keyup;
	Popup.show();
	s.focus();
	return config.quickEdit.processed(event);"
>fonte</a></html>
Arial,helvetica,sans-serif
Arial Black,Gadget,sans-serif
Bookman Old Style,serif
Comic Sans MS,cursive
Courier,monospaced
Courier New,Courier,monospaced
Garamond,serif
Georgia,serif
Impact,Charcoal,sans-serif
Lucida Console,Monaco,monospaced
Lucida Sans Unicode,Lucida Grande,sans-serif
MS Sans Serif,Geneva,sans-serif
MS Serif,New York,sans-serif
Palatino Linotype,Book Antiqua,Palatino,serif
Symbol,sans-serif
Tahoma,Geneva,sans-serif
Times New Roman,Times,serif
Trebuchet MS,Helvetica,sans-serif
Verdana,Geneva,sans-serif
Webdings,sans-serif
Wingdings,Zapf Dingbats,sans-serif 
/%
|Name|QuickEdit_format|
|Source|http://www.TiddlyTools.com/#QuickEdit_format|
|Version|2.4.3|
|Author|Eric Shulman|
|License|see http://www.TiddlyTools.com/#QuickEditPlugin|
|Type|html|
|Requires|QuickEditPlugin|
|Description|quickedit - basic text formats, headings, blockquotes, etc.|

Usage: see  http://www.TiddlyTools.com/#QuickEditToolbar

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="ren tekst (fjern AL formatering)" accesskey="P" 
onclick="var e=config.quickEdit.getField(this); if (e) e.focus(); var txt=config.quickEdit.getSelection(e);
	config.quickEdit.setSelection(e,wikifyPlainText(txt)); return false;"
>&nbsp;~&nbsp;</a></html>/%

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="''fed''" accesskey="F"
onclick="config.quickEdit.wrapSelection(this,'\x27\x27','\x27\x27'); return false;"
>&nbsp;F&nbsp;</a></html>/%

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="//kursiv//" accesskey="K" 
onclick="config.quickEdit.wrapSelection(this,'//','//'); return false;"
>&nbsp;K&nbsp;</a></html>/%

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="__understreg__" accesskey="U" 
onclick="config.quickEdit.wrapSelection(this,'__','__'); return false;"
>&nbsp;U&nbsp;</a></html>/%

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="--gennemstreg--" accesskey="G" 
onclick="config.quickEdit.wrapSelection(this,'--','--'); return false;"
>&nbsp;G&nbsp;</a></html>/%

%/ &nbsp;/%  SPACER

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="formatér tekst"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('vælg tekst format...','');
	s.options[s.length]=new Option('CSS klasse indpakning','{{$1{,}}},Skriv et CSS klassenavn');
	s.options[s.length-1].title='CSS klasse indpakning - {{klassenavn klassenavn etc{...}}}';
	s.options[s.length]=new Option('inline CSS stilarter','@@$1,@@,Skriv CSS (attribut:værdi;attribut:værdi;...;)');
	s.options[s.length-1].title='inline CSS stilarter - @@attr:value;attr:value;...@@';
	s.options[s.length]=new Option('overskrift 1','\n!,\n');
	s.options[s.length-1].title='H1 heading - !';
	s.options[s.length]=new Option('overskrift 2','\n!!,\n');
	s.options[s.length-1].title='H2 heading - !!';
	s.options[s.length]=new Option('overskrift 3','\n!!!,\n');
	s.options[s.length-1].title='H3 heading - !!!';
	s.options[s.length]=new Option('overskrift 4','\n!!!!,\n');
	s.options[s.length-1].title='H4 heading - !!!!';
	s.options[s.length]=new Option('overskrift 5','\n!!!!!,\n');
	s.options[s.length-1].title='H5 heading - !!!!!';
	s.options[s.length]=new Option('blockquote','\n\<\<\<\n,\n\<\<\<\n');
	s.options[s.length-1].title='indskudt blokcitat - \<\<\<';
	s.options[s.length]=new Option('monospaced','{{{,}}}');
	s.options[s.length-1].title='inline monospaced tekst - {{{...}}}';
	s.options[s.length]=new Option('ren tekst','\n{{{\n,\n}}}\n');
	s.options[s.length-1].title='multi-linie monospaced tekst boks - {{{...}}}';
	s.options[s.length]=new Option('superscript','^^,^^');
	s.options[s.length-1].title='^^superscript^^';
	s.options[s.length]=new Option('subscript','~~,~~');
	s.options[s.length-1].title='~~subscript~~';
	s.options[s.length]=new Option('HTML','<html>,<\x2fhtml>');
	s.options[s.length-1].title='HTML syntaks - <html>...<\x2fhtml>';
	s.options[s.length]=new Option('kommentar','/%,%/');
	s.options[s.length-1].title='kommentar (skjult indhold) - /%...%/';
	s.size=s.length;
	s.onclick=function(){ if (!this.value.length) return;
		var parts=this.value.split(',');
		var prefix=parts[0]; var suffix=parts[1]; var ask=parts[2];
		if (ask) {
			var val=prompt(ask); if (!val) { Popup.remove(); return false; }
			prefix=prefix.replace(/\$1/g,val); suffix=suffix.replace(/\$1/g,val);
		}
		config.quickEdit.wrapSelection(this.button,prefix,suffix);
		Popup.remove(); return false;
	};
	s.onkeyup=config.quickEdit.keyup;
	Popup.show();
	s.focus();
	return config.quickEdit.processed(event);"
>formatér</a></html>
/%
|Name|QuickEdit_image|
|Source|http://www.TiddlyTools.com/#QuickEdit_image|
|Version|2.4.3|
|Author|Eric Shulman|
|License|see http://www.TiddlyTools.com/#QuickEditPlugin|
|Type|html|
|Requires|QuickEditPlugin|
|Description|quickedit - embed an image|

Usage: see  http://www.TiddlyTools.com/#QuickEditToolbar

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
	title="indsæt et billede (jpg/gif/png) - [img[værktøjstip|URL]] eller [img[værktøjstip|sti/til/fil.filtype]]"
	onclick="var fn=config.quickEdit.promptForFilename(
		'Skriv/vælg en billedfil',getLocalPath(document.location.href),'');
	if (!fn) return false;  /* cancelled by user */
	var h=document.location.href; var p=decodeURIComponent(h.substr(0,h.lastIndexOf('/')+1));
	if (fn.startsWith(p)) fn=fn.substr(p.length); /* use RELATIVE path/filename.ext */
	var tip=prompt('Enter a tooltip for this image',''); if (!tip) tip=''; else tip+='|';
	return config.quickEdit.setSelection(this,'[img['+tip+fn+']]');"
>billede</a></html>
/%
|Name|QuickEdit_insert|
|Source|http://www.TiddlyTools.com/#QuickEdit_insert|
|Version|2.4.3|
|Author|Eric Shulman|
|License|see http://www.TiddlyTools.com/#QuickEditPlugin|
|Type|html|
|Requires|QuickEditPlugin|
|Description|quickedit - insert content from another tiddler or external file|

Usage: see  http://www.TiddlyTools.com/#QuickEditToolbar

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="indsæt indhold fra en anden tiddler eller ekstern fil"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';

	var s2=createTiddlyElement(p,'select'); s2.title='filtrer efter tag';
	s2.options[0]=new Option('filtrer efter tag...','');
	s2.options[s2.length]=new Option('[alle tiddlere]','');
	var tags=store.getTags();
	for (var t=0; t<tags.length; t++) s2.options[s2.length]=new Option(tags[t][0],tags[t][0]);
	s2.onchange=function(){
		var tag=this.value;
		var tids=tag.length?store.reverseLookup('tags',tag,true):store.reverseLookup('tags','excludeLists');
		var list=this.nextSibling.nextSibling;
		while (list.length) list.options[0]=null;
		var prompt='select a tiddler or file...';
		if (tag.length) prompt='vælg en tagget tiddler ['+tids.length+' matches]...';
		list.options[0]=new Option(prompt,'');
		if (!tag.length) list.options[list.length]=new Option('[gennemse...]','_file');
		for (var t=0; t<tids.length; t++) {
			list.options[list.length]=new Option(tids[t].title,tids[t].title);
			list.options[list.length-1].title=tids[t].getSubtitle();
		}
		list.size=Math.min(list.length,10);
		list.selectedIndex=0; list.focus();
		this.style.width=list.offsetWidth+'px';
		if (!tag.length) this.selectedIndex=0;
	};
	createTiddlyElement(p,'br');

	var s=createTiddlyElement(p,'select'); s.button=this;
	s.title='select a tiddler or file';
	s.options[0]=new Option('vælg en tiddler eller fil...','');
	s.options[s.length]=new Option('[gennemse...]','_file');
	var tids=store.reverseLookup('tags','excludeLists');
	for (var t=0; t<tids.length; t++) {
		s.options[s.length]=new Option(tids[t].title,tids[t].title);
		s.options[s.length-1].title=tids[t].getSubtitle();
	}
	s.size=Math.min(s.length,10);
	s.onclick=function(){ if (!this.value.length) return false;
		if (this.value=='_file') {
			var fn=config.quickEdit.promptForFilename(
				'Enter/select a text file',getLocalPath(document.location.href),'');
			if (!fn) return false; /* cancelled by user */
			var txt=loadFile(getLocalPath(fn));
			if (!txt) { alert('Fejl: kan ikke læse indholdet fra \0027'+fn+'\0027'); return; }
		}
		else var txt=store.getTiddlerText(this.value);
		if (!txt) {
			displayMessage(this.value+' ikke fundet');
			this.selectedIndex=0; this.focus();
			return false;
		}
		config.quickEdit.setSelection(this.button,txt);
		Popup.remove(); return false;
	};
	s.onkeyup=config.quickEdit.keyup;
	Popup.show();
	s2.style.width=s.offsetWidth+'px';
	s.focus();
	return config.quickEdit.processed(event);"
>indsæt</a></html>
/%
|Name|QuickEdit_link|
|Source|http://www.TiddlyTools.com/#QuickEdit_link|
|Version|2.4.3|
|Author|Eric Shulman|
|License|see http://www.TiddlyTools.com/#QuickEditPlugin|
|Type|html|
|Requires|QuickEditPlugin|
|Description|quickedit - link to tiddler or external file|

Usage: see  http://www.TiddlyTools.com/#QuickEditToolbar

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="add a link to a tiddler or external file - [[link text|TiddlerName]]"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';

	var s2=createTiddlyElement(p,'select'); s2.title='filter by tag';
	s2.options[0]=new Option('filter by tag...','');
	s2.options[s2.length]=new Option('[all tiddlers]','');
	var tags=store.getTags();
	for (var t=0; t<tags.length; t++) s2.options[s2.length]=new Option(tags[t][0],tags[t][0]);
	s2.onchange=function(){
		var tag=this.value;
		var tids=tag.length?store.reverseLookup('tags',tag,true):store.reverseLookup('tags','excludeLists');
		var list=this.nextSibling.nextSibling;
		while (list.length) list.options[0]=null;
		var prompt='select a tiddler or file...';
		if (tag.length) prompt='select a tagged tiddler ['+tids.length+' matches]...';
		list.options[0]=new Option(prompt,'');
		if (!tag.length) list.options[list.length]=new Option('[browse for file...]','_file');
		for (var t=0; t<tids.length; t++) {
			list.options[list.length]=new Option(tids[t].title,tids[t].title);
			list.options[list.length-1].title=tids[t].getSubtitle();
		}
		list.size=Math.min(list.length,10);
		list.selectedIndex=0; list.focus();
		this.style.width=list.offsetWidth+'px';
		if (!tag.length) this.selectedIndex=0;
	};
	createTiddlyElement(p,'br');

	var s=createTiddlyElement(p,'select'); s.button=this;
	s.title='select a tiddler or file';
	s.options[0]=new Option('select a tiddler or file...','');
	s.options[s.length]=new Option('[browse for file...]','_file');
	var tids=store.reverseLookup('tags','excludeLists');
	for (var t=0; t<tids.length; t++) {
		s.options[s.length]=new Option(tids[t].title,tids[t].title);
		s.options[s.length-1].title=tids[t].getSubtitle();
	}
	s.size=Math.min(s.length,10);
	s.onclick=function(){ if (!this.value.length) return false;
		var title=this.value; var txt=title;
		if (title=='_file') {
			title=config.quickEdit.promptForFilename('Select a file',
				getLocalPath(document.location.href),'');
			if (!title) { this.selectedIndex=0; this.focus(); return false; }
			var txt=title.substr(title.lastIndexOf('/')+1);
		}
		var txt=prompt('Enter the text to display for this link',txt);
		if (!txt) { this.selectedIndex=0; this.focus(); return false; }
		config.quickEdit.setSelection(this.button,'[['+txt+'|'+title+']]');
		Popup.remove(); return false;
	};
	s.onkeyup=config.quickEdit.keyup;
	Popup.show();
	s2.style.width=s.offsetWidth+'px';
	s.focus();
	return config.quickEdit.processed(event);"
>link</a></html>
/%
|Name|QuickEdit_macro|
|Source|http://www.TiddlyTools.com/#QuickEdit_macro|
|Version|2.4.3|
|Author|Eric Shulman|
|License|see http://www.TiddlyTools.com/#QuickEditPlugin|
|Type|html|
|Requires|QuickEditPlugin|
|Description|quickedit - embed a macro with 'guide text'|

Usage: see  http://www.TiddlyTools.com/#QuickEditToolbar

Note:
Optional 'guideText' can be used to add suggested defaults/placeholders for specific macro parameters.
Add guideText to your own plugin-defined macros using:
	config.macros.macroName.guideText='guide text goes here';

%/<<tiddler {{
	/* define guide text for a few common TW core macros */
	config.macros.edit.guideText='fieldname #rows';
	config.macros.view.guideText='fieldname (link,wikified,date) format';
	config.macros.slider.guideText='cookie TiddlerName label tooltip';
	config.macros.option.guideText='(txtCookieName,chkCookieName)';
	config.macros.tiddler.guideText='TiddlerName with: params...';
	''; /* must return blank to suppress output */ }}>>/%

%/<html><hide linebreaks><a href='javascript:;' class='tiddlyLink' tabindex='-1' 
title='tilføj en makro - \<\<makroNavn ...\>\>'
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('select a macro...','');
	var macros=[]; for (var m in config.macros) if (config.macros[m].handler) macros.push(m); macros.sort();
	for (var i=0; i<macros.length; i++) { var m=macros[i];
		var help=config.macros[m].guideText; if (!help) help=''; else help=' '+help;
		s.options[s.length]=new Option(m,m+help);
		s.options[s.length-1].title='\<\<'+m+help+'\>\>';
	}
	s.size=Math.min(s.length,15);
	s.onclick=function(){ if (!this.value.length) return;
		config.quickEdit.setSelection(this.button,'\<\<'+this.value+'\>\>');
		Popup.remove(); return false;
	};
	s.onkeyup=config.quickEdit.keyup;
	Popup.show();
	s.focus();
	return config.quickEdit.processed(event);"
>makro</a></html>
/%
|Name|QuickEdit_replace|
|Source|http://www.TiddlyTools.com/#QuickEdit_replace|
|Version|2.4.5|
|Author|Eric Shulman|
|License|see http://www.TiddlyTools.com/#QuickEditPlugin|
|Type|html|
|Requires|QuickEditPlugin|
|Description|quickedit - find/replace selected text with replacement text|

Usage: see  http://www.TiddlyTools.com/#QuickEditToolbar
!!!Revisions
<<<
2010.12.26 2.4.5 fix use getField(this) to support hijacks by editSectionPlugin
<<<
%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="find/erstat valgt tekst med anden tekst"
onclick="var p=Popup.create(this,null,'popup sticky smallform'); if (!p) return false;
	var e=config.quickEdit.getField(this);
	var s=config.quickEdit.getSelection(e); 
	var t=createTiddlyElement(p,'input'); t.onfocus=function(){this.select()};
	t.value=s.length?s:'skriv måltekst';
	var r=createTiddlyElement(p,'input'); r.onfocus=function(){this.select()};
	r.value='skriv tekst der skal erstattes';
	var b=createTiddlyElement(p,'button',null,null,'?');
	b.style.width='2em';
	b.title='FIND/FIND NÆSTE måltekst';
	b.root=this;
	b.onclick=function(ev) { /* FIND */
		var e=config.quickEdit.getField(this.root);
		var t=this.previousSibling.previousSibling;
		var tv=t.value.replace(/\\t/mg,'\t').unescapeLineBreaks();
		e.focus();
		if (e.setSelectionRange) { /* MOZ */
			var newstart=e.value.indexOf(tv,e.selectionStart+1);
			if (newstart==-1) newstart=e.value.indexOf(tv); /* wrap around */
			if (newstart==-1) { alert('\u0022'+t.value+'\u0022 not found'); t.focus(); return; }
			e.setSelectionRange(newstart,newstart+tv.length);
			var linecount=e.value.split('\n').length;
			var thisline=e.value.substr(0,e.selectionStart).split('\n').length;
			e.scrollTop=Math.floor((thisline-1-e.rows/2)*e.scrollHeight/linecount);
		} else if (document.selection) { /* IE */
			var range=document.selection.createRange();
			if(range.parentElement()==e) {
				range.collapse(false);
				var found=false; try{found=range.findText(v,e.value.length,4)}catch(e){}
				if (found) range.select();
				else { alert('\u0022'+t.value+'\u0022 not found'); t.focus(); }
			}
		}
	};
	b=createTiddlyElement(p,'button',null,null,'=');
	b.style.width='2em';
	b.title='ERSTAT valgt tekst';
	b.root=this;
	b.onclick=function(ev) { /* REPLACE */
		var e=config.quickEdit.getField(this.root);
		var t=this.previousSibling.previousSibling.previousSibling;
		var r=this.previousSibling.previousSibling;
		var rv=r.value.replace(/\\t/mg,'\t').unescapeLineBreaks();
		if (   (e.selectionStart!==undefined && e.selectionEnd==e.selectionStart)
		    || (document.selection && document.selection.createRange().text==''))
			this.previousSibling.click(); /* no selection... do FIND first */
		if (   (e.selectionStart!==undefined && e.selectionEnd==e.selectionStart)
		    || (document.selection && document.selection.createRange().text==''))
			{ t.focus(); return; } /* still no selection... goto target input */
		e.focus(); replaceSelection(e,rv);
	};
	b=createTiddlyElement(p,'button',null,null,'+');
	b.style.width='2em';
	b.title='ERSTAT valgt tekst OG FIND NÆSTE MÅLTEKST';
	b.onclick=function(ev) { /* REPLACE and FIND NEXT */
		this.previousSibling.click();
		this.previousSibling.previousSibling.click();
	};
	b=createTiddlyElement(p,'button',null,null,'!');
	b.style.width='2em';
	b.title='ERSTAT ALLE forekomster af målteksten';
	b.root=this;
	b.onclick=function(ev) { /* REPLACE ALL */
		var e=config.quickEdit.getField(this.root);
		var t=this.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling;
		var r=this.previousSibling.previousSibling.previousSibling.previousSibling;
		var tv=t.value.replace(/\\t/mg,'\t').unescapeLineBreaks();
		var rv=r.value.replace(/\\t/mg,'\t').unescapeLineBreaks();
		if (!tv.length) { alert('Please enter the target text'); t.focus(); return; }
		var m='Dette vil erstatte alle forekomster af:\n\n'+tv+'\n\nwith:\n\n'+rv+'\n\nEr du sikker?';
		if (!confirm(m)) { r.focus(); r.select(); return; }
		e.value=e.value.replace(new RegExp(tv.escapeRegExp(),'gm'),rv);
		e.focus(); e.select(); Popup.remove();
	};
	Popup.show();
	if (!s.length) {t.focus();t.select()} else {r.focus();r.select()}
	event.cancelBubble=true;if(event.stopPropagation)event.stopPropagation();return false;"
>erstat</a></html>
/%
|Name|QuickEdit_sort|
|Source|http://www.TiddlyTools.com/#QuickEdit_sort|
|Version|2.4.3|
|Author|Eric Shulman|
|License|see http://www.TiddlyTools.com/#QuickEditPlugin|
|Type|html|
|Requires|QuickEditPlugin|
|Description|quickedit - sort lines of text|

Usage: see  http://www.TiddlyTools.com/#QuickEditToolbar

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="sortér tekstlinier"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('vælg sorteringsorden...','');
	s.options[s.length]=new Option('stigende','A');
	s.options[s.length-1].title='ascending';
	s.options[s.length]=new Option('faldende','D');
	s.options[s.length-1].title='descending';
	s.size=s.length;
	s.onclick=function(){ if (!this.value.length) return;
		var e=config.quickEdit.getField(this.button); if (!e) return false;
		var lines=config.quickEdit.getSelection(e).split('\n').sort();
		if (this.value=='D') lines=lines.reverse();
		replaceSelection(e,lines.join('\n'));
		e.focus();
		Popup.remove(); return false;
	};
	s.onkeyup=config.quickEdit.keyup;
	Popup.show();
	s.focus();
	return config.quickEdit.processed(event);"
>sortér</a></html>
/%
|Name|QuickEdit_split|
|Source|http://www.TiddlyTools.com/#QuickEdit_split|
|Version|2.4.3|
|Author|Eric Shulman|
|License|see http://www.TiddlyTools.com/#QuickEditPlugin|
|Type|html|
|Requires|QuickEditPlugin|
|Description|quickedit - move selection to new tiddler and insert link, embedded tiddler, or slider|

Usage: see  http://www.TiddlyTools.com/#QuickEditToolbar

Based on ideas originally developed by YannPerrin
(http://yann.perrin.googlepages.com/twkd.html#easySlicer)

%/<html><hide linebreaks><a href="javascript:;" class="tiddlyLink" tabindex="-1" 
title="flyt det markerede til en ny tiddler og indsæt et link, en indlejret tiddler, eller en slider"
onclick="var p=Popup.create(this); if (!p) return false; p.className+=' sticky smallform';
	p.style.whiteSpace='nowrap';
	var i=createTiddlyElement(p,'input');
	i.defaultValue='Skriv titelen på en ny tiddler';
	i.onfocus=function(){this.select()};
	var s=createTiddlyElement(p,'select'); s.button=this;
	s.options[0]=new Option('vælg type...','');
	s.options[0].title='vælg opdelingstype';
	s.options[1]=new Option('link','link');
	s.options[1].title='erstat med [[TiddlerNavn]]';
	s.options[2]=new Option('embed','embed');
	s.options[2].title='erstat med\<\<tiddler TiddlerName\>\>';
	s.options[3]=new Option('slider','slider');
	s.options[3].title='erstat med \<\<slider \u0022\u0022 [[TiddlerNavn]] [[etiket]] [[værktøjstip]]\>\>';
	s.onchange=function(){
		if (s.previousSibling.value==s.previousSibling.defaultValue)
			{ alert('A tiddler title is required'); s.selectedIndex=0; s.previousSibling.focus(); return false; }
		var tid=s.previousSibling.value;
		if (store.tiddlerExists(tid) && !confirm(config.messages.overwriteWarning.format([tid])))
			{ s.previousSibling.focus(); return false; }
		switch(s.value) {
			case 'link':
				var newtxt='[['+tid+']]';
				break;
			case 'embed':
				var newtxt='\<\<tiddler [['+tid+']]\>\>';
				break;
			case 'slider':
				var label=prompt('Skriv en slider-etiket',tid);
				if (!label) { Popup.remove(); return false; }
				var tip=prompt('Skriv et slider værktøjstip',label);
				if (!tip) { Popup.remove(); return false; }
				var newtxt='\<\<slider \u0022\u0022 [['+tid+']] [['+label+']] [['+tip+']]\>\>';
				break;
		}
		var txt=config.quickEdit.getSelection(config.quickEdit.getField(this.button));
		store.saveTiddler(tid,tid,txt,config.options.txtUserName,new Date(),[],{});
		story.displayTiddler(story.findContainingTiddler(this.button),tid);
		config.quickEdit.setSelection(this.button,newtxt);
		Popup.remove(); return false;
	};
	Popup.show();
	event.cancelBubble=true;if(event.stopPropagation)event.stopPropagation();return false;"
>opdel</a></html>
/***
|Name:|QuickOpenTagPlugin|
|Description:|Changes tag links to make it easier to open tags as tiddlers|
|Version:|3.0.1 ($Rev: 3861 $)|
|Date:|$Date: 2008-03-08 10:53:09 +1000 (Sat, 08 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#QuickOpenTagPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
***/
//{{{
config.quickOpenTag = {

	dropdownChar: (document.all ? "\u25bc" : "\u25be"), // the little one doesn't work in IE?

	createTagButton: function(place,tag,excludeTiddler) {
		// little hack so we can do this: <<tag PrettyTagName|RealTagName>>
		var splitTag = tag.split("|");
		var pretty = tag;
		if (splitTag.length == 2) {
			tag = splitTag[1];
			pretty = splitTag[0];
		}
		
		var sp = createTiddlyElement(place,"span",null,"quickopentag");
		createTiddlyText(createTiddlyLink(sp,tag,false),pretty);
		
		var theTag = createTiddlyButton(sp,config.quickOpenTag.dropdownChar,
                        config.views.wikified.tag.tooltip.format([tag]),onClickTag);
		theTag.setAttribute("tag",tag);
		if (excludeTiddler)
			theTag.setAttribute("tiddler",excludeTiddler);
    		return(theTag);
	},

	miniTagHandler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var tagged = store.getTaggedTiddlers(tiddler.title);
		if (tagged.length > 0) {
			var theTag = createTiddlyButton(place,config.quickOpenTag.dropdownChar,
                        	config.views.wikified.tag.tooltip.format([tiddler.title]),onClickTag);
			theTag.setAttribute("tag",tiddler.title);
			theTag.className = "miniTag";
		}
	},

	allTagsHandler: function(place,macroName,params) {
		var tags = store.getTags(params[0]);
		var filter = params[1]; // new feature
		var ul = createTiddlyElement(place,"ul");
		if(tags.length == 0)
			createTiddlyElement(ul,"li",null,"listTitle",this.noTags);
		for(var t=0; t<tags.length; t++) {
			var title = tags[t][0];
			if (!filter || (title.match(new RegExp('^'+filter)))) {
				var info = getTiddlyLinkInfo(title);
				var theListItem =createTiddlyElement(ul,"li");
				var theLink = createTiddlyLink(theListItem,tags[t][0],true);
				var theCount = " (" + tags[t][1] + ")";
				theLink.appendChild(document.createTextNode(theCount));
				var theDropDownBtn = createTiddlyButton(theListItem," " +
					config.quickOpenTag.dropdownChar,this.tooltip.format([tags[t][0]]),onClickTag);
				theDropDownBtn.setAttribute("tag",tags[t][0]);
			}
		}
	},

	// todo fix these up a bit
	styles: [
"/*{{{*/",
"/* created by QuickOpenTagPlugin */",
".tagglyTagged .quickopentag, .tagged .quickopentag ",
"	{ margin-right:1.2em; border:1px solid #eee; padding:2px; padding-right:0px; padding-left:1px; }",
".quickopentag .tiddlyLink { padding:2px; padding-left:3px; }",
".quickopentag a.button { padding:1px; padding-left:2px; padding-right:2px;}",
"/* extra specificity to make it work right */",
"#displayArea .viewer .quickopentag a.button, ",
"#displayArea .viewer .quickopentag a.tiddyLink, ",
"#mainMenu .quickopentag a.tiddyLink, ",
"#mainMenu .quickopentag a.tiddyLink ",
"	{ border:0px solid black; }",
"#displayArea .viewer .quickopentag a.button, ",
"#mainMenu .quickopentag a.button ",
"	{ margin-left:0px; padding-left:2px; }",
"#displayArea .viewer .quickopentag a.tiddlyLink, ",
"#mainMenu .quickopentag a.tiddlyLink ",
"	{ margin-right:0px; padding-right:0px; padding-left:0px; margin-left:0px; }",
"a.miniTag {font-size:150%;} ",
"#mainMenu .quickopentag a.button ",
"	/* looks better in right justified main menus */",
"	{ margin-left:0px; padding-left:2px; margin-right:0px; padding-right:0px; }", 
"#topMenu .quickopentag { padding:0px; margin:0px; border:0px; }",
"#topMenu .quickopentag .tiddlyLink { padding-right:1px; margin-right:0px; }",
"#topMenu .quickopentag .button { padding-left:1px; margin-left:0px; border:0px; }",
"/*}}}*/",
		""].join("\n"),

	init: function() {
		// we fully replace these builtins. can't hijack them easily
		window.createTagButton = this.createTagButton;
		config.macros.allTags.handler = this.allTagsHandler;
		config.macros.miniTag = { handler: this.miniTagHandler };
		config.shadowTiddlers["QuickOpenTagStyles"] = this.styles;
		store.addNotification("QuickOpenTagStyles",refreshStyles);
	}
}

config.quickOpenTag.init();

//}}}

/***
|''Name''|RandomColorPalettePlugin|
|''Description''|Adds a random color palette to TiddlyWiki|
|''Author''|Jon Robson|
|''Version''|1.2.11|
|''Status''|stable|
|''Source''|http://svn.tiddlywiki.org/Trunk/contributors/JonRobson/plugins/RandomColorPalettePlugin/RandomColorPalettePlugin.js|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
!Usage
{{{
<<RandomColorPalette>>
}}}
Sets and saves a random color palette on execution

{{{
<<RandomColorPaletteButton>>
}}}
Creates a button, which when clicked will change the color palette
More information at http://macros.tiddlyspace.com/#%5B%5BRandomColorPaletteButton%20macro%5D%5D
!Code
***/
//{{{
(function($){
	RGB.prototype.toRGBString = function() {
		return "rgb(%0,%1,%2)".format(parseInt(this.r * 255, 10),
			parseInt(this.g * 255, 10), parseInt(this.b * 255, 10))
	}
	function HSL_TO_RGB(h, s, l) { // h (hue) between 0 and 360, s (saturation) & l (lightness) between 0 and 1
		var c = l <= 0.5 ? 2 * l * s : ( 2 - (2 * l)) * s;
		var h1 = h / 60;
		var x = c * (1 - Math.abs((h1 % 2) - 1)); 
		var r, g, b;
		if(typeof(h) == 'undefined') {
			r = 0;
			g = 0;
			b = 0;
		} else if(0 <= h1 && h1 < 1) {
			r = c;
			g = x;
			b = 0;
		} else if(1 <= h1 && h1 < 2) {
			r = x;
			g = c;
			b = 0;
		} else if(2 <= h1 && h1 < 3) {
			r = 0;
			g = c;
			b = x;
		} else if(3 <= h1 && h1 < 4) {
			r = 0;
			g = x;
			b = c;
		} else if(4 <= h1 && h1 < 5) {
			r = x;
			g = 0;
			b = c;
		} else if(5 <= h1 && h1 < 6) {
			r = c;
			g = 0;
			b = x;
		}
		m = l - (0.5 * c);
		return new RGB(r + m, g + m, b + m);
	}

	var macro = config.macros.RandomColorPalette = {
		messagesOn: false, 
		changedPaletteText: "We have assigned you a random theme by adjusting the [[ColorPalette]] tiddler.\nDon't like it? Click <<RandomColorPalette>> for another one.", 
		handler: function(place, macroName, params, wikifier, paramString, tiddler) {
			paramString = paramString || "";
			var options = paramString.parseParams("name", null, true, false, true)[0];
			macro.generatePalette(options, true);
		},
		generateRandomNumber: function(min, max, info) {
			var num = (Math.random() * 1);
			info = !info ? { attempts:0 } : info;
			info.attempts += 1;
			var good = true;
			if(min == max) {
				return max;
			}
			if(min && num < min) {
				good = false;
			} else if(max && num > max) {
				good = false;
			}
			if(!good) {
				if(info.attempts < 5) {
					return macro.generateRandomNumber(min, max, info);
				} else {
					if(max) {
						return max;
					} else if(min) {
						return min;
					} else {
						return 1;
					}
				}
			}
			return num;
		},
		getExistingPalette: function(asJSON) {
			var title = "ColorPalette";
			var tiddlerText;
			if(store.tiddlerExists(title)) {
				tiddlerText = store.getTiddlerText(title);
			} else if(store.isShadowTiddler(title)){
				tiddlerText = config.shadowTiddlers[title];
			}
			if(asJSON) {
				var json = {};
				if(tiddlerText) {
					var lines = tiddlerText.split("\n");
					for(var i = 0; i < lines.length; i++) {
						var definition = lines[i].split(":");
						if(definition.length == 2) {
							var name = definition[0].trim();
							var value = definition[1].trim();
							json[name] = value;
						}
					}
				}
				return json;
			} else {
				return tiddlerText;
			}
		},
		generatePalette: function(options, save) {
			var outputRGB = options.rgb && options.rgb[0];
			var palette = macro.getExistingPalette(true);
			var hue = options.hue ? parseInt(options.hue[0]) : Math.floor(Math.random() * 359);
			var saturation = options.saturation ? parseFloat(options.saturation[0]) : macro.generateRandomNumber(0.3, 0.7);
			var dark = options.darkest ? parseFloat(options.darkest[0]) : macro.generateRandomNumber(0, 0.10);
			var pale = options.lightness ? parseFloat(options.lightness[0]) : macro.generateRandomNumber(0.90, 1);
			var delta = ( ( pale - dark ) / 3 );
			var lightness_values = {Dark:dark, Mid: dark + delta, Light: dark + (delta * 2), Pale:pale};

			var opposite_hue = (hue + 180) % 360;
			var seed = options.huevariance ? options.huevariance[0] : Math.floor((85 * Math.random()) + 5); // we want it to be at least 5 degrees
			var huetwo = (opposite_hue + seed) % 360;
			var huethree = (opposite_hue - seed) % 360;
			if(huetwo < 0) {
				huetwo = 360 + huetwo;
			}
			if(huethree < 0) {
				huethree = 360 + huethree;
			}
			for(var j in lightness_values) {
				if(true) {
					palette["Primary" + j] = HSL_TO_RGB(hue, saturation, lightness_values[j]);
					palette["Secondary" + j] = HSL_TO_RGB(huetwo, saturation, lightness_values[j]);
					palette["Tertiary" + j] = HSL_TO_RGB(huethree, saturation, lightness_values[j]);
				}
			}
			palette.Background = HSL_TO_RGB(hue, saturation, 0.92);
			palette.Foreground = HSL_TO_RGB(hue, saturation, 0.08);
			palette.ColorPaletteParameters = ["HSL([", hue, "|", seed, "], [", saturation, "],",
				"[", dark, "|", pale, "])"].join("");
			// construct new ColorPalette
			var text = ["/*{{{*/\n"];
			var colorcode;
			for(var id in palette) {
				if(true) {
					var color = palette[id];
					colorcode = outputRGB ? color.toRGBString() : color.toString();
					text.push("%0: %1\n".format(id, colorcode));
				}
			}
			text.push("/*}}}*/");
			text = text.join("");
			if(save) {
				macro.saveColorPalette(text);
			}
			return text;
		},
		saveColorPalette: function(text) {
			var tid = store.getTiddler("ColorPalette");
			if(!tid) {
				tid = new Tiddler("ColorPalette");
				tid.fields = merge({}, config.defaultCustomFields);
			} // TODO: detect that the ColorPalette in the space comes from outside recipe
			tid.fields["server.page.revision"] = "false"; // edit conflicts dont matter

			// save the color palette in tid
			tid = store.saveTiddler(tid.title, tid.title, text, tid.modifier, tid.modified,
				tid.tags, tid.fields, false, tid.created, tid.creator);
			// an interval is used to cope with users clicking on the palette button quickly.
			if(macro._nextSave) {
				window.clearTimeout(macro._nextSave);
			}
			macro._nextSave = window.setTimeout(function() {
					autoSaveChanges(null, [tid]);
				}, 2000);
			// temporary workaround for IE.
			$.twStylesheet.remove({ id: "StyleSheetColors" });
			$.twStylesheet.remove({ id: "StyleSheet" });
			refreshAll();
			macro.reportChange();
			return tid;
		},
		reportChange: function() {
			if(macro.messagesOn) { // only display message once..
				var msgPlace = getMessageDiv();
				if(!$(".changedPalette", msgPlace)[0]) {
					var tempPlace = document.createElement("div");
					wikify("{{changedPalette{" + macro.changedPaletteText + "}}}", tempPlace);
					msgPlace.appendChild(tempPlace);
				}
			}
		}
	};
	config.macros.RandomColorPaletteButton = {
			text: "New ColorPalette",
			tooltip: "Generate a random colour scheme for your TiddlyWiki",
			handler: function(place, macroName, params, wikifier, paramString, tiddler) {
				var btnHandler = function(ev) {
					macro.handler(place, macroName, params, wikifier, paramString, tiddler);
					return false;
				};
				createTiddlyButton(place, this.text, this.tooltip, btnHandler);
			}
	};
})(jQuery);
//}}}
/%
!info
|Name|RefreshPageDisplay|
|Source|http://www.TiddlyTools.com/#RefreshPageDisplay|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|transclusion|
|Description|create a link to redraw all page elements without restarting|
Usage
<<<
{{{
<<tiddler RefreshPageDisplay>>
<<tiddler RefreshPageDisplay with: label>>
}}}
<<<
Example
<<<
{{{<<tiddler RefreshPageDisplay with: "click me">>}}}
<<tiddler RefreshPageDisplay##show with: "click me">>
<<<
!end
!show
<html><nowiki><a href="javascript:;" title="Redisplay current page content WITHOUT RESTARTING!"
onmouseover="
	this.href='javascript:void(eval(decodeURIComponent(%22(function(){try{('
	+encodeURIComponent(encodeURIComponent(this.onclick))
	+')()}catch(e){alert(e.description?e.description:e.toString())}})()%22)))';"
onclick="
	story.forEachTiddler(function(t,e){story.refreshTiddler(t,null,true)});
	refreshDisplay();
 	return false;"
>$1</a></html>
!end
%/<<tiddler {{var src='RefreshPageDisplay'; src+(tiddler&&tiddler.title==src?'##info':'##show')}}
	with: {{'$1'=='$'+'1'?'refresh page display':'$1'}}>>
/%
!info
|Name|RefreshTiddler|
|Source|http://www.TiddlyTools.com/#RefreshTiddler|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|transclusion|
|Description|create a link to force an immediate refresh of the current tiddler|
Usage
<<<
{{{
<<tiddler RefreshTiddler>>
<<tiddler RefreshTiddler with: label tip>>
}}}
<<<
Example
<<<
{{{<<tiddler RefreshTiddler with: "click me">>}}}
<<tiddler RefreshTiddler##show with: "click me">>
content displayed at <<today 0hh:0mm:0ss>>
<<<
!end
!show
<html><nowiki><a href="javascript:;" title="$2"
onclick="
	var here=story.findContainingTiddler(this);
	if (here) story.refreshTiddler(here.getAttribute('tiddler'),null,true);
	return false;
">$1</a></html>
!end
%/<<tiddler {{var src='RefreshTiddler'; src+(tiddler&&tiddler.title==src?'##info':'##show')}}
	with:	{{'$1'!='$'+'1'?'$1':'refresh'}}
		{{'$2'!='$'+'2'?'$2':'redisplay current tiddler content'}}
>>
It is easy to make Quickset-Puppy from Puppy live CD. Follow next steps.

#Start up Puppy from original Puppy live CD with 'puppy pfix=ram' boot option.
#Set up Xvesa, no matter which pixel size.
#Install optional packages(optional).
**pupsaveconfig-xxx.pet
**grub4dosconfig-xxx.pet
**frugalinstaller-xxx.pet
**winfonts-xxx.pet
**net-setup-xxx.pet
**remasterpup2
#Install firstsetup-xxx.pet.
#Restart X
#Firstetup: Set Xvesa 800x600, default locale, timezone and keyboard.
#Launch remasterpup2.
#After remasterpup2 makes pup-xxx.sfs, arrange files in /mnt/PARTITION/puppylivecdbuild as follows. Others like *.msg, isolinux.*, logo.16 shold be deleted.
**vmlinuz ... keep the original
**initrd.gz ... keep the original
**pup-xxx.sfs ... remastered
**grldr ... from /usr/lib/grub4dos
**splash.xpm ... from /usr/share/doc/quicksetup. Or you can replace another .xpm graphic file with 640x480-size, 14-bit-index color.
**README.HTM ... from /usr/share/doc/quicksetup. You can edit.
**menu.lst ... from /usr/share/doc/quicksetup. You may need to edit the titles.
#Create remastered live CD or .iso following remasterpup2.
/***
|Name:|RenameTagsPlugin|
|Description:|Allows you to easily rename or delete tags across multiple tiddlers|
|Version:|3.0a|
|Date:|27-Jun-2011|
|Source:|http://mptw.tiddlyspot.com/#RenameTagsPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License|http://mptw.tiddlyspot.com/#TheBSDLicense|
Rename a tag and you will be prompted to rename it in all its tagged tiddlers.
***/
//{{{
config.renameTags = {

  prompts: {
    rename: "Rename the tag '%0' to '%1' in %2 tidder%3?",
    remove: "Remove the tag '%0' from %1 tidder%2?"
  },

  removeTag: function(tag,tiddlers) {
    store.suspendNotifications();
    for (var i=0;i<tiddlers.length;i++) {
      store.setTiddlerTag(tiddlers[i].title,false,tag);
    }
    store.resumeNotifications();
    store.notifyAll();
  },

  renameTag: function(oldTag,newTag,tiddlers) {
    store.suspendNotifications();
    for (var i=0;i<tiddlers.length;i++) {
      store.setTiddlerTag(tiddlers[i].title,false,oldTag); // remove old
      store.setTiddlerTag(tiddlers[i].title,true,newTag);  // add new
    }
    store.resumeNotifications();
    store.notifyAll();
  },

  storeMethods: {

    saveTiddler_orig_renameTags: TiddlyWiki.prototype.saveTiddler,

    saveTiddler: function(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created,creator) {
      if (title != newTitle) {
        var tagged = this.getTaggedTiddlers(title);
        if (tagged.length > 0) {
          // then we are renaming a tag
          if (confirm(config.renameTags.prompts.rename.format([title,newTitle,tagged.length,tagged.length>1?"s":""])))
            config.renameTags.renameTag(title,newTitle,tagged);

          if (!this.tiddlerExists(title) && newBody == "")
            // dont create unwanted tiddler
            return null;
        }
      }
      return this.saveTiddler_orig_renameTags(title,newTitle,newBody,modifier,modified,tags,fields,clearChangeCount,created,creator);
    },

    removeTiddler_orig_renameTags: TiddlyWiki.prototype.removeTiddler,

    removeTiddler: function(title) {
      var tagged = this.getTaggedTiddlers(title);
      if (tagged.length > 0)
        if (confirm(config.renameTags.prompts.remove.format([title,tagged.length,tagged.length>1?"s":""])))
          config.renameTags.removeTag(title,tagged);
      return this.removeTiddler_orig_renameTags(title);
    }

  },

  init: function() {
    merge(TiddlyWiki.prototype,this.storeMethods);
  }
}

config.renameTags.init();

//}}}
/*{{{*/
Background: #f4e0e4
Foreground: #1e0a0e
PrimaryPale: #f1d9dd
PrimaryLight: #d48695
PrimaryMid: #ae3d52
PrimaryDark: #0a0304
SecondaryPale: #d9edf1
SecondaryLight: #86c6d4
SecondaryMid: #3d9aae
SecondaryDark: #03080a
TertiaryPale: #d9f1e4
TertiaryLight: #86d4a9
TertiaryMid: #3dae70
TertiaryDark: #030a06
Error: #faa
SelectedPale: #dafaff
SelectedLight: #459BF9
SelectedDark: #07f
TiddlySlidyLight: #50a0fc
TiddlySlidyMid: #2d00ff
TiddlySlidyDark: #0069dd
ColorPaletteParameters: HSL([349|22], [0.47887320700101554],[0.027034801431000233|0.8998974852729589])
/*}}}*/
/***
|ModName|SearchOptionsPlugin_da|
|BasedOn|SearchOptionsPlugin|
|Source|http://klasser.tiddlyspace.com/#SearchOptionsPlugin_da|
|OrigSource|http://www.TiddlyTools.com/#SearchOptionsPlugin|
|Documentation|http://www.TiddlyTools.com/#SearchOptionsPluginInfo|
|Version|3.0.7|
|Author|Eric Shulman|
|Translator|Måns Mårtensson|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|extend core search function with additional user-configurable options|
Adds extra options to core search function including selecting which data items to search, enabling/disabling incremental key-by-key searches, and generating a ''list of matching tiddlers'' instead of immediately displaying all matches.  This plugin also adds syntax for rendering 'search links' within tiddler content to embed one-click searches using pre-defined 'hard-coded' search terms.
!!!!!Documentation
>see [[SearchOptionsPluginInfo]]
!!!!!Configuration
<<<
Search in:
<<option chkSearchTitles>> titles <<option chkSearchText>> text <<option chkSearchTags>> tags <<option chkSearchFields>> fields <<option chkSearchShadows>> shadows
<<option chkSearchHighlight>> Highlight matching text in displayed tiddlers
<<option chkSearchList>> Show list of matches
<<option chkSearchListTiddler>> Write list to [[SearchResults]] tiddler
<<option chkSearchTitlesFirst>> Show title matches first
<<option chkSearchByDate>> Sort matching tiddlers by modification date (most recent first)
<<option chkSearchResultsOptions>> Include {{{options...}}} slider in "search again" form
<<option chkIncrementalSearch>> Incremental key-by-key search: {{twochar{<<option txtIncrementalSearchMin>>}}} or more characters,  {{threechar{<<option txtIncrementalSearchDelay>>}}} msec delay
<<option chkSearchOpenTiddlers>> Search only in tiddlers that are currently displayed
<<option chkSearchExcludeTags>> Exclude tiddlers tagged with: <<option txtSearchExcludeTags>>
<<<
!!!!!Revisions
<<<
2010.05.03 3.0.8 added chkSearchResultsOptions to allow/omit the "options..." slider from the "search again" form
|please see [[SearchOptionsPluginInfo]] for additional revision details|
2005.10.18 1.0.0 Initial Release
<<<
!!!!!Code
***/
//{{{
version.extensions.SearchOptionsPlugin= {major: 3, minor: 0, revision: 8, date: new Date(2010,5,3)};

var defaults={
	chkSearchTitles:	true,
	chkSearchText:		true,
	chkSearchTags:		true,
	chkSearchFields:	true,
	chkSearchTitlesFirst:	true,
	chkSearchList:		true,
	chkSearchHighlight:	true,
	chkSearchListTiddler:	false,
	chkSearchByDate:	false,
	chkIncrementalSearch:	true,
	chkSearchShadows:	true,
	chkSearchOpenTiddlers:	false,
	chkSearchResultsOptions:true,
	chkSearchExcludeTags:	true,
	txtSearchExcludeTags:	'excludeSearch',
	txtIncrementalSearchDelay:	500,
	txtIncrementalSearchMin:	3
}; for (var id in defaults) if (config.options[id]===undefined)
	config.options[id]=defaults[id];

if (config.macros.search.reportTitle==undefined)
	config.macros.search.reportTitle="SearchResults"; // note: not a cookie!
config.macros.search.label+="\xa0"; // a little bit of space just because it looks better
//}}}
// // searchLink: {{{[search[text to find]] OR [search[text to display|text to find]]}}}
//{{{
config.formatters.push( {
	name: "searchLink",
	match: "\\[search\\[",
	lookaheadRegExp: /\[search\[(.*?)(?:\|(.*?))?\]\]/mg,
	prompt: "søg efter: '%0'",
	handler: function(w)
	{
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source);
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
			var label=lookaheadMatch[1];
			var text=lookaheadMatch[2]||label;
			var prompt=this.prompt.format([text]);
			var btn=createTiddlyButton(w.output,label,prompt,
				function(){story.search(this.getAttribute("searchText"))},"searchLink");
			btn.setAttribute("searchText",text);
			w.nextMatch = this.lookaheadRegExp.lastIndex;
		}
	}
});
//}}}
// // incremental search uses option settings instead of hard-coded delay and minimum input values
//{{{
var fn=config.macros.search.onKeyPress;
fn=fn.toString().replace(/500/g, "config.options.txtIncrementalSearchDelay||500");
fn=fn.toString().replace(/> 2/g, ">=(config.options.txtIncrementalSearchMin||3)");
eval("config.macros.search.onKeyPress="+fn);
//}}}
// // REPLACE story.search() for option to "show search results in a list"
//{{{
Story.prototype.search = function(text,useCaseSensitive,useRegExp)
{
	var co=config.options; // abbrev
	var re=new RegExp(useRegExp ? text : text.escapeRegExp(),useCaseSensitive ? "mg" : "img");
	if (config.options.chkSearchHighlight) highlightHack=re;
	var matches = store.search(re,co.chkSearchByDate?"modified":"title","");
	if (co.chkSearchByDate) matches=matches.reverse(); // most recent first
	var q = useRegExp ? "/" : "'";
	clearMessage();
	if (!matches.length) {
		if (co.chkSearchListTiddler) discardSearchResults();
		displayMessage(config.macros.search.failureMsg.format([q+text+q]));
	} else {
		if (co.chkSearchList||co.chkSearchListTiddler) 
			reportSearchResults(text,matches);
		else {
			var titles = []; for(var t=0; t<matches.length; t++) titles.push(matches[t].title);
			this.closeAllTiddlers(); story.displayTiddlers(null,titles);
			displayMessage(config.macros.search.successMsg.format([matches.length, q+text+q]));
		}
	}
	highlightHack = null;
}
//}}}
// // REPLACE store.search() for enhanced searching/sorting options
//{{{
TiddlyWiki.prototype.search = function(searchRegExp,sortField,excludeTag,match)
{
	var co=config.options; // abbrev
	var tids = this.reverseLookup("tags",excludeTag,!!match,sortField);
	var opened=[]; story.forEachTiddler(function(tid,elem){opened.push(tid);});

	// eliminate tiddlers tagged with excluded tags
	if (co.chkSearchExcludeTags&&co.txtSearchExcludeTags.length) {
		var ex=co.txtSearchExcludeTags.readBracketedList();
		var temp=[]; for(var t=tids.length-1; t>=0; t--)
			if (!tids[t].tags.containsAny(ex)) temp.push(tids[t]);
		tids=temp;
	}

	// scan for matching titles first...
	var results = [];
	if (co.chkSearchTitles) {
		for(var t=0; t<tids.length; t++) {
			if (co.chkSearchOpenTiddlers && !opened.contains(tids[t].title)) continue; 
			if(tids[t].title.search(searchRegExp)!=-1) results.push(tids[t]);
		}
		if (co.chkSearchShadows)
			for (var t in config.shadowTiddlers) {
				if (co.chkSearchOpenTiddlers && !opened.contains(t)) continue; 
				if ((t.search(searchRegExp)!=-1) && !store.tiddlerExists(t))
					results.push((new Tiddler()).assign(t,config.shadowTiddlers[t]));
			}
	}
	// then scan for matching text, tags, or field data
	for(var t=0; t<tids.length; t++) {
		if (co.chkSearchOpenTiddlers && !opened.contains(tids[t].title)) continue; 
		if (co.chkSearchText && tids[t].text.search(searchRegExp)!=-1)
			results.pushUnique(tids[t]);
		if (co.chkSearchTags && tids[t].tags.join(" ").search(searchRegExp)!=-1)
			results.pushUnique(tids[t]);
		if (co.chkSearchFields && store.forEachField!=undefined)
			store.forEachField(tids[t],
				function(tid,field,val) {
					if (val.search(searchRegExp)!=-1) results.pushUnique(tids[t]);
				},
				true); // extended fields only
	}
	// then check for matching text in shadows
	if (co.chkSearchShadows)
		for (var t in config.shadowTiddlers) {
			if (co.chkSearchOpenTiddlers && !opened.contains(t)) continue; 
			if ((config.shadowTiddlers[t].search(searchRegExp)!=-1) && !store.tiddlerExists(t))
				results.pushUnique((new Tiddler()).assign(t,config.shadowTiddlers[t]));
		}

	// if not 'titles first', or sorting by modification date,
	// re-sort results to so titles, text, tag and field matches are mixed together
	if(!sortField) sortField = "title";
	var bySortField=function(a,b){
		if(a[sortField]==b[sortField])return(0);else return(a[sortField]<b[sortField])?-1:+1;
	}
	if (!co.chkSearchTitlesFirst || co.chkSearchByDate) results.sort(bySortField);

	return results;
}
//}}}
// // HIJACK core {{{<<search>>}}} macro to add "report" and "simple inline" output
//{{{
config.macros.search.SOP_handler=config.macros.search.handler;
config.macros.search.handler = function(place,macroName,params)
{
	// if "report", use SearchOptionsPlugin report generator for inline output
	if (params[1]&&params[1].substr(0,6)=="report") {
		var keyword=params[0];
		var options=params[1].split("=")[1]; // split "report=option+option+..."
		var heading=params[2]?params[2].unescapeLineBreaks():"";
		var matches=store.search(new RegExp(keyword.escapeRegExp(),"img"),"title","excludeSearch");
		if (matches.length) wikify(heading+window.formatSearchResults(keyword,matches,options),place);
	} else if (params[1]) {
		var keyword=params[0];
		var heading=params[1]?params[1].unescapeLineBreaks():"";
		var seperator=params[2]?params[2].unescapeLineBreaks():", ";
		var matches=store.search(new RegExp(keyword.escapeRegExp(),"img"),"title","excludeSearch");
		if (matches.length) {
			var out=[];
			for (var m=0; m<matches.length; m++) out.push("[["+matches[m].title+"]]");
			wikify(heading+out.join(seperator),place);
		}
	} else
		config.macros.search.SOP_handler.apply(this,arguments);
};
//}}}
// // SearchResults panel handling
//{{{
setStylesheet(".searchResults { padding:1em 1em 0 1em; }","searchResults"); // matches std tiddler padding

config.macros.search.createPanel=function(text,matches,body) {

	function getByClass(e,c) { var d=e.getElementsByTagName("div");
		for (var i=0;i<d.length;i++) if (hasClass(d[i],c)) return d[i]; }
	var panel=createTiddlyElement(null,"div","searchPanel","searchPanel");
	this.renderPanel(panel,text,matches,body);
	var oldpanel=document.getElementById("searchPanel");
	if (!oldpanel) { // insert new panel just above tiddlers
		var da=document.getElementById("displayArea");
		da.insertBefore(panel,da.firstChild);
	} else { // if panel exists
		var oldwrap=getByClass(oldpanel,"searchResults");
		var newwrap=getByClass(panel,"searchResults");
		// if no prior content, just insert new content
		if (!oldwrap) oldpanel.insertBefore(newwrap,null);
		else {	// swap search results content but leave containing panel intact
			oldwrap.style.display='block'; // unfold wrapper if needed
			var i=oldwrap.getElementsByTagName("input")[0]; // get input field
			if (i) { var pos=this.getCursorPos(i); i.onblur=null; } // get cursor pos, ignore blur
			oldpanel.replaceChild(newwrap,oldwrap);
			panel=oldpanel; // use existing panel
		} 
	}
	this.showPanel(true,pos);
	return panel;
}

config.macros.search.renderPanel=function(panel,text,matches,body) {

	var wrap=createTiddlyElement(panel,"div",null,"searchResults");
	wrap.onmouseover = function(e){ addClass(this,"selected"); }
	wrap.onmouseout = function(e){ removeClass(this,"selected"); }
	// create toolbar: "åben alle", "fold/foldud", "luk"
	var tb=createTiddlyElement(wrap,"div",null,"toolbar");
	var b=createTiddlyButton(tb, "åben alle", "åben alle matchende tiddlere", function() {
		story.displayTiddlers(null,this.getAttribute("list").readBracketedList()); return false; },"button");
	var list=""; for(var t=0;t<matches.length;t++) list+='[['+matches[t].title+']] ';
	b.setAttribute("list",list);
	var b=createTiddlyButton(tb, "fold", "visning af søgeresultater til/fra", function() {
		config.macros.search.foldPanel(this); return false; },"button");
	var b=createTiddlyButton(tb, "luk", "fortryd søgeresultater",	function() {
		config.macros.search.showPanel(false); return false; },"button");
	createTiddlyText(createTiddlyElement(wrap,"div",null,"title"),"Søg efter: "+text); // title
	wikify(body,createTiddlyElement(wrap,"div",null,"viewer")); // report
	return panel;
}

config.macros.search.showPanel=function(show,pos) {
	var panel=document.getElementById("searchPanel");
	var i=panel.getElementsByTagName("input")[0];
	i.onfocus=show?function(){config.macros.search.stayFocused(true);}:null;
	i.onblur=show?function(){config.macros.search.stayFocused(false);}:null;
	if (show && panel.style.display=="block") { // if shown, grab focus, restore cursor
		if (i&&this.stayFocused()) { i.focus(); this.setCursorPos(i,pos); }
		return;
	}
	if(!config.options.chkAnimate) {
		panel.style.display=show?"block":"none";
		if (!show) { removeChildren(panel); config.macros.search.stayFocused(false); }
	} else {
		var s=new Slider(panel,show,false,show?"none":"children");
		s.callback=function(e,p){e.style.overflow="visible";}
		anim.startAnimating(s);
	}
	return panel;
}

config.macros.search.foldPanel=function(button) {
	var d=document.getElementById("searchPanel").getElementsByTagName("div");
	for (var i=0;i<d.length;i++) if (hasClass(d[i],"viewer")) var v=d[i]; if (!v) return;
	var show=v.style.display=="none";
	if(!config.options.chkAnimate)
		v.style.display=show?"block":"none";
	else {
		var s=new Slider(v,show,false,"none");
		s.callback=function(e,p){e.style.overflow="visible";}
		anim.startAnimating(s);
	}
	button.innerHTML=show?"fold":"foldud";
	return false;
}

config.macros.search.stayFocused=function(keep) { // TRUE/FALSE=set value, no args=get value
	if (keep===undefined) return this.keepReportInFocus;
	this.keepReportInFocus=keep;
	return keep
}	

config.macros.search.getCursorPos=function(i) {
	var s=0; var e=0; if (!i) return { start:s, end:e };
	try {
		if (i.setSelectionRange) // FF
			{ s=i.selectionStart; e=i.selectionEnd; }
		if (document.selection && document.selection.createRange) { // IE
			var r=document.selection.createRange().duplicate();
			var len=r.text.length; s=0-r.moveStart('character',-100000); e=s+len;
		}
	}catch(e){};
	return { start:s, end:e };
}
config.macros.search.setCursorPos=function(i,pos) {
	if (!i||!pos) return; var s=pos.start; var e=pos.end;
	if (i.setSelectionRange) //FF
		i.setSelectionRange(s,e);
	if (i.createTextRange) // IE
		{ var r=i.createTextRange(); r.collapse(true); r.moveStart("character",s); r.select(); }
}
//}}}
// // SearchResults report generation
// note: these functions are defined globally, so they can be more easily redefined to customize report formats//
//{{{
if (!window.reportSearchResults) window.reportSearchResults=function(text,matches)
{
	var cms=config.macros.search; // abbrev
	var body=window.formatSearchResults(text,matches);
	if (!config.options.chkSearchListTiddler) // show #searchResults panel
		window.scrollTo(0,ensureVisible(cms.createPanel(text,matches,body)));
	else { // write [[SearchResults]] tiddler
		var title=cms.reportTitle;
		var who=config.options.txtUserName;
		var when=new Date();
		var tags="excludeLists excludeSearch temporary";
		var tid=store.getTiddler(title); if (!tid) tid=new Tiddler();
		tid.set(title,body,who,when,tags);
		store.addTiddler(tid);
		story.closeTiddler(title);
		story.displayTiddler(null,title);
	}
}

if (!window.formatSearchResults) window.formatSearchResults=function(text,matches,opt)
{
	var body='';
	var title=config.macros.search.reportTitle
	var q = config.options.chkRegExpSearch ? "/" : "'";
	if (!opt) var opt="all";
	var parts=opt.split("+");
	for (var i=0; i<parts.length; i++) { var p=parts[i].toLowerCase();
		if (p=="again"||p=="all")   body+=window.formatSearchResults_again(text,matches);
		if (p=="summary"||p=="all") body+=window.formatSearchResults_summary(text,matches);
		if (p=="list"||p=="all")    body+=window.formatSearchResults_list(text,matches);
		if (p=="buttons"||p=="all") body+=window.formatSearchResults_buttons(text,matches);
	}
	return body;
}

if (!window.formatSearchResults_again) window.formatSearchResults_again=function(text,matches)
{
	var title=config.macros.search.reportTitle
	var body='';
	// search again
	body+='{{span{<<search "'+text.replace(/"/g,'&#x22;')+'">> /%\n';
	body+='%/<html><input type="button" value="søg igen"';
	body+=' onclick="var t=this.parentNode.parentNode.getElementsByTagName(\'input\')[0];';
	body+=' config.macros.search.doSearch(t); return false;">';
	if (!config.options.chkSearchResultsOptions) { // omit "muligheder..."
		body+='</html>}}}\n\n';
		return body;
	}
	body+=' <a href="javascript:;" onclick="';
	body+=' var e=this.parentNode.nextSibling;';
	body+=' var show=e.style.display!=\'block\';';
	body+=' if(!config.options.chkAnimate) e.style.display=show?\'block\':\'none\';';
	body+=' else anim.startAnimating(new Slider(e,show,false,\'none\'));';
	body+=' return false;">muligheder...</a>';
	body+='</html>@@display:none;border-left:1px dotted;margin-left:1em;padding:0;padding-left:.5em;font-size:90%;/%\n';
	body+='	%/<<option chkSearchTitles>>titler /%\n';
	body+='	%/<<option chkSearchText>>tekst /%\n';
	body+='	%/<<option chkSearchTags>>tags /%\n';
	body+='	%/<<option chkSearchFields>>felter /%\n';
	body+='	%/<<option chkSearchShadows>>skygger\n';
	body+='	<<option chkCaseSensitiveSearch>>store-små bogstaver /%\n';
	body+='	%/<<option chkRegExpSearch>>tekst mønstre /%\n';
	body+='	%/<<option chkSearchByDate>>sorteret efter dato\n';
	body+='	<<option chkSearchHighlight>> markér matchende tekst i de viste tiddlere\n';
	body+='	<<option chkIncrementalSearch>>tegn efter tegn søgning: /%\n';
	body+='	%/{{twochar{<<option txtIncrementalSearchMin>>}}} eller flere tegn, /%\n';
	body+='	%/{{threechar{<<option txtIncrementalSearchDelay>>}}} msek forsinkelse\n';
	body+='	<<option chkSearchOpenTiddlers>> søg kun i allerede åbne tiddlere\n';
	body+='	<<option chkSearchExcludeTags>>udelad tiddlere der er tagget med:\n';
	body+='	{{editor{<<option txtSearchExcludeTags>>}}}/%\n';
	body+='%/@@}}}\n\n';
	return body;
}

if (!window.formatSearchResults_summary) window.formatSearchResults_summary=function(text,matches)
{
	// summary: nn tiddlers found matching '...', options used
	var body='';
	var co=config.options; // abbrev
	var title=config.macros.search.reportTitle
	var q = co.chkRegExpSearch ? "/" : "'";
	body+="''"+config.macros.search.successMsg.format([matches.length,q+"{{{"+text+"}}}"+q])+"''\n";
	var opts=[];
	if (co.chkSearchTitles) opts.push("titler");
	if (co.chkSearchText) opts.push("tekst");
	if (co.chkSearchTags) opts.push("tags");
	if (co.chkSearchFields) opts.push("felter");
	if (co.chkSearchShadows) opts.push("skygger");
	if (co.chkSearchOpenTiddlers) body+="^^//search limited to displayed tiddlers only//^^\n";
	body+="~~&nbsp; søgte i "+opts.join(" + ")+"~~\n";
	body+=(co.chkCaseSensitiveSearch||co.chkRegExpSearch?"^^&nbsp; og brugte ":"")
		+(co.chkCaseSensitiveSearch?"case-sensitive ":"")
		+(co.chkRegExpSearch?"pattern ":"")
		+(co.chkCaseSensitiveSearch||co.chkRegExpSearch?"matching^^\n":"");
	return body;
}

if (!window.formatSearchResults_list) window.formatSearchResults_list=function(text,matches)
{
	// bullet list of links to matching tiddlers
	var body='';
	var co=config.options; // abbrev
	var pattern=co.chkRegExpSearch?text:text.escapeRegExp();
	var sensitive=co.chkCaseSensitiveSearch?"mg":"img";
	var link='{{tiddlyLinkExisting{<html><nowiki><a href="javascript:;" onclick="'
		+'if(config.options.chkSearchHighlight)'
		+'	highlightHack=new RegExp(\x27'+pattern+'\x27.escapeRegExp(),\x27'+sensitive+'\x27);'
		+'story.displayTiddler(null,\x27%0\x27);'
		+'highlightHack = null; return false;'
		+'" title="%2">%1</a></html>}}}';
	for(var t=0;t<matches.length;t++) {
		body+="* ";
		if (co.chkSearchByDate)
			body+=matches[t].modified.formatString('YYYY.0MM.0DD 0hh:0mm')+" ";
		var title=matches[t].title;
		var fixup=title.replace(/'/g,"\\x27").replace(/"/g,"\\x22");
		var tid=store.getTiddler(title);
		var tip=tid?tid.getSubtitle():''; tip=tip.replace(/"/g,"&quot;");
		body+=link.format([fixup,title,tip])+'\n';
	}
	return body;
}

if (!window.formatSearchResults_buttons) window.formatSearchResults_buttons=function(text,matches)
{
	// embed buttons only if writing SearchResults to tiddler
	if (!config.options.chkSearchListTiddler) return "";
	// "open all" button
	var title=config.macros.search.reportTitle;
	var body="";
	body+="@@diplay:block;<html><input type=\"button\" href=\"javascript:;\" "
		+"onclick=\"story.displayTiddlers(null,[";
	for(var t=0;t<matches.length;t++)
		body+="'"+matches[t].title.replace(/\'/mg,"\\'")+"'"+((t<matches.length-1)?", ":"");
	body+="],1);\" accesskey=\"O\" value=\"åben alle matchende tiddlere\"></html> ";
	// "discard SearchResults" button
	body+="<html><input type=\"button\" href=\"javascript:;\" "
		+"onclick=\"discardSearchResults()\" value=\"kassér "+title+"\"></html>";
	body+="@@\n";
	return body;
}

if (!window.discardSearchResults) window.discardSearchResults=function()
{
	// remove the tiddler
	story.closeTiddler(config.macros.search.reportTitle);
	store.deleteTiddler(config.macros.search.reportTitle);
	store.notify(config.macros.search.reportTitle,true);
}
//}}}
[[Se online manual|http://manpages.ubuntu.com/manpages/hardy/man1/searchmonkey.1.html#contenttoc10]]
[[eller her|http://www.linux-support.com/cms/en/component/content/article/28158-searchmonkey-search-files-using-regular-expressions-aiming-to-replace-man1]]
<<tiddler rox##søg2>>
!NAVN
>{{span{
SEARCHMONKEY - search files using regular expressions aiming to replace find/grep tools
}}}
!INTRODUKTION
>{{span{
SearchMonkey is a GTK+ application designed to  replace  the  find/grep command  line tools.  The aim of this utility it to provide fast, slick text search ability to the GTK community.
}}}
/***
|Name|SectionLinksPlugin|
|Source|http://www.TiddlyTools.com/#SectionLinksPlugin|
|Documentation|http://www.TiddlyTools.com/#SectionLinksPlugin|
|Version|1.4.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|allow tiddler sections in TiddlyLinks to be used as anchor points|
This plugin enhances the processing of section references so they can be used in links to auto-scroll to the indicated heading within a tiddler (i.e., similar to the 'anchor' behavior provided in HTML by {{{<a name="foo">}}} and {{{<a href="#foo">...</a>}}})
!!!Usage
<<<
!!!!~TiddlyLink syntax
>The standard link syntax has been extended so that a section name can included in a tiddler link (e.g., {{{[[SomeTiddler##SomeSection]]}}}).  When clicked, the tiddler is displayed and the specified section heading will be automatically scrolled into view. If the tiddler title is omitted or the 'here' keyword is used (e.g., {{{[[##SomeSection]]}}} or {{{[[here##SomeSection]]>>}}}), then the current containing tiddler is implied by default.
>
>//Note: the enhanced "section"" link syntax can also be used with ''anchor'' elements defined by HTML syntax://
>>{{{<html><a name="sectionname" /></html>}}}
>//This provides an alternative syntax can automatically scroll to content without requiring use of the standard TW section ''heading'' syntax.//
!!!!{{{<<tiddler>>}}} macro 
>The {{{<<tiddler SomeTiddler##SomeSection>>}}} syntax has been extended so that when the tiddler title is omitted or the 'here' keyword is used (e.g., {{{<<tiddler ##SomeSection>>}}} or {{{<<tiddler here##SomeSection>>}}}), then the current containing tiddler is implied by default.
!!!!"""<<sectionTOC>>""" macro
>This macro generates a 'Table of Contents'-style numbered-bullet list with links to all sections within the current tiddler.  Simply place the following macro at the //end of the tiddler content// (i.e., following all section headings):
{{{
<<sectionTOC>> or <<sectionTOC className>>
}}}
>Note: The macro must occur at the end of the tiddler in order to locate the rendered section headings that precede it. In addition, to position the macro's //output// within the tiddler, you must create a special 'target element' that uses a specified classname (default='sectionTOC'), like this:
{{{
{{sectionTOC{}}}
}}}
>When the {{{<<sectionTOC>>}}} macro is rendered, it will find the matching 'sectionTOC'-classed element and writes it's output there.  You can also add the macro and/or target elements directly to the [[ViewTemplate]] definition, so that every tiddler can automatically display the table of contents:
{{{
<span class='sectionTOC'></span> <!-- target element -->
...
<span macro='sectionTOC'></span> <!-- must be at end of tiddler -->
}}}
<<<
!!!Examples
<<<
links to sections defined by ''TW heading syntax'' (e.g, {{{!!!sectionname}}}):{{indent{
[[SectionLinksPlugin##onClickTiddlerLink]]
[[##onClickTiddlerLink]] //(current tiddler implied)//}}}
links to anchors defined by ''HTML syntax'' (e.g., {{{<html><a href="anchorname"></html>}}}):{{indent{
[[SectionLinksPlugin##sampleanchorlink]]
[[##sampleanchorlink]] //(current tiddler implied)//}}}
<<<
!!!Revisions
<<<
2011.02.08 1.4.1 in isExternalLink() hijack, strip section references before testing for external link
2010.08.09 1.4.0 in scrollToSection(), added support for using HTML <a name="..."> anchor elements
2009.08.21 1.3.4 added handling to ignore leading/trailing whitespace in section references
2009.08.21 1.3.3 in createTiddlyLink(), add tiddlyLinkNonExistingSection class if matching section is not found
2009.08.14 1.3.2 in createTiddlyLink(), don't override core value for ~TiddlyLink attribute
2009.08.02 1.3.1 in sectionTOC.handler(), trim leading/trailing whitespace from generated section links
2009.08.01 1.3.0 in scrollToSection(), apply 3-tier section matching (exact, startsWith, contains)
2009.07.06 1.2.2 fixed displayTiddler() hijack
2009.07.03 1.2.1 in {{{<<sectionTOC>>}}}, suppress output if target is not found
2009.06.02 1.2.0 added support for 'here' keyword in {{{[[here##section]]}}} links and {{{<<tiddler here##section>>}}} macro
2009.04.09 1.1.1 in sectionTOC macro, make target visible when TOC is rendered.
2009.01.18 1.1.0 added {{{<<sectionTOC>>}}} macro to generate numbered-bullet links to sections of current tiddler
2009.01.06 1.0.0 converted to stand-alone plugin
2008.10.14 0.0.0 initial release (as [[CoreTweaks]] #784 - http://trac.tiddlywiki.org/ticket/784)
<<<
!!!Code
***/
//{{{
version.extensions.SectionLinksPlugin= {major: 1, minor: 4, revision: 1, date: new Date(2011,2,8)};

Story.prototype.scrollToSection = function(title,section) {
	if (!title||!section) return; var t=this.getTiddler(title); if (!t) return null;
	var elems=t.getElementsByTagName('*');
	var heads=[]; var anchors=[];
	for (var i=0; i<elems.length; i++)
		if (['H1','H2','H3','H4','H5'].contains(elems[i].nodeName)) heads.push(elems[i]);
	for (var i=0; i<elems.length; i++)
		if (elems[i].nodeName=='A' && (elems[i].getAttribute('name')||'').length) anchors.push(elems[i]);
	var found=null;
	for (var i=0; i<heads.length; i++)
		if (getPlainText(heads[i]).trim()==section) { found=heads[i]; break; }
	if (!found) for (var i=0; i<heads.length; i++)
		if (getPlainText(heads[i]).trim().startsWith(section)) { found=heads[i]; break; }
	if (!found) for (var i=0; i<heads.length; i++)
		if (getPlainText(heads[i]).trim().indexOf(section)!=-1) { found=heads[i]; break; }
	if (!found) for (var i=0; i<anchors.length; i++)
		if (anchors[i].getAttribute('name')==section) { found=anchors[i]; break; }
	if (!found) for (var i=0; i<anchors.length; i++)
		if (anchors[i].getAttribute('name').startsWith(section)) { found=anchors[i]; break; }
	if (!found) for (var i=0; i<anchors.length; i++)
		if (anchors[i].getAttribute('name').indexOf(section)!=-1) { found=anchors[i]; break; }
	if (found) {
		// if section heading is collapsed, click to expand it - see [[FoldHeadingsPlugin]]
		if (hasClass(found,'foldable') && found.nextSibling.style.display=='none') found.onclick();
		// scroll *after* tiddler animation
		var delay=config.options.chkAnimate?config.animDuration+100:0;
		setTimeout('window.scrollTo('+findPosX(found)+','+findPosY(found)+')',delay);
		return found;
	}
}
//}}}
/***
!!!!core hijacks
***/
/***
!!!!!createTiddlyLink
***/
//{{{
// [[tiddlername##section]] and [[##section]]
if (!window.createTiddlyLink_section)
	window.createTiddlyLink_section=window.createTiddlyLink;
window.createTiddlyLink=function(place,title) {
	var t=story.findContainingTiddler(place); var tid=t?t.getAttribute('tiddler'):'';
	var parts=title.split(config.textPrimitives.sectionSeparator);
	var title=parts[0]; var section=parts[1]; if (section) section=section.trim();
	if (!title.length || title.toLowerCase()=='here') title=tid;  // default=current tiddler
	arguments[1]=title;
	var btn=createTiddlyLink_section.apply(this,arguments);
	if (section) {
		btn.setAttribute('section',section);
		if (store.getTiddlerText(title+config.textPrimitives.sectionSeparator+section)===null)
			addClass(btn,'tiddlyLinkNonExistingSection');
	}
	return btn;
}
//}}}
/***
!!!!!onClickTiddlerLink
***/
//{{{
if (!window.onClickTiddlerLink_section)
	window.onClickTiddlerLink_section=window.onClickTiddlerLink;
window.onClickTiddlerLink=function(ev) {
	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;
	} 
	var t=story.findContainingTiddler(target); var tid=t?t.getAttribute('tiddler'):'';
	if (title!=tid||!section) // avoid excess scrolling for intra-tiddler links
		onClickTiddlerLink_section.apply(this,arguments);
	story.scrollToSection(title,section);
	return false;
}
//}}}
/***
!!!!! displayTiddler
***/
//{{{
if (!Story.prototype.displayTiddler_section)
	Story.prototype.displayTiddler_section=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler)
{
	var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
	var parts=title.split(config.textPrimitives.sectionSeparator);
	var title=parts[0]; var section=parts[1]; if (section) section=section.trim();
	if (!title.length || title.toLowerCase()=='here') {
		var t=story.findContainingTiddler(place);
		title=t?t.getAttribute('tiddler'):'';
	}
	arguments[1]=title;  // default=current tiddler
	this.displayTiddler_section.apply(this,arguments);
	story.scrollToSection(title,section);
}
//}}}
/***
<html><a name="sampleanchorlink" /></html>This is a sample ''anchor link'': {{{<html><a name="sampleanchorlink" /></html>}}}
!!!!!isExternalLink
***/
//{{{
if (!config.formatterHelpers.isExternalLink_section)
	config.formatterHelpers.isExternalLink_section=config.formatterHelpers.isExternalLink;
config.formatterHelpers.isExternalLink=function(link) {  // remove section references before testing
	var l=link.split(config.textPrimitives.sectionSeparator)[0];
	return config.formatterHelpers.isExternalLink_section(l);
}
//}}}
/***
!!!!!tiddler.handler
***/
//{{{
if (!config.macros.tiddler.handler_section)
	config.macros.tiddler.handler_section=config.macros.tiddler.handler;
config.macros.tiddler.handler=function(place,macroName,params,wikifier,paramString,tiddler)
{
	if (!params[0]) return;
	var sep=config.textPrimitives.sectionSeparator;
	var parts=params[0].split(sep); var tid=parts[0]; var sec=parts[1]; if (sec) sec=sec.trim();
	if ((tid.toLowerCase()=='here'||!tid.length) && sec) { // fixup for 'here##section' and '##section'
		var here=story.findContainingTiddler(place)
		var tid=here?here.getAttribute('tiddler'):tiddler?tiddler.title:'';
		arguments[2][0]=tid+sep+sec;
		arguments[4]=paramString.replace(new RegExp('(here)?'+sep+sec),tid+sep+sec);
	}
	config.macros.tiddler.handler_section.apply(this,arguments);
}
//}}}
/***
!!!!sectionTOC macro
***/
//{{{
config.macros.sectionTOC = {
	targetClass: 'sectionTOC',
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var out=[];
		var targetClass=params[0]||this.targetClass;
		var t=story.findContainingTiddler(place); if (!t) return;
		var elems=t.getElementsByTagName('*');
		var level=5; // topmost heading level
		for (var i=0; i<elems.length; i++) {
			var txt=getPlainText(elems[i]).trim();
			var link='[['+txt+'|##'+txt+']]';
			switch(elems[i].nodeName) {
				case 'H1': out.push('#'+link);		level=1; break;
				case 'H2': out.push('##'+link);		level=level<2?level:2; break;
				case 'H3': out.push('###'+link);	level=level<3?level:3; break;
				case 'H4': out.push('####'+link);	level=level<4?level:4; break;
				case 'H5': out.push('#####'+link);	level=level<5?level:5; break;
				default: if (hasClass(elems[i],targetClass)) var target=elems[i];
			}
		}
		// trim excess bullet levels
		if (level>1) for (var i=0; i<out.length; i++) out[i]=out[i].substr(level-1);
		// show numbered list
		if (out.length && target) {
			if (target.style.display=='none') target.style.display='block';
			wikify(out.join('\n'),target);
		}
	}
}
//}}}
/***
!!!Invoke macro
{{{
<<sectionTOC>>
}}}
***/
// //<<sectionTOC>>
/***
Quick and dirtly palette switcher for 2.1.x
<<selectPalette>>
WARNING this will overwrite your ColorPalette tiddler.
***/

//{{{

merge(config.macros,{

	setPalette: {

		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			var paletteName = params[0] ? params[0] : tiddler.title;
			createTiddlyButton(place,"apply","Apply this palette",function(e) {
				config.macros.selectPalette.updatePalette(tiddler.title);
				return false;
			});
		}
	},

	selectPalette: {

		handler: function(place,macroName,params,wikifier,paramString,tiddler) {
			createTiddlyDropDown(place,this.onPaletteChange,this.getPalettes());
		},

		getPalettes: function() {
			var result = [
				{caption:"vælg palet", name:""},
				{caption:"(Default)", name:"(default)"}
			];
			var tagged = store.getTaggedTiddlers("palette","title");
			for(var t=0; t<tagged.length; t++)
				result.push({caption:tagged[t].title, name:tagged[t].title});
			return result;
		},

		onPaletteChange: function(e) {
			config.macros.selectPalette.updatePalette(this.value);
			return true;
		},

		updatePalette: function(title) {
			if (title != "") {
				store.deleteTiddler("ColorPalette");
				if (title != "(default)")
					store.saveTiddler("ColorPalette","ColorPalette",store.getTiddlerText(title),
								config.options.txtUserName,undefined,"");
				this.refreshPalette();
				if(config.options.chkAutoSave)
					saveChanges(true);
			}
		},

		refreshPalette: function() {
			config.macros.refreshDisplay.onClick();
		}
	}
});

//}}}
/***
|Name|SetIconPlugin|
|Source|http://www.TiddlyTools.com/#SetIconPlugin|
|Documentation|http://www.TiddlyTools.com/#SetIconPluginInfo|
|Version|1.8.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.3|
|Type|plugin|
|Description|add an image to a toolbar, macro, or slider link|
!!!!!Documentation
>see [[SetIconPluginInfo]]
!!!!!Configuration
<<<
<<option chkIconsShowImage>> show images on links
<<option chkIconsShowText>> include link text with images
default image style: {{stretch{<<option txtIconsCSS>>}}}
<<<
!!!!!Revisions
<<<
2008.05.11 [1.8.0] added optional 'notext' value for iconpos to force text to be hidden for specific links
| see [[SetIconPluginInfo]] for additional revision details |
2008.05.09 [1.0.0] initial release (as inline script)
<<<
!!!!!Code
***/
//{{{
version.extensions.SetIconPlugin= {major: 1, minor: 8, revision: 0, date: new Date(2008,5,11)};

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

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

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

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

		// adjust nested slider button text/tip
		if (btn.getAttribute("closedtext")!=null) {
			btn.setAttribute("closedtext",btn.innerHTML);
			btn.setAttribute("openedtext",btn.innerHTML);
			if (!config.options.chkIconsShowText || notext) {
				btn.setAttribute("closedtip",txt.toUpperCase()+": "+btn.getAttribute("closedtip"));
				btn.setAttribute("openedtip",txt.toUpperCase()+": "+btn.getAttribute("openedtip"));
			}
		}
	}
};
//}}}
This is the area where the majority of puppy functionality is setup or configured.
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>><<tiddler TiddlyHomeSidebar>><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">><<tiddler TspotSidebar>><<tiddler [[SideBarOptions##tema]]>><<tiddler SideBarOptions##toggleReadonly>>/%
!tema
@@position:relative;+++^^*[tema »|Skift tema eller farveskema]<<switchTheme width:auto>>
{{smallform{<<selectPalette>>}}}
<<RandomColorPaletteButton>> ⇐ [[Ny palet|ColorPalette]]  
----
===@@
!toggleReadonly
<html><nowiki><span class='button' onclick="return this.getElementsByTagName('input')[0].click();"
	title="Slå redigering af dette dokument til/fra">
<input type='checkbox' style="margin:0;padding:0;" onclick="
	window.readOnly=!this.checked;
	config.macros.option.propagateOption('chkHttpReadOnly','checked',window.readOnly,'input')
	config.macros.option.propagateOption('chkSinglePageMode','checked',window.readOnly,'input')
	window.showBackstage=!window.readOnly;
	if(showBackstage && !backstage.area) backstage.init();
	backstage.button.style.display=showBackstage?'block':'none';
	backstage.hide();
	story.switchTheme(config.options.txtTheme);
	store.notifyAll();
	story.refreshAllTiddlers(true);
	return false;
"> redigér til/fra</span></html><<tiddler {{
	var chk=place.lastChild.getElementsByTagName('input')[0];
	chk.checked=!window.readOnly;
'';}}>>
!end %/
<<tabs txtMainTab "Guide" "Menupunkter i guiden" SideBarTabs##Guide "Tidslinie" "Tidslinie" TabTimeline "Alle" "Alle tiddlere" TabAll "Tags" "Alle tags" TabTags "Flere" "Flere lister" TabMore>>/%
!Guide
{{treeview{<<treeview2 "Guide" "filetree" 'collapsed: false, antisesame: "opened", animated: "fast", persist: "cookie", cookieId: "Guide"'>> }}}
!end 
<<list filter [tag[Guide]][sort[+title]] >> 
<<tagsplorer exclude:excludeLists Guide>>
<<tagglyTagging Guide>>
%/
En guide og personlige noter til [[Puppy-abc|http://phelp.tiddlyspot.com]]
{{floatleft{
Puppy-abc
}}}/%
%//%
!image
@@display:none;Puppy-abc@@[img(auto,100%)[Puppy-abc|puppy-abc.png][Velkommen]]
!end 
%//%
%/
Skype is a VOIP (Voice Over Internet Protocol) program that has both video and audio, chat and file transfer ability.

I don't think I need to explain too much about Skype as it's very widely used.

Skype_static can be downloaded in Quickpet under the Sfs Get Tab.
Puppy Linux bliver leveret med en masse præinstalleret software - og det er alt sammen gratis!
De fleste klarer sig fint med de præinstallerede programmer men det skal ikke afholde dig fra at installere hvad du måtte ønske fra de mange online repositiories.
<<tagglyTagging [[Software]]>>.
{{{
Background:#FAFAFA
Foreground:#000
PrimaryPale:#999
PrimaryLight:#777
PrimaryMid:#111
PrimaryDark:#000
SecondaryPale:#CCF
SecondaryLight:#9AF
SecondaryMid:#69C
SecondaryDark:#05A
TertiaryPale:#EEE
TertiaryLight:#CCC
TertiaryMid:#999
TertiaryDark:#333
Error:#F88
}}}
Ordet ''standard'' bliver ofte misforstået.

Det fortæller blot hvilket program, der vil blive brugt til at åbne en datafil. 
Hvad sker der f.eks. når du klikker på en ''.au'' audiofil?

Prøv selv, klik på dette link <<LaunchApplicationLink "/usr/share/sounds/2barks.au" "åbn filen /usr/share/sounds/2barks.au""file:///usr/bin/gnome-mplayer" file:///usr/share/sounds/2barks.au>> /%(<<LaunchApplicationLink "/usr/share/sounds/2barks.au" "åbn filen /usr/share/sounds/2barks.au""file:///initrd/mnt/dev_save/PortableApps/VLC 1.1.1" file:///usr/share/sounds/2barks.au>>)%/ eller åbn mappen <<tiddler rox##mappe with:[[/usr/share/sounds/]]>> og klik på filen <<tiddler rox##fil with:[[/usr/share/sounds/]][[2barks.au]]>>.

GNOME MPLAYER blev åbnet og afspillede lyden. Sagt på en anden måde: GNOME MPLAYER er standardprogrammet til afspilning af .au filer.

Dette kan bestyres på to måder:

1. Brug ''Set Run Action'' i ROX. Klik <<tiddler rox##mappe2 with:[[/usr/share/sounds/]][[her]]>> for at åbne ROX i lydbiblioteket. Højreklik på 2barks.au, find ''Set Run Action'' i dropdownmenuen, klik på den og klik på "clear" knappen. Klik <<tiddler rox##mappe2 with:[[/usr/local/pmusic/]][[her]]>> for at åbne et andet ROX vindue, denne gang i en af programmapperne. Find pmusic, træk og "smid" den oven på det første ROX vindue, hvor der står 'Drop a suitable application here'

Når du nu klikker på <<tiddler rox##fil2 with:[[/usr/share/sounds/]][[2barks.au]]>> vil den blive afspillet med <<tiddler rox##program with:[[/usr/local/pmusic/pmusic]][[pmusic]]>>.  @@font-size:86%;//<<tiddler rox##program3 with:[[/usr/local/pmusic/pmusic]][[/usr/share/sounds/]][[2barks.au]][[(afspil 2barks.au med pmusic uden at have ændret på standardprogrammet endnu (test))]]>> ...//@@

Hvis du var opmærksom lagde du måske mærke til teksten:"(defaultaudioplayer "$1")", der stod  nedenunder "Enter a shell command".

2. Indstillingerne for hvad der bruges som standard lydafspiller for alle andre lydfiler kan også ændres. Klik <<tiddler rox##tekst2 with:[[/usr/local/bin/]][[defaultaudioplayer]][[her]]>> for at se hvad standard lydafspilleren er sat til at være. 
Som du kan se er det ''gnome-mplayer''. Hvis du erstatter ordet ''gnome-mplayer'' med ''pmusic'' så vil ''pmusic'' blive brugt hver gang standardlydafspilleren bliver aktiveret af en eller anden lydfil eller stream.

Der findes et antal standardprogrammer. 
Klik <<tiddler rox##mappe2 with:[[/usr/local/bin/]][[her]]>> for at se dem alle på een gang. 
Bemærk alle de programmer der starter med ''default''? 
Kan du se ideen? De kan alle sammen ændres.
/*{{{*/

.switcher { position: absolute; top: 1em; right: 1em; }

#tiddlerDisplay {
	margin: 1em 3em;
}

.tiddler {
	margin: 1em;
	float: left;
}

.tiddler .sticky-note {
	color:#000;  
	background:#ffc;  
	display:block; 
	height: 12em;
	width: 12em;
	padding:1em;
	-moz-box-shadow:5px 5px 7px rgba(33,33,33,1);
	-webkit-box-shadow: 5px 5px 7px rgba(33,33,33,.7);  
	box-shadow: 5px 5px 7px rgba(33,33,33,.7); 
	-moz-transition:-moz-transform .25s linear; 
	-webkit-transition:-webkit-transform .25s linear;
	-o-transition:-o-transform .25s linear; 
}

.tiddler.yellow .sticky-note { background: [[StickyColors::Yellow]];}
.tiddler.pink .sticky-note { background: #f7cce3;}
.tiddler.green .sticky-note { background: [[StickyColors::Green]];}

.sticky-note .modified-date {
	color: #999;
	font-size: 0.75em;
}

.tiddler:nth-child(even) .sticky-note{
	-o-transform:rotate(4deg);
	-webkit-transform:rotate(4deg);
	-moz-transform:rotate(4deg);
}

.tiddler .sticky-note:hover,
.tiddler:nth-child(even) .sticky-note:hover,
.tiddler:nth-child(3n) .sticky-note:hover,
.tiddler:nth-child(5n) .sticky-note:hover,
.tiddler:nth-child(7n) .sticky-note:hover {
	-moz-box-shadow:10px 10px 7px rgba(0,0,0,.7); 
   	-webkit-box-shadow:10px 10px 7px rgba(0,0,0,.7); 
   	box-shadow:10px 10px 7px rgba(0,0,0,.7); 
   	 -webkit-transform: scale(1.25);
   	 -moz-transform: scale(1.25);
   	 -o-transform: scale(1.25);
	position: relative;
	z-index: 5;
}

.tiddler:nth-child(3n) .sticky-note{
	-o-transform:rotate(-3deg);
	-webkit-transform:rotate(-3deg);
	-moz-transform:rotate(-3deg); 
}

.tiddler:nth-child(5n) .sticky-note{
	-o-transform:rotate(2deg);
	-webkit-transform:rotate(2deg);
	-moz-transform:rotate(2deg); 
}

.tiddler:nth-child(7n) .sticky-note{
	-o-transform:rotate(-10deg);
	-webkit-transform:rotate(-10deg);
	-moz-transform:rotate(-10deg); 
}

.sticky-note h2 {
	font-size: 1.3em;
	font-weight: bold;
	margin: 0 0 0 0;
	padding: 0 0 0.8em 0;
	border: none;
}

.sticky-note .viewer {
	margin: 0;
	font-family:helvetica; 
    	font-style: italic;
	padding: 0;
}

.sticky-note img { height: 8em; }

/*}}}*/
[[StyleSheetShortcuts]]
[[JqueryTreeviewCSS-B]]
[[MaloStyleSheet]]
[[MenuBoxes]]
/*{{{*/
/*TabStuff*/
.rTab .tabset .tab{
	padding:0.5em 1em;
	-moz-border-radius-topright :10px;
	-webkit-border-top-right-radius: 10px;
	-moz-border-radius-topleft :10px;
	-webkit-border-top-left-radius: 10px;
}
.rTab .tabContents .tabContents {border:none; background:transparent;}


/*}}}*/
/*{{{*/
a.externalLink{
 text-decoration: none;
 color:#002bb8;
 padding-right: 1em;
 background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAMAAAC67D+PAAAAFVBMVEVmmcwzmcyZzP8AZswAZv////////9E6giVAAAAB3RSTlP///////8AGksDRgAAADhJREFUGFcly0ESAEAEA0Ei6/9P3sEcVB8kmrwFyni0bOeyyDpy9JTLEaOhQq7Ongf5FeMhHS/4AVnsAZubxDVmAAAAAElFTkSuQmCC) 100% 50% no-repeat;
}

a.externalLink:hover{
 text-decoration: underline;
}
/*}}}*/
/*{{{*/
#toolsMenu {
position: fixed;
left: 773px;
top: 32px;
z-index: 6000;
background-color: #ccc;
padding: 16px;
border: solid 1px black;
-webkit-border-radius: 5px;
opacity: 0.4;
}
#toolsMenu:hover {
opacity: 1;
}
/*}}}*/
/***
|Name|StyleSheetAdjustments|
|Source|http://www.TiddlyTools.com/#StyleSheetAdjustments|
|Version||
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|CSS|
|Description|adjust TiddlyWiki default shadow stylesheets definitions|
***/

[[StyleSheetPlugins]] /* include adjustments to plugin-supplied definitions */
[[StyleSheetShortcuts]] /* include formatting "shortcut" definitions */
[[Jash.css]] /* Javascript Shell (jash) Styles */

/***
These 'style tweaks' can be easily included in other stylesheet tiddler so they can share a baseline look-and-feel that can then be customized to create a wide variety of 'flavors'.
/***
!body /%==================================================%/
IE needs explicit "position:static" declaration (fixes 'partial background display bug')
***/
/*{{{*/
body { font-family: Verdana,Arial,Helvetica; position:static; }
/*}}}*/

/***
!backstage /%==================================================%/
fix for bug #347/#349, wherein backstageCloak covers backstagePanel whenever fixed elements are present
***/
/*{{{*/
#backstageCloak { z-index:49; }
#backstagePanel { margin:0em 0.5em 0em 0.5em; } 
#backstageButton a:hover
	{background-color:transparent !important;}

/*}}}*/

/***
!common colors /%==================================================%/
***/
/*{{{*/
/* these seem to have been omitted from the core defaults for link styles */
a { color:#014; }
a:hover	{ color:#def; }
/*}}}*/

/***
!HTML forms /%==================================================%/
***/
/*{{{*/
/* eliminate whitespace before/after form controls */
form { margin:0;padding:0; }
/*}}}*/

/***
!basic styling /%==================================================%/
***/
/*{{{*/
/* reduce whitespace before/after horizontal rule */
hr { margin:2px 0 1px 0;padding:0; }
/*}}}*/

/***
!header and titles /%==================================================%/
IE needs explicit "position:static" declaration (fixes 'background display hides text bug')
***/
/*{{{*/
.header
	{ background:transparent; padding:.2em 1em; position:static; margin-bottom:.5em; }
.headerShadow, .headerForeground
	{ padding:.5em; }
.header a, .header .button, .header .tiddlyLinkExisting, .header .tiddlyLinkNonExisting
	{ font-weight: normal; }
.header .externalLink,
.siteSubtitle a, .siteSubtitle .button, .siteSubtitle .tiddlyLinkExisting, .siteSubtitle .tiddlyLinkNonExisting
	{ text-decoration:none; }
.header table
	{ border-collapse: collapse !important; }

/*}}}*/

/***
!displayArea /%==================================================%/
***/
/*{{{*/
#displayArea
	{ margin:0em 17em 0em 11em; }
/*}}}*/


/***
!popups /%==================================================%/
white-space:nowrap prevents items from wrapping if popup is near right edge of window
z-index:1000 makes sure popup is above EVERYTHING else
***/
/*{{{*/
.popup
	{ white-space: nowrap; z-index:1000; color: #000; background: #ffe; border: 1px solid #000;
		-moz-border-radius-topright: 5px; -moz-border-radius-bottomleft: 5px; -moz-border-radius-bottomright: 5px;
		-webkit-border-top-right-radius: 5px; -webkit-border-bottom-left-radius: 5px; -webkit-border-bottom-right-radius: 5px; }
.popup a, .popup .button, .popup .tiddlyLinkExisting, .popup .tiddlyLinkNonExisting
	{ font-weight: normal; font-style: normal; }
.popup hr
	{ color: #000; background: #ddd; border: 0; }
.popup li.disabled
	{ color: #999; }
.popup li a, .popup li a:visited
	{ color: #300; padding:1px; }
.popup li a:hover
	{ background: #006; color: #fff !important;}
/*}}}*/

/***
!messageArea /%==================================================%/
***/
/*{{{*/
#messageArea
	{ font-size:90%; -moz-border-radius:1em;-webkit-border-radius:1em; background:#eee; }
/*}}}*/

/***
!main menu (left sidebar) /%==================================================%/
***/
/*{{{*/
#mainMenu
	{ z-index:1; width:9em; text-align:left; margin:0; margin-left:1.5em; padding:0; clear:both; }
*[id="mainMenu"] /* moz browsers only */
	{ width:auto !important; } 
/*}}}*/

/***
!sidebar (right sidebar) /%==================================================%/
***/
/*{{{*/
#sidebar
	{ width:17em; margin-right:0em; clear:both; }
#sidebarTabs .tab
	{ font-size:90%; -moz-border-radius-topleft:.5em; -moz-border-radius-topright:.5em;
		-webkit-border-top-left-radius:.5em; -webkit-border-top-right-radius:.5em; }
#sidebarTabs .tabContents
	{ background:transparent; border:1px solid #999; padding:.5em; height:auto; overflow:auto; width:92.5%; }
#sidebarTabs .tabContents .tabContents
	{ background:transparent; border:1px solid #999; padding:.5em; height:auto; }
#sidebarOptions input[type="text"]
	{ font-size:8pt; }
}
*/
/*}}}*/

/***
!tabs /%==================================================%/
***/
/*{{{*/
.tabset
	{ padding: 0.2em 0 0 0; }
.tab
	{ padding:0 1px 0 1px; }
.viewer .tab
	{ padding:0 .5em 0 .5em; }
.tabSelected
	{ border: 1px solid; border-bottom: 0px !important; margin-bottom:-2px !important;
		 -moz-border-radius-topleft:.5em; -moz-border-radius-topright:.5em;
		 -webkit-border-top-left-radius:.5em; -webkit-border-top-right-radius:.5em;}
.tabUnselected
	{ border: 1px solid #999; border-bottom:0px;
		-moz-border-radius-topleft:.5em; -moz-border-radius-topright:.5em;
		-webkit-border-top-left-radius:.5em; -webkit-border-top-right-radius:.5em;}
.tabContents
	{ border: 1px solid; -moz-border-radius:1em;-webkit-border-radius:1em; padding: 1em; }
/*}}}*/

/***
!tiddler display elements /%==================================================%/
***/
/*{{{*/
.tiddler { padding: 0 1em 1em 1em; }
.annotation {
	border: 1px solid;
	-moz-border-radius:.5em;
	-webkit-border-radius:.5em;
	margin: .5em 0;
	padding: .2em .5em;
	font-size:90%;
}
.button, .button:hover, .button:active,
.viewer .button, .viewer .button:hover, .viewer .button:active
	{ background:transparent; border:0; }
.toolbar
	{ float:right; display:inline; padding-bottom:0; visibility:hidden; }
.selected .toolbar
	{ visibility:visible; }
.toolbar .floatingPanel
	{ visibility:visible !important; } /* make sure floating panels from toolbars don't disappear on mouseout */
.toolbar .button, .toolbar a
	{ border:1px solid transparent; background:transparent; margin:0px 1px; padding:0px .2em; -moz-border-radius:.5em;-webkit-border-radius:.5em; }
.toolbar
	{color:[[ColorPalette::TertiaryLight]];}
.toolbar a
	{color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar
	{color:[[ColorPalette::Foreground]];}
.selected .toolbar, .selected .toolbar .button, .selected .toolbar a
	{ color:#006; }
.toolbar .button:hover, .toolbar a:hover
	{ border:1px solid #69c !important; background:#006 !important; color:#fff !important; }
.shadow .tagging, .shadow .tagged
	{ display:none; }
.tagging, .tagged
	{ background-color: #ccc; border: 1px solid; }
.selected .tagging, .selected .tagged
	{ background-color:#eee; border: 1px solid #999; }
.tagging, .tagged
	{ -moz-border-radius:1em;-webkit-border-radius:1em; }
.subtitle
	{ font-size:90%; }
.shadow input, .shadow textarea, .shadow button, .shadow checkbox, .shadow radio, .shadow select
	{ font-size:90%; }
.shadow input, .shadow textarea, .shadow button, .shadow checkbox, .shadow radio, .shadow select
	{ font-size:90%; }
.editor input
	{ font-size: 8pt;}
.editor textarea
	{ font-size: 8pt; font-family:monospace; }
.editor select
	{ font-size: 8pt; border:1px solid; }
.title
	{ font-size: 12pt; line-height:120%; }
.viewer
	{ font-size: 9pt; padding: 0.7em; text-align:justify; }
.viewer pre, .viewer code, .viewer blockquote
	{ font-size:8pt; text-align:left; }
.viewer pre 
	{ background:#ffe; border:1px solid; }
.viewer table, .viewer table tr, .viewer table td
	{ border:1px solid; }
.viewer hr {
	margin: 1px; padding:1px;
	border:0;
	border-top: solid 1px #666;
	color: #666;
}
.viewer blockquote {
	line-height: 1.5em;
	padding-left: 1em;
	margin-left: 1em;
	border-left: 1px dotted;
}
/*}}}*/
/***
|Name|StyleSheetShortcuts|
|Source|http://www.TiddlyTools.com/#StyleSheetShortcuts|
|Version||
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|CSS|
|Description|'convenience' classes for common formatting, alignment, boxes, tables, etc.|

These 'style tweaks' can be easily included in other stylesheet tiddler so they can share a baseline look-and-feel that can then be customized to create a wide variety of 'flavors'.
***/
/*{{{*/

/* text alignments */
.left
	{ display:block;text-align:left; }
.center
	{ display:block;text-align:center; }
.center table
	{ margin:auto !important; }
.right	
	{ display:block;text-align:right; }
.justify
	{ display:block;text-align:justify; }
.indent
	{ display:block;margin:0;padding:0;border:0;margin-left:2em; }
.floatleft
	{ float:left; }
.floatright
	{ float:right; }
.valignTop, .valignTop table, .valignTop tbody, .valignTop th, .valignTop tr, .valignTop td
	{ vertical-align:top; }
.valignBottom, .valignBottom table, .valignBottom tbody, .valignBottom th, .valignBottom tr, .valignBottom td
	{ vertical-align:bottom; }
.clear
	{ clear:both; }
.wrap
	{ white-space:normal; }
.nowrap
	{ white-space:nowrap; }
.hidden
	{ display:none; }
.show
	{ display:inline !important; }
.span
	{ display:span; }
.block
	{ display:block; }
.relative
	{ position:relative; }
.absolute
	{ position:absolute; }

/* font sizes */
.big
	{ font-size:14pt;line-height:120% }
.medium
	{ font-size:12pt;line-height:120% }
.normal
	{ font-size:9pt;line-height:120% }
.small
	{ font-size:8pt;line-height:120% }
.fine
	{ font-size:7pt;line-height:120% }
.tiny
	{ font-size:6pt;line-height:120% }
.larger
	{ font-size:120%; }
.smaller
	{ font-size:80%; }

/* font styles */
.bold
	{ font-weight:bold; }
.italic
	{ font-style:italic; }
.underline
	{ text-decoration:underline; }

/* plain list items (no bullets or indent) */
.nobullets li { list-style-type: none; margin-left:-2em; }

/* vertical tabsets - courtesy of Tobias Beer */
.vTabs .tabset {float:left;display:block;padding:0px;margin-top:.5em;min-width:20%;}
.vTabs .tabset .tab {display:block;text-align:right;padding:2px 3px 2px 7px; margin:0 1px 1px 0;}
.vTabs .tabContents {margin-left:20%;max-width:80%;padding:5px;}
.vTabs .tabContents .tabContents {border:none; background:transparent;}

/* 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 */
}

/* page breaks */
.breakbefore { page-break-before:always; }
.breakafter { page-break-before:always; } 

/* show/hide browser-specific content for InternetExplorer vs. non-IE ("moz") browsers */
*[class="ieOnly"]
	{ display:none; } /* hide in moz (uses CSS selector) */
* html .mozOnly, *:first-child+html .mozOnly
	{ display: none; } /* hide in IE (uses IE6/IE7 CSS hacks) */

/* borderless tables */
.borderless, .borderless table, .borderless td, .borderless tr, .borderless th, .borderless tbody
	{ border:0 !important; margin:0 !important; padding:0 !important; }
.widetable, .widetable table
	{ width:100%; }

/* thumbnail images (fixed-sized scaled images) */
.thumbnail img { height:5em !important; }

/* stretchable images (auto-size to fit tiddler) */
.stretch img { width:95%; }

/* grouped content */
.outline
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid; }
.menubox
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid; background:#fff; color:#000; }
.menubox .button, .menubox .tiddlyLinkExisting, .menubox .tiddlyLinkNonExisting
	{ color:#009 !important; }
.groupbox
	{ display:block; padding:1em; -moz-border-radius:1em;-webkit-border-radius:1em; border:1px solid; background:#ffe; color:#000; }
.groupbox a, .groupbox .button, .groupbox .tiddlyLinkExisting, .groupbox .tiddlyLinkNonExisting
	{ color:#009 !important; }
.groupbox code
	{ color:#333 !important; }
.borderleft
	{ margin:0;padding:0;border:0;margin-left:1em; border-left:1px dotted; padding-left:.5em; }
.borderright
	{ margin:0;padding:0;border:0;margin-right:1em; border-right:1px dotted; padding-right:.5em; }
.borderbottom
	{ margin:0;padding:1px 0;border:0;border-bottom:1px dotted; margin-bottom:1px; padding-bottom:1px; }
.bordertop
	{ margin:0;padding:0;border:0;border-top:1px dotted; margin-top:1px; padding-top:1px; }

/* scrolled content */
.scrollbars { overflow:auto; }
.height10em { height:10em; }
.height15em { height:15em; }
.height20em { height:20em; }
.height25em { height:25em; }
.height30em { height:30em; }
.height35em { height:35em; }
.height40em { height:40em; }

/* compact form */
.smallform
	{ white-space:nowrap; }
.smallform input, .smallform textarea, .smallform button, .smallform checkbox, .smallform radio, .smallform select
	{ font-size:8pt; }

/* stretchable edit fields and textareas (auto-size to fit tiddler) */
.stretch input { width:99%; }
.stretch textarea { width:99%; }

/* compact input fields (limited to a few characters for entering percentages and other small values) */
.onechar input   { width:1em; }
.twochar input   { width:2em; }
.threechar input { width:3em; }
.fourchar input  { width:4em; }
.fivechar input  { width:5em; }

/* text colors */
.white { color:#fff !important }
.gray  { color:#999 !important }
.black { color:#000 !important }
.red   { color:#f66 !important }
.green { color:#0c0 !important }
.blue  { color:#99f !important }

/* rollover highlighting */
.mouseover 
	{color:[[ColorPalette::TertiaryLight]] !important;}
.mouseover a
	{color:[[ColorPalette::TertiaryLight]] !important;}
.selected .mouseover
	{color:[[ColorPalette::Foreground]] !important;}
.selected .mouseover .button, .selected .mouseover a
	{color:[[ColorPalette::PrimaryDark]] !important;}

/* rollover zoom text */
.zoomover
	{ font-size:80% !important; }
.selected .zoomover
	{ font-size:100% !important; }

/* [[ColorPalette]] text colors */
.Background	{ color:[[ColorPalette::Background]];	 }
.Foreground	{ color:[[ColorPalette::Foreground]];	 }
.PrimaryPale	{ color:[[ColorPalette::PrimaryPale]];	 }
.PrimaryLight	{ color:[[ColorPalette::PrimaryLight]];	 }
.PrimaryMid	{ color:[[ColorPalette::PrimaryMid]];	 }
.PrimaryDark	{ color:[[ColorPalette::PrimaryDark]];	 }
.SecondaryPale	{ color:[[ColorPalette::SecondaryPale]]; }
.SecondaryLight	{ color:[[ColorPalette::SecondaryLight]];}
.SecondaryMid	{ color:[[ColorPalette::SecondaryMid]];	 }
.SecondaryDark	{ color:[[ColorPalette::SecondaryDark]]; }
.TertiaryPale	{ color:[[ColorPalette::TertiaryPale]];	 }
.TertiaryLight	{ color:[[ColorPalette::TertiaryLight]]; }
.TertiaryMid	{ color:[[ColorPalette::TertiaryMid]];	 }
.TertiaryDark	{ color:[[ColorPalette::TertiaryDark]];	 }
.Error		{ color:[[ColorPalette::Error]];	 }

/* [[ColorPalette]] background colors */
.BGBackground	  { background-color:[[ColorPalette::Background]];	}
.BGForeground	  { background-color:[[ColorPalette::Foreground]];	}
.BGPrimaryPale	  { background-color:[[ColorPalette::PrimaryPale]];	}
.BGPrimaryLight	  { background-color:[[ColorPalette::PrimaryLight]];	}
.BGPrimaryMid	  { background-color:[[ColorPalette::PrimaryMid]];	}
.BGPrimaryDark	  { background-color:[[ColorPalette::PrimaryDark]];	}
.BGSecondaryPale  { background-color:[[ColorPalette::SecondaryPale]]; 	}
.BGSecondaryLight { background-color:[[ColorPalette::SecondaryLight]];	}
.BGSecondaryMid	  { background-color:[[ColorPalette::SecondaryMid]];	}
.BGSecondaryDark  { background-color:[[ColorPalette::SecondaryDark]]; 	}
.BGTertiaryPale	  { background-color:[[ColorPalette::TertiaryPale]];	}
.BGTertiaryLight  { background-color:[[ColorPalette::TertiaryLight]]; 	}
.BGTertiaryMid	  { background-color:[[ColorPalette::TertiaryMid]];	}
.BGTertiaryDark	  { background-color:[[ColorPalette::TertiaryDark]];	}
.BGError	  { background-color:[[ColorPalette::Error]];	 	}
/*}}}*/
/*{{{*/
.tiddler .originButton div {
	display: inline-block;
}

.tiddler .spaceSiteIcon .siteIcon {
	_display: inline; /* IE doesn't like inline-block */
}

.tiddler .originButton {
	display: block;
}

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

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

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

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

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

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

.editorHeading {
	height: 48px;
}

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

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

.tiddler .followPlaceHolder {
	display: block;
	position: absolute;
	top: 16px;
	right: 64px;
	_right: 138px; // add width of modifierIcon
}

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

/* creates the larger triangle */
.followButton:before {
	content: "\00a0";
	display: block; /* reduce the damage in FF3.0 */
	position: relative;
	bottom: -20px;
	right: 0;
	width: 0;
	height: 0;
	border-width: 0 0 20px 20px;
	border-style: solid;
	border-color: transparent [[ColorPalette::PrimaryMid]];
}

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

.toolbar svg .glyph {
	fill: #ccc;
}

.toolbar a:hover .glyph {
	fill: black;
}

.toolbar a:active .glyph {
	fill: [[ColorPalette::Background]];
}

.originButton,
.followPlaceHolder,
.tiddler .subtitle {
	cursor: pointer;
}

.editSpaceSiteIcon .originButton {
	cursor: auto;
}

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

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

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

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

.tiddler .viewer {
	padding-bottom: 16px;
	margin: 0 0 0 56px;
	line-height: 1.4em;
}

.viewer pre {
	margin-left: 0;
}

.siteIcon .label {
	color: [[ColorPalette::TertiaryDark]];
}

.tiddler .spaceSiteIcon {
	float: left;
	margin-right: 0;
	margin-top: 0;
	position: relative;
	display: block;
}

.tiddler .titleBar {
	display: block;
	margin-right: 136px;
	margin-left: 56px;
}

.followButton a {
	color: [[ColorPalette::Background]];
}

.tiddler {
	position: relative;
	padding: 0;
	margin-bottom: 3em;
	border-top: 3px solid [[ColorPalette::PrimaryMid]];
	background: #fff;
}

.tiddler .editor {
	padding: 0px 8px;
}

.tiddler .heading .title {
	position: relative;
	display: block;
	word-wrap: break-word;
	font-size: 32px;
	line-height: 32px;
}
.tiddler .heading .editor.title {
	font-size: 1.7em;
	line-height: normal;
}

.tiddler .headingClear {
	clear: both;
}

.tiddler .subtitle {
	font-style: italic;
	font-size: 0.9em;
	color: #a6a59e;
	margin-top: 0;
}

.toolbar {
	position: absolute;
	padding: 0;
	top: 8px;
	right: -8px;
}

.toolbar .moreCommand.highlight {
	background: none;
}

.tiddler .toolbar .button {
	border: none;
	display: inline;
	padding: 0px;
	margin-right: 16px;
}

.tiddler .toolbar a:hover {
	background: none;
}

.tiddler .tagged .listTitle {
	display: none;
}

.revButton {
	float: right;
}

/*! EditTemplate specific*/
.tiddler .privacySettings {
	text-align: center;
}
.tiddler .privacySettings .originButton {
	display: inline;
}

.editSpaceSiteIcon, .privacyEdit {
	float: left;
}

.editSpaceSiteIcon svg,
.editSpaceSiteIcon img,
.editSpaceSiteIcon .roundelLabel {
	float: left;
}

.tagTitle {
	position: absolute;
	text-align: center;
	width: 48px;
	top: 0px;
	left: -56px;
}

.editSpaceSiteIcon .originButton img,
.editSpaceSiteIcon .originButton svg {
	height: 16px;
	margin-left: 24px;
	margin-right: 32px;
	width: 16px;
}

.tagAnnotation {
	margin-top: 8px;
	padding-bottom: 8px;
}
.annotationsBox {
	margin-top: 8px;
}

.editorFooter {
	position: relative;
	padding: 0;
	margin-top: 16px;
	margin-left: 64px;
}

.tiddler .editorFooter .editor {
	padding-left: 0px;
}

.heading .editor input {
	width: 100%;
	font-size: 1.5em;
}

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

div.toolbar {
	visibility:hidden;
	right:-16px;
}

.selected div.toolbar {
	visibility: visible;
}

.followButton a:hover {
	background: [[ColorPalette::PrimaryMid]];
	text-decoration: underline;
}

a.image:hover {
	background: transparent;
}

@media all and (max-device-width: 480px) {
	div.toolbar {
		visibility:visible;
	}
}
@media only screen and (device-width: 768px) {
	div.toolbar {
		visibility:visible;
	}
}
@media all and (max-width: 960px) {
	.tiddler .titleBar {
		margin-left: 36px;
		margin-right: 80px;
	}

	.tiddler .heading {
		margin-bottom: 48px;
	}

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

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

	.tiddler .followPlaceHolder {
		right: 48px;
	}

	.tiddler .followButton {
		width: 24px;
	}

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

	br {
		line-height: 0.5em;
	}
}
/*}}}*/
/*{{{*/
body {
	font-size: 1em;
	font-family: helvetica, arial, sans-serif;
	background-color: #fff;
	color: [[ColorPalette::Foreground]];
}

body ul { margin: 0; }

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

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

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

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

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

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

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

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

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

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

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

#popup .followTiddlersList a{
	display: inline;
}

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

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

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

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

.clearFloat {
	clear: both;
}

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

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

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

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

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

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

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

#sidebarSearch .searchButton {
	display: none;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.tagInfo ul li {
	display: inline;
}

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

.tagInfo ul li a {
	border: none;
}

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

.tagInfo .tagging {
	padding: 0;
}

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

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

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

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

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

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

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

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

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

	#mainMenu {
		margin-left: 16px;
	}

	.headerForeground {
		margin-left: 16px;
	}

	#sidebarSearch {
		right: 16px;
	}

	#sidebarOptions {
		margin-right: 16px;
	}

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

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

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

	#sidebarTabs .tabContents li a {
		font-size: 0.9em;
	}
}
/*}}}*/
[[StyleSheetTiddler]]
[[StyleSheetCaspian]]
/*{{{*/
body {
	font-size: 1em;
	font-family: helvetica, arial, sans-serif;
	background-color: #fff;
	color: [[ColorPalette::Foreground]];
}

body ul { margin: 0; }

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

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

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

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

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

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

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

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

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

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

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

#popup .followTiddlersList a{
	display: inline;
}

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

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

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

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

.clearFloat {
	clear: both;
}

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

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

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

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

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

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

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

#sidebarSearch .searchButton {
	display: none;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.tagInfo ul li {
	display: inline;
}

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

.tagInfo ul li a {
	border: none;
}

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

.tagInfo .tagging {
	padding: 0;
}

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

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

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

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

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

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

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

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

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

	#mainMenu {
		margin-left: 16px;
	}

	.headerForeground {
		margin-left: 16px;
	}

	#sidebarSearch {
		right: 16px;
	}

	#sidebarOptions {
		margin-right: 16px;
	}

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

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

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

	#sidebarTabs .tabContents li a {
		font-size: 0.9em;
	}
}
/*}}}*/
[[StyleSheetTiddler]]
.tiddler {position:relative;}
.toolbar {position:absolute;top:0px;right:0px;}
.tiddler .toolbar .button {float:left;display:block;}
.tiddler .button.command_closeTiddler {float:right;}
.tiddler .toolbar .button:hover {color:#111;height:16px;padding: 3px 8px;margin:3px 5px 0 -5px;}
.tiddler .toolbar .textbutton .button:hover {padding: 2px 10px 4px 10px;margin:3px 5px 0 -1px;}
.toolbar svg {height:30px;width:30px;margin-top:-5px;}
.toolbar .button:hover svg {height:44px;width:44px;margin-top:-2px;}
|sortable widetable|k
|<<tiddler MeMo##toggleReadonly>><<tiddler RefreshTiddler with: genopfrisk>>|c
| Spørgsmål | Svar |h
|<<editSection [[##Spørgsmål]] [[redigér Spørgsmål]]>><<tiddler [[##Spørgsmål]]>>|<<tiddler [[##Link]] with:{{store.getValue(tiddler,'link')}}>><<editSection [[##Svar]] [[redigér Svar]]>><<tiddler [[##Svar]]>>|
|>|<<editSection [[##Notat]] [[redigér]]>>Notat:<<tiddler [[##Notat]]>>|
/%
!Spørgsmål

!Svar

!Notat

!Link

[[Link »|http://google.dk/search?q=Suse Studio&sitesearch=linux-abc.dk/phpBB3/]]
!end %/
|sortable widetable|k
|<<tiddler MeMo##toggleReadonly>><<tiddler RefreshTiddler with: genopfrisk>>|c
| Spørgsmål | Svar |h
|<<editSection [[##Spørgsmål]] [[redigér Spørgsmål]]>><<tiddler [[##Spørgsmål]]>>|<<tiddler [[##Link]] with:{{store.getValue(tiddler,'link')}}>><<editSection [[##Svar]] [[redigér Svar]]>><<tiddler [[##Svar]]>>|
|>|<<editSection [[##Notat]] [[redigér]]>>Notat:<<tiddler [[##Notat]]>>|
/%
!Spørgsmål
Hvad er en svarsamling?
!Svar
Det er en ~TiddlyWIki
!Notat
Så er det endelig lykkedes mig at lave en svarsamling i ~TiddlyWiki...
~ToDo: Jeg skal have slettet nogle plugins som det viste sig jeg ikke havde brug for alligevel...
!Link

[[Link »|$1]]
!end %/
{{floatright{<<tiddler [[SideBarOptions##tema]]>>}}}
Søg på Linux-abc: <<tiddler abc-Søgning>>
<<tiddler MeMo with: memo Spørgsmål Svar 26>>
<<tiddler CloseOtherTiddlers>>
|sortable widetable|k
|<<tiddler MeMo##toggleReadonly>><<tiddler RefreshTiddler with: genopfrisk>>|c
| Spørgsmål | Svar |h
|<<editSection [[##Spørgsmål]] [[redigér Spørgsmål]]>><<tiddler [[##Spørgsmål]]>>|<<tiddler [[##Link]] with:{{store.getValue(tiddler,'link')}}>><<editSection [[##Svar]] [[redigér Svar]]>><<tiddler [[##Svar]]>>|
|>|<<editSection [[##Notat]] [[redigér]]>>Notat:<<tiddler [[##Notat]]>>|
/%
!Spørgsmål

!Svar

!Notat
Distro/andet: Alle
!Link

[[Link »|http://google.dk/search?q=Svarsamling/katalog&sitesearch=linux-abc.dk/phpBB3/]]
!end %/
/***
|Name|SwitchThemePlugin|
|Source|http://www.TiddlyTools.com/#SwitchThemePlugin|
|Documentation|http://www.TiddlyTools.com/#SwitchThemePluginInfo|
|Version|5.4.1|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.3|
|Type|plugin|
|Description|Select alternative TiddlyWiki template/stylesheet 'themes' from a droplist|
!!!!!Documentation
>see [[SwitchThemePluginInfo]]
!!!!!Configuration
<<<
Current theme:<<switchTheme width:auto>>
<<option chkRandomTheme>> select a random theme at startup
//Note: to prevent a given theme from being chosen at random, tag it with <<tag excludeTheme>>//
<<<
!!!!!Installation Note
>As of 4/13/2008, a "core patch" function that provides backward-compatibility with TW2.3.x has been split into a separate tiddler, [[SwitchThemePluginPatch]], to reduce installation overhead for //this// plugin.  ''You should only install the patch tiddler when using this plugin in documents based on a core version prior to TW2.4.0''
!!!!!Revisions
<<<
2009.10.01 [5.4.1] changed 'noRandom' tag to 'excludeTheme' and recognize 'excludeLists' tag
| Please see [[SwitchThemePluginInfo]] for previous revision details |
2008.01.22 [5.0.0] Completely re-written and renamed from [[SelectStylesheetPlugin]] (now retired)
//history for retired SelectStylesheetPlugin omitted//
2005.07.20 [1.0.0] initial release (as SelectStylesheetPlugin)
<<<
!!!!!Code
***/
//{{{
version.extensions.SwitchThemePlugin= {major: 5, minor: 4, revision: 1, date: new Date(2009,10,1)};

config.macros.switchTheme = {
	handler: function(place,macroName,params) {
		setStylesheet(".switchTheme {width:100%;font-size:8pt;margin:0em}","switchThemePlugin");
		if (params[0] && (params[0].substr(0,6)=="width:"))	var width=(params.shift()).substr(6);
		if (params[0] && (params[0].substr(0,6)=="label:"))	var label=(params.shift()).substr(6);
		if (params[0] && (params[0].substr(0,7)=="prompt:"))	var prompt=(params.shift()).substr(7);
		if (params[0] && params[0].trim().length) // create a link that sets a specific theme
			createTiddlyButton(place,label?label:params[0],prompt?prompt:params[0],
				function(){ config.macros.switchTheme.set(params[0]); return false;});
		else { // create a select list of available themes
			var theList=createTiddlyElement(place,"select",null,"switchTheme",null);
			theList.size=1;
			if (width) theList.style.width=width;
			theList.onchange=function() { config.macros.switchTheme.set(this.value); return true; };
			this.refresh(theList);
		}
	},
	refresh: function(list) {
		var indent = String.fromCharCode(160)+String.fromCharCode(160);
		while(list.length > 0){list.options[0]=null;} // clear list
		list.options[list.length] = new Option("-vælg et tema-","",true,true);
		list.options[list.length] = new Option(indent+"[default]","StyleSheet");
		list.options[list.length] = new Option(indent+"[random]","*");
		var themes=store.getTaggedTiddlers("systemTheme");
		for (var i=0; i<themes.length; i++)
			if (themes[i].title!="StyleSheet" && !themes[i].isTagged('excludeLists'))
				list.options[list.length]=new Option(indent+themes[i].title,themes[i].title);
		// show current selection
		for (var t=0; t<list.options.length; t++)
			if (list.options[t].value==config.options.txtTheme)
				{ list.selectedIndex=t; break; }
	},
	set: function(theme) {
		if (!theme||!theme.trim().length) return;
		if (theme=="*") { // select a random theme (except themes with "excludeTheme")
			var curr=config.options.txtTheme;
			var themes=store.getTaggedTiddlers("systemTheme");
			if (!themes.length) return false;
			var which=Math.floor(Math.random()*themes.length);
			while (themes[which].title==curr
				||themes[which].tags.contains('excludeTheme','excludeLists'))
					which=Math.floor(Math.random()*themes.length);
			theme=themes[which].title;
		}
		// apply selected theme
		story.switchTheme(theme);
		// sync theme droplists
		var elems=document.getElementsByTagName("select");
		var lists=[]; for (var i=0; i<elems.length; i++)
			if (hasClass(elems[i],"switchTheme")) lists.push(elems[i]);
		for (var k=0; k<lists.length; k++)
			for (var t=0; t<lists[k].options.length; t++)
				if (lists[k].options[t].value==config.options.txtTheme)
					{ lists[k].selectedIndex=t; break; }
		return;
	}
}
//}}}
// // option to select a random theme at startup (if enabled)
//{{{
if (config.options.chkRandomTheme===undefined)
	config.options.chkRandomTheme=false;
if (config.options.chkRandomTheme)
	config.macros.switchTheme.set("*");
//}}}
// // hijack switchTheme to add Check/Init/Reset code handlers
//{{{
if (Story.prototype.switchTheme_saved===undefined) { // only once
Story.prototype.switchTheme_saved=Story.prototype.switchTheme;
Story.prototype.switchTheme=function(t){
	function run(t,s){
		var f=store.getTiddlerText(store.getTiddlerSlice(t,s));
		return f?eval('(function(){\n'+f+'\n})()'):false;
	}
	if (!startingUp && (run(config.options.txtTheme,'Reset')||run(t,'Check'))) return;
	this.switchTheme_saved.apply(this,arguments);
	run(t,'Init');
}
}
//}}}
Under the System Menu item there are some very useful and powerful tools.

Some are harmless while others can be destructive so handle with care and take notice of all warnings. 
<<editSection [[##Noter]] [[redigér noter]]>>
<<tiddler [[##Noter]] with:{{tiddler.title}}>
<<tiddler LV with:{{tiddler.title}}>>
/%
!!Noter
Noter til $1 ...

!end
%/
|borderless|k
|>|''Der er fundet 3 tiddlere som matcher /{{{caspian}}}/''|Ver: <<version>> |
|>|>|<<search>> <<option chkSearchTitles>> Titler <<option chkSearchText>> Tekst <<option chkSearchTags>>Tags <<option chkHoldSearches>> Hold |

|bgcolor:#4c4c4c;&nbsp;|bgcolor:#4c4c4c; ''Titler'' (Navne)|bgcolor:#4c4c4c; ''Størrelse'' |bgcolor:#4c4c4c; ''Tags'' |bgcolor:#4c4c4c; ''Ændret'' |h
| 1|[[StyleSheetTiddlySpace]] |9092|css,StyleSheetCaspian|2011.03.15|
| 2|[[StyleSheetTiddler]] |5583|css,StyleSheetCaspian|2011.03.15|
| 3|[[MiniBlog]] |11240|systemTheme|2011.08.02|
|sortable|k
<<tabs txtMoreTab "Manglende" "Manglende tiddlere" TabMoreMissing "Uden tilknytning" "Tiddlere" TabMoreOrphans "Skyggede" "Skyggede tiddlere" TabMoreShadowed "Udeladte" "Skjulte tiddlere" TabMore##exclude>>/%
!exclude
<<tabs txtExcludeTab "-Søgning" "Skjult fra søgning" TabMore##søg "-Lister" "Skjult fra lister" TabMore##lister "Alle tags" "Alle tags" TabMore##tags>>
!søg
<<list filter [tag[excludeSearch]]>>
!lister
<<list filter [tag[excludeLists]]>>
!tags
<<allTags excludeLists>>
!end %/
<<tagsplorer emne>>/%<<allTags excludeLists>>%/
<<timeline "" 15>>
/***
|''Name:''|TableSortingPlugin|
|''Description:''|Dynamically sort tables by clicking on column headers|
|''Author:''|Saq Imtiaz ( lewcid@gmail.com )|
|''Source:''|http://tw.lewcid.org/#TableSortingPlugin|
|''Code Repository:''|http://tw.lewcid.org/svn/plugins|
|''Version:''|2.02|
|''Date:''|25-01-2008|
|''License:''|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|''~CoreVersion:''|2.2.3|
!!Usage:
* Make sure your table has a header row
** {{{|Name|Phone Number|Address|h}}}<br> Note the /h/ that denote a header row 
* Give the table a class of 'sortable'
** {{{
|sortable|k
|Name|Phone Number|Address|h
}}}<br>Note the /k/ that denotes a class name being assigned to the table.
* To disallow sorting by a column, place {{{<<nosort>>}}} in it's header
* To automatically sort a table by a column, place {{{<<autosort>>}}} in the header for that column
** Or to sort automatically but in reverse order, use {{{<<autosort reverse>>}}}

!!Example:
|sortable|k
|Name |Salary |Extension |Performance |File Size |Start date |h
|ZBloggs, Fred |$12000.00 |1353 |+1.2 |74.2Kb |Aug 19, 2003 21:34:00 |
|ABloggs, Fred |$12000.00 |1353 |1.2 |3350b |09/18/2003 |
|CBloggs, Fred |$12000 |1353 |1.200 |55.2Kb |August 18, 2003 |
|DBloggs, Fred |$12000.00 |1353 |1.2 |2100b |07/18/2003 |
|Bloggs, Fred |$12000.00 |1353 |01.20 |6.156Mb |08/17/2003 05:43 |
|Turvey, Kevin |$191200.00 |2342 |-33 |1b |02/05/1979 |
|Mbogo, Arnold |$32010.12 |2755 |-21.673 |1.2Gb |09/08/1998 |
|Shakespeare, Bill |£122000.00|3211 |6 |33.22Gb |12/11/1961 |
|Shakespeare, Hamlet |£9000 |9005 |-8 |3Gb |01/01/2002 |
|Fitz, Marvin |€3300.30 |5554 |+5 |4Kb |05/22/1995 |

***/
// /%
//!BEGIN-PLUGIN-CODE
config.tableSorting = {
	
	darrow: "\u2193",
	
	uarrow: "\u2191",
	
	getText : function (o) {
		var p = o.cells[SORT_INDEX];
		return p.innerText || p.textContent || '';
	},
	
	sortTable : function (o,rev) {
		SORT_INDEX = o.getAttribute("index");
		var c = config.tableSorting;
		var T = findRelated(o.parentNode,"TABLE");
		if(T.tBodies[0].rows.length<=1) 
			return;
		var itm = "";
		var i = 0;
		while (itm == "" && i < T.tBodies[0].rows.length) {
			itm = c.getText(T.tBodies[0].rows[i]).trim();
			i++;
		}
		if (itm == "") 
			return; 	
		var r = [];
		var S = o.getElementsByTagName("span")[0];		
		c.fn = c.sortAlpha; 
		if(!isNaN(Date.parse(itm)))
			c.fn = c.sortDate; 
		else if(itm.match(/^[$|£|€|\+|\-]{0,1}\d*\.{0,1}\d+$/)) 
			c.fn = c.sortNumber; 
		else if(itm.match(/^\d*\.{0,1}\d+[K|M|G]{0,1}b$/)) 
			c.fn = c.sortFile; 
		for(i=0; i<T.tBodies[0].rows.length; i++) {
			 r[i]=T.tBodies[0].rows[i]; 
		} 
		r.sort(c.reSort);
		if(S.firstChild.nodeValue==c.darrow || rev) {
			r.reverse();
			S.firstChild.nodeValue=c.uarrow;
		} 
		else 
			S.firstChild.nodeValue=c.darrow;
		var thead = T.getElementsByTagName('thead')[0]; 
		var headers = thead.rows[thead.rows.length-1].cells;
		for(var k=0; k<headers.length; k++) {
			if(!hasClass(headers[k],"nosort"))
				addClass(headers[k].getElementsByTagName("span")[0],"hidden");
		}
		removeClass(S,"hidden");
		for(i=0; i<r.length; i++) { 
			T.tBodies[0].appendChild(r[i]);
			c.stripe(r[i],i);
			for(var j=0; j<r[i].cells.length;j++){
				removeClass(r[i].cells[j],"sortedCol");
			}
			addClass(r[i].cells[SORT_INDEX],"sortedCol");
		}
	},
	
	stripe : function (e,i){
		var cl = ["oddRow","evenRow"];
		i&1? cl.reverse() : cl;
		removeClass(e,cl[1]);
		addClass(e,cl[0]);
	},
	
	sortNumber : function(v) {
		var x = parseFloat(this.getText(v).replace(/[^0-9.-]/g,''));
		return isNaN(x)? 0: x;
	},
	
	sortDate : function(v) {
		return Date.parse(this.getText(v));
	},

	sortAlpha : function(v) {
		return this.getText(v).toLowerCase();
	},
	
	sortFile : function(v) { 		
		var j, q = config.messages.sizeTemplates, s = this.getText(v);
		for (var i=0; i<q.length; i++) {
			if ((j = s.toLowerCase().indexOf(q[i].template.replace("%0\u00a0","").toLowerCase())) != -1)
				return q[i].unit * s.substr(0,j);
		}
		return parseFloat(s);
	},
	
	reSort : function(a,b){
		var c = config.tableSorting;
		var aa = c.fn(a);
		var bb = c.fn(b);
		return ((aa==bb)? 0 : ((aa<bb)? -1:1));
	}
};

Story.prototype.tSort_refreshTiddler = Story.prototype.refreshTiddler;
Story.prototype.refreshTiddler = function(title,template,force,customFields,defaultText){
	var elem = this.tSort_refreshTiddler.apply(this,arguments);
	if(elem){
		var tables = elem.getElementsByTagName("TABLE");
		var c = config.tableSorting;
		for(var i=0; i<tables.length; i++){
			if(hasClass(tables[i],"sortable")){
				var x = null, rev, table = tables[i], thead = table.getElementsByTagName('thead')[0], headers = thead.rows[thead.rows.length-1].cells;
				for (var j=0; j<headers.length; j++){
					var h = headers[j];
					if (hasClass(h,"nosort"))
						continue;
					h.setAttribute("index",j);
					h.onclick = function(){c.sortTable(this); return false;};
					h.ondblclick = stopEvent;
					if(h.getElementsByTagName("span").length == 0)
						createTiddlyElement(h,"span",null,"hidden",c.uarrow); 
					if(!x && hasClass(h,"autosort")) {
						x = j;
						rev = hasClass(h,"reverse");
					}
				}
				if(x)
					c.sortTable(headers[x],rev);		
			}
		}
	}
	return elem; 
};

setStylesheet("table.sortable span.hidden {visibility:hidden;}\n"+
	"table.sortable thead {cursor:pointer;}\n"+
	"table.sortable .nosort {cursor:default;}\n"+
	"table.sortable td.sortedCol {background:#ffc;}","TableSortingPluginStyles");

function stopEvent(e){
	var ev = e? e : window.event;
	ev.cancelBubble = true;
	if (ev.stopPropagation) ev.stopPropagation();
	return false;	
}	

config.macros.nosort={
	handler : function(place){
		addClass(place,"nosort");
	}	
};

config.macros.autosort={
	handler : function(place,m,p,w,pS){
		addClass(place,"autosort"+" "+pS);		
	}	
};
//!END-PLUGIN-CODE
// %/
/***
|Name:|TagglyTaggingPlugin|
|Description:|tagglyTagging macro is a replacement for the builtin tagging macro in your ViewTemplate|
|Version:|3.3.1 ($Rev: 9828 $)|
|Date:|$Date: 2009-06-03 21:38:41 +1000 (Wed, 03 Jun 2009) $|
|Source:|http://mptw.tiddlyspot.com/#TagglyTaggingPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!Notes
See http://mptw.tiddlyspot.com/#TagglyTagging
***/
//{{{

merge(String.prototype,{

	parseTagExpr: function(debug) {

		if (this.trim() == "")
			return "(true)";

		var anyLogicOp = /(!|&&|\|\||\(|\))/g;
		var singleLogicOp = /^(!|&&|\|\||\(|\))$/;

		var spaced = this.
			// because square brackets in templates are no good
			// this means you can use [(With Spaces)] instead of [[With Spaces]]
			replace(/\[\(/g," [[").
			replace(/\)\]/g,"]] "). 
			// space things out so we can use readBracketedList. tricky eh?
			replace(anyLogicOp," $1 ");

		var expr = "";

		var tokens = spaced.readBracketedList(false); // false means don't uniq the list. nice one JR!

		for (var i=0;i<tokens.length;i++)
			if (tokens[i].match(singleLogicOp))
				expr += tokens[i];
			else
				expr += "tiddler.tags.contains('%0')".format([tokens[i].replace(/'/,"\\'")]); // fix single quote bug. still have round bracket bug i think

		if (debug)
			alert(expr);

		return '('+expr+')';
	}

});

merge(TiddlyWiki.prototype,{
	getTiddlersByTagExpr: function(tagExpr,sortField) {

		var result = [];

		var expr = tagExpr.parseTagExpr();

		store.forEachTiddler(function(title,tiddler) {
			if (eval(expr))
				result.push(tiddler);
		});

		if(!sortField)
			sortField = "title";

		result.sort(function(a,b) {return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);});
		
		return result;
	}
});

config.taggly = {

	// for translations
	lingo: {
		labels: {
			asc:        "\u2191", // down arrow
			desc:       "\u2193", // up arrow
			title:      "title",
			modified:   "modified",
			created:    "created",
			show:       "+",
			hide:       "-",
			normal:     "normal",
			group:      "group",
			commas:     "commas",
			sitemap:    "sitemap",
			numCols:    "cols\u00b1", // plus minus sign
			label:      "Tagged as '%0':",
			exprLabel:  "Matching tag expression '%0':",
			excerpts:   "excerpts",
			descr:      "descr",
			slices:     "slices",
			contents:   "contents",
			sliders:    "sliders",
			noexcerpts: "title only",
			noneFound:  "(none)"
		},

		tooltips: {
			title:      "Click to sort by title",
			modified:   "Click to sort by modified date",
			created:    "Click to sort by created date",
			show:       "Click to show tagging list",
			hide:       "Click to hide tagging list",
			normal:     "Click to show a normal ungrouped list",
			group:      "Click to show list grouped by tag",
			sitemap:    "Click to show a sitemap style list",
			commas:     "Click to show a comma separated list",
			numCols:    "Click to change number of columns",
			excerpts:   "Click to show excerpts",
			descr:      "Click to show the description slice",
			slices:     "Click to show all slices",
			contents:   "Click to show entire tiddler contents",
			sliders:    "Click to show tiddler contents in sliders",
			noexcerpts: "Click to show entire title only"
		},

		tooDeepMessage: "* //sitemap too deep...//"
	},

	config: {
		showTaggingCounts: true,
		listOpts: {
			// the first one will be the default
			sortBy:     ["title","modified","created"],
			sortOrder:  ["asc","desc"],
			hideState:  ["show","hide"],
			listMode:   ["normal","group","sitemap","commas"],
			numCols:    ["1","2","3","4","5","6"],
			excerpts:   ["noexcerpts","excerpts","descr","slices","contents","sliders"]
		},
		valuePrefix: "taggly.",
		excludeTags: ["excludeLists","excludeTagging"],
		excerptSize: 50,
		excerptMarker: "/%"+"%/",
		siteMapDepthLimit: 25
	},

	getTagglyOpt: function(title,opt) {
		var val = store.getValue(title,this.config.valuePrefix+opt);
		return val ? val : this.config.listOpts[opt][0];
	},

	setTagglyOpt: function(title,opt,value) {
		// create it silently if it doesn't exist
		if (!store.tiddlerExists(title)) {
			store.saveTiddler(title,title,config.views.editor.defaultText.format([title]),config.options.txtUserName,new Date(),"");

			// <<tagglyTagging expr:"...">> creates a tiddler to store its display settings
			// Make those tiddlers less noticeable by tagging as excludeSearch and excludeLists
			// Because we don't want to hide real tags, check that they aren't actually tags before doing so
			// Also tag them as tagglyExpression for manageability
			// (contributed by RA)
			if (!store.getTaggedTiddlers(title).length) {
				store.setTiddlerTag(title,true,"excludeSearch");
				store.setTiddlerTag(title,true,"excludeLists");
				store.setTiddlerTag(title,true,"tagglyExpression");
			}
		}

		// if value is default then remove it to save space
		return store.setValue(title, this.config.valuePrefix+opt, value == this.config.listOpts[opt][0] ? null : value);
	},

	getNextValue: function(title,opt) {
		var current = this.getTagglyOpt(title,opt);
		var pos = this.config.listOpts[opt].indexOf(current);
		// supposed to automagically don't let cols cycle up past the number of items
		// currently broken in some situations, eg when using an expression
		// lets fix it later when we rewrite for jquery
		// the columns thing should be jquery table manipulation probably
		var limit = (opt == "numCols" ? store.getTaggedTiddlers(title).length : this.config.listOpts[opt].length);
		var newPos = (pos + 1) % limit;
		return this.config.listOpts[opt][newPos];
	},

	toggleTagglyOpt: function(title,opt) {
		var newVal = this.getNextValue(title,opt);
		this.setTagglyOpt(title,opt,newVal);
	}, 

	createListControl: function(place,title,type) {
		var lingo = config.taggly.lingo;
		var label;
		var tooltip;
		var onclick;

		if ((type == "title" || type == "modified" || type == "created")) {
			// "special" controls. a little tricky. derived from sortOrder and sortBy
			label = lingo.labels[type];
			tooltip = lingo.tooltips[type];

			if (this.getTagglyOpt(title,"sortBy") == type) {
				label += lingo.labels[this.getTagglyOpt(title,"sortOrder")];
				onclick = function() {
					config.taggly.toggleTagglyOpt(title,"sortOrder");
					return false;
				}
			}
			else {
				onclick = function() {
					config.taggly.setTagglyOpt(title,"sortBy",type);
					config.taggly.setTagglyOpt(title,"sortOrder",config.taggly.config.listOpts.sortOrder[0]);
					return false;
				}
			}
		}
		else {
			// "regular" controls, nice and simple
			label = lingo.labels[type == "numCols" ? type : this.getNextValue(title,type)];
			tooltip = lingo.tooltips[type == "numCols" ? type : this.getNextValue(title,type)];
			onclick = function() {
				config.taggly.toggleTagglyOpt(title,type);
				return false;
			}
		}

		// hide button because commas don't have columns
		if (!(this.getTagglyOpt(title,"listMode") == "commas" && type == "numCols"))
			createTiddlyButton(place,label,tooltip,onclick,type == "hideState" ? "hidebutton" : "button");
	},

	makeColumns: function(orig,numCols) {
		var listSize = orig.length;
		var colSize = listSize/numCols;
		var remainder = listSize % numCols;

		var upperColsize = colSize;
		var lowerColsize = colSize;

		if (colSize != Math.floor(colSize)) {
			// it's not an exact fit so..
			upperColsize = Math.floor(colSize) + 1;
			lowerColsize = Math.floor(colSize);
		}

		var output = [];
		var c = 0;
		for (var j=0;j<numCols;j++) {
			var singleCol = [];
			var thisSize = j < remainder ? upperColsize : lowerColsize;
			for (var i=0;i<thisSize;i++) 
				singleCol.push(orig[c++]);
			output.push(singleCol);
		}

		return output;
	},

	drawTable: function(place,columns,theClass) {
		var newTable = createTiddlyElement(place,"table",null,theClass);
		var newTbody = createTiddlyElement(newTable,"tbody");
		var newTr = createTiddlyElement(newTbody,"tr");
		for (var j=0;j<columns.length;j++) {
			var colOutput = "";
			for (var i=0;i<columns[j].length;i++) 
				colOutput += columns[j][i];
			var newTd = createTiddlyElement(newTr,"td",null,"tagglyTagging"); // todo should not need this class
			wikify(colOutput,newTd);
		}
		return newTable;
	},

	createTagglyList: function(place,title,isTagExpr) {
		switch(this.getTagglyOpt(title,"listMode")) {
			case "group":  return this.createTagglyListGrouped(place,title,isTagExpr); break;
			case "normal": return this.createTagglyListNormal(place,title,false,isTagExpr); break;
			case "commas": return this.createTagglyListNormal(place,title,true,isTagExpr); break;
			case "sitemap":return this.createTagglyListSiteMap(place,title,isTagExpr); break;
		}
	},

	getTaggingCount: function(title,isTagExpr) {
		// thanks to Doug Edmunds
		if (this.config.showTaggingCounts) {
			var tagCount = config.taggly.getTiddlers(title,'title',isTagExpr).length;
			if (tagCount > 0)
				return " ("+tagCount+")";
		}
		return "";
	},

	getTiddlers: function(titleOrExpr,sortBy,isTagExpr) {
		return isTagExpr ? store.getTiddlersByTagExpr(titleOrExpr,sortBy) : store.getTaggedTiddlers(titleOrExpr,sortBy);
	},

	getExcerpt: function(inTiddlerTitle,title,indent) {
		if (!indent)
			indent = 1;

		var displayMode = this.getTagglyOpt(inTiddlerTitle,"excerpts");
		var t = store.getTiddler(title);

		if (t && displayMode == "excerpts") {
			var text = t.text.replace(/\n/," ");
			var marker = text.indexOf(this.config.excerptMarker);
			if (marker != -1) {
				return " {{excerpt{<nowiki>" + text.substr(0,marker) + "</nowiki>}}}";
			}
			else if (text.length < this.config.excerptSize) {
				return " {{excerpt{<nowiki>" + t.text + "</nowiki>}}}";
			}
			else {
				return " {{excerpt{<nowiki>" + t.text.substr(0,this.config.excerptSize) + "..." + "</nowiki>}}}";
			}
		}
		else if (t && displayMode == "contents") {
			return "\n{{contents indent"+indent+"{\n" + t.text + "\n}}}";
		}
		else if (t && displayMode == "sliders") {
			return "<slider slide>\n{{contents{\n" + t.text + "\n}}}\n</slider>";
		}
		else if (t && displayMode == "descr") {
			var descr = store.getTiddlerSlice(title,'Description');
			return descr ? " {{excerpt{" + descr  + "}}}" : "";
		}
		else if (t && displayMode == "slices") {
			var result = "";
			var slices = store.calcAllSlices(title);
			for (var s in slices)
				result += "|%0|<nowiki>%1</nowiki>|\n".format([s,slices[s]]);
			return result ? "\n{{excerpt excerptIndent{\n" + result  + "}}}" : "";
		}
		return "";
	},

	notHidden: function(t,inTiddler) {
		if (typeof t == "string") 
			t = store.getTiddler(t);
		return (!t || !t.tags.containsAny(this.config.excludeTags) ||
				(inTiddler && this.config.excludeTags.contains(inTiddler)));
	},

	// this is for normal and commas mode
	createTagglyListNormal: function(place,title,useCommas,isTagExpr) {

		var list = config.taggly.getTiddlers(title,this.getTagglyOpt(title,"sortBy"),isTagExpr);

		if (this.getTagglyOpt(title,"sortOrder") == "desc")
			list = list.reverse();

		var output = [];
		var first = true;
		for (var i=0;i<list.length;i++) {
			if (this.notHidden(list[i],title)) {
				var countString = this.getTaggingCount(list[i].title);
				var excerpt = this.getExcerpt(title,list[i].title);
				if (useCommas)
					output.push((first ? "" : ", ") + "[[" + list[i].title + "]]" + countString + excerpt);
				else
					output.push("*[[" + list[i].title + "]]" + countString + excerpt + "\n");

				first = false;
			}
		}

		return this.drawTable(place,
			this.makeColumns(output,useCommas ? 1 : parseInt(this.getTagglyOpt(title,"numCols"))),
			useCommas ? "commas" : "normal");
	},

	// this is for the "grouped" mode
	createTagglyListGrouped: function(place,title,isTagExpr) {
		var sortBy = this.getTagglyOpt(title,"sortBy");
		var sortOrder = this.getTagglyOpt(title,"sortOrder");

		var list = config.taggly.getTiddlers(title,sortBy,isTagExpr);

		if (sortOrder == "desc")
			list = list.reverse();

		var leftOvers = []
		for (var i=0;i<list.length;i++)
			leftOvers.push(list[i].title);

		var allTagsHolder = {};
		for (var i=0;i<list.length;i++) {
			for (var j=0;j<list[i].tags.length;j++) {

				if (list[i].tags[j] != title) { // not this tiddler

					if (this.notHidden(list[i].tags[j],title)) {

						if (!allTagsHolder[list[i].tags[j]])
							allTagsHolder[list[i].tags[j]] = "";

						if (this.notHidden(list[i],title)) {
							allTagsHolder[list[i].tags[j]] += "**[["+list[i].title+"]]"
										+ this.getTaggingCount(list[i].title) + this.getExcerpt(title,list[i].title) + "\n";

							leftOvers.setItem(list[i].title,-1); // remove from leftovers. at the end it will contain the leftovers

						}
					}
				}
			}
		}

		var allTags = [];
		for (var t in allTagsHolder)
			allTags.push(t);

		var sortHelper = function(a,b) {
			if (a == b) return 0;
			if (a < b) return -1;
			return 1;
		};

		allTags.sort(function(a,b) {
			var tidA = store.getTiddler(a);
			var tidB = store.getTiddler(b);
			if (sortBy == "title") return sortHelper(a,b);
			else if (!tidA && !tidB) return 0;
			else if (!tidA) return -1;
			else if (!tidB) return +1;
			else return sortHelper(tidA[sortBy],tidB[sortBy]);
		});

		var leftOverOutput = "";
		for (var i=0;i<leftOvers.length;i++)
			if (this.notHidden(leftOvers[i],title))
				leftOverOutput += "*[["+leftOvers[i]+"]]" + this.getTaggingCount(leftOvers[i]) + this.getExcerpt(title,leftOvers[i]) + "\n";

		var output = [];

		if (sortOrder == "desc")
			allTags.reverse();
		else if (leftOverOutput != "")
			// leftovers first...
			output.push(leftOverOutput);

		for (var i=0;i<allTags.length;i++)
			if (allTagsHolder[allTags[i]] != "")
				output.push("*[["+allTags[i]+"]]" + this.getTaggingCount(allTags[i]) + this.getExcerpt(title,allTags[i]) + "\n" + allTagsHolder[allTags[i]]);

		if (sortOrder == "desc" && leftOverOutput != "")
			// leftovers last...
			output.push(leftOverOutput);

		return this.drawTable(place,
				this.makeColumns(output,parseInt(this.getTagglyOpt(title,"numCols"))),
				"grouped");

	},

	// used to build site map
	treeTraverse: function(title,depth,sortBy,sortOrder,isTagExpr) {

		var list = config.taggly.getTiddlers(title,sortBy,isTagExpr);

		if (sortOrder == "desc")
			list.reverse();

		var indent = "";
		for (var j=0;j<depth;j++)
			indent += "*"

		var childOutput = "";

		if (depth > this.config.siteMapDepthLimit)
			childOutput += indent + this.lingo.tooDeepMessage + "\n";
		else
			for (var i=0;i<list.length;i++)
				if (list[i].title != title)
					if (this.notHidden(list[i].title,this.config.inTiddler))
						childOutput += this.treeTraverse(list[i].title,depth+1,sortBy,sortOrder,false);

		if (depth == 0)
			return childOutput;
		else
			return indent + "[["+title+"]]" + this.getTaggingCount(title) + this.getExcerpt(this.config.inTiddler,title,depth) + "\n" + childOutput;
	},

	// this if for the site map mode
	createTagglyListSiteMap: function(place,title,isTagExpr) {
		this.config.inTiddler = title; // nasty. should pass it in to traverse probably
		var output = this.treeTraverse(title,0,this.getTagglyOpt(title,"sortBy"),this.getTagglyOpt(title,"sortOrder"),isTagExpr);
		return this.drawTable(place,
				this.makeColumns(output.split(/(?=^\*\[)/m),parseInt(this.getTagglyOpt(title,"numCols"))), // regexp magic
				"sitemap"
				);
	},

	macros: {
		tagglyTagging: {
			handler: function (place,macroName,params,wikifier,paramString,tiddler) {
				var parsedParams = paramString.parseParams("tag",null,true);
				var refreshContainer = createTiddlyElement(place,"div");

				// do some refresh magic to make it keep the list fresh - thanks Saq
				refreshContainer.setAttribute("refresh","macro");
				refreshContainer.setAttribute("macroName",macroName);

				var tag = getParam(parsedParams,"tag");
				var expr = getParam(parsedParams,"expr");

				if (expr) {
					refreshContainer.setAttribute("isTagExpr","true");
					refreshContainer.setAttribute("title",expr);
					refreshContainer.setAttribute("showEmpty","true");
				}
				else {
					refreshContainer.setAttribute("isTagExpr","false");
					if (tag) {
        				refreshContainer.setAttribute("title",tag);
						refreshContainer.setAttribute("showEmpty","true");
					}
					else {
        				refreshContainer.setAttribute("title",tiddler.title);
						refreshContainer.setAttribute("showEmpty","false");
					}
				}
				this.refresh(refreshContainer);
			},

			refresh: function(place) {
				var title = place.getAttribute("title");
				var isTagExpr = place.getAttribute("isTagExpr") == "true";
				var showEmpty = place.getAttribute("showEmpty") == "true";
				removeChildren(place);
				addClass(place,"tagglyTagging");
				var countFound = config.taggly.getTiddlers(title,'title',isTagExpr).length
				if (countFound > 0 || showEmpty) {
					var lingo = config.taggly.lingo;
					config.taggly.createListControl(place,title,"hideState");
					if (config.taggly.getTagglyOpt(title,"hideState") == "show") {
						createTiddlyElement(place,"span",null,"tagglyLabel",
								isTagExpr ? lingo.labels.exprLabel.format([title]) : lingo.labels.label.format([title]));
						config.taggly.createListControl(place,title,"title");
						config.taggly.createListControl(place,title,"modified");
						config.taggly.createListControl(place,title,"created");
						config.taggly.createListControl(place,title,"listMode");
						config.taggly.createListControl(place,title,"excerpts");
						config.taggly.createListControl(place,title,"numCols");
						config.taggly.createTagglyList(place,title,isTagExpr);
						if (countFound == 0 && showEmpty)
							createTiddlyElement(place,"div",null,"tagglyNoneFound",lingo.labels.noneFound);
					}
				}
			}
		}
	},

	// todo fix these up a bit
	styles: [
"/*{{{*/",
"/* created by TagglyTaggingPlugin */",
".tagglyTagging { padding-top:0.5em; }",
".tagglyTagging li.listTitle { display:none; }",
".tagglyTagging ul {",
"	margin-top:0px; padding-top:0.5em; padding-left:2em;",
"	margin-bottom:0px; padding-bottom:0px;",
"}",
".tagglyTagging { vertical-align: top; margin:0px; padding:0px; }",
".tagglyTagging table { margin:0px; padding:0px; }",
".tagglyTagging .button { visibility:hidden; margin-left:3px; margin-right:3px; }",
".tagglyTagging .button, .tagglyTagging .hidebutton {",
"	color:[[ColorPalette::TertiaryLight]]; font-size:90%;",
"	border:0px; padding-left:0.3em;padding-right:0.3em;",
"}",
".tagglyTagging .button:hover, .hidebutton:hover, ",
".tagglyTagging .button:active, .hidebutton:active  {",
"	border:0px; background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]];",
"}",
".selected .tagglyTagging .button { visibility:visible; }",
".tagglyTagging .hidebutton { color:[[ColorPalette::Background]]; }",
".selected .tagglyTagging .hidebutton { color:[[ColorPalette::TertiaryLight]] }",
".tagglyLabel { color:[[ColorPalette::TertiaryMid]]; font-size:90%; }",
".tagglyTagging ul {padding-top:0px; padding-bottom:0.5em; margin-left:1em; }",
".tagglyTagging ul ul {list-style-type:disc; margin-left:-1em;}",
".tagglyTagging ul ul li {margin-left:0.5em; }",
".editLabel { font-size:90%; padding-top:0.5em; }",
".tagglyTagging .commas { padding-left:1.8em; }",
"/* not technically tagglytagging but will put them here anyway */",
".tagglyTagged li.listTitle { display:none; }",
".tagglyTagged li { display: inline; font-size:90%; }",
".tagglyTagged ul { margin:0px; padding:0px; }",
".excerpt { color:[[ColorPalette::TertiaryDark]]; }",
".excerptIndent { margin-left:4em; }",
"div.tagglyTagging table,",
"div.tagglyTagging table tr,",
"td.tagglyTagging",
" {border-style:none!important; }",
".tagglyTagging .contents { border-bottom:2px solid [[ColorPalette::TertiaryPale]]; padding:0 1em 1em 0.5em;",
"  margin-bottom:0.5em; }",
".tagglyTagging .indent1  { margin-left:3em;  }",
".tagglyTagging .indent2  { margin-left:4em;  }",
".tagglyTagging .indent3  { margin-left:5em;  }",
".tagglyTagging .indent4  { margin-left:6em;  }",
".tagglyTagging .indent5  { margin-left:7em;  }",
".tagglyTagging .indent6  { margin-left:8em;  }",
".tagglyTagging .indent7  { margin-left:9em;  }",
".tagglyTagging .indent8  { margin-left:10em; }",
".tagglyTagging .indent9  { margin-left:11em; }",
".tagglyTagging .indent10 { margin-left:12em; }",
".tagglyNoneFound { margin-left:2em; color:[[ColorPalette::TertiaryMid]]; font-size:90%; font-style:italic; }",
"/*}}}*/",
		""].join("\n"),

	init: function() {
		merge(config.macros,this.macros);
		config.shadowTiddlers["TagglyTaggingStyles"] = this.styles;
		store.addNotification("TagglyTaggingStyles",refreshStyles);
	}
};

config.taggly.init();

//}}}

/***
InlineSlidersPlugin
By Saq Imtiaz
http://tw.lewcid.org/sandbox/#InlineSlidersPlugin

// syntax adjusted to not clash with NestedSlidersPlugin
// added + syntax to start open instead of closed

***/
//{{{
config.formatters.unshift( {
	name: "inlinesliders",
	// match: "\\+\\+\\+\\+|\\<slider",
	match: "\\<slider",
	// lookaheadRegExp: /(?:\+\+\+\+|<slider) (.*?)(?:>?)\n((?:.|\n)*?)\n(?:====|<\/slider>)/mg,
	lookaheadRegExp: /(?:<slider)(\+?) (.*?)(?:>)\n((?:.|\n)*?)\n(?:<\/slider>)/mg,
	handler: function(w) {
		this.lookaheadRegExp.lastIndex = w.matchStart;
		var lookaheadMatch = this.lookaheadRegExp.exec(w.source)
		if(lookaheadMatch && lookaheadMatch.index == w.matchStart ) {
			var btn = createTiddlyButton(w.output,lookaheadMatch[2] + " "+"\u00BB",lookaheadMatch[2],this.onClickSlider,"button sliderButton");
			var panel = createTiddlyElement(w.output,"div",null,"sliderPanel");
			panel.style.display = (lookaheadMatch[1] == '+' ? "block" : "none");
			wikify(lookaheadMatch[3],panel);
			w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
		}
   },
   onClickSlider : function(e) {
		if(!e) var e = window.event;
		var n = this.nextSibling;
		n.style.display = (n.style.display=="none") ? "block" : "none";
		return false;
	}
});

//}}}

/***
|''Name''|TagsplorerMacro|
|''Description''|tag-based faceted tiddler navigation|
|''Author''|FND|
|''Version''|1.3.3|
|''Status''|stable|
|''Source''|http://svn.tiddlywiki.org/Trunk/contributors/FND/plugins/TagsplorerMacro.js|
|''CodeRepository''|http://svn.tiddlywiki.org/Trunk/contributors/FND/|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
|''CoreVersion''|2.6.0|
|''Keywords''|navigation tagging|
!Usage
{{{
<<tagsplorer [exclude:<tagName>] [tag] [tag] ... >>
}}}
!!Examples
<<tagsplorer exclude:excludeLists systemConfig>>
!Revision History
!!v1.0 (2010-03-21)
* initial release
!!v1.1 (2010-03-26)
* added sorting for tag and tiddler collections
* added section headings
* adjusted styling
!!v1.2 (2010-03-27)
* added exclude parameter for excludeLists support
!!v1.3 (2010-03-29)
* added automatic scrolling after tag selection
!To Do
* refresh handling
* "open all" functionality
* animations for new/removed tags/tiddlers (requires array diff'ing)
!StyleSheet
.tagsplorer {
	border: 1px solid [[ColorPalette::TertiaryLight]];
	padding: 5px;
	background-color: [[ColorPalette::TertiaryPale]];
}

.tagsplorer h3,
.tagsplorer ul {
	margin: 0;
	padding: 0;
}

.tagsplorer h3 {
	margin: 0 -5px;
	padding: 0 5px;
	border: none;
}

.tagsplorer h3.tags {
	float: left;
	margin-right: 1em;
}

.tagsplorer h3.tiddlers {
	margin-top: 5px;
	border-top: 1px solid [[ColorPalette::TertiaryLight]];
	padding-top: 5px;
}

.tagsplorer .tagSelection {
	overflow: auto;
	list-style-type: none;
}

.tagsplorer .tagSelection li {
	float: left;
}

.tagsplorer .tagSelection li a.tag {
	border: 1px solid [[ColorPalette::TertiaryLight]];
	border-top-right-radius: 0.7em;
	-webkit-border-top-right-radius: 0.7em;
	-moz-border-radius-topright: 0.7em;
	border-bottom-right-radius: 0.7em;
	-webkit-border-bottom-right-radius: 0.7em;
	-moz-border-radius-bottomright: 0.7em;
	padding: 0 0.5em 0 0.3em;
}

.tagsplorer .tiddlerList {
	margin-left: 1.5em;
}
!Code
***/
//{{{
(function($) {

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

var macro = config.macros.tagsplorer = {};

config.macros.tagsplorer = $.extend(macro, {
	locale: {
		tagsLabel: "Tags",
		tiddlersLabel: "Tiddlere",
		newTagLabel: "[+]",
		newTagTooltip: "tilføj et tag til filteret",
		delTagTooltip: "fjern tag fra filteret",
		noTagsLabel: "ingen tags",
		noTiddlersLabel: "ingen tags"
	},

	handler: function(place, macroName, params, wikifier, paramString, tiddler) {
		var prms = paramString.parseParams("anon", null, true);
		var excludeTag = getParam(prms, "exclude", null);
		var tags = prms[0].anon || [];
		var tiddlers = getTiddlers(tags, excludeTag);

		var container = $('<div class="tagsplorer" />').
			append('<h3 class="tags" />').children(":last").
				text(this.locale.tagsLabel).end().
			append('<ul class="tagSelection" />').
			append('<h3 class="tiddlers" />').children(":last").
				text(this.locale.tiddlersLabel).end().
			append('<ul class="tiddlerList" />').
			data("excludeTag", excludeTag);

		macro.refreshTags(tags, container);
		macro.refreshTiddlers(tiddlers, container);

		container.appendTo(place);
	},
	newTagClick: function(ev) {
		var btn = $(this);
		var container = btn.closest(".tagsplorer");

		var tags = container.find(".tagSelection").data("tags");
		var tiddlers = container.find(".tiddlerList").data("tiddlers");
		var tagSelection = getTagSelection(tiddlers, tags);

		var popup = Popup.create(this, "ul");
		if(tagSelection.length) {
			$.each(tagSelection, function(i, tag) {
				createTagElement(popup, tag, macro.locale.newTagTooltip, macro.onTagClick);
			});
		} else {
			createTagElement(popup, macro.locale.noTagsLabel);
		}
		$(popup).data({
			container: container,
			tags: tags,
			tiddlers: tiddlers
		});
		Popup.show();
		ev.stopPropagation();
		return false;
	},
	onTagClick: function(ev) {
		var btn = $(this);
		var popup = btn.closest(".popup");
		var data = popup.data();
		var tag = btn.text();
		data.tags.pushUnique(tag);
		data.tiddlers = filterTiddlers(data.tiddlers, tag);
		if(config.options.chkAnimate && anim && typeof Scroller == "function") {
			anim.startAnimating(new Scroller(data.container[0]));
		} else {
			window.scrollTo(0, ensureVisible(data.container[0]));
		}
		macro.refreshTags(data.tags, data.container);
		macro.refreshTiddlers(data.tiddlers, data.container);
		return !ev.ctrlKey;
	},
	delTag: function(ev) {
		var btn = $(this);
		var container = btn.closest(".tagsplorer");
		var tags = container.find(".tagSelection").data("tags");
		tags.remove(btn.text());
		var tiddlers = getTiddlers(tags, container.data("excludeTag"));
		btn.parent().remove();
		macro.refreshTags(tags, container);
		macro.refreshTiddlers(tiddlers, container);
		return false;
	},
	refreshTags: function(tags, container) {
		var orig = container.find(".tagSelection");
		var clone = orig.clone().empty();
		clone.data("tags", tags);

		var self = this;
		$.each(tags, function(i, tag) {
			createTagElement(clone, tag, self.locale.delTagTooltip, self.delTag, "tag");
		});
		createTagElement(clone, this.locale.newTagLabel, this.locale.newTagTooltip, this.newTagClick).
			addClass("button");

		orig.replaceWith(clone);
	},
	refreshTiddlers: function(tiddlers, container) {
		var orig = container.find(".tiddlerList");
		var clone = orig.clone().empty();
		clone.data("tiddlers", tiddlers);

		if(tiddlers.length) {
			$.each(tiddlers, function(i, tiddler) {
				var el = $("<li />").appendTo(clone)[0];
				createTiddlyLink(el, tiddler.title, true);
			});
		} else {
			$("<li />").text(macro.locale.noTiddlersLabel).appendTo(clone);
		}

		orig.replaceWith(clone);
	}
});

var getTiddlers = function(tags, excludeTag) {
	var tiddlers = store.getTiddlers("title", excludeTag);
	for(var i = 0; i < tags.length; i++) {
		tiddlers = filterTiddlers(tiddlers, tags[i]);
	}
	return tiddlers;
};

var filterTiddlers = function(tiddlers, tag) {
	return $.map(tiddlers, function(item, i) {
		if(item.tags.contains(tag)) {
			return item;
		}
	});
};

var getTagSelection = function(tiddlers, exclude) {
	var tags = [];
	for(var i = 0; i < tiddlers.length; i++) {
		var _tags = tiddlers[i].tags;
		for(var j = 0; j < _tags.length; j++) {
			var tag = _tags[j];
			if(!exclude.contains(tag)) {
				tags.pushUnique(tag);
			}
		}
	}
	return tags.sort();
};

var createTagElement = function(container, label, tooltip, action, className) {
	var el = $("<li />").appendTo(container);
	return $('<a href="javascript:;" />').
		addClass(className || "").
		attr("title", tooltip || "").
		text(label).
		click(action || null).
		appendTo(el);
};

})(jQuery);
//}}}
Denne TiddlyWiki skal være downloadet til din pc for at lokale genveje til programmer skal kunne virke...
<<LaunchApplicationButton "AbiWord" "Abiword" "file:///usr/bin/abiword">> <<LaunchApplicationButton "NoteCase" "Vis denne guide i NoteCase" "file:////usr/bin/notecase" /usr/share/doc/PH101-001.ncd>>
@@display:block;height:auto;overflow:auto;
<<tiddler TestGuide##guide dp33>><<tiddler TestGuide##menu dp33>><<tiddler TestGuide##software dp33>>
/%
!guide
<<treeview2 "Guide" "treeview-red" 'collapsed: true, animated: "normal" '>> 
!menu
<<treeview2 "Menu" "treeview" 'collapsed: true'  >>
!software
<<treeview2 "Software" "filetree" 'collapsed: false, animated: "fast", antisesame: "closed", persist: "cookie", cookieId: "soft" '  >>

!end
%/@@
/***
|''Name''|TiddlerPopupPlugin|
|''Description''|Allows you to create links to tiddlers causing them to open in a popup|
|''Author''|Jon Robson|
|''Version''|0.5.3|
|''Status''|@@beta@@|
|''Source''|http://svn.tiddlywiki.org/Trunk/contributors/JonRobson/plugins/TiddlerPopup/TiddlerPopupPlugin.js|
|''License''|[[BSD|http://www.opensource.org/licenses/bsd-license.php]]|
!Usage
{{{<<TiddlerPopUp GettingStarted popup>>}}} creates a button with text popup which when clicked loads the GettingStarted tiddler.
!Code
***/
//{{{
(function($){
config.macros.TiddlerPopUp = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler){
		var args = paramString.parseParams("anon")[0];
		params = args.anon;
		var title = args.title ? args.title[0] : params[0];
		var label = args.label ? args.label[0] : params[1] || "popup";
		var autoposition = args.autoposition && args.autoposition[0] == "no" ? false : true;
		var classNames = args.className || [];

		$("<a class='button popupLink' />").text(label).
			click(function(ev) {
				var target = ev.target;
				var active = $(target).data("popupActive");
				if(!active) {
					var popup = Popup.create(target);
					$(target).data("popupActive", true);
					$(popup).addClass(classNames.join(" "));
					var text = store.getTiddlerText(title) || config.shadowTiddlers[title];
					wikify(text, popup);
					Popup.show();
					if(!autoposition) {
						$(popup).css({ left: "auto", top: "auto" });
					}
					$(popup).click(function(ev) { // make it so only clicking on the document outside the popup removes the popup
						if(ev.target.parentNode != document) {
							ev.stopPropagation();
						}
					});
					ev.stopPropagation();
				} else {
					Popup.remove();
					$(target).data("popupActive", false);
				}
				return false;
			}).appendTo(place);
	}
};
})(jQuery);
//}}}
/***
|Name|TiddlerTweakerPlugin|
|Source|http://www.TiddlyTools.com/#TiddlerTweakerPlugin|
|Version|2.4.5|
|Author|Eric Shulman|
|Translator|Måns Mårtensson|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Description|select multiple tiddlers and modify author, created, modified and/or tag values|
~TiddlerTweaker is a 'power tool' for TiddlyWiki authors.  Select multiple tiddlers from a listbox and 'bulk modify' the creator, author, created, modified and/or tag values of those tiddlers using a compact set of form fields.  The values you enter into the fields simultaneously overwrite the existing values in all tiddlers you have selected.
!!!!!Usage
<<<
{{{<<tiddlerTweaker>>}}}
{{smallform{<<tiddlerTweaker>>}}}
By default, any tags you enter into the TiddlerTweaker will //replace// the existing tags in all the tiddlers you have selected.  However, you can also use TiddlerTweaker to quickly filter specified tags from the selected tiddlers, while leaving any other tags assigned to those tiddlers unchanged:
>Any tag preceded by a '+' (plus) or '-' (minus), will be added or removed from the existing tags //instead of replacing the entire tag definition// of each tiddler (e.g., enter '-excludeLists' to remove that tag from all selected tiddlers.  When using this syntax, care should be taken to ensure that //every// tag is preceded by '+' or '-', to avoid inadvertently overwriting any other existing tags on the selected tiddlers.  (note: the '+' or '-' prefix on each tag value is NOT part of the tag value, and is only used by TiddlerTweaker to control how that tag value is processed)
Important Notes:
* TiddlerTweaker is a 'power user' tool that can make changes to many tiddlers at once.  ''You should always have a recent backup of your document (or 'save changes' just *before* tweaking the tiddlers), just in case you accidentally 'shoot yourself in the foot'.''
* The date and author information on any tiddlers you tweak will ONLY be updated if the corresponding checkboxes have been selected.  As a general rule, after using TiddlerTweaker, always ''//remember to save your document//'' when you are done, even though the tiddler timeline tab may not show any recently modified tiddlers.
* Selecting and updating all tiddlers in a document can take a while.  Your browser may warn about an 'unresponsive script'.  Usually, if you allow it to continue, it should complete the processing... eventually.  Nonetheless, be sure to save your work before you begin tweaking lots of tiddlers, just in case something does get stuck.
<<<
!!!!!Revisions
<<<
2011.01.21 2.4.5 auto-selection: use "-" for untagged tiddlers.  Also, added 'opened', 'invert'
2009.09.15 2.4.4 added 'edit' button. moved html definition to separate section
2009.09.13 2.4.3 in settiddlers(), convert backslashed chars (\n\b\s\t) in replacement text
2009.06.26 2.4.2 only add brackets around tags containing spaces
2009.06.22 2.4.1 in setFields(), add brackets around all tags shown tweaker edit field
2009.03.30 2.4.0 added 'sort by modifier'
2009.01.22 2.3.0 added support for text pattern find/replace
2008.10.27 2.2.3 in setTiddlers(), fixed Safari bug by replacing static Array.concat(...) with new Array().concat(...)
2008.09.07 2.2.2 added removeCookie() function for compatibility with [[CookieManagerPlugin]]
2008.05.12 2.2.1 replace built-in backstage tweak task with tiddler tweaker control panel (moved from BackstageTweaks)
2008.01.13 2.2.0 added 'auto-selection' links: all, changed, tags, title, text
2007.12.26 2.1.0 added support for managing 'creator' custom field (see [[CoreTweaks]])
2007.11.01 2.0.3 added config.options.txtTweakerSortBy for cookie-based persistence of list display order preference setting.
2007.09.28 2.0.2 in settiddlers() and deltiddlers(), added suspend/resume notification handling (improves performance when operating on multiple tiddlers)
2007.08.03 2.0.1 added shadow definition for [[TiddlerTweaker]] tiddler for use as parameter references with {{{<<tiddler>>, <<slider>> or <<tabs>>}}} macros.
2007.08.03 2.0.0 converted from inline script
2006.01.01 1.0.0 initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.TiddlerTweakerPlugin= {major: 2, minor: 4, revision: 5, date: new Date(2011,1,21)};

// shadow tiddler
config.shadowTiddlers.TiddlerTweaker='<<tiddlerTweaker>>';

// defaults
if (config.options.txtTweakerSortBy==undefined) config.options.txtTweakerSortBy='modified';

// backstage task
if (config.tasks) { // for TW2.2b3 or above
	config.tasks.tweak.tooltip='review/modify tiddler internals: dates, authors, tags, etc.';
	config.tasks.tweak.content='{{smallform small groupbox{<<tiddlerTweaker>>}}}';
}

// if removeCookie() function is not defined by TW core, define it here.
if (window.removeCookie===undefined) {
	window.removeCookie=function(name) {
		document.cookie = name+'=; expires=Thu, 01-Jan-1970 00:00:01 UTC; path=/;'; 
	}
}

config.macros.tiddlerTweaker = {
	handler: function(place,macroName,params,wikifier,paramString,tiddler) {
		var span=createTiddlyElement(place,'span');
		span.innerHTML=store.getTiddlerText('TiddlerTweakerPlugin##html');
		this.init(span.getElementsByTagName('form')[0],config.options.txtTweakerSortBy);
	},
	init: function(f,sortby) { // set form controls
		if (!f) return; // form might not be rendered yet...
		while (f.list.options[0]) f.list.options[0]=null; // empty the list
		var tids=store.getTiddlers(sortby);
		if (sortby=='size') // descending order
			tids.sort(function(a,b) {return a.text.length > b.text.length ? -1 : (a.text.length == b.text.length ? 0 : +1);});
		var who='';
		for (i=0; i<tids.length; i++) { var t=tids[i];
			var label=t.title; var value=t.title;
			switch (sortby) {
				case 'modified':
				case 'created':
					var t=tids[tids.length-i-1]; // reverse order
					var when=t[sortby].formatString('YY.0MM.0DD 0hh:0mm ');
					label=when+t.title;
					value=t.title;
					break;
				case 'size':
					label='['+t.text.length+'] '+label;
					break;
				case 'modifier':
				case 'creator':
					if (who!=t[sortby]) {
						who=t[sortby];
						f.list.options[f.list.length]=new Option('by '+who+':','',false,false);
					}
					label='\xa0\xa0\xa0'+label; // indent
					break;
			}
			f.list.options[f.list.length]=new Option(label,value,false,false);
		}
		f.title.value=f.who.value=f.creator.value=f.tags.value='';
		f.cm.value=f.cd.value=f.cy.value=f.ch.value=f.cn.value='';
		f.mm.value=f.md.value=f.my.value=f.mh.value=f.mn.value='';
		f.stats.disabled=f.set.disabled=f.del.disabled=f.edit.disabled=f.display.disabled=true;
		f.settitle.disabled=false;
		config.options.txtTweakerSortBy=sortby;
		f.sortby.value=sortby; // sync droplist
		if (sortby!='modified') saveOptionCookie('txtTweakerSortBy');
		else removeCookie('txtTweakerSortBy');
	},
	enablefields: function(here) { // enables/disables inputs based on #items selected
		var f=here.form; var list=f.list;
		var c=0; for (i=0;i<list.length;i++) if (list.options[i].selected) c++;
		if (c>1) f.title.disabled=true;
		if (c>1) f.settitle.checked=false;
		f.set.disabled=(c==0);
		f.del.disabled=(c==0);
		f.edit.disabled=(c==0);
		f.display.disabled=(c==0);
		f.settitle.disabled=(c>1);
		f.stats.disabled=(c==0);
		var msg=(c==0)?'vælg tiddlere':(c+' tiddler'+(c!=1?'e':'')+' valgt');
		here.previousSibling.firstChild.firstChild.nextSibling.innerHTML=msg;
		if (c) clearMessage(); else displayMessage('ingen tiddlere er valgt');
	},
	setfields: function(here) { // set fields from first selected tiddler
		var f=here.form;
		if (!here.value.length) {
			f.title.value=f.who.value=f.creator.value=f.tags.value='';
			f.cm.value=f.cd.value=f.cy.value=f.ch.value=f.cn.value='';
			f.mm.value=f.md.value=f.my.value=f.mh.value=f.mn.value='';
			return;
		}
		var tid=store.getTiddler(here.value); if (!tid) return;
		f.title.value=tid.title;
		f.who.value=tid.modifier;
		f.creator.value=tid.fields['creator']||''; // custom field - might not exist
		f.tags.value=tid.tags.map(function(t){return String.encodeTiddlyLink(t)}).join(' ');
		var c=tid.created; var m=tid.modified;
		f.cm.value=c.getMonth()+1;
		f.cd.value=c.getDate();
		f.cy.value=c.getFullYear();
		f.ch.value=c.getHours();
		f.cn.value=c.getMinutes();
		f.mm.value=m.getMonth()+1;
		f.md.value=m.getDate();
		f.my.value=m.getFullYear();
		f.mh.value=m.getHours();
		f.mn.value=m.getMinutes();
	},
	selecttiddlers: function(here,callback) {
		var f=here; while (f&&f.nodeName.toLowerCase()!='form')f=f.parentNode;
		for (var t=f.list.options.length-1; t>=0; t--)
			f.list.options[t].selected=callback(f.list.options[t]);
		config.macros.tiddlerTweaker.enablefields(f.list);
		return false;
	},
	settiddlers: function(here) {
		var f=here.form; var list=f.list;
		var tids=[];
		for (i=0;i<list.length;i++) if (list.options[i].selected) tids.push(list.options[i].value);
		if (!tids.length) { alert('please select at least one tiddler'); return; }
		var cdate=new Date(f.cy.value,f.cm.value-1,f.cd.value,f.ch.value,f.cn.value);
		var mdate=new Date(f.my.value,f.mm.value-1,f.md.value,f.mh.value,f.mn.value);
		if (tids.length>1 && !confirm('Are you sure you want to update these tiddlers:\n\n'+tids.join(', '))) return;
		store.suspendNotifications();
		for (t=0;t<tids.length;t++) {
			var tid=store.getTiddler(tids[t]); if (!tid) continue;
			var title=!f.settitle.checked?tid.title:f.title.value;
			var who=!f.setwho.checked?tid.modifier:f.who.value;
			var text=tid.text;
			if (f.replacetext.checked) {
				var r=f.replacement.value.replace(/\\t/mg,'\t').unescapeLineBreaks();
				text=text.replace(new RegExp(f.pattern.value,'mg'),r);
			}				
			var tags=tid.tags;
			if (f.settags.checked) { 
				var intags=f.tags.value.readBracketedList();
				var addtags=[]; var deltags=[]; var reptags=[];
				for (i=0;i<intags.length;i++) {
					if (intags[i].substr(0,1)=='+')
						addtags.push(intags[i].substr(1));
					else if (intags[i].substr(0,1)=='-')
						deltags.push(intags[i].substr(1));
					else
						reptags.push(intags[i]);
				}
				if (reptags.length)
					tags=reptags;
				if (addtags.length)
					tags=new Array().concat(tags,addtags);
				if (deltags.length)
					for (i=0;i<deltags.length;i++)
						{ var pos=tags.indexOf(deltags[i]); if (pos!=-1) tags.splice(pos,1); }
			}
			if (!f.setcdate.checked) cdate=tid.created;
			if (!f.setmdate.checked) mdate=tid.modified;
			store.saveTiddler(tid.title,title,text,who,mdate,tags,tid.fields);
			if (f.setcreator.checked) store.setValue(tid.title,'creator',f.creator.value); // set creator
			if (f.setcdate.checked) tid.assign(null,null,null,null,null,cdate); // set create date
		}
		store.resumeNotifications();
		this.init(f,f.sortby.value);
	},
	displaytiddlers: function(here,edit) {
		var f=here.form; var list=f.list;
		var tids=[];
		for (i=0; i<list.length;i++) if (list.options[i].selected) tids.push(list.options[i].value);
		if (!tids.length) { alert('please select at least one tiddler'); return; }
		story.displayTiddlers(story.findContainingTiddler(f),tids,edit?DEFAULT_EDIT_TEMPLATE:null);
	},
	deltiddlers: function(here) {
		var f=here.form; var list=f.list;
		var tids=[];
		for (i=0;i<list.length;i++) if (list.options[i].selected) tids.push(list.options[i].value);
		if (!tids.length) { alert('please select at least one tiddler'); return; }
		if (!confirm('Are you sure you want to delete these tiddlers:\n\n'+tids.join(', '))) return;
		store.suspendNotifications();
		for (t=0;t<tids.length;t++) {
			var tid=store.getTiddler(tids[t]); if (!tid) continue;
			if (tid.tags.contains('systemConfig')) {
				var msg=tid.title+' is tagged with systemConfig.'
					+'\n\nRemoving this tiddler may cause unexpected results.  Are you sure?';
				if (!confirm(msg)) continue;
			}
			store.removeTiddler(tid.title);
			story.closeTiddler(tid.title);
		}
		store.resumeNotifications();
		this.init(f,f.sortby.value);
	},
	stats: function(here) {
		var f=here.form; var list=f.list; var tids=[]; var out=''; var tot=0;
		var target=f.nextSibling;
		for (i=0;i<list.length;i++) if (list.options[i].selected) tids.push(list.options[i].value);
		if (!tids.length) { alert('please select at least one tiddler'); return; }
		for (t=0;t<tids.length;t++) {
			var tid=store.getTiddler(tids[t]); if (!tid) continue;
			out+='[['+tid.title+']] '+tid.text.length+'\n'; tot+=tid.text.length;
		}
		var avg=tot/tids.length;
		out=tot+' bytes i '+tids.length+' valgte tiddlere ('+avg+' bytes/tiddler)\n<<<\n'+out+'<<<\n';
		removeChildren(target);
		target.innerHTML="<hr><font size=-2><a href='javascript:;' style='float:right' "
			+"onclick='this.parentNode.parentNode.style.display=\"none\"'>close</a></font>";
		wikify(out,target);
		target.style.display='block';
	}
};
//}}}
/***
//{{{
!html
<style>
.tiddlerTweaker table,
.tiddlerTweaker table tr,
.tiddlerTweaker table td
	{ padding:0;margin:0;border:0;white-space:nowrap; }
</style><form class='tiddlerTweaker'><!--
--><table style="width:100%"><tr valign="top"><!--
--><td style="text-align:center;width:99%;"><!--
	--><font size=-2><div style="text-align:left;"><span style="float:right"><!--
	-->&nbsp; <a href="javascript:;" 
		title="vælg alle tiddlere"
		onclick="return config.macros.tiddlerTweaker.selecttiddlers(this,function(opt){
			return opt.value.length;
		});">alle</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="vælg tiddlere der er åbne i historiekolonnen"
		onclick="return config.macros.tiddlerTweaker.selecttiddlers(this,function(opt){
			return story.getTiddler(opt.value);
		});">åbne</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="vælg tiddlere der er nye/ændrede siden sidste lagring"
		onclick="var lastmod=new Date(document.lastModified);
			return config.macros.tiddlerTweaker.selecttiddlers(this,function(opt){
				var tid=store.getTiddler(opt.value);
				return tid&&tid.modified>lastmod;
			});
		">ændret</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="vælg tiddlere med mindst et matchende tag"
		onclick="var t=prompt('Skriv mellemrumsseparerede tags (match et eller flere).  Brug \x22-\x22 for at matche ikke-taggede tiddlere');
			if (!t||!t.length) return false;
			var tags=t.readBracketedList();
			return config.macros.tiddlerTweaker.selecttiddlers(this,function(opt){
				var tid=store.getTiddler(opt.value);
				return tid&&tags[0]=='-'?!tid.tags.length:tid.tags.containsAny(tags);
			});
		">tags</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="vælg tiddlere hvis titler indeholder matchende tekst"
		onclick="var t=prompt('Skriv en titel (eller en del af en titel) der skal matches');
			if (!t||!t.length) return false;
			return config.macros.tiddlerTweaker.selecttiddlers(this,function(opt){
				return opt.value.indexOf(t)!=-1;
			});
		">titler</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="vælg tiddlere der indeholder matchende tekst"
		onclick="var t=prompt('Skriv tiddler tekst (indhold) der skal matche');
			if (!t||!t.length) return false;
			return config.macros.tiddlerTweaker.selecttiddlers(this,function(opt){
				var tt=store.getTiddlerText(opt.value,'');
				return tt.indexOf(t)!=-1;
			});
		">tekst</a><!--
	-->&nbsp; <a href="javascript:;" 
		title="omvend udvalget af alle listeelementer"
		onclick="return config.macros.tiddlerTweaker.selecttiddlers(this,function(opt){
			return !opt.selected;
		});">omvend</a><!--
	--></span><span>vælg tiddlere</span><!--
	--></div><!--
	--></font><select multiple name=list size="11" style="width:99.99%" 
		title="brug klik, shift-klik og/eller ctrl-klik for at vælge flere tiddler titler" 
		onclick="config.macros.tiddlerTweaker.enablefields(this)" 
		onchange="config.macros.tiddlerTweaker.setfields(this)"><!--
	--></select><br><!--
	-->vis <input type=text size=1 value="11" 
		onchange="this.form.list.size=this.value; this.form.list.multiple=(this.value>1);"><!--
	--> efter <!--
	--><select name=sortby size=1 
		onchange="config.macros.tiddlerTweaker.init(this.form,this.value)"><!--
	--><option value="title">titel</option><!--
	--><option value="size">størrelse</option><!--
	--><option value="modified">ændret</option><!--
	--><option value="created">lavet</option><!--
	--><option value="modifier">redaktør</option><!--
	--></select><!--
	--><input type="button" value="genopfrisk" 
		onclick="config.macros.tiddlerTweaker.init(this.form,this.form.sortby.value)"<!--
	--> <input type="button" name="stats" disabled value="totaler..." 
		onclick="config.macros.tiddlerTweaker.stats(this)"><!--
--></td><td style="width:1%"><!--
	--><div style="text-align:left"><font size=-2>&nbsp;skift værdier</font></div><!--
	--><table style="width:100%;"><tr><!--
	--><td style="padding:1px"><!--
		--><input type=checkbox name=settitle unchecked 
			title="tillad ændring af tiddler titel (omdøb tiddler)" 
			onclick="this.form.title.disabled=!this.checked">titel<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=title size=35 style="width:98%" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=setcreator unchecked 
			title="tillad ændring af tiddler forfatter" 
			onclick="this.form.creator.disabled=!this.checked">lavet af<!--
	--></td><td style="padding:1px;"><!--
		--><input type=text name=creator size=35 style="width:98%" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=setwho unchecked 
			title="tillad ændring af tiddler redaktør" 
			onclick="this.form.who.disabled=!this.checked">ændret af<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=who size=35 style="width:98%" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=setcdate unchecked 
			title="tillad ændring af oprettelsesdato" 
			onclick="var f=this.form;
				f.cm.disabled=f.cd.disabled=f.cy.disabled=f.ch.disabled=f.cn.disabled=!this.checked"><!--
		-->lavet den<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=cm size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> / <input type=text name=cd size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> / <input type=text name=cy size=4 style="width:3em;padding:0;text-align:center" disabled><!--
		--> kl <input type=text name=ch size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> : <input type=text name=cn size=2 style="width:2em;padding:0;text-align:center" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=setmdate unchecked 
			title="tillad ændring af dato for ændring" 
			onclick="var f=this.form;
				f.mm.disabled=f.md.disabled=f.my.disabled=f.mh.disabled=f.mn.disabled=!this.checked"><!--
		-->ændret den<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=mm size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> / <input type=text name=md size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> / <input type=text name=my size=4 style="width:3em;padding:0;text-align:center" disabled><!--
		--> kl <input type=text name=mh size=2 style="width:2em;padding:0;text-align:center" disabled><!--
		--> : <input type=text name=mn size=2 style="width:2em;padding:0;text-align:center" disabled><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=replacetext unchecked
			title="find/erstat matchende tekst" 
			onclick="this.form.pattern.disabled=this.form.replacement.disabled=!this.checked">erstat tekst<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=pattern size=15 value="" style="width:40%" disabled 
			title="skriv TEKST MØNSTER (regulært udtryk)"> med <!--
		--><input type=text name=replacement size=15 value="" style="width:40%" disabled 
			title="skriv ERSTATNINGSTEKST"><!--
	--></td></tr><tr><td style="padding:1px"><!--
		--><input type=checkbox name=settags checked 
			title="tillad ændring af tiddler tags" 
			onclick="this.form.tags.disabled=!this.checked">tags<!--
	--></td><td style="padding:1px"><!--
		--><input type=text name=tags size=35 value="" style="width:98%" 
			title="skriv nye tags eller brug '+tag' og '-tag' for at tilføje/fjerne tags fra allerede eksisterende tags"><!--
	--></td></tr></table><!--
	--><div style="text-align:center"><!--
	--><nobr><input type=button name=display disabled style="width:24%" value="vis" 
		title="vis valgte tiddlere"
		onclick="config.macros.tiddlerTweaker.displaytiddlers(this,false)"><!--
	--> <input type=button name=edit disabled style="width:23%" value="redigér" 
		title="redigér valgte tiddlere"
		onclick="config.macros.tiddlerTweaker.displaytiddlers(this,true)"><!--
	--> <input type=button name=del disabled style="width:24%" value="slet" 
		title="fjern valgte tiddlere"
		onclick="config.macros.tiddlerTweaker.deltiddlers(this)"><!--
	--> <input type=button name=set disabled style="width:24%" value="opdatér" 
		title="opdatér valgte tiddlere"
		onclick="config.macros.tiddlerTweaker.settiddlers(this)"></nobr><!--
	--></div><!--
--></td></tr></table><!--
--></form><span style="display:none"><!--content replaced by tiddler "stats"--></span>
!end
//}}}
***/
 
/***
|''Name''|TiddlySpaceToolbar|
|''Description''|Updates the toolbar macro to use svg buttons and a popup for the more menu|
***/
//{{{
(function($){
	config.macros.toolbar._TSoldHandler = config.macros.toolbar.handler;
	config.macros.toolbar.handler = function(place,macroName,params,wikifier,paramString,tiddler)
	{
		
		this._TSoldHandler(place,macroName,params,wikifier,paramString,tiddler);

		if(config.macros.image){ //only do this for people who have this macro available!
			var cancelTiddlerButton =jQuery(".command_cancelTiddler",place);
			cancelTiddlerButton.empty();
			wikify("<<image cancelTiddler.svg>>",cancelTiddlerButton[0]);

			var closeTiddlerButton =jQuery(".command_closeTiddler",place);
			closeTiddlerButton.empty();
			wikify("<<image closeTiddler.svg>>",closeTiddlerButton[0]);

			var editTiddlerButton = jQuery(".command_editTiddler",place);
			editTiddlerButton.empty();
			wikify("<<image editTiddler.svg>>",editTiddlerButton[0]);

			var deleteTiddlerButton =jQuery(".command_deleteTiddler",place);
			deleteTiddlerButton.empty();
			wikify("<<image deleteTiddler.svg>>",deleteTiddlerButton[0]);

			var saveTiddlerButton =jQuery(".command_saveTiddler",place);
			saveTiddlerButton.empty();
			wikify("<<image saveTiddler.svg>>",saveTiddlerButton[0]);

			var moreTiddlerButton = jQuery("a.moreCommand",place);
			moreTiddlerButton.empty();
			wikify("<<image moreCommand.svg>>",moreTiddlerButton[0]);
		}
	}

	config.macros.toolbar.onClickMore = function(ev)
	{
		var sibling = this.nextSibling;
		var commands = sibling.childNodes;
		var popup = Popup.create(this);
		addClass(popup,"taggedTiddlerList");

		for(var i=0; i < commands.length; i++){
			var li =createTiddlyElement(popup,"li",null);
			var oldCommand =commands[i];
			var command = oldCommand.cloneNode(true);
			command.onclick = oldCommand.onclick;
			li.appendChild(command);
		}
		Popup.show();

		var e = ev || window.event;
		e.cancelBubble = true;
		if(e.stopPropagation) e.stopPropagation();
	}
	
	var shadows = config.shadowTiddlers;
	shadows.ToolbarCommands = "|~ViewToolbar|+editTiddler closeTiddler > cloneTiddler pubRev closeOthers fields publishTiddlerRevision revisions syncing permalink references jump|"+
	"\n|~EditToolbar|+saveTiddler -cancelTiddler deleteTiddler|";
	
})(jQuery);
//}}}
Læs [["Hvad er TiddlyWiki?"|http://www.linux-abc.dk/phpBB3/viewtopic.php?f=20&t=121&sid=c54f53198b93accd7a7e72138e0a194d]] på 
[img(50%,auto)[Linux-abcs forum|linux-abc_logo.png][http://linux-abc.dk]]
/***
|''Name''|TiddlyWikiListPlugin|
|''Description''|A more powerful generic version of TiddlyWiki's timeline and list macros|
|''Author''|Jon Robson|
|''Version''|0.6.0|
!Usage
{{{<<list filter [tag[foo]] template:Bar emptyMessage:"No tiddlers to list">>}}}
{{{<<timeline filter:[tag[foo]]>>}}} only show those tiddlers tagged foo in the timeline.
{{{<<timeline template:Foo>>}}}  use a template tiddler Foo to render each item in the timeline. For example Foo might contain
{{{
<<view title link>>
}}}
***/
//{{{
(function($) {
var macro = config.macros.timeline;
merge(macro, {
	handler: function(place,macroName,params, wikifier, paramString, tiddler) {
		var container = $("<div />").attr("params", paramString).
			attr("macroName", macroName).appendTo(place)[0];
		macro.refresh(container);
	},
	refresh: function(container) {
		$(container).attr("refresh", "macro").empty();
		var paramString = $(container).attr("params");
		var args = paramString.parseParams("anon", null, null)[0];
		var params = args.anon || [];

		var field = params[0] || "modified";
		var dateFormat = params[2] || this.dateFormat;
		var groupTemplate = macro.groupTemplate.format(field, dateFormat);
		groupTemplate = args.groupTemplate ? store.getTiddlerText(args.groupTemplate[0]) || groupTemplate :
			groupTemplate;

		var itemTemplate = macro.itemTemplate;
		itemTemplate = args.template ? store.getTiddlerText(args.template[0]) || itemTemplate :
			itemTemplate;

		var tiddlers = args.filter ? store.sortTiddlers(store.filterTiddlers(args.filter[0]), field) :
			store.reverseLookup("tags", "excludeLists", false, field);
		var lastGroup = "";
		var last = params[1] ? tiddlers.length-Math.min(tiddlers.length,parseInt(params[1])) : 0;
		for(var t=tiddlers.length-1; t>=last; t--) {
			var tiddler = tiddlers[t];
			var theGroup = wikifyPlainText(groupTemplate,0,tiddler);
			if(theGroup != lastGroup) {
				var ul = document.createElement("ul");
				addClass(ul,"timeline");
				container.appendChild(ul);
				createTiddlyElement(ul,"li",null,"listTitle",theGroup);
				lastGroup = theGroup;
			}
			var item = createTiddlyElement(ul,"li",null,"listLink");
			wikify(itemTemplate,item,null,tiddler);
		}
	},
	groupTemplate: "<<view %0 date '%1'>>",
	itemTemplate: "<<view title link>>"
});

config.macros.newtimeline = config.macros.timeline;
config.macros.list.template = "<<view title link>>";
config.macros.list.handler = function(place,macroName,params,wikifier,paramString)
{
	var args = paramString.parseParams("anon", null, null)[0];
	var type = args.anon ? args.anon[0] : "all";
	var template = args.template ? store.getTiddlerText(args.template[0]) : false;
	if(!template) {
		template = config.macros.list.template;
	}
	var list = document.createElement("ul");
	place.appendChild(list);
	if(this[type].prompt)
		createTiddlyElement(list,"li",null,"listTitle",this[type].prompt);
	var results;
	if(this[type].handler)
		results = this[type].handler(params);
	for(var t = 0; t < results.length; t++) {
		var li = document.createElement("li");
		list.appendChild(li);
		var tiddler = results[t];
		if(typeof(tiddler) == 'string') { // deal with missing etc..
				tiddler = store.getTiddler(tiddler) || new Tiddler(tiddler);
		}
		wikify(template, li, null, tiddler);
	}
	if(results.length === 0 && args.emptyMessage) {
		$(list).addClass("emptyList");
		$("<li />").text(args.emptyMessage[0]).appendTo(list);
	}
};

config.macros.list.filter.handler = function(params)
{
	var filter = params[1];
	var results = [];
	if(filter) {
		var tiddlers = store.filterTiddlers(filter);
		for(var t=0; t<tiddlers.length; t++)
			results.push(tiddlers[t]);
	}
	return results;
};

})(jQuery);
//}}}
<<tagglyTagging [[Tips & Tricks]]>>
<br><<tiddlerTweaker>><br><<tiddler EditBar>> <br><<switchTheme width:auto>>{{smallform{<<selectPalette>>}}}{{tiny{<<RandomColorPaletteButton>>}}} ⇐ [[Ny palet|ColorPalette]]<<tiddler [[Dialog ;-)]]>>+++[Tspot]...<<tiddler TspotControls>>===
|~ViewToolbar|closeOthers closeTiddler +editTiddler >  fields syncing permalink references jump|
|~ViewToolbarReadOnly|closeTiddler > closeOthers permalink references jump|
|~EditToolbar|+saveTiddler -cancelTiddler deleteTiddler|
/***
|Name|TreeviewPluginPlugin2|
|Source|http://treeview.tiddlyspot.com/|
|Version|0.24|
|Author|MarkS|
|License|Various. See respective libraries for details|
|Type|plugin|
|Requires(1) |jQuery library, treeview plugin libraries and styles |
|Requires(2) |AttachFilePackage and sub-libraries from tiddlytools.com if you want to use embedded images to create the tree|
|Description|Creates a tag tree, formatted as an actual tree |
|Status|Experimental - ALPHA, but built on fairly solid technologies|
|Warning|When creating tag trees, make sure no tiddler loops back on itself, or its likely the script will hang|
!!!!Set up for portability
You will need a version of TW that incorporates the jQuery library. That happens automatically with recent editions of TW. You will also need to install or access the treeview libraries from http:www.dynamicdrive.com. The libraries can be carried as local files, inserted in the MarkupPostBody, or referenced from the dynamicdrive site. Each approach will require a different set up. 
You will also need to link in the stylesheet for the treeview objects. A quick way to do this is to put:
>{{{<link rel="stylesheet" type="text/css" href="http://www.dynamicdrive.com/dynamicindex1/treeview/jquery.treeview.css" /> }}}
into the MarkupPreHead tiddler. However, this won't work if you go off line. It also doesn't work permanently if you are hosting your file on a web server. So you may want to download a copy of the stylesheet and attendant image files and change the MarkupPreHead tiddler to pick up the local copy. Or load the stylesheet and images onto your own server where you will be able to access them.
!!!!Usage
{{{<<treeview2 }}}
>{{{<root tag> [tree style] [startup parameters]}}} 
{{{  >>}}}

!!!!!Where:
''root tag'' is the tag at the top of your tagging tree, i.e. the mother of all tiddlers related to it by using its name as one of their tags.
''tree style'' indicates which type of tree will be displayed,  possibly //treeview//, //filetree//, and //treeview-red//, and //treeview-famfamfam//. There may be other styles too, but those are the ones I know about.
''startup parameters'' are a set of optional parameters given in a comma-separated, key/value string like this:
>{{{'collapsed: false, animated: "normal", persist: true'}}}
There's a list of possible options at:
  http://www.dynamicdrive.com/dynamicindex1/treeview/index.htm
However, not all settings may actually work under TW. Mainly, you will probably be interested in controlling the presence of animation, and whether the initial state of the tree is opened or closed.
!!!!Images and stylesheet set-up
The tree is constructed from little bits of images. If you don't want to carry these images in a separate directory, nor reference them remotely, you can embed them in your TW file. To do this,  you will need the AttachFilePackage and accompanying plugins from 
> www.tiddlytools.com
and you will need the AttachFilePluginFormatters plugin from the same site.
Then import all the tiddlers from this file tagged as treeviewimage . These images are referenced in the StyleSheet. If you import JqueryTreeviewCss from this file, and then put the name in your StyleSheet, the images should be imported without having to access them remotely.
!!!!Persistence
To make persistence work, you will need to have the treeview cookie library loaded. The easiest way to do that is to put:
>{{{<script src="http://www.dynamicdrive.com/dynamicindex1/treeview/lib/jquery.cookie.js" type="text/javascript"></script>}}}
into the MarkupPostBody. However, this technique will only work if you have online access. If you will be working offline, then you will either need to download the cookie library to the same directory as your ~TiddlyWiki file and put the following into your MarkupPostBody:
>>{{{<script src="jquery.cookie.js"></script>}}}
or you will need to put the entire contents of the cookie library into script tags inside the MarkupPostBody.
Then, in any macro that wants its tree to be persistently configured, you will need to use configuration parameter:
>>{{{persist: "cookie", cookieId: "myid"}}}
where //myid// should be an identification that will be unique throughout the entire TW file.
***/
//{{{
config.macros.treeview2 = {
  handler: function (place, macroName, params, wikifier, paramString, tiddler)
  {  // Code here
var lcTag = params[0] ;
var lcClass = params[1] ? params[1] : "treeview" ;
var DEV_MODE = false ; // Make true when developing code or changes won't show up.
try {
  if( MAS === undefined ) MAS = { } ;
} catch(ex) {
  MAS = {} ;
}

MAS.treeviewSettings = function(obj) {
	var defa = {} ;
	defa.collapsed= true;
	defa.unique = true ;
	//defa.persist= "location" ;
	if( obj !== undefined ) {
		try {
		obj = eval("({" + obj + "})" ) ;
		} catch(ex) {
			alert("Unable to use your treeview configuration settings!") ;
			return defa ;
		}
		for (var prop in obj) {
			defa[prop] =obj[prop] ;
		}
	}
	return defa ;
} ;
if( DEV_MODE || MAS.getTiddlersPerTagAsHtmlList === undefined ) {
MAS.getTiddlersPerTagAsHtmlList = function(tagname,setup) { 
  var tids = store.getTaggedTiddlers(tagname) ;
  var temp = "" ;
	var prefix = tids.length > 0 ? "<span class='folder'>" : "<span class='file'>" ; 
	var statetags = store.getTiddler(tagname).tags ;
	var state = "" ;
	var lcSesame = setup["sesame"] !== undefined ? setup["sesame"] : "" ;
	var lcAntiSesame = setup["antisesame"] !== undefined ? setup["antisesame"] : "" ;
	if(statetags.length > 0 ) {
						 if(lcSesame) state =  statetags.contains(lcSesame) ? ' class="open"'   : ' class="closed"'  ;
						 if(lcAntiSesame) state = statetags.contains(lcAntiSesame) ? ' class="closed"' : ' class="open"'   ;
	}	
// state="" ; // DEBUG
  //var rtn ="<li>"  + prefix + tagname + "</a></span>" ;
	var rtn = "<li" + state +">"  + prefix + "<a href=\"javascript:;\" tiddlylink=\"" + tagname + "\"  refresh=\"link\"    class='tiddlyLink tiddlyLinkExisting' title='Link to " + tagname + "' >" + tagname + "</a></span>" ;
	//wikify(rtn,place) ;
  forever:
  while(true) {  
		if(tids.length == 0 ) break ;
   	rtn = rtn + "<ul>" ;
   	for(var i=0;i<tids.length;i++) {
			temp = MAS.getTiddlersPerTagAsHtmlList(tids[i].title, setup) ;
     	rtn = rtn +  temp  ;
  	}
  	rtn = rtn + "</ul>\n" ;
		break ;
  } // forever
  rtn = rtn + "</li>\n" ;
  return rtn ;
}  ; // End of function definition
} // End of checking if function already defined

// The extra set of span tags are needed here because jquery find function ignores
// the outer set of tags. Or at least that's what seems to be happening. So, I give
// it an extra set so it can throw it away without consequence
var loSetup = MAS.treeviewSettings(params[2]) ;
var lcId = "root" + (new Date()).getTime().toString() ;
if(loSetup.cookieId) {
	lcId = "root_" + loSetup.cookieId ; 
}
//var a =  '<span id="' + lcId + '"><ul id="' + "root" + '" >' +  MAS.getTiddlersPerTagAsHtmlList(lcTag, loSetup) + "</ul></span>" ;
var a =  '<ul id="' + lcId + '" >' +  MAS.getTiddlersPerTagAsHtmlList(lcTag, loSetup) + "</ul>" ;
var b = jQuery(a) ; 
// A smarter person might have know how to put the onclick function in at the top 
b.find("a").each(function(n) {
	this.onclick = onClickTiddlerLink ;
	}) ;
//b.find(lcId).attr("class",lcClass) ;
//b.find("#root").attr("class",lcClass) ;

jQuery(place).append(b) ;

jQuery(place).find("#" + lcId).attr("class",lcClass).treeview(loSetup) ;
  }
};
//}}}
/***
Description: Contains the stuff you need to use Tiddlyspot
Note, you also need UploadPlugin, PasswordOptionPlugin and LoadRemoteFileThroughProxy
from http://tiddlywiki.bidix.info for a complete working Tiddlyspot site.
***/
//{{{

// edit this if you are migrating sites or retrofitting an existing TW
config.tiddlyspotSiteId = 'phelp';

// make it so you can by default see edit controls via http
config.options.chkHttpReadOnly = true;
window.readOnly = true; // make sure of it (for tw 2.2)
window.showBackstage = false; // show backstage too

// disable autosave in d3
if (window.location.protocol != "file:")
	config.options.chkGTDLazyAutoSave = false;

// tweak shadow tiddlers to add upload button, password entry box etc
with (config.shadowTiddlers) {
	SiteUrl = 'http://'+config.tiddlyspotSiteId+'.tiddlyspot.com';
	SideBarOptions = SideBarOptions.replace(/(<<saveChanges>>)/,"$1<<tiddler TspotSidebar>>");
	OptionsPanel = OptionsPanel.replace(/^/,"<<tiddler TspotOptions>>");
	DefaultTiddlers = DefaultTiddlers.replace(/^/,"[[WelcomeToTiddlyspot]] ");
	MainMenu = MainMenu.replace(/^/,"[[WelcomeToTiddlyspot]] ");
}

// create some shadow tiddler content
merge(config.shadowTiddlers,{

'TspotOptions':[
 "tiddlyspot password:",
 "<<option pasUploadPassword>>",
 ""
].join("\n"),

'TspotControls':[
 "| tiddlyspot password:|<<option pasUploadPassword>>|",
 "| site management:|<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">>//(requires tiddlyspot password)//<br>[[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]], [[download (go offline)|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download]]|",
 "| links:|[[tiddlyspot.com|http://tiddlyspot.com/]], [[FAQs|http://faq.tiddlyspot.com/]], [[blog|http://tiddlyspot.blogspot.com/]], email [[support|mailto:support@tiddlyspot.com]] & [[feedback|mailto:feedback@tiddlyspot.com]], [[donate|http://tiddlyspot.com/?page=donate]]|"
].join("\n"),

'WelcomeToTiddlyspot':[
 "This document is a ~TiddlyWiki from tiddlyspot.com.  A ~TiddlyWiki is an electronic notebook that is great for managing todo lists, personal information, and all sorts of things.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //What now?// &nbsp;&nbsp;@@ Before you can save any changes, you need to enter your password in the form below.  Then configure privacy and other site settings at your [[control panel|http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/controlpanel]] (your control panel username is //" + config.tiddlyspotSiteId + "//).",
 "<<tiddler TspotControls>>",
 "See also GettingStarted.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working online// &nbsp;&nbsp;@@ You can edit this ~TiddlyWiki right now, and save your changes using the \"save to web\" button in the column on the right.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Working offline// &nbsp;&nbsp;@@ A fully functioning copy of this ~TiddlyWiki can be saved onto your hard drive or USB stick.  You can make changes and save them locally without being connected to the Internet.  When you're ready to sync up again, just click \"upload\" and your ~TiddlyWiki will be saved back to tiddlyspot.com.",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Help!// &nbsp;&nbsp;@@ Find out more about ~TiddlyWiki at [[TiddlyWiki.com|http://tiddlywiki.com]].  Also visit [[TiddlyWiki.org|http://tiddlywiki.org]] for documentation on learning and using ~TiddlyWiki. New users are especially welcome on the [[TiddlyWiki mailing list|http://groups.google.com/group/TiddlyWiki]], which is an excellent place to ask questions and get help.  If you have a tiddlyspot related problem email [[tiddlyspot support|mailto:support@tiddlyspot.com]].",
 "",
 "@@font-weight:bold;font-size:1.3em;color:#444; //Enjoy :)// &nbsp;&nbsp;@@ We hope you like using your tiddlyspot.com site.  Please email [[feedback@tiddlyspot.com|mailto:feedback@tiddlyspot.com]] with any comments or suggestions."
].join("\n"),

'TspotSidebar':[
 "<<upload http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/store.cgi index.html . .  " + config.tiddlyspotSiteId + ">><html><a href='http://" + config.tiddlyspotSiteId + ".tiddlyspot.com/download' class='button'>download</a></html>"
].join("\n")

});
//}}}
[[Tutorial -How to edit Openbox window manager menus|http://www.murga-linux.com/puppy/viewtopic.php?t=64338&sid=e2d9f73ce1b2f08fd3820ff09a53f778]]
skrevet af  Don <<image http://www.murga-linux.com/puppy/images/avatars/12799084894ccc415fab606.jpg>>
----
I found by trial and error how to translate an Openbox popup launch menu.
The official website has some info but this tutorial gives the basic
info along with some pictures.


I am trying to change the launch menus that Openbox provides
(with a right click on the desktop). I want them to show labels in
foreign languages such as Spanish,French and German.
This is important when making a foreign language menu system for
Lucid Puppy 5.2 which uses the Openbox window manager by default.

There are two liabilities.

1) When a new application is installed on your Puppy
then you will be forced to hand-edit the menu XML file
to add this new application. This isn't hard to do as I will show
at the end of tutorial but it is irritating.

2) The start menu (the tray button at bottom left of screen) remains the original.
That means that this is not the menu system that is being changed.
It is the desktop popup launch menu that is changed.


Instructions:

Open the openbox preference file
Code:
geany  /root/.config/openbox/rc.xml

and change 'menu.xml' to 'menu2.xml'.
Save the file. 
<<image http://i1176.photobucket.com/albums/x323/don570/screenshot-menu2.png>>
Now open the folder /root/.config/openbox/
and make a copy of the file 'menu.xml'
You rename it to 'menu2.xml'.

The terminal commands to do this are
Code:
{{{
cd /root/.config/openbox/
cp -T menu.xml menu2.xml
}}}
...but I like to use Rox-Filer to do file management.

You can now edit the labels inside the menu2.xml file safely.
For example try changing the word 'Desktop' to the
Spanish word 'Escritorio' using a text editor.
<<image http://i1176.photobucket.com/albums/x323/don570/screenshot-labels-1.png>>

Warning!! It is the Label that you must change not the ID.

A simple refresh of the Openbox menu is all that is needed to see the result. 
<<image http://i1176.photobucket.com/albums/x323/don570/screenshot-refresh.png>>
<<image http://i1176.photobucket.com/albums/x323/don570/screenshot-final_menu.png>>
If you install a new program (for example 'ptiming'),
you must manually add this detail to the 'menu2.xml' file at the appropriate place.
The execute instruction ('ptiming' in the example) is important!!

Code:
{{{
<item label="pTiming event timer system">
<action name="Execute"><execute>ptiming</execute></action>
</item>
}}}
The result is the application 'pTiming' now appears
on the popup menu ( after a refresh) . (see image)
<<image http://i1176.photobucket.com/albums/x323/don570/screenshot-ptiming.png>>
Here's a page with tips for Openbox
http://ubuntuforums.org/archive/index.php/t-852420.html
----
Alt-Tab switches the front application

Window key - F1 Go to Desktop 1

Window key - F2 Go to Desktop 2

Window key - d Toggles the Desktop

Middle mouse click on the window top to force it to bottom of heap

Middle mouse click on maximize icon (in upper right of window)
to make it grow vertically

Rox Filer has some shortcuts as well, such as
middle mouse click on folder to open it in a new window
(leaving the old window alone)

Double click in some empty space in Rox window to make it
bigger.
/***
|Name|TwHelpSearchPlugin_da|
|Source|http://twhelp.tiddlyspot.com/#TwHelpSearchPlugin|
|Documentation|http://twhelp.tiddlyspot.com/#TWHelpSearchDoc|
|Version|1.0.8|
|Author|Morris Gray|
|Modder/translator|Måns Mårtensson|
|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.0 - 2.4|
|Type|plugin|
|Requires|[[SearchOptionsPlugin_da|http://www.TiddlyTools.com/#SearchOptionsPlugin]] [[TableSortingPlugin|http://tw.lewcid.org/#TableSortingPlugin]] (only for sorting option)|
|Overrides|SearchOptionsPlugin's search results|
|Description|Extends the search results from SearchOptionsPlugin to a sortable table showing title, size and tags.|
 ''Demo search:''
|>|>|>|<<search 'Søg...'>> |
|>|>| søg efter i |>|>|>|
| <<option chkSearchTitles>> | <<option chkSearchText>> | <<option chkSearchTags>> | <<option chkHoldSearches>> |
| titler |  tekst  | tags | hold |

''A Plugin Tweak for:'' SearchOptionsPlugin
!!!!!Description
<<<
This plugin defines an alternative format for the SearchResults tiddler that is generated by the SearchOptionsPlugin . It presents the search results in tabular form numbering the rows; and showing the tiddler title, the size in bytes, and the tags.  It is ready to be used with the [[TableSortingPlugin|http://tw.lewcid.org/#TableSortingPlugin]] (check versions) so any column can be sorted; such as size in ascending or descending order.
<<<
!!!!!Installation
<<<
Import (or copy/paste) the following tiddlers into your ~TiddlyWiki:
* http://twhelp.tiddlyspot.com/#TwHelpSearchPlugin
*SearchOptionsPlugin from http://www.tiddlytools.com/#SearchOptionsPlugin
* Get more documentation here [[TWHelpSearchDoc]] or here:
* http://twhelp.tiddlyspot.com/#TwHelpSearchDoc
<<<
!!!!!Revision History
<<<
''2009.02.18  [1.0.8]'' 
Added modified column.
''2009.02.18  [1.0.7]'' 
Removed text coloring of headers re: conflict with TableSortingPlugin refresh.
''2008.09.14  [1.0.6]'' 
Cosmetic - Add header.
''2007.09.12  [1.0.6]''
Added overflow scroll to TWHelp-SearchResults for long titles or tags.
''2006.02.03  [1.0.5]''
Added facility for holding the results of multiple searches with tick box on dashboard.
''2006.02.02  [1.0.4]''
Added several options, cleaned up design.Planning one version basic and one with added options this is the added options version.
''2006.01.27  [1.0.3''
Added a column for the size of the text in each tiddler, this does not include the size of the title or tags.  Added overall TW statistics button requires TiddlerStatsPlugin.
''2006.01.23 [1.0.2 ]''
''a)''Changed function reportSearchResults(text,matches) to  window.reportSearchResults=function(text,matches)
''b)''Added a line so that Incremental Search is automatically disabled config.options.chkSearchIncremental=false; turn off key-by-key searching
''c)''Removed space inside parens. bgcolor(#fe8 )" to "bgcolor(#fe8)".  This
is what was causing IE to 'crap out' halfway through drawing the table
headings.
''d)''Added {{{config.options.chkSearchList=true;}}}
''2006.01.20 [1.0.1]''
ELS: reportSearchResults() definition moved to this Plugin Tweak tiddler and removed extranous code
''2006.01.19 [1.0.0]''
This is an adaptation of Eric Shulman's SearchOptionsPlugin. Adapted by MorrisGray to provide search results in table form. All the necessary controls for refining the search is provided within the table including slide-down access to AdvancedOptions.
<<<
!!!!!Code
***/

//{{{
if (config.options.chkSinglePageMode==undefined) config.options.chkSinglePageMode=false;
if (config.options.chkRegExpSearch==undefined) config.options.chkRegExpSearch=true;
if (config.options.chkSearchTitles==undefined) config.options.chkSearchTitles=false;
if (config.options.chkSearchText==undefined) config.options.chkSearchText=true;
if (config.options.chkSearchTags==undefined) config.options.chkSearchTags=false;
if (config.options.chkSearchTitlesFirst==undefined) config.options.chkSearchTitlesFirst=true;
if (config.options.chkSearchList==undefined) config.options.chkSearchList=true;
if (config.options.chkSearchIncremental==undefined) config.options.chkSearchIncremental=false;
if (config.options.chkToggleLinks==true) config.options.chkToggleLinks=false;
if (config.options.chkHoldSearches==undefined) config.options.chkHoldSearches=false;
if (config.options.chkSortTags==undefined) config.options.chkSortTags=false;

config.options.chkToggleLinks=false;
config.options.chkSinglePageMode=false;
config.options.chkHoldSearches=false;
config.options.chkSearchIncremental=false;
config.options.chkHttpReadOnly = false;
config.options.chkRegExpSearch=true;
config.options.chkSearchList=true;
config.options.chkToggleLinks=false;

config.shadowTiddlers.AdvancedOptions += "\n<<option chkHoldSearches>> Gem søgeresultater midlertidigt";


//}}}

//{{{

// Give the report a custom name
config.macros.search.reportTitle="SøgeResultater";

// Override default SearchOptionsPlugin formatting for SearchResults tiddler
window.reportSearchResults=function(text,matches)

{
  
        var title=config.macros.search.reportTitle
	config.macros.search.reportTitle;
      	var q = config.options.chkRegExpSearch ? "/" : "'";
        if (!config.options.chkHoldSearches)  body=""; 
      
body+="\n|borderless|k\n|>|''"+config.macros.search.successMsg.format([matches.length,q+"{{{"+text+"}}}"+q])+"''|Ver: <<version>> "+"|"+"\n";
        body+="|>|>|<<search>> <<option chkSearchTitles>> Titler <<option chkSearchText>> Tekst <<option chkSearchTags>>Tags <<option chkHoldSearches>> Hold |"+"\n";
 
        body+="\n|bgcolor:#4c4c4c;&nbsp;|bgcolor:#4c4c4c; ''Titler'' (Navne)|bgcolor:#4c4c4c; ''Størrelse'' |bgcolor:#4c4c4c; ''Tags'' |bgcolor:#4c4c4c; ''Ændret'' |h";
	for(var t=0;t<matches.length;t++) 
        body+="\n"+"| "+(t+1)+"|[["+matches[t].title+"]] |"+matches[t].text.length+"|"+matches[t].tags+"|"+matches[t].modified.formatString('YYYY.0MM.0DD')+"|";
         body+="\n|sortable small|k";
         body+="\n";

	// create/update the tiddler
	var tiddler=store.getTiddler(title); if (!tiddler) tiddler=new Tiddler();
	tiddler.set(title,body,config.options.txtUserName,(new Date()),"excludeLists excludeSearch killbookmark");
	store.addTiddler(tiddler); story.closeTiddler(title);

	// render tiddler
	var oldprompt=config.macros.search.label;
	config.macros.search.label="søg igen"; // use alternate "search again" label
        story.displayTiddler(null,title,1); // force refresh
	config.macros.search.label=oldprompt;	// restore standard search label
}

//}}}
!usage
{{{[img[Uffe.png]]}}}
[img[Uffe.png]]
!notes
//none//
!type

!file

!url
http://www.linux-abc.dk/phpBB3/download/file.php?avatar=2_1255881982.png
!data

|sortable widetable|k
|<<tiddler MeMo##toggleReadonly>><<tiddler RefreshTiddler with: genopfrisk>>|c
| Spørgsmål | Svar |h
|<<editSection [[##Spørgsmål]] [[redigér Spørgsmål]]>><<tiddler [[##Spørgsmål]]>>|<<tiddler [[##Link]] with:{{store.getValue(tiddler,'link')}}>><<editSection [[##Svar]] [[redigér Svar]]>><<tiddler [[##Svar]]>>|
|>|<<editSection [[##Notat]] [[redigér]]>>Notat:<<tiddler [[##Notat]]>>|
/%
!Spørgsmål

!Svar

!Notat
Distro/andet: Mange
!Link

[[Link »|http://google.dk/search?q=UnetBootin&sitesearch=linux-abc.dk/phpBB3/]]
!end %/
| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |
| 02/08/2011 16:23:44 | DitNavn | [[phelp.html|file:///mnt/home/Dropbox/Public/TW/Puppy5.2.5/phelp.html]] | [[store.cgi|http://phelp.tiddlyspot.com/store.cgi]] | . | [[index.html | http://phelp.tiddlyspot.com/index.html]] | . | ok |
| 02/08/2011 17:04:02 | DitNavn | [[phelp.html|file:///mnt/home/Dropbox/Public/TW/Puppy5.2.5/phelp.html]] | [[store.cgi|http://phelp.tiddlyspot.com/store.cgi]] | . | [[index.html | http://phelp.tiddlyspot.com/index.html]] | . | ok |
| 02/08/2011 17:15:14 | DitNavn | [[phelp.html|file:///mnt/home/Dropbox/Public/TW/Puppy5.2.5/phelp.html]] | [[store.cgi|http://phelp.tiddlyspot.com/store.cgi]] | . | [[index.html | http://phelp.tiddlyspot.com/index.html]] | . | ok |
| 02/08/2011 19:04:27 | DitNavn | [[phelp.html|file:///mnt/home/Dropbox/Public/TW/Puppy5.2.5/phelp.html]] | [[store.cgi|http://phelp.tiddlyspot.com/store.cgi]] | . | [[index.html | http://phelp.tiddlyspot.com/index.html]] | . | ok |
| 02/08/2011 20:20:30 | DitNavn | [[phelp.html|file:///mnt/home/Dropbox/Public/TW/Puppy5.2.5/phelp.html]] | [[store.cgi|http://phelp.tiddlyspot.com/store.cgi]] | . | [[index.html | http://phelp.tiddlyspot.com/index.html]] | . | ok |
| 02/08/2011 20:26:52 | DitNavn | [[phelp.html|file:///mnt/home/Dropbox/Public/TW/Puppy5.2.5/phelp.html]] | [[store.cgi|http://phelp.tiddlyspot.com/store.cgi]] | . | [[index.html | http://phelp.tiddlyspot.com/index.html]] | . | ok |
| 02/08/2011 21:03:07 | DitNavn | [[phelp.html|file:///mnt/home/Dropbox/Public/TW/Puppy5.2.5/phelp.html]] | [[store.cgi|http://phelp.tiddlyspot.com/store.cgi]] | . | [[index.html | http://phelp.tiddlyspot.com/index.html]] | . | ok |
| 02/08/2011 22:05:11 | DitNavn | [[phelp.html|file:///mnt/home/Dropbox/Public/TW/Puppy5.2.5/phelp.html]] | [[store.cgi|http://phelp.tiddlyspot.com/store.cgi]] | . | [[index.html | http://phelp.tiddlyspot.com/index.html]] | . | ok |
| 03/08/2011 13:17:09 | DitNavn | [[phelp.html|file:///mnt/home/Dropbox/Public/TW/Puppy5.2.5/phelp.html]] | [[store.cgi|http://phelp.tiddlyspot.com/store.cgi]] | . | [[index.html | http://phelp.tiddlyspot.com/index.html]] | . | ok |
| 03/08/2011 23:09:00 | DitNavn | [[phelp.html|file:///mnt/home/Dropbox/Public/TW/Puppy5.2.5/phelp.html]] | [[store.cgi|http://phelp.tiddlyspot.com/store.cgi]] | . | [[index.html | http://phelp.tiddlyspot.com/index.html]] | . |
/***
|''Name:''|UploadPlugin|
|''Description:''|Save to web a TiddlyWiki|
|''Version:''|4.1.3|
|''Date:''|Feb 24, 2008|
|''Source:''|http://tiddlywiki.bidix.info/#UploadPlugin|
|''Documentation:''|http://tiddlywiki.bidix.info/#UploadPluginDoc|
|''Author:''|BidiX (BidiX (at) bidix (dot) info)|
|''License:''|[[BSD open source license|http://tiddlywiki.bidix.info/#%5B%5BBSD%20open%20source%20license%5D%5D ]]|
|''~CoreVersion:''|2.2.0|
|''Requires:''|PasswordOptionPlugin|
***/
//{{{
version.extensions.UploadPlugin = {
	major: 4, minor: 1, revision: 3,
	date: new Date("Feb 24, 2008"),
	source: 'http://tiddlywiki.bidix.info/#UploadPlugin',
	author: 'BidiX (BidiX (at) bidix (dot) info',
	coreVersion: '2.2.0'
};

//
// Environment
//

if (!window.bidix) window.bidix = {}; // bidix namespace
bidix.debugMode = false;	// true to activate both in Plugin and UploadService
	
//
// Upload Macro
//

config.macros.upload = {
// default values
	defaultBackupDir: '',	//no backup
	defaultStoreScript: "store.php",
	defaultToFilename: "index.html",
	defaultUploadDir: ".",
	authenticateUser: true	// UploadService Authenticate User
};
	
config.macros.upload.label = {
	promptOption: "Save and Upload this TiddlyWiki with UploadOptions",
	promptParamMacro: "Save and Upload this TiddlyWiki in %0",
	saveLabel: "save to web", 
	saveToDisk: "save to disk",
	uploadLabel: "upload"	
};

config.macros.upload.messages = {
	noStoreUrl: "No store URL in parmeters or options",
	usernameOrPasswordMissing: "Username or password missing"
};

config.macros.upload.handler = function(place,macroName,params) {
	if (readOnly)
		return;
	var label;
	if (document.location.toString().substr(0,4) == "http") 
		label = this.label.saveLabel;
	else
		label = this.label.uploadLabel;
	var prompt;
	if (params[0]) {
		prompt = this.label.promptParamMacro.toString().format([this.destFile(params[0], 
			(params[1] ? params[1]:bidix.basename(window.location.toString())), params[3])]);
	} else {
		prompt = this.label.promptOption;
	}
	createTiddlyButton(place, label, prompt, function() {config.macros.upload.action(params);}, null, null, this.accessKey);
};

config.macros.upload.action = function(params)
{
		// for missing macro parameter set value from options
		if (!params) params = {};
		var storeUrl = params[0] ? params[0] : config.options.txtUploadStoreUrl;
		var toFilename = params[1] ? params[1] : config.options.txtUploadFilename;
		var backupDir = params[2] ? params[2] : config.options.txtUploadBackupDir;
		var uploadDir = params[3] ? params[3] : config.options.txtUploadDir;
		var username = params[4] ? params[4] : config.options.txtUploadUserName;
		var password = config.options.pasUploadPassword; // for security reason no password as macro parameter	
		// for still missing parameter set default value
		if ((!storeUrl) && (document.location.toString().substr(0,4) == "http")) 
			storeUrl = bidix.dirname(document.location.toString())+'/'+config.macros.upload.defaultStoreScript;
		if (storeUrl.substr(0,4) != "http")
			storeUrl = bidix.dirname(document.location.toString()) +'/'+ storeUrl;
		if (!toFilename)
			toFilename = bidix.basename(window.location.toString());
		if (!toFilename)
			toFilename = config.macros.upload.defaultToFilename;
		if (!uploadDir)
			uploadDir = config.macros.upload.defaultUploadDir;
		if (!backupDir)
			backupDir = config.macros.upload.defaultBackupDir;
		// report error if still missing
		if (!storeUrl) {
			alert(config.macros.upload.messages.noStoreUrl);
			clearMessage();
			return false;
		}
		if (config.macros.upload.authenticateUser && (!username || !password)) {
			alert(config.macros.upload.messages.usernameOrPasswordMissing);
			clearMessage();
			return false;
		}
		bidix.upload.uploadChanges(false,null,storeUrl, toFilename, uploadDir, backupDir, username, password); 
		return false; 
};

config.macros.upload.destFile = function(storeUrl, toFilename, uploadDir) 
{
	if (!storeUrl)
		return null;
		var dest = bidix.dirname(storeUrl);
		if (uploadDir && uploadDir != '.')
			dest = dest + '/' + uploadDir;
		dest = dest + '/' + toFilename;
	return dest;
};

//
// uploadOptions Macro
//

config.macros.uploadOptions = {
	handler: function(place,macroName,params) {
		var wizard = new Wizard();
		wizard.createWizard(place,this.wizardTitle);
		wizard.addStep(this.step1Title,this.step1Html);
		var markList = wizard.getElement("markList");
		var listWrapper = document.createElement("div");
		markList.parentNode.insertBefore(listWrapper,markList);
		wizard.setValue("listWrapper",listWrapper);
		this.refreshOptions(listWrapper,false);
		var uploadCaption;
		if (document.location.toString().substr(0,4) == "http") 
			uploadCaption = config.macros.upload.label.saveLabel;
		else
			uploadCaption = config.macros.upload.label.uploadLabel;
		
		wizard.setButtons([
				{caption: uploadCaption, tooltip: config.macros.upload.label.promptOption, 
					onClick: config.macros.upload.action},
				{caption: this.cancelButton, tooltip: this.cancelButtonPrompt, onClick: this.onCancel}
				
			]);
	},
	options: [
		"txtUploadUserName",
		"pasUploadPassword",
		"txtUploadStoreUrl",
		"txtUploadDir",
		"txtUploadFilename",
		"txtUploadBackupDir",
		"chkUploadLog",
		"txtUploadLogMaxLine"		
	],
	refreshOptions: function(listWrapper) {
		var opts = [];
		for(i=0; i<this.options.length; i++) {
			var opt = {};
			opts.push();
			opt.option = "";
			n = this.options[i];
			opt.name = n;
			opt.lowlight = !config.optionsDesc[n];
			opt.description = opt.lowlight ? this.unknownDescription : config.optionsDesc[n];
			opts.push(opt);
		}
		var listview = ListView.create(listWrapper,opts,this.listViewTemplate);
		for(n=0; n<opts.length; n++) {
			var type = opts[n].name.substr(0,3);
			var h = config.macros.option.types[type];
			if (h && h.create) {
				h.create(opts[n].colElements['option'],type,opts[n].name,opts[n].name,"no");
			}
		}
		
	},
	onCancel: function(e)
	{
		backstage.switchTab(null);
		return false;
	},
	
	wizardTitle: "Upload with options",
	step1Title: "These options are saved in cookies in your browser",
	step1Html: "<input type='hidden' name='markList'></input><br>",
	cancelButton: "Cancel",
	cancelButtonPrompt: "Cancel prompt",
	listViewTemplate: {
		columns: [
			{name: 'Description', field: 'description', title: "Description", type: 'WikiText'},
			{name: 'Option', field: 'option', title: "Option", type: 'String'},
			{name: 'Name', field: 'name', title: "Name", type: 'String'}
			],
		rowClasses: [
			{className: 'lowlight', field: 'lowlight'} 
			]}
};

//
// upload functions
//

if (!bidix.upload) bidix.upload = {};

if (!bidix.upload.messages) bidix.upload.messages = {
	//from saving
	invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki",
	backupSaved: "Backup saved",
	backupFailed: "Failed to upload backup file",
	rssSaved: "RSS feed uploaded",
	rssFailed: "Failed to upload RSS feed file",
	emptySaved: "Empty template uploaded",
	emptyFailed: "Failed to upload empty template file",
	mainSaved: "Main TiddlyWiki file uploaded",
	mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved",
	//specific upload
	loadOriginalHttpPostError: "Can't get original file",
	aboutToSaveOnHttpPost: 'About to upload on %0 ...',
	storePhpNotFound: "The store script '%0' was not found."
};

bidix.upload.uploadChanges = function(onlyIfDirty,tiddlers,storeUrl,toFilename,uploadDir,backupDir,username,password)
{
	var callback = function(status,uploadParams,original,url,xhr) {
		if (!status) {
			displayMessage(bidix.upload.messages.loadOriginalHttpPostError);
			return;
		}
		if (bidix.debugMode) 
			alert(original.substr(0,500)+"\n...");
		// Locate the storeArea div's 
		var posDiv = locateStoreArea(original);
		if((posDiv[0] == -1) || (posDiv[1] == -1)) {
			alert(config.messages.invalidFileError.format([localPath]));
			return;
		}
		bidix.upload.uploadRss(uploadParams,original,posDiv);
	};
	
	if(onlyIfDirty && !store.isDirty())
		return;
	clearMessage();
	// save on localdisk ?
	if (document.location.toString().substr(0,4) == "file") {
		var path = document.location.toString();
		var localPath = getLocalPath(path);
		saveChanges();
	}
	// get original
	var uploadParams = new Array(storeUrl,toFilename,uploadDir,backupDir,username,password);
	var originalPath = document.location.toString();
	// If url is a directory : add index.html
	if (originalPath.charAt(originalPath.length-1) == "/")
		originalPath = originalPath + "index.html";
	var dest = config.macros.upload.destFile(storeUrl,toFilename,uploadDir);
	var log = new bidix.UploadLog();
	log.startUpload(storeUrl, dest, uploadDir,  backupDir);
	displayMessage(bidix.upload.messages.aboutToSaveOnHttpPost.format([dest]));
	if (bidix.debugMode) 
		alert("about to execute Http - GET on "+originalPath);
	var r = doHttp("GET",originalPath,null,null,username,password,callback,uploadParams,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

bidix.upload.uploadRss = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		if(status) {
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.rssSaved,bidix.dirname(url)+'/'+destfile);
			bidix.upload.uploadMain(params[0],params[1],params[2]);
		} else {
			displayMessage(bidix.upload.messages.rssFailed);			
		}
	};
	// do uploadRss
	if(config.options.chkGenerateAnRssFeed) {
		var rssPath = uploadParams[1].substr(0,uploadParams[1].lastIndexOf(".")) + ".xml";
		var rssUploadParams = new Array(uploadParams[0],rssPath,uploadParams[2],'',uploadParams[4],uploadParams[5]);
		var rssString = generateRss();
		// no UnicodeToUTF8 conversion needed when location is "file" !!!
		if (document.location.toString().substr(0,4) != "file")
			rssString = convertUnicodeToUTF8(rssString);	
		bidix.upload.httpUpload(rssUploadParams,rssString,callback,Array(uploadParams,original,posDiv));
	} else {
		bidix.upload.uploadMain(uploadParams,original,posDiv);
	}
};

bidix.upload.uploadMain = function(uploadParams,original,posDiv) 
{
	var callback = function(status,params,responseText,url,xhr) {
		var log = new bidix.UploadLog();
		if(status) {
			// if backupDir specified
			if ((params[3]) && (responseText.indexOf("backupfile:") > -1))  {
				var backupfile = responseText.substring(responseText.indexOf("backupfile:")+11,responseText.indexOf("\n", responseText.indexOf("backupfile:")));
				displayMessage(bidix.upload.messages.backupSaved,bidix.dirname(url)+'/'+backupfile);
			}
			var destfile = responseText.substring(responseText.indexOf("destfile:")+9,responseText.indexOf("\n", responseText.indexOf("destfile:")));
			displayMessage(bidix.upload.messages.mainSaved,bidix.dirname(url)+'/'+destfile);
			store.setDirty(false);
			log.endUpload("ok");
		} else {
			alert(bidix.upload.messages.mainFailed);
			displayMessage(bidix.upload.messages.mainFailed);
			log.endUpload("failed");			
		}
	};
	// do uploadMain
	var revised = bidix.upload.updateOriginal(original,posDiv);
	bidix.upload.httpUpload(uploadParams,revised,callback,uploadParams);
};

bidix.upload.httpUpload = function(uploadParams,data,callback,params)
{
	var localCallback = function(status,params,responseText,url,xhr) {
		url = (url.indexOf("nocache=") < 0 ? url : url.substring(0,url.indexOf("nocache=")-1));
		if (xhr.status == 404)
			alert(bidix.upload.messages.storePhpNotFound.format([url]));
		if ((bidix.debugMode) || (responseText.indexOf("Debug mode") >= 0 )) {
			alert(responseText);
			if (responseText.indexOf("Debug mode") >= 0 )
				responseText = responseText.substring(responseText.indexOf("\n\n")+2);
		} else if (responseText.charAt(0) != '0') 
			alert(responseText);
		if (responseText.charAt(0) != '0')
			status = null;
		callback(status,params,responseText,url,xhr);
	};
	// do httpUpload
	var boundary = "---------------------------"+"AaB03x";	
	var uploadFormName = "UploadPlugin";
	// compose headers data
	var sheader = "";
	sheader += "--" + boundary + "\r\nContent-disposition: form-data; name=\"";
	sheader += uploadFormName +"\"\r\n\r\n";
	sheader += "backupDir="+uploadParams[3] +
				";user=" + uploadParams[4] +
				";password=" + uploadParams[5] +
				";uploaddir=" + uploadParams[2];
	if (bidix.debugMode)
		sheader += ";debug=1";
	sheader += ";;\r\n"; 
	sheader += "\r\n" + "--" + boundary + "\r\n";
	sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\""+uploadParams[1]+"\"\r\n";
	sheader += "Content-Type: text/html;charset=UTF-8" + "\r\n";
	sheader += "Content-Length: " + data.length + "\r\n\r\n";
	// compose trailer data
	var strailer = new String();
	strailer = "\r\n--" + boundary + "--\r\n";
	data = sheader + data + strailer;
	if (bidix.debugMode) alert("about to execute Http - POST on "+uploadParams[0]+"\n with \n"+data.substr(0,500)+ " ... ");
	var r = doHttp("POST",uploadParams[0],data,"multipart/form-data; ;charset=UTF-8; boundary="+boundary,uploadParams[4],uploadParams[5],localCallback,params,null);
	if (typeof r == "string")
		displayMessage(r);
	return r;
};

// same as Saving's updateOriginal but without convertUnicodeToUTF8 calls
bidix.upload.updateOriginal = function(original, posDiv)
{
	if (!posDiv)
		posDiv = locateStoreArea(original);
	if((posDiv[0] == -1) || (posDiv[1] == -1)) {
		alert(config.messages.invalidFileError.format([localPath]));
		return;
	}
	var revised = original.substr(0,posDiv[0] + startSaveArea.length) + "\n" +
				store.allTiddlersAsHtml() + "\n" +
				original.substr(posDiv[1]);
	var newSiteTitle = getPageTitle().htmlEncode();
	revised = revised.replaceChunk("<title"+">","</title"+">"," " + newSiteTitle + " ");
	revised = updateMarkupBlock(revised,"PRE-HEAD","MarkupPreHead");
	revised = updateMarkupBlock(revised,"POST-HEAD","MarkupPostHead");
	revised = updateMarkupBlock(revised,"PRE-BODY","MarkupPreBody");
	revised = updateMarkupBlock(revised,"POST-SCRIPT","MarkupPostBody");
	return revised;
};

//
// UploadLog
// 
// config.options.chkUploadLog :
//		false : no logging
//		true : logging
// config.options.txtUploadLogMaxLine :
//		-1 : no limit
//      0 :  no Log lines but UploadLog is still in place
//		n :  the last n lines are only kept
//		NaN : no limit (-1)

bidix.UploadLog = function() {
	if (!config.options.chkUploadLog) 
		return; // this.tiddler = null
	this.tiddler = store.getTiddler("UploadLog");
	if (!this.tiddler) {
		this.tiddler = new Tiddler();
		this.tiddler.title = "UploadLog";
		this.tiddler.text = "| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |";
		this.tiddler.created = new Date();
		this.tiddler.modifier = config.options.txtUserName;
		this.tiddler.modified = new Date();
		store.addTiddler(this.tiddler);
	}
	return this;
};

bidix.UploadLog.prototype.addText = function(text) {
	if (!this.tiddler)
		return;
	// retrieve maxLine when we need it
	var maxLine = parseInt(config.options.txtUploadLogMaxLine,10);
	if (isNaN(maxLine))
		maxLine = -1;
	// add text
	if (maxLine != 0) 
		this.tiddler.text = this.tiddler.text + text;
	// Trunck to maxLine
	if (maxLine >= 0) {
		var textArray = this.tiddler.text.split('\n');
		if (textArray.length > maxLine + 1)
			textArray.splice(1,textArray.length-1-maxLine);
			this.tiddler.text = textArray.join('\n');		
	}
	// update tiddler fields
	this.tiddler.modifier = config.options.txtUserName;
	this.tiddler.modified = new Date();
	store.addTiddler(this.tiddler);
	// refresh and notifiy for immediate update
	story.refreshTiddler(this.tiddler.title);
	store.notify(this.tiddler.title, true);
};

bidix.UploadLog.prototype.startUpload = function(storeUrl, toFilename, uploadDir,  backupDir) {
	if (!this.tiddler)
		return;
	var now = new Date();
	var text = "\n| ";
	var filename = bidix.basename(document.location.toString());
	if (!filename) filename = '/';
	text += now.formatString("0DD/0MM/YYYY 0hh:0mm:0ss") +" | ";
	text += config.options.txtUserName + " | ";
	text += "[["+filename+"|"+location + "]] |";
	text += " [[" + bidix.basename(storeUrl) + "|" + storeUrl + "]] | ";
	text += uploadDir + " | ";
	text += "[[" + bidix.basename(toFilename) + " | " +toFilename + "]] | ";
	text += backupDir + " |";
	this.addText(text);
};

bidix.UploadLog.prototype.endUpload = function(status) {
	if (!this.tiddler)
		return;
	this.addText(" "+status+" |");
};

//
// Utilities
// 

bidix.checkPlugin = function(plugin, major, minor, revision) {
	var ext = version.extensions[plugin];
	if (!
		(ext  && 
			((ext.major > major) || 
			((ext.major == major) && (ext.minor > minor))  ||
			((ext.major == major) && (ext.minor == minor) && (ext.revision >= revision))))) {
			// write error in PluginManager
			if (pluginInfo)
				pluginInfo.log.push("Requires " + plugin + " " + major + "." + minor + "." + revision);
			eval(plugin); // generate an error : "Error: ReferenceError: xxxx is not defined"
	}
};

bidix.dirname = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(0, lastpos);
	} else {
		return filePath.substring(0, filePath.lastIndexOf("\\"));
	}
};

bidix.basename = function(filePath) {
	if (!filePath) 
		return;
	var lastpos;
	if ((lastpos = filePath.lastIndexOf("#")) != -1) 
		filePath = filePath.substring(0, lastpos);
	if ((lastpos = filePath.lastIndexOf("/")) != -1) {
		return filePath.substring(lastpos + 1);
	} else
		return filePath.substring(filePath.lastIndexOf("\\")+1);
};

bidix.initOption = function(name,value) {
	if (!config.options[name])
		config.options[name] = value;
};

//
// Initializations
//

// require PasswordOptionPlugin 1.0.1 or better
bidix.checkPlugin("PasswordOptionPlugin", 1, 0, 1);

// styleSheet
setStylesheet('.txtUploadStoreUrl, .txtUploadBackupDir, .txtUploadDir {width: 22em;}',"uploadPluginStyles");

//optionsDesc
merge(config.optionsDesc,{
	txtUploadStoreUrl: "Url of the UploadService script (default: store.php)",
	txtUploadFilename: "Filename of the uploaded file (default: in index.html)",
	txtUploadDir: "Relative Directory where to store the file (default: . (downloadService directory))",
	txtUploadBackupDir: "Relative Directory where to backup the file. If empty no backup. (default: ''(empty))",
	txtUploadUserName: "Upload Username",
	pasUploadPassword: "Upload Password",
	chkUploadLog: "do Logging in UploadLog (default: true)",
	txtUploadLogMaxLine: "Maximum of lines in UploadLog (default: 10)"
});

// Options Initializations
bidix.initOption('txtUploadStoreUrl','');
bidix.initOption('txtUploadFilename','');
bidix.initOption('txtUploadDir','');
bidix.initOption('txtUploadBackupDir','');
bidix.initOption('txtUploadUserName','');
bidix.initOption('pasUploadPassword','');
bidix.initOption('chkUploadLog',true);
bidix.initOption('txtUploadLogMaxLine','10');


// Backstage
merge(config.tasks,{
	uploadOptions: {text: "upload", tooltip: "Change UploadOptions and Upload", content: '<<uploadOptions>>'}
});
config.backstageTasks.push("uploadOptions");


//}}}

There is a bunch of utilities in Puppy Linux. They will take care of most of your needs.
@@display:block;height:auto;overflow:auto;<<tiddler Velkommen##tekst dp50>><<tiddler Velkommen##tab dp50>>
@@
{{hidden{
!tekst
TiddlyWiki er et alsidigt værktøj og også velegnet til at lave guides som denne. 
TiddlyWiki tillader dig at gemme, søge og organisere information på en logisk og simpel måde. 
Selve filen er en såkaldt HTML fil. 
Det betyder at den læses, redigeres og printes fra en browser. 

----

{{yellowbox center{''Tip:''
{{span{[[Download guiden først.|http://phelp.tiddlyspot.com/download]] 
//Du kan ikke åbne links til lokale programmer og mapper uden at have guiden liggende på din disk og du har brug for internet for at kunne følge links til eksterne ressourcer.//}}}
}}}
!tab
@@font-size:90%;{{rTab{<<tabs txtVelkommenTab "Guide" "Menupunkter i guiden" Velkommen##Guide "Tags" "Alle tags" Velkommen##tabTags "Map""se siteMap" Velkommen##tabTaggly "Emner" "tagget med emne" Velkommen##emne>>}}}@@
{{red borderleft{
//Klik på faner for at bladre
Klik på mapper for at åbne
Klik på titler for at læse!//
}}}
Original (Notecase): [[Puppy Help 101 for Lucid 5.2.5 prepared by Smokey01|http://www.murga-linux.com/puppy/viewtopic.php?t=69321]]
!tabTags
<<tagsplorer exclude:excludeLists [[PuppyLinux]][[Guide]]>>
!tabTaggly
@@font-size:78%;{{nobullets{<<tagglyTagging Guide>>}}}@@
!memo
<<tiddler Velkommen##træ with:memo>>
!Guide
<<tiddler Velkommen##træ with:Guide>>
!emne
<<tiddler Velkommen##træ with:emne>>
!træ
<<treeview2 "$1" "filetree" 'collapsed: true, antisesame: "closed", animated: "fast", persist: "cookie", cookieId: "$1"'>>
!end
"Memo" "tagget med memo" Velkommen##memo
}}}
//Søg 3 steder med samme søgeord!!
#På Linux-abc via Google
#Her i wikien eller
#Søg med searchMonkey i Puppy Linux//
----
<<tiddler abc-Søgning>>
<!--{{{-->
<div macro="hideWhen readOnly"><div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]] icons:no'></div></div><div macro="showWhen readOnly"><div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbarReadOnly]]'></div></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>
<!--}}}-->
/*{{{*/
Background: #eae2f2
Foreground: #140c1c
PrimaryPale: #a886ca
PrimaryLight: #7f4db1
PrimaryMid: #563478
PrimaryDark: #040306
SecondaryPale: #88ca86
SecondaryLight: #50b14d
SecondaryMid: #367834
SecondaryDark: #030603
TertiaryPale: #c7ca86
TertiaryLight: #adb14d
TertiaryMid: #767834
TertiaryDark: #060603
Error: #f88
ColorPaletteParameters: HSL([270|28], [0.3915569740347564],[0.01957194902934134|0.6590866206679493])
/*}}}*/
Write er egentlig <<LaunchApplicationButton "Abiword" "åbn Abiword" "file:///usr/bin/abiword">>  og det er et komplet tekstbehandlingsprogram, som er kompatibelt med MS Word.

Write har sit eget fileformat: .abw. Hvis du hellere vil gemme dine dokumenter som Worddokumenter så kan du ændre det når du vælger "Gem som". Der er mange forskellige formater at vælge mellem.
{{floatright{+++*[vælg/skriv søge-emne »]<<select =txtSearch  rows:1 width:7 "Puppy-abc"autoSave allowOther allowMultiple =emne>> <<option txtSearch>> {{bold button floatright{<<tiddler RefreshTiddler with: "Søg »" "opdaterer til ny søgning">>}}}
<<tiddler abc-Søgning##spørg with: {{config.options.txtSearch}} Spørgsmål Svar>> Se alle <<tag emne Emner>>===}}}<<tiddler abc-Søgning##search with: {{config.options.txtSearch}}>>
{{hidden{
!emne
<<newTiddler title:[[$1]] label: [[opret nyt emne udfra sidste søgning ]] text:{{store.getTiddlerText('SøgeEmneTekst')}}tag:[[emne]] focus:text>>
!spørg
<script label="Nyt emne OG ?/! ud fra sidste søgning" title="opret et nyt emne ud fra sidste søgning --
@@NB! Overskriver eksisterende emne med samme navn!!@@">
        var tid=prompt("Skriv en titel","$1");
        if (!tid || !tid.length) return;
        var txt="|sortable widetable|k\n|<<tiddler MeMo##toggleReadonly\>\><<tiddler RefreshTiddler with: genopfrisk\>\>|c\n| $2 | $3 |h\n|<<editSection [[##$2]] [[redigér $2]]\>\><<tiddler [[##$2]]\>\>|<<tiddler [[##Link]] with:{{store.getValue(tiddler,'link')}}\>\><<editSection [[##$3]] [[redigér $3]]\>\><<tiddler [[##$3]]\>\>|\n|>|<<editSection [[##Notat]] [[redigér]]\>\>Notat:<<tiddler [[##Notat]]\>\>|\n/%\n!$2\n\n!$3\n\n!Notat\n\n!Link\n\n[[Link »|http://google.dk/search?q=$1&sitesearch=linux-abc.dk/phpBB3/]]\n!end %/"; 
        var who=config.options.txtUserName;
        var when=new Date();
        var tags=['emne','memo'];
        var url=prompt("Indsæt link","http://google.dk/search?q=$1&sitesearch=linux-abc.dk/phpBB3/");
        if (!url || !url.length) return;
        var fields={ link: url };
        store.saveTiddler(tid,tid,txt,who,when,tags,fields);
        story.displayTiddler(null,tid);
</script>
!end
!text

!search
@@position:relative;++++^^*[sidste abc-søgning: $1 »]
<html><div align="center"><iframe src="http://google.dk/search?q=$1&sitesearch=linux-abc.dk/phpBB3/" frameborder="0" width="800" height="500"></iframe></div></html>===@@ 
{{button{[search[Søg efter: $1 her i wikien »|$1]]}}}
<<tiddler rox##søg with:{{config.options.txtSearch}}>>
!end 
}}}
!usage
{{{[img[abc-titel.png]]}}}
[img[abc-titel.png]]
!notes
//none//
!type
image/png
!file

!url
http://dl.dropbox.com/u/15835063/PuppyProjekt/puppy-abc-titel.png
!data

| source file:|{{{F:\TiddlyWiki\TWExperiments\jQuery\images\book.gif}}}|
| attached on:|31 May 2009 by YourName|
| embedded:|[[book.gif|book.gif]] - {{{type=image/gif, size=572 bytes, encoded=775 bytes}}}|
| local file:|/%LOCAL_LINK%/[[./images/book.gif|./images/book.gif]]|
| remote link:|/%REMOTE_LINK%/[[http://www.symbex.net.au/Wiki/images/book.gif|http://www.symbex.net.au/Wiki/images/book.gif]]|
image
<<<
usage: {{{[img[tooltip|book.gif]] or [img[tooltip|book.gif][link]]}}}
[img[tooltip|book.gif]]
<<<

/% DO NOT EDIT BELOW THIS POINT
---BEGIN_DATA---
image/gif;base64,
R0lGODlhEAAOAOZcAGpqc32HqGBlif7+/qXf+pzO5o2a6Jil8urw+mZzx4aT4v78
/uHp+pys9Jun9G16zZC5zZmm84+d65Gd7Gt5zYqa5Wl2ypaj8Ovt7HKA03uI2aOv
rtHP0Kapq2BrtFZlwWRxx4KRqWNnflddgpSg7oOQ3298z1ppw19twYeU5Jej8ff3
+aKswo6a6XqH2V1qwEBOQ1RhuHF+0FhnvZyo9Pj3+md1yVFbmn+M3Fpnvn6K266x
r3yj0IWVzZejrMzOzWBuxJuv74GO34SR4T9TRmFwyoqW5bCzsml0t5CSoEdepWpq
dHZ7mnaD1mNwxXiI63iF15Of7VNhuE5dtHWC03d4gGBwzlpee52p9mVkZ0hWr3B5
lv///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAFwALAAAAAAQAA4AAAeZgFyCg1wBW1mEiYKGERMK
AoqLWlhYFwZCVJCEPj2UWA5RKRomTppcAFcEDZQqLSVNFi9SV4IAT1sEQTQkRjoy
IDNTSiOnVlpbBQcSQ1AUKDEeRVqIV8bIFTgZCTlIH0RbLILVxxAuD0AnWiJJCAyD
41s8NjdbHAMrG4jvxkshPwMYjmSpoqgakwU1OgyMJAhGlR0LGQ6KmCgQADs=
---END_DATA---
%/
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="29pt" width="29pt" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="13 43 29 29" xmlns:dc="http://purl.org/dc/elements/1.1/">
 <metadata id="metadata34">
  <rdf:RDF>
   <cc:Work rdf:about="">
    <dc:format>image/svg+xml</dc:format>
    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
    <dc:title/>
   </cc:Work>
  </rdf:RDF>
 </metadata>
 <defs id="defs6">
  <title id="title26">Layer 1</title>
  <title id="title22">Canvas 1</title>
  <filter id="filter3630">
   <feGaussianBlur id="feGaussianBlur3632" stdDeviation="0.625"/>
  </filter>
 <linearGradient id="linearGradient001" y2="27.646" gradientUnits="userSpaceOnUse" x2="-45.8" y1="27.646" x1="-57.66">
   <stop id="stop1" stop-color="#ffffff" offset="0"/>
   <stop id="stop2" stop-color="#ffa0a0" offset="0.66462"/>
   <stop id="stop3" stop-color="#ffffff" offset="1"/>
  </linearGradient></defs>
 <rect id="iconBG" style="stroke-dasharray:none;" stroke-width="1.2" fill-rule="evenodd" ry="4.1663" transform="matrix(0, -1, 1, 0, 0, 0)" width="25" stroke="#696969" stroke-linecap="round" stroke-miterlimit="4" y="15.167" x="-70.116" height="25" fill="none"/>
 <rect id="iconFG" style="stroke-dasharray:none;" stroke-width="1.6" fill-rule="evenodd" ry="2.3755" transform="matrix(0, -1, 1, 0, 0, 0)" width="22" stroke="#e6e6e6" stroke-linecap="round" stroke-miterlimit="4" y="16.646" x="-68.6" height="22" fill="url(#linearGradient001)" opacity="0"/>
 <g id="iconSymbol" stroke-linejoin="miter" stroke="#4d4d4d">
  <path id="path3288" style="stroke-dasharray:none;" d="m31.328,58.508a1.2868,1.2868,0,1,1,-1.1862,1.1643" transform="matrix(4.67791, 0, 0, 4.67791, -119.332, -222.038)" stroke-linecap="round" stroke-miterlimit="4" stroke-width="0.342033" fill="none"/>
  <path id="path4348" d="m20.433,50.322,4.3207,0-1.3291,1.3291,6.1802,6.4735-1.687,1.687-6.3268-6.3268-1.158,1.158,0-4.3207z" stroke-linecap="butt" stroke-width="0.80000001px" fill="#4d4d4d"/>
 </g>
 <rect id="overlay" style="stroke-dasharray:none;" transform="matrix(0, -1, 1, 0, -32, 0)" fill-rule="evenodd" ry="4.1663" height="25" filter="url(#filter3630)" width="25" stroke="#00F" stroke-linecap="round" stroke-miterlimit="4" y="47.167" x="-70.116" stroke-width="1.2" fill="#ACF" class="overlayOnHover" opacity="0"/>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="29pt" width="29pt" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="13 43 29 29" xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata id="metadata34">
 <rdf:RDF>
  <cc:Work rdf:about="">
  <dc:format>image/svg+xml</dc:format>
  <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
  <dc:title/>
  </cc:Work>
 </rdf:RDF>
</metadata>
 <defs id="defs6">
  <title id="title26">Layer 1</title>
  <title id="title22">Canvas 1</title>
  <filter id="filter001">
   <feGaussianBlur id="feGaussianBlur3632" stdDeviation="0.625"/>
  </filter>
 <linearGradient id="linearGradient001" y2="27.646" gradientUnits="userSpaceOnUse" x2="-45.8" y1="27.646" x1="-57.66">
   <stop id="stop1" stop-color="#ffffff" offset="0"/>
   <stop id="stop2" stop-color="#ffa0a0" offset="0.66462"/>
   <stop id="stop3" stop-color="#ffffff" offset="1"/>
  </linearGradient></defs>
 <rect id="iconBG" style="stroke-dasharray:none;" stroke-width="1.2" fill-rule="evenodd" ry="4.1663" transform="matrix(0, -1, 1, 0, 0, 0)" width="25" stroke="#696969" stroke-linecap="round" stroke-miterlimit="4" y="15.167" x="-70.116" height="25" fill="none"/>
 <rect id="iconFG" style="stroke-dasharray:none;" stroke-width="1.6" fill-rule="evenodd" ry="2.3755" transform="matrix(0, -1, 1, 0, 0, 0)" width="22" stroke="#e6e6e6" stroke-linecap="round" stroke-miterlimit="4" y="16.646" x="-68.6" height="22" fill="url(#linearGradient001)" opacity="0"/>
 <g id="iconSymbol" stroke-linejoin="miter" style="stroke-dasharray:none;" transform="matrix(0.579556, -0.579556, 0.579556, 0.579556, -4.21894, 26.7647)" stroke="#4d4d4d" stroke-width="3.19999981" fill="#4d4d4d">
<path id="path3219" style="stroke-dasharray:none;" d="M-7.3399,53.9h16.353"/>
<path id="path3221" style="stroke-dasharray:none;" d="M0.8368,62.077v-16.354"/>
</g>
 <rect id="overlay" style="stroke-dasharray:none;" transform="matrix(0, -1, 1, 0, -32, 0)" fill-rule="evenodd" ry="4.1663" height="25" filter="url(#filter001)" width="25" stroke="#F00" stroke-linecap="round" stroke-miterlimit="4" y="47.167" x="-70.116" stroke-width="2" fill="#ffd5d5" class="overlayOnHover" opacity="0"/>
</svg>
Tiddleren 'closed' findes ikke endnu. Dobbelt-klik for at lave den
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="29pt" width="29pt" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="13 43 29 29" xmlns:dc="http://purl.org/dc/elements/1.1/">
<metadata id="metadata34">
 <rdf:RDF>
  <cc:Work rdf:about="">
  <dc:format>image/svg+xml</dc:format>
  <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
  <dc:title/>
  </cc:Work>
 </rdf:RDF>
</metadata>
 <defs id="defs6">
  <title id="title26">Layer 1</title>
  <title id="title22">Canvas 1</title>
  <filter id="filter001">
   <feGaussianBlur id="feGaussianBlur3632" stdDeviation="0.625"/>
  </filter>
 <linearGradient id="linearGradient001" y2="27.646" gradientUnits="userSpaceOnUse" x2="-45.8" y1="27.646" x1="-57.66">
   <stop id="stop1" stop-color="#ffffff" offset="0"/>
   <stop id="stop2" stop-color="#ffa0a0" offset="0.66462"/>
   <stop id="stop3" stop-color="#ffffff" offset="1"/>
  </linearGradient></defs>
 <rect id="iconBG" style="stroke-dasharray:none;" stroke-width="1.2" fill-rule="evenodd" ry="4.1663" transform="matrix(0, -1, 1, 0, 0, 0)" width="25" stroke="#696969" stroke-linecap="round" stroke-miterlimit="4" y="15.167" x="-70.116" height="25" fill="none"/>
 <rect id="iconFG" style="stroke-dasharray:none;" stroke-width="1.6" fill-rule="evenodd" ry="2.3755" transform="matrix(0, -1, 1, 0, 0, 0)" width="22" stroke="#e6e6e6" stroke-linecap="round" stroke-miterlimit="4" y="16.646" x="-68.6" height="22" fill="url(#linearGradient001)" opacity="0"/>
 <g id="iconSymbol" stroke-linejoin="miter" style="stroke-dasharray:none;" transform="translate(0.0627706, -0.0627706)" stroke="#4d4d4d" stroke-linecap="butt" stroke-miterlimit="4" stroke-width="1.60000002" fill="none">
   <path id="path2874" style="stroke-dasharray:none;" d="m21.748,51.452,1.7934,14.247,7.9706,0,2.4908-15.144-12.255,0.89669z"/>
   <path id="path2880" style="stroke-dasharray:none;" d="m25.435,51.452,0.84687,14.048"/>
   <path id="path2882" style="stroke-dasharray:none;" d="M30.068,51.104,28.573,65.351"/>
  </g>
 <rect id="overlay" style="stroke-dasharray:none;" transform="matrix(0, -1, 1, 0, -32, 0)" fill-rule="evenodd" ry="4.1663" height="25" filter="url(#filter001)" width="25" stroke="#F00" stroke-linecap="round" stroke-miterlimit="4" y="47.167" x="-70.116" stroke-width="2" fill="#ffd5d5" class="overlayOnHover" opacity="0"/>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="29pt" width="29pt" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="13 43 29 29" xmlns:dc="http://purl.org/dc/elements/1.1/">
 <metadata id="metadata34">
  <rdf:RDF>
   <cc:Work rdf:about="">
    <dc:format>image/svg+xml</dc:format>
    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
    <dc:title/>
   </cc:Work>
  </rdf:RDF>
 </metadata>
 <defs id="defs6">
  <title id="title26">Layer 1</title>
  <title id="title22">Canvas 1</title>
  <filter id="filter001">
   <feGaussianBlur id="feGaussianBlur3632" stdDeviation="0.625"/>
  </filter>
 <linearGradient id="linearGradient001" y2="27.646" gradientUnits="userSpaceOnUse" x2="-45.8" y1="27.646" x1="-57.66">
   <stop id="stop1" stop-color="#ffffff" offset="0"/>
   <stop id="stop2" stop-color="#ffa0a0" offset="0.66462"/>
   <stop id="stop3" stop-color="#ffffff" offset="1"/>
  </linearGradient></defs>
 <rect id="iconBG" style="stroke-dasharray:none;" stroke-width="1.2" fill-rule="evenodd" ry="4.1663" transform="matrix(0, -1, 1, 0, 0, 0)" width="25" stroke="#696969" stroke-linecap="round" stroke-miterlimit="4" y="15.167" x="-70.116" height="25" fill="none"/>
 <rect id="iconFG" style="stroke-dasharray:none;" stroke-width="1.6" fill-rule="evenodd" ry="2.3755" transform="matrix(0, -1, 1, 0, 0, 0)" width="22" stroke="#e6e6e6" stroke-linecap="round" stroke-miterlimit="4" y="16.646" x="-68.6" height="22" fill="url(#linearGradient001)" opacity="0"/>
 <g id="iconSymbol" stroke="#4d4d4d" stroke-miterlimit="4" fill="none">
  <path id="path3640" stroke-linejoin="round" style="stroke-dasharray:none;" d="m33.165,50.126-10.258,9.3293-2.0113,4.3956,4.2474-2.1224,9.8299-9.5985-1.8075-2.004z" stroke-linecap="butt" stroke-width="1.60000002"/>
  <path id="path3642" stroke-linejoin="miter" style="stroke-dasharray:none;" d="m13.981,27.04,12.705,0" transform="matrix(0.8, 0, 0, 0.8, 13, 43)" stroke-linecap="round" stroke-width="2"/>
 </g>
 <rect id="overlay" style="stroke-dasharray:none;" transform="matrix(0, -1, 1, 0, -32, 0)" fill-rule="evenodd" ry="4.1663" height="25" filter="url(#filter001)" width="25" stroke="#008000" stroke-linecap="round" stroke-miterlimit="4" y="47.167" x="-70.116" stroke-width="1.2" fill="#AFA" class="overlayOnHover" opacity="0"/>
</svg>

| source file:|{{{F:\TiddlyWiki\TW jQuery\TreeView\images\file.gif}}}|
| attached on:|31 May 2009 by YourName|
| embedded:|[[file.gif|file.gif]] - {{{type=image/gif, size=145 bytes, encoded=199 bytes}}}|
| local file:|/%LOCAL_LINK%/[[file:///F:/TiddlyWiki/TW jQuery/TreeView/images/file.gif|file:///F:/TiddlyWiki/TW jQuery/TreeView/images/file.gif]]|
| remote link:|/%REMOTE_LINK%/[[http://www.symbex.net.au/Wiki/images/file.gif|http://www.symbex.net.au/Wiki/images/file.gif]]|
image
<<<
usage: {{{[img[tooltip|file.gif]] or [img[tooltip|file.gif][link]]}}}
[img[tooltip|file.gif]]
<<<

/% DO NOT EDIT BELOW THIS POINT
---BEGIN_DATA---
image/gif;base64,
R0lGODlhDwAOALMAAGpsYoy3oamMQdS9fDmJdP////9tcH98XwAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAAUALAAAAAAPAA4AAAQ+sBRBK5VYiizH5l82eCBX
jCS2GayRhZOpvkVgHwWg0XKM4azCAaATZnA9pAQ3sAUIhOWxZ/xRlcKDdsuVRAAA
Ow==
---END_DATA---
%/
| source file:|{{{F:\TiddlyWiki\TW jQuery\TreeView\images\folder-closed.gif}}}|
| attached on:|4 June 2009 by YourName|
| embedded:|[[folder-closed.gif|folder-closed.gif]] - {{{type=image/gif, size=887 bytes, encoded=1202 bytes}}}|
| local file:|/%LOCAL_LINK%/[[file:///F:/TiddlyWiki/TW jQuery/TreeView/images/folder-closed.gif|file:///F:/TiddlyWiki/TW jQuery/TreeView/images/folder-closed.gif]]|
| remote link:|/%REMOTE_LINK%/[[http://www.symbex.net.au/Wiki/images/folder-closed.gif|http://www.symbex.net.au/Wiki/images/folder-closed.gif]]|
image
<<<
usage: {{{[img[tooltip|folder-closed.gif]] or [img[tooltip|folder-closed.gif][link]]}}}
[img[tooltip|folder-closed.gif]]
<<<

/% DO NOT EDIT BELOW THIS POINT
---BEGIN_DATA---
image/gif;base64,
R0lGODlhEAAOAPcAAJdaH+C6eP/inq1zLf/////Sg59oJMOHNAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAAQALAAAAAAQAA4AAAhUAAkIHEiwoMGDBw8oPIBw
4ACCDxEeEECxQIAACxUSZNiQo8CJFEOKBABRpEkBEQUOOCkyJQEDBWLKnGmAIICZ
OAuQHAhgQE6ZOwcaGEq0aMOjBAICADs=
---END_DATA---
%/
| source file:|{{{F:\TiddlyWiki\TW jQuery\TreeView\images\folder.gif}}}|
| attached on:|31 May 2009 by YourName|
| embedded:|[[folder.gif|folder.gif]] - {{{type=image/gif, size=141 bytes, encoded=190 bytes}}}|
| local file:|/%LOCAL_LINK%/[[file:///F:/TiddlyWiki/TW jQuery/TreeView/images/folder.gif|file:///F:/TiddlyWiki/TW jQuery/TreeView/images/folder.gif]]|
| remote link:|/%REMOTE_LINK%/[[http://www.symbex.net.au/Wiki/images/folder.gif|http://www.symbex.net.au/Wiki/images/folder.gif]]|
image
<<<
usage: {{{[img[tooltip|folder.gif]] or [img[tooltip|folder.gif][link]]}}}
[img[tooltip|folder.gif]]
<<<

/% DO NOT EDIT BELOW THIS POINT
---BEGIN_DATA---
image/gif;base64,
R0lGODlhEAAOALMAAJdaH+C6eP/inq1zLf/////Sg59oJMOHNAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAAAQALAAAAAAQAA4AAAQ6kMhJq7336IPnoB92CGQR
BJtGcR0rjWQsA6A83HhODDEvx4WPoRAkGo8hQPGInAAGzCbFQK1aO1hCBAA7
---END_DATA---
%/
|sortable widetable|k
| <<tiddler RefreshTiddler with: genopfrisk>> |c
| Spørgsmål | Svar |h
|<<editSection [[##Spørgsmål]] "redigér Spørgsmål">><<tiddler [[##Spørgsmål]]>>|<<editSection [[##Svar]] "redigér Svar">><<editSection [[##Link]] "redigér">><<tiddler [[##Link]] with:{{store.getValue(tiddler,"link")}}>><<tiddler [[##Svar]]>>|
|>|<<editSection [[##Notat]] "redigér">>Notat:<<tiddler [[##Notat]]>>|
/%
!Spørgsmål

!Svar

!Notat

!Link
[[Link »|$1]]
!end %/
!usage
{{{[img[linux-abc_logo.png]]}}}
[img[linux-abc_logo.png]]
!notes
//none//
!type
image/png
!file
./linux-abc_logo.png
!url

!data
data:image/png;base64,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

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="29pt" width="29pt" version="1.0" xmlns:cc="http://creativecommons.org/ns#" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="13 43 29 29" xmlns:dc="http://purl.org/dc/elements/1.1/">
 <metadata id="metadata34">
  <rdf:RDF>
   <cc:Work rdf:about="">
    <dc:format>image/svg+xml</dc:format>
    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
    <dc:title/>
   </cc:Work>
  </rdf:RDF>
 </metadata>
 <defs id="defs6">
  <title id="title26">Layer 1</title>
  <title id="title22">Canvas 1</title>
  <filter id="filter3630">
   <feGaussianBlur id="feGaussianBlur3632" stdDeviation="0.625"/>
  </filter>
 <linearGradient id="linearGradient001" y2="27.646" gradientUnits="userSpaceOnUse" x2="-45.8" y1="27.646" x1="-57.66">
   <stop id="stop1" stop-color="#ffffff" offset="0"/>
   <stop id="stop2" stop-color="#ffa0a0" offset="0.66462"/>
   <stop id="stop3" stop-color="#ffffff" offset="1"/>
  </linearGradient></defs>
 <rect id="iconBG" style="stroke-dasharray:none;" stroke-width="1.2" fill-rule="evenodd" ry="4.1663" transform="matrix(0, -1, 1, 0, 0, 0)" width="25" stroke="#696969" stroke-linecap="round" stroke-miterlimit="4" y="15.167" x="-70.116" height="25" fill="none"/>
 <rect id="iconFG" style="stroke-dasharray:none;" stroke-width="1.6" fill-rule="evenodd" ry="2.3755" transform="matrix(0, -1, 1, 0, 0, 0)" width="22" stroke="#e6e6e6" stroke-linecap="round" stroke-miterlimit="4" y="16.646" x="-68.6" height="22" fill="url(#linearGradient001)" opacity="0"/>
 <g id="iconSymbol" stroke-linejoin="miter" stroke-linecap="butt">
   <g id="g3250" style="stroke-dasharray:none;" transform="matrix(0.68969, -0.68969, 0.68969, 0.68969, -10.2106, 20.8697)" stroke="#4d4d4d" fill="#4d4d4d">
    <path id="path3252" style="stroke-dasharray:none;" d="m-7.3399,53.9,16.353,0" stroke-width="3.6909102"/>
    <path id="path3254" style="stroke-dasharray:none;" d="m0.8368,62.077,0-16.353" stroke-width="3.28080907"/>
   </g>
   <g id="g3282" style="stroke-dasharray:none;" transform="matrix(0, -0.975369, 0.975369, 0, -24.9937, 58.5463)" stroke="#4d4d4d" stroke-width="3.69091022" fill="#4d4d4d">
    <path id="path3284" style="stroke-dasharray:none;" d="m-7.3399,53.9,16.353,0"/>
    <path id="path3286" style="stroke-dasharray:none;" d="m0.8368,62.077,0-16.353"/>
   </g>
   <path id="path3648" style="stroke-dasharray:none;" d="m-8.9375,22.031a1.2188,1.2188,0,1,1,-2.4375,0,1.2188,1.2188,0,1,1,2.4375,0z" transform="matrix(1.41091, 0, 0, 1.41091, 41.7813, 26.6707)" stroke="#be7800" stroke-width="1" fill="#be7800"/>
  </g>
 <rect id="overlay" opacity="0" style="stroke-dasharray:none;" transform="matrix(0, -1, 1, 0, -32, 0)" fill-rule="evenodd" ry="4.1663" height="25" filter="url(#filter3630)" width="25" stroke="#F60" stroke-linecap="round" stroke-miterlimit="4" y="47.167" x="-70.116" stroke-width="1.2" fill="#e9c6af" class="overlayOnHover"/>
</svg>
<<tiddler {{readOnly?'':'nyHer##SHOW';}}>>/%
!SHOW
<<newTiddler label:"ny her" title:"Ny tiddler" tag:{{here=story.findContainingTiddler(place);here?here.getAttribute('tiddler'):'';}}>>
!END%/
| source file:|{{{F:\TiddlyWiki\TWExperiments\jQuery\images\openbook.gif}}}|
| attached on:|31 May 2009 by YourName|
| embedded:|[[openbook.gif|openbook.gif]] - {{{type=image/gif, size=397 bytes, encoded=540 bytes}}}|
| local file:|/%LOCAL_LINK%/[[./images/openbook.gif|./images/openbook.gif]]|
| remote link:|/%REMOTE_LINK%/[[http://www.symbex.net.au/Wiki/images/openbook.gif|http://www.symbex.net.au/Wiki/images/openbook.gif]]|
image
<<<
usage: {{{[img[tooltip|openbook.gif]] or [img[tooltip|openbook.gif][link]]}}}
[img[tooltip|openbook.gif]]
<<<

/% DO NOT EDIT BELOW THIS POINT
---BEGIN_DATA---
image/gif;base64,
R0lGODlhEAAQANU5AKat0evq6d7d3Zy12tji9pKp16WkuXZ/q7O2xo2MjLi4qoOc
zby8rLS0s8G/u7i2prKxr6WnpJKp2MbU8cTEw7/P772+rFx6tnCLws/b8+bl5cPG
09fh9b/Arru4uK+smfPy6Tlcoqyxr9HQzq2yss/b9LK0p8bT8XCLw4Oczv//+0lq
q8jIyD5Uf2aAtMrO4XRzcy5Sm6WkoZ6z3tnZ2Ts7O0RERMPDw////////wAAAAAA
AAAAAAAAAAAAAAAAACH5BAEAADkALAAAAAAQABAAAAaqwBoqRywajbUU7EgkJAzF
WqGwLN5gCcABmqvNCJ7qNSL4bA63rqSEI8GuAhzugUAUbrXFSS6CxeUmLwEzNjUY
FXI0DjRyOAovNIQ1FxOJECyNDJCSKxlyIzKYchabhSEcOBoUoY0dpTUxBDgCDaxy
LwCDNjctMQMBNDIvOAEAAC8ghDm8vsEsMgChNCrKy70DMjIDLtzc1dYuMS4tvTHm
LTZGNzbsN+7v7kEAOw==
---END_DATA---
%/

!usage
{{{[img[puppy-abc.png]]}}}
[img[puppy-abc.png]]
!notes
//none//
!type
image/png
!file
./puppy-abc.png
!url

!data
data:image/png;base64,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