<?xml version="1.0"?>
<rss version="2.0">
<channel>
<title>MonkeyPirateTiddlyWiki</title>
<link>http://simonbaird.com/mptw/</link>
<description>some plugins and hacks for tiddlywiki (2.0.10)</description>
<language>en-us</language>
<copyright>Copyright 2006 Simon</copyright>
<pubDate>Tue, 08 Aug 2006 05:33:14 GMT</pubDate>
<lastBuildDate>Tue, 08 Aug 2006 05:33:14 GMT</lastBuildDate>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<generator>TiddlyWiki 2.0.10</generator>
<item>
<title>UploadLog</title>
<description>| !date | !user | !location | !storeUrl | !uploadDir | !toFilename | !backupdir | !origin |&lt;br /&gt;| 9/7/2006 10:54:21 | YourName | [[index.html|file:///C:/User/Docs/Simon/remotesite/simonbaird.com/mptw/index.html]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | mptw | . | . |&lt;br /&gt;| 9/7/2006 10:56:1 | YourName | [[index.html|file:///C:/User/Docs/Simon/remotesite/simonbaird.com/mptw/index.html]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | mptw | . | . |&lt;br /&gt;| 9/7/2006 10:56:56 | YourName | [[index.html|file:///C:/User/Docs/Simon/remotesite/simonbaird.com/mptw/index.html]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | mptw | . | . |&lt;br /&gt;| 9/7/2006 10:57:53 | YourName | [[index.html|file:///C:/User/Docs/Simon/remotesite/simonbaird.com/mptw/index.html]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | mptw | . | . |&lt;br /&gt;| 9/7/2006 10:59:51 | YourName | [[index.html|file:///C:/User/Docs/Simon/remotesite/simonbaird.com/mptw/index.html]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 12/7/2006 14:14:7 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . | Ok |&lt;br /&gt;| 12/7/2006 14:18:45 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 12/7/2006 14:24:44 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 12/7/2006 14:25:30 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 12/7/2006 15:0:10 | Simon | [[/|http://tiddlyspot.com/mptw/#ShowExampleMacro]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 12/7/2006 15:29:10 | Simon | [[/|http://tiddlyspot.com/mptw/#HelloWorldMacro]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 12/7/2006 15:33:35 | Simon | [[/|http://tiddlyspot.com/mptw/#HelloWorldMacro]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 12/7/2006 16:54:2 | Simon | [[/|http://tiddlyspot.com/mptw/#ShowClockMacro]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 12/7/2006 16:56:16 | Simon | [[/|http://tiddlyspot.com/mptw/#ShowClockMacro]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 12/7/2006 16:56:59 | Simon | [[/|http://tiddlyspot.com/mptw/#ShowClockMacro]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 12/7/2006 16:59:4 | Simon | [[/|http://tiddlyspot.com/mptw/#ShowClockMacro]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 12/7/2006 17:0:42 | Simon | [[/|http://tiddlyspot.com/mptw/#ShowClockMacro]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 12/7/2006 17:1:42 | Simon | [[/|http://tiddlyspot.com/mptw/#ShowClockMacro]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 12/7/2006 17:3:38 | Simon | [[/|http://tiddlyspot.com/mptw/#ShowClockMacro]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 13/7/2006 8:17:41 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 15/7/2006 8:18:7 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 15/7/2006 8:21:23 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 15/7/2006 8:36:11 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 17/7/2006 10:25:28 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 17/7/2006 12:32:27 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 26/7/2006 16:49:57 | Simon | [[/|http://tiddlyspot.com/mptw/#ShowClockMacro]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 26/7/2006 16:50:11 | Simon | [[/|http://tiddlyspot.com/mptw/#ShowClockMacro]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 3/8/2006 1:28:30 | YourName | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 3/8/2006 1:29:32 | YourName | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 3/8/2006 1:30:31 | YourName | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 3/8/2006 1:39:3 | YourName | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 3/8/2006 1:40:45 | YourName | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 3/8/2006 10:36:37 | Daniel Baird | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 3/8/2006 10:38:45 | Daniel Baird | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 3/8/2006 15:50:46 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 8:7:14 | YourName | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 8:17:16 | YourName | [[/|http://tiddlyspot.com/mptw/#Clock2%20MonkeyPirateTiddlyWiki%20Download]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 8:29:4 | YourName | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 8:37:51 | YourName | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 8:40:53 | YourName | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 9:20:57 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 9:21:15 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 9:45:4 | YourName | [[mptw.html|file:///C:/Documents%20and%20Settings/ccscb/Desktop/mptw.html#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . | Ok |&lt;br /&gt;| 4/8/2006 9:47:17 | YourName | [[mptw.html|file:///C:/Documents%20and%20Settings/ccscb/Desktop/mptw.html#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 9:49:54 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . | Ok |&lt;br /&gt;| 4/8/2006 9:55:44 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 9:56:19 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 9:58:8 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 10:0:38 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 10:6:22 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 10:7:42 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . | Ok |&lt;br /&gt;| 4/8/2006 10:8:30 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 10:9:58 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 10:10:59 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 10:12:10 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 11:55:1 | YourName | [[mptw.html|file:///C:/Documents%20and%20Settings/ccscb/Desktop/mptw.html#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . | Ok |&lt;br /&gt;| 4/8/2006 12:20:11 | YourName | [[mptw.html|file:///C:/Documents%20and%20Settings/ccscb/Desktop/mptw.html#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 12:22:40 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . | Ok |&lt;br /&gt;| 4/8/2006 12:25:13 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . | Ok |&lt;br /&gt;| 4/8/2006 12:28:24 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . | Ok |&lt;br /&gt;| 4/8/2006 12:29:51 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 12:43:27 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . | Ok |&lt;br /&gt;| 4/8/2006 12:45:48 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 12:49:28 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . | Ok |&lt;br /&gt;| 4/8/2006 12:51:16 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 4/8/2006 12:52:18 | Simon | [[/|http://tiddlyspot.com/mptw/#Clock2]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 5/8/2006 3:0:57 | YourName | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . | Ok |&lt;br /&gt;| 5/8/2006 3:2:20 | YourName | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 7/8/2006 22:44:33 | YourName | [[mptw.html|file:///D:/Documents%20and%20Settings/User/Desktop/mptw.html]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 7/8/2006 22:46:29 | YourName | [[mptw.html|file:///D:/Documents%20and%20Settings/User/Desktop/mptw.html]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 7/8/2006 22:47:42 | YourName | [[mptw.html|file:///D:/Documents%20and%20Settings/User/Desktop/mptw.html]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 7/8/2006 22:52:19 | YourName | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 8/8/2006 1:54:51 | YourName | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 8/8/2006 15:20:35 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 8/8/2006 15:27:53 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |&lt;br /&gt;| 8/8/2006 15:33:13 | Simon | [[/|http://tiddlyspot.com/mptw/]] | [[store.cgi|http://tiddlyspot.com/mptw/store.cgi]] | . | index.html | . |</description>
<link>http://simonbaird.com/mptw/#UploadLog</link>
<pubDate>Tue, 08 Aug 2006 05:33:13 GMT</pubDate>
</item>
<item>
<title>OldMonkeyPirateTiddlyWiki</title>
<description>The [[Old (Pre TW 2.0) MonkeyPirateTiddlyWiki|http://simonbaird.com/mptw1/]] (which I may refer to as ~MonkeyPirateTiddlyWiki1...) is where you can get my plugins for TiddlyWiki 1.2.x. The url is http://simonbaird.com/mptw1/.&lt;br /&gt;</description>
<link>http://simonbaird.com/mptw/#OldMonkeyPirateTiddlyWiki</link>
<pubDate>Tue, 08 Aug 2006 05:32:58 GMT</pubDate>
</item>
<item>
<title>MarkupPostBody</title>
<description>&lt;script language=&quot;javascript&quot; src=&quot;http://simonbaird.com/js/lib/syntaxhighlighter/shCore.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;&lt;script language=&quot;javascript&quot; src=&quot;http://simonbaird.com/js/lib/syntaxhighlighter/shBrushDelphi.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;&lt;script language=&quot;javascript&quot; src=&quot;http://simonbaird.com/js/lib/syntaxhighlighter/shBrushPython.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;&lt;script language=&quot;javascript&quot; src=&quot;http://simonbaird.com/js/lib/syntaxhighlighter/shBrushXml.js&quot;&gt;&lt;/script&gt;&lt;br /&gt;&lt;script id=&quot;stats_script&quot; type=&quot;text/javascript&quot; src=&quot;http://metrics.performancing.com/stats.js&quot;&gt;&lt;/script&gt;</description>
<link>http://simonbaird.com/mptw/#MarkupPostBody</link>
<pubDate>Tue, 08 Aug 2006 05:21:00 GMT</pubDate>
</item>
<item>
<title>ViewTemplate</title>
<description>&lt;!---&lt;br /&gt;See TagglyTaggingViewTemplate&lt;br /&gt;---&gt;&lt;br /&gt;&lt;!--{{{--&gt;&lt;br /&gt;&lt;div class=&quot;toolbar&quot;&gt;&lt;br /&gt; &lt;!-- testing this one --&gt;&lt;br /&gt; &lt;!--&lt;span style=&quot;padding-right:0.75em;&quot; class='fakeButton' macro=&quot;viewHtml&quot;&gt;&lt;/span&gt;--&gt;&lt;br /&gt; &lt;span style=&quot;padding-right:0.75em;&quot; class='fakeButton' macro=&quot;viewAsJs&quot;&gt;&lt;/span&gt;&lt;br /&gt; &lt;!-- experimental stuff. puts checkboxes in toolbar --&gt;&lt;br /&gt; &lt;span style=&quot;padding-right:0.75em;&quot; class='fakeButton' macro=&quot;runMacroIfTagged Groceries toggleTag Buy&quot;&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;padding-right:0.75em;&quot; class='fakeButton' macro=&quot;runMacroIfTagged Flippable toggleTag UpsideDown&quot;&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;padding-right:0.75em;&quot; class='fakeButton' macro=&quot;runMacroIfTagged Plugins toggleTag systemConfig&quot;&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;padding-right:0.75em;&quot; class='fakeButton' macro=&quot;runMacroIfTagged Tasks selectUniqueTag Status&quot;&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;padding-right:0.75em;&quot; class='fakeButton' macro=&quot;runMacroIfTagged Tasks selectUniqueTag Priority&quot;&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;padding-right:0.75em;&quot; class='fakeButton' macro=&quot;runMacroIfTagged Todo toggleTag Urgent&quot;&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;padding-right:0.75em;&quot; class='fakeButton' macro=&quot;runMacroIfTagged Todo toggleTag Done&quot;&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;padding-right:0.75em;&quot; class='fakeButton' macro=&quot;runMacroIfTagged styleSheet toggleTag activeStyleSheet . refreshStyles&quot;&gt;&lt;/span&gt;&lt;br /&gt; &lt;span macro='toolbar -closeTiddler closeOthers +editTiddler references jump refresh newHere newJournalHere'&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;tagglyTagged&quot; macro=&quot;hideSomeTags&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span class=&quot;title&quot; macro='view title'&gt;&lt;/span&gt;&lt;span class=&quot;miniTag&quot; macro=&quot;miniTag&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class='subtitle'&gt;Created &lt;span macro='view created date [[DD-MM-YY]]'&gt;&lt;/span&gt;, updated &lt;span macro='view modified date [[DD-MM-YY]]'&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class='viewer' macro='view text wikified'&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;tagglyTagging&quot; macro=&quot;tagglyTagging&quot;&gt;&lt;/div&gt;&lt;br /&gt;&lt;!--}}}--&gt;&lt;br /&gt;</description>
<category>ViewTemplates</category>
<link>http://simonbaird.com/mptw/#ViewTemplate</link>
<pubDate>Mon, 07 Aug 2006 15:54:00 GMT</pubDate>
</item>
<item>
<title>RearrangeTiddlersPlugin</title>
<description>//{{{&lt;br /&gt;&lt;br /&gt;// adapted from: http://www.cs.utexas.edu/~joeraii/dragn/#Draggable&lt;br /&gt;// changes by ELS:&lt;br /&gt;// * hijack refreshTiddler() instead of overridding createTiddler()&lt;br /&gt;// * find title element by className instead of elementID&lt;br /&gt;// * set cursor style via code instead of stylesheet&lt;br /&gt;// * set tooltip help text&lt;br /&gt;// * set tiddler &quot;position:relative&quot; when starting drag event, restore saved value when drag ends&lt;br /&gt;&lt;br /&gt;// * update 2006.08.07: use getElementsByTagName(&quot;*&quot;) to find title element, even when it is 'buried' deep in tiddler DOM elements (due to custom template usage)&lt;br /&gt;&lt;br /&gt;Story.prototype.rearrangeTiddlersHijack_refreshTiddler = Story.prototype.refreshTiddler;&lt;br /&gt;Story.prototype.refreshTiddler = function(title,template,unused1,unused2,unused3,unused4,unused5)&lt;br /&gt;{&lt;br /&gt;	this.rearrangeTiddlersHijack_refreshTiddler(title,template,unused1,unused2,unused3,unused4,unused5);&lt;br /&gt;	var theTiddler = document.getElementById(this.idPrefix + title); if (!theTiddler) return;&lt;br /&gt;	var theHandle;&lt;br /&gt;	var children=theTiddler.getElementsByTagName(&quot;*&quot;);&lt;br /&gt;	for (var i=0; i&lt;children.length; i++) if (hasClass(children[i],&quot;title&quot;)) { theHandle=children[i]; break; }&lt;br /&gt;	if (!theHandle) return theTiddler;&lt;br /&gt;&lt;br /&gt;	Drag.init(theHandle, theTiddler, 0, 0, null, null);&lt;br /&gt;	theHandle.style.cursor=&quot;move&quot;;&lt;br /&gt;	theHandle.title=&quot;drag title to re-arrange tiddlers&quot;&lt;br /&gt;	theTiddler.onDrag = function(x,y,myElem) {&lt;br /&gt;		if (this.style.position!=&quot;relative&quot;)&lt;br /&gt;			{ this.savedstyle=this.style.position; this.style.position=&quot;relative&quot;; }&lt;br /&gt;		y = myElem.offsetTop;&lt;br /&gt;		var next = myElem.nextSibling;&lt;br /&gt;		var prev = myElem.previousSibling;&lt;br /&gt;		if (next &amp;&amp; y + myElem.offsetHeight &gt; next.offsetTop + next.offsetHeight/2) { &lt;br /&gt;			myElem.parentNode.removeChild(myElem);&lt;br /&gt;			next.parentNode.insertBefore(myElem, next.nextSibling);//elems[pos+1]);&lt;br /&gt;			myElem.style[&quot;top&quot;] = -next.offsetHeight/2+&quot;px&quot;;&lt;br /&gt;		}&lt;br /&gt;		if (prev &amp;&amp; y &lt; prev.offsetTop + prev.offsetHeight/2) { &lt;br /&gt;			myElem.parentNode.removeChild(myElem);&lt;br /&gt;			prev.parentNode.insertBefore(myElem, prev);&lt;br /&gt;			myElem.style[&quot;top&quot;] = prev.offsetHeight/2+&quot;px&quot;;&lt;br /&gt;		}&lt;br /&gt;	};&lt;br /&gt;	theTiddler.onDragEnd = function(x,y,myElem) {&lt;br /&gt;		myElem.style[&quot;top&quot;] = &quot;0px&quot;;&lt;br /&gt;		if (this.savedstyle!=undefined)&lt;br /&gt;			this.style.position=this.savedstyle;&lt;br /&gt;	}&lt;br /&gt;	return theTiddler;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;/**************************************************&lt;br /&gt; * dom-drag.js&lt;br /&gt; * 09.25.2001&lt;br /&gt; * www.youngpup.net&lt;br /&gt; **************************************************&lt;br /&gt; * 10.28.2001 - fixed minor bug where events&lt;br /&gt; * sometimes fired off the handle, not the root.&lt;br /&gt; **************************************************/&lt;br /&gt;&lt;br /&gt;var Drag = {&lt;br /&gt;	obj:null,&lt;br /&gt;&lt;br /&gt;	init:&lt;br /&gt;	function(o, oRoot, minX, maxX, minY, maxY) {&lt;br /&gt;		o.onmousedown = Drag.start;&lt;br /&gt;		o.root = oRoot &amp;&amp; oRoot != null ? oRoot : o ;&lt;br /&gt;		if (isNaN(parseInt(o.root.style.left))) o.root.style.left=&quot;0px&quot;;&lt;br /&gt;		if (isNaN(parseInt(o.root.style.top))) o.root.style.top=&quot;0px&quot;;&lt;br /&gt;		o.minX = typeof minX != 'undefined' ? minX : null;&lt;br /&gt;		o.minY = typeof minY != 'undefined' ? minY : null;&lt;br /&gt;		o.maxX = typeof maxX != 'undefined' ? maxX : null;&lt;br /&gt;		o.maxY = typeof maxY != 'undefined' ? maxY : null;&lt;br /&gt;		o.root.onDragStart = new Function();&lt;br /&gt;		o.root.onDragEnd = new Function();&lt;br /&gt;		o.root.onDrag = new Function();&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	start:&lt;br /&gt;	function(e) {&lt;br /&gt;		var o = Drag.obj = this;&lt;br /&gt;		e = Drag.fixE(e);&lt;br /&gt;		var y = parseInt(o.root.style.top);&lt;br /&gt;		var x = parseInt(o.root.style.left);&lt;br /&gt;		o.root.onDragStart(x, y, Drag.obj.root);&lt;br /&gt;		o.lastMouseX = e.clientX;&lt;br /&gt;		o.lastMouseY = e.clientY;&lt;br /&gt;		if (o.minX != null) o.minMouseX = e.clientX - x + o.minX;&lt;br /&gt;		if (o.maxX != null) o.maxMouseX = o.minMouseX + o.maxX - o.minX;&lt;br /&gt;		if (o.minY != null) o.minMouseY = e.clientY - y + o.minY;&lt;br /&gt;		if (o.maxY != null) o.maxMouseY = o.minMouseY + o.maxY - o.minY;&lt;br /&gt;		document.onmousemove = Drag.drag;&lt;br /&gt;		document.onmouseup = Drag.end;&lt;br /&gt;		Drag.obj.root.style[&quot;z-index&quot;] = &quot;10&quot;;&lt;br /&gt;		return false;&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	drag:&lt;br /&gt;	function(e) {&lt;br /&gt;		e = Drag.fixE(e);&lt;br /&gt;		var o = Drag.obj;&lt;br /&gt;		var ey = e.clientY;&lt;br /&gt;		var ex = e.clientX;&lt;br /&gt;		var y = parseInt(o.root.style.top);&lt;br /&gt;		var x = parseInt(o.root.style.left);&lt;br /&gt;		var nx, ny;&lt;br /&gt;		if (o.minX != null) ex = Math.max(ex, o.minMouseX);&lt;br /&gt;		if (o.maxX != null) ex = Math.min(ex, o.maxMouseX);&lt;br /&gt;		if (o.minY != null) ey = Math.max(ey, o.minMouseY);&lt;br /&gt;		if (o.maxY != null) ey = Math.min(ey, o.maxMouseY);&lt;br /&gt;		nx = x + (ex - o.lastMouseX);&lt;br /&gt;		ny = y + (ey - o.lastMouseY);&lt;br /&gt;		Drag.obj.root.style[&quot;left&quot;] = nx + &quot;px&quot;;&lt;br /&gt;		Drag.obj.root.style[&quot;top&quot;] = ny + &quot;px&quot;;&lt;br /&gt;		Drag.obj.lastMouseX = ex;&lt;br /&gt;		Drag.obj.lastMouseY = ey;&lt;br /&gt;		Drag.obj.root.onDrag(nx, ny, Drag.obj.root);&lt;br /&gt;		return false;&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	end:&lt;br /&gt;	function() {&lt;br /&gt;		document.onmousemove = null;&lt;br /&gt;		document.onmouseup = null;&lt;br /&gt;		Drag.obj.root.style[&quot;z-index&quot;] = &quot;0&quot;;&lt;br /&gt;		Drag.obj.root.onDragEnd(parseInt(Drag.obj.root.style[&quot;left&quot;]), parseInt(Drag.obj.root.style[&quot;top&quot;]), Drag.obj.root);&lt;br /&gt;		Drag.obj = null;&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	fixE:&lt;br /&gt;	function(e) {&lt;br /&gt;		if (typeof e == 'undefined') e = window.event;&lt;br /&gt;		if (typeof e.layerX == 'undefined') e.layerX = e.offsetX;&lt;br /&gt;		if (typeof e.layerY == 'undefined') e.layerY = e.offsetY;&lt;br /&gt;		return e;&lt;br /&gt;	}&lt;br /&gt;};&lt;br /&gt;//}}}&lt;br /&gt;</description>
<category>systemConfig</category>
<category>Plugins</category>
<category>Borrowed</category>
<link>http://simonbaird.com/mptw/#RearrangeTiddlersPlugin</link>
<pubDate>Mon, 07 Aug 2006 15:54:00 GMT</pubDate>
</item>
<item>
<title>TiddlerListMacro</title>
<description>/***&lt;br /&gt;|''Name:''|TiddlerListMacro|&lt;br /&gt;|''Version:''|2.0.10 (01-May-2006)|&lt;br /&gt;|''Source''|http://jackparke.googlepages.com/jtw.html#TiddlerListMacro ([[del.icio.us|http://del.icio.us/post?url=http://jackparke.googlepages.com/jtw.html%23TiddlerListMacro]])|&lt;br /&gt;|''Author:''|[[Jack]]|&lt;br /&gt;|''Type:''|Macro|&lt;br /&gt;|''Documentation:''|TiddlerListMacroDocumentation|&lt;br /&gt;!Usage&lt;br /&gt;{{{&lt;&lt;tiddlerList parameter1:&quot;value1&quot; parameter2:&quot;value2&quot; ...&gt;&gt;}}}&lt;br /&gt;See TiddlerListMacroDocumentation and TiddlerListMacroExamples&lt;br /&gt;!Code&lt;br /&gt;***/&lt;br /&gt;//{{{&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;version.extensions.tiddlerList = {major: 2, minor: 0, revision: 10, date: new Date(&quot;May 2, 2006&quot;)};&lt;br /&gt;// template = [header, item, seperator, group, footer]&lt;br /&gt;config.macros.tiddlerList={&lt;br /&gt; formats : {list:true, nlist:true, span:true, stack:true, csv:true, table:true},&lt;br /&gt; templates : {&lt;br /&gt;              list  : [   &quot;%0\n&quot;, &quot;* %0\n&quot;,   &quot;&quot;,    &quot;%group\n&quot;,   &quot;%0\n&quot;],&lt;br /&gt;              nlist : [     &quot;%0&quot;, &quot;# %0\n&quot;,   &quot;&quot;,    &quot;%group\n&quot;,   &quot;%0\n&quot;],&lt;br /&gt;              span  : [     &quot;%0&quot;,     &quot;%0&quot;,  &quot; &quot;,      &quot;%group&quot;,     &quot;%0&quot;],&lt;br /&gt;              stack : [     &quot;%0&quot;,     &quot;%0&quot;, &quot;\n&quot;,      &quot;%group&quot;,     &quot;%0&quot;],&lt;br /&gt;              csv   : [     &quot;%0&quot;,     &quot;%0&quot;, &quot;, &quot;,          &quot;%0&quot;,   &quot;%0\n&quot;],&lt;br /&gt;              table : [&quot;|!%0|\n&quot;,  &quot;|%0|\n&quot;,  &quot;&quot;,  &quot;|%group|\n&quot;, &quot;|%0|\n&quot;]&lt;br /&gt;             },&lt;br /&gt; dateFormat : &quot;DD MMM YYYY&quot;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// XXX this is a error in safari:&lt;br /&gt;if (!gCurrentTiddler)&lt;br /&gt; var gCurrentTiddler;&lt;br /&gt;&lt;br /&gt;config.macros.tiddlerList.handler = function(place,macroName,params,wikifier,paramString,tiddler)&lt;br /&gt;{&lt;br /&gt; // Some globals&lt;br /&gt; var count=0, groupCount=0, theGroup=&quot;&quot;, lastGroup=&quot;&quot;;&lt;br /&gt; var currentTiddler = tiddler;&lt;br /&gt; gCurrentTiddler = tiddler;&lt;br /&gt; var listWikiText=&quot;&quot;;&lt;br /&gt; var formats = this.formats;&lt;br /&gt; &lt;br /&gt; // SQL-Like parameters&lt;br /&gt; var parameters = paramString.parseParams(&quot;name&quot;,null,true);&lt;br /&gt; var pTags = parameters[0][&quot;tags&quot;]?parameters[0][&quot;tags&quot;][0].split(&quot;,&quot;):[];&lt;br /&gt; var pTags2 = parameters[0][&quot;tags2&quot;]?parameters[0][&quot;tags2&quot;][0].readBracketedList():[];    // mptw&lt;br /&gt; var pOrder = parameters[0][&quot;order&quot;]?parameters[0][&quot;order&quot;][0]:&quot;title&quot;;&lt;br /&gt; var pTop = parameters[0][&quot;top&quot;]?parameters[0][&quot;top&quot;][0]:-1;&lt;br /&gt; var pText = parameters[0][&quot;text&quot;]?parameters[0][&quot;text&quot;][0]:&quot;&quot;;&lt;br /&gt; var pTitle = parameters[0][&quot;title&quot;]?parameters[0][&quot;title&quot;][0]:&quot;&quot;;&lt;br /&gt; var pSearch = parameters[0][&quot;search&quot;]?parameters[0][&quot;search&quot;][0]:&quot;&quot;;&lt;br /&gt; var pFilter = parameters[0][&quot;filter&quot;]?parameters[0][&quot;filter&quot;][0]:&quot;&quot;;&lt;br /&gt; var pHeader = parameters[0][&quot;header&quot;]?paramFormat(parameters[0][&quot;header&quot;][0]):&quot;&quot;;&lt;br /&gt; var pFooter = parameters[0][&quot;footer&quot;]?paramFormat(parameters[0][&quot;footer&quot;][0]):&quot;&quot;;&lt;br /&gt; var pGroup = parameters[0][&quot;group&quot;]?parameters[0][&quot;group&quot;][0]:&quot;&quot;;&lt;br /&gt; var pDateFormat = parameters[0][&quot;dateFormat&quot;]?parameters[0][&quot;dateFormat&quot;][0]:this.dateFormat;&lt;br /&gt; var pCustomParameter = parameters[0][&quot;customParameter&quot;]?parameters[0][&quot;customParameter&quot;][0]:&quot;&quot;;&lt;br /&gt; var pFormat = parameters[0][&quot;format&quot;]?parameters[0][&quot;format&quot;][0]:&quot;list&quot;;&lt;br /&gt; var pTagsMode = parameters[0][&quot;tagsmode&quot;]?parameters[0][&quot;tagsmode&quot;]:&quot;all&quot;;         // mptw&lt;br /&gt; var pTagsLogic = parameters[0][&quot;tagslogic&quot;]?parameters[0][&quot;tagslogic&quot;][0]:&quot;&quot;;           // mptw&lt;br /&gt; pFormat = formats[pFormat]?pFormat:&quot;list&quot;&lt;br /&gt; &lt;br /&gt; // Seperator&lt;br /&gt; var pSeperator = parameters[0][&quot;seperator&quot;]?paramFormat(parameters[0][&quot;seperator&quot;][0]):this.templates[pFormat][2]&lt;br /&gt;&lt;br /&gt; // Template for group&lt;br /&gt; var pGroupTemplate = this.templates[pFormat][3];&lt;br /&gt; if (parameters[0][&quot;groupTemplate&quot;])&lt;br /&gt;  pGroupTemplate = paramFormat(parameters[0][&quot;groupTemplate&quot;][0])&lt;br /&gt; pGroupTemplate = pGroupTemplate.replace(&quot;$))&quot;, &quot;&gt;&gt;&quot;)&lt;br /&gt; &lt;br /&gt; // Template for group footer&lt;br /&gt; var pGroupFooterTemplate = &quot;&quot;;&lt;br /&gt; if (parameters[0][&quot;groupFooterTemplate&quot;])&lt;br /&gt;  pGroupFooterTemplate = paramFormat(parameters[0][&quot;groupFooterTemplate&quot;][0])&lt;br /&gt; pGroupFooterTemplate = pGroupFooterTemplate.replace(&quot;$))&quot;, &quot;&gt;&gt;&quot;)&lt;br /&gt; &lt;br /&gt; // Template for item&lt;br /&gt; var pItemTemplate = this.templates[pFormat][1];&lt;br /&gt; if (parameters[0][&quot;itemTemplate&quot;])&lt;br /&gt;  pItemTemplate = paramFormat(parameters[0][&quot;itemTemplate&quot;][0])&lt;br /&gt; pItemTemplate = pItemTemplate.replace(&quot;$))&quot;, &quot;&gt;&gt;&quot;).replace(&quot;%link&quot;, &quot;%0&quot;).replace(&quot;%item&quot;, &quot;%1&quot;).replace(&quot;%abstract&quot;, &quot;%2&quot;).replace(&quot;%text&quot;, &quot;%3&quot;).replace(&quot;%created&quot;, &quot;%4&quot;).replace(&quot;%modified&quot;, &quot;%5&quot;).replace(&quot;%modifier&quot;, &quot;%6&quot;).replace(&quot;%group&quot;, &quot;%7&quot;).replace(&quot;%title&quot;, &quot;%8&quot;).replace(&quot;%tags&quot;, &quot;%9&quot;).replace(&quot;%nolink&quot;, &quot;%10&quot;).replace(&quot;%custom&quot;, &quot;%11&quot;)&lt;br /&gt; // Template for footer&lt;br /&gt; var pFooterTemplate = this.templates[pFormat][4].replace(&quot;%count&quot;, &quot;%1&quot;)&lt;br /&gt;&lt;br /&gt; // Get all tiddlers&lt;br /&gt; var tiddlers = store.reverseLookup(&quot;tags&quot;,&quot;excludeLists&quot;,false);&lt;br /&gt;&lt;br /&gt; // Sorting&lt;br /&gt; if(!pOrder)&lt;br /&gt;  pOrder = &quot;title&quot;;&lt;br /&gt; if (pOrder.match(/^\-/i)) {&lt;br /&gt;  pOrder = pOrder.substr(1)&lt;br /&gt;  var sortDesc = true;&lt;br /&gt; }&lt;br /&gt; if (sortDesc)&lt;br /&gt;  tiddlers.sort(function (a,b) {if(a[pOrder] == b[pOrder]) return(0); else return (a[pOrder] &gt; b[pOrder]) ? -1 : +1; });&lt;br /&gt; else&lt;br /&gt;  tiddlers.sort(function (a,b) {if(a[pOrder] == b[pOrder]) return(0); else return (a[pOrder] &lt; b[pOrder]) ? -1 : +1; });&lt;br /&gt;&lt;br /&gt; // Header&lt;br /&gt; if (pHeader)&lt;br /&gt;  listWikiText += formatItem(this.templates[pFormat][0], [pHeader], pFormat)&lt;br /&gt;  &lt;br /&gt; for(var t=0; t&lt;tiddlers.length; t++) {&lt;br /&gt;  tiddler = tiddlers[t];&lt;br /&gt;  if (pTop==-1 || count&lt;pTop) {&lt;br /&gt;   if (pText==&quot;&quot; || tiddler.text.match(pText)) {&lt;br /&gt;    if (pTitle==&quot;&quot; || tiddler.title.match(pTitle)) {&lt;br /&gt;     if (pSearch==&quot;&quot; || (tiddler.title.match(pSearch) || tiddler.text.match(pSearch))) {&lt;br /&gt;      if (pFilter==&quot;&quot; || eval(pFilter)) {&lt;br /&gt;       if (pTags.length==0 || compareArrays(tiddler.tags, pTags, pTagsMode)) {     // mptw&lt;br /&gt;        if (pTags2.length==0 || compareArrays(tiddler.tags, pTags2, pTagsMode)) {  // mptw&lt;br /&gt;        if (pTagsLogic==&quot;&quot; || eval(pTagsLogic.interpretTagsLogic())) {                                  // mptw&lt;br /&gt;        count++;&lt;br /&gt;     	  // Grouping&lt;br /&gt;     	  if (pGroup) {&lt;br /&gt;      	theGroup = eval(pGroup);&lt;br /&gt;      	if(theGroup != lastGroup) {&lt;br /&gt;      	 groupCount++;&lt;br /&gt;   	    if (pGroupFooterTemplate &amp;&amp; groupCount&gt;1)&lt;br /&gt;      	  listWikiText += pGroupFooterTemplate.replace(&quot;%group&quot;, theGroup)&lt;br /&gt;      	 listWikiText += pGroupTemplate.replace(&quot;%group&quot;, theGroup)&lt;br /&gt;      	 lastGroup = theGroup;&lt;br /&gt;     	   }&lt;br /&gt;     	  }&lt;br /&gt;        // Seperators&lt;br /&gt;        if (count&gt;1) listWikiText += pSeperator;&lt;br /&gt;        //Plaintext title&lt;br /&gt;        var noLink = tiddler.title.match(config.textPrimitives.wikiLink)?&quot;~&quot; + tiddler.title:tiddler.title;&lt;br /&gt;        // Custom parameter&lt;br /&gt;        if (pCustomParameter)&lt;br /&gt;         var custom=&quot;&quot;;&lt;br /&gt;         try {&lt;br /&gt;          custom = eval(pCustomParameter)&lt;br /&gt;         } catch (e) {}&lt;br /&gt;        // List individual tiddler&lt;br /&gt;        listWikiText += formatItem(pItemTemplate,[&quot;[[&quot; + tiddler.title + &quot;]]&quot;,count,tiddler.text.substr(0,100),tiddler.text,tiddler.created.formatString(pDateFormat),tiddler.modified.formatString(pDateFormat),tiddler.modifier,theGroup,tiddler.title,tiddler.tags.join(&quot; &quot;),noLink,custom], pFormat)&lt;br /&gt;         } // mptw&lt;br /&gt;        } // mptw&lt;br /&gt;       }&lt;br /&gt;      }&lt;br /&gt;     }&lt;br /&gt;    }&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; // Last group footer&lt;br /&gt; if (pGroup &amp;&amp; pGroupFooterTemplate &amp;&amp; count&gt;0)&lt;br /&gt;  listWikiText += pGroupFooterTemplate.replace(&quot;%group&quot;, theGroup)&lt;br /&gt;&lt;br /&gt; // Footer&lt;br /&gt; if (pFooter) {&lt;br /&gt;  pFooter = pFooter.replace(&quot;%count&quot;, count)&lt;br /&gt;  listWikiText += formatItem(pFooterTemplate, [pFooter], pFormat)&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; // Render result&lt;br /&gt; if (!parameters[0][&quot;debug&quot;])&lt;br /&gt;  wikify(listWikiText,place, null, currentTiddler)&lt;br /&gt; else&lt;br /&gt;  place.innerHTML = &quot;&lt;textarea style=\&quot;width:100%;\&quot; rows=30&gt;&quot; + listWikiText + &quot;&lt;/textarea&gt;&quot;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt; // Local functions&lt;br /&gt; &lt;br /&gt; function paramFormat(param) {&lt;br /&gt; // Allow &quot;\n&quot; in non evalled parameters&lt;br /&gt;   return param.replace(/\\n/g, &quot;\n&quot;);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; function formatItem(template, values, format) {&lt;br /&gt; // Fill template with values (depending on list format)&lt;br /&gt;   if (format.match(/table/) &amp;&amp; values[0].match(/\|/))&lt;br /&gt;     return (&quot;%0\n&quot;).format(values)&lt;br /&gt;   else&lt;br /&gt;    return template.format(values)&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; function compareArrays(array, values, logic) {&lt;br /&gt; // Compare items in array with AND(&quot;all&quot;) or OR(&quot;any&quot;) logic&lt;br /&gt;   var matches=0;&lt;br /&gt;    for(var v=0; v&lt;values.length; v++)&lt;br /&gt;     if(values[v].trim().match(/^\-/) &amp;&amp; !array.contains(values[v].trim().substr(1)))   // mptw&lt;br /&gt;      matches++;&lt;br /&gt;     else if (array.contains(values[v].trim()))  // mptw&lt;br /&gt;      matches++;&lt;br /&gt;   return ((logic==&quot;all&quot; &amp;&amp; matches==values.length) || (logic!=&quot;all&quot; &amp;&amp; matches&gt;0))&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;String.prototype.prettyTrim = function(len,prefix,postfix) {&lt;br /&gt;	var result = this.trim().replace(/\r\n/g,' ').replace(/\n/g,' ');&lt;br /&gt;	if (!prefix) prefix = '';&lt;br /&gt;	if (!postfix) postfix = '';&lt;br /&gt;	if (result.length &gt; len - 3)&lt;br /&gt;		return prefix + result.substr(0,len) + '...' + postfix;&lt;br /&gt;	else if (result.length &gt; 0)&lt;br /&gt;		return prefix + result + postfix;&lt;br /&gt;	else&lt;br /&gt;		return result;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;String.prototype.interpretTagsLogic = function() {&lt;br /&gt;	// example expression&lt;br /&gt;	// &quot;( [[A Tag]] || Tag2 ) &amp;&amp; ! Tag3&quot;&lt;br /&gt;	// must have spaces between everything&lt;br /&gt;	var splitExpression = this.readBracketedList(false); // false means not unique. thanks Jeremy!!&lt;br /&gt;	var asIs = ['(',')','||','&amp;&amp;','!']; // better not have any tags called those!&lt;br /&gt;	var translatedExpression = &quot;&quot;;&lt;br /&gt;	for (var i=0;i&lt;splitExpression.length;i++)&lt;br /&gt;		if (asIs.contains(splitExpression[i]))&lt;br /&gt;			translatedExpression += splitExpression[i];&lt;br /&gt;		else&lt;br /&gt;			translatedExpression += &quot;tiddler.hasTag('&quot;+splitExpression[i]+&quot;')&quot;;&lt;br /&gt;	 //alert(translatedExpression);&lt;br /&gt;	return translatedExpression;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//}}}</description>
<category>Plugins</category>
<link>http://simonbaird.com/mptw/#TiddlerListMacro</link>
<pubDate>Fri, 04 Aug 2006 17:02:00 GMT</pubDate>
</item>
<item>
<title>Clock2</title>
<description>/***&lt;br /&gt;| Name:|Clock2|&lt;br /&gt;| Author:|Simon Baird|&lt;br /&gt;| Description:|A skinnable, sizeable analog clock|&lt;br /&gt;| Source:|http://tiddlyspot.com/mptw/#Clock2|&lt;br /&gt;| Requires:|Firefox 1.5.x or maybe Safari|&lt;br /&gt;| Version:|1.0.3|&lt;br /&gt;| Date:|4-Aug-2006|&lt;br /&gt;!!Note&lt;br /&gt;* Does not work in IE or Opera due to lack of canvas support.&lt;br /&gt;* If you make a nice skin send it to me and I will include it here.&lt;br /&gt;!!Ideas&lt;br /&gt;* Can we support IE with this? http://sourceforge.net/projects/excanvas&lt;br /&gt;* Skin should specify order of drawing so things can be on top of other things&lt;br /&gt;* Fix it so we can have filled and/or stroked elements&lt;br /&gt;* Skin should allow any number of moving and static elements&lt;br /&gt;* Make download and example for non-TW use&lt;br /&gt;* Make floating draggable?&lt;br /&gt;!!Examples&lt;br /&gt;{{{&lt;br /&gt;&lt;&lt;clock2 fancy&gt;&gt;&lt;&lt;clock2 120&gt;&gt;&lt;br /&gt;&lt;&lt;clock2 chunkySwiss&gt;&gt; &lt;&lt;clock2 60 chunkySwiss noSeconds&gt;&gt;&lt;&lt;clock2 '{&lt;br /&gt;	outerBorder: { lineWidth: 60, radius:55, color: &quot;#dd8877&quot;, alpha: 1 },&lt;br /&gt;	smallIndicator: { lineWidth: 4, startAt: 80, endAt: 95, color: &quot;white&quot;, alpha: 1 },&lt;br /&gt;	largeIndicator: { lineWidth: 12, startAt: 77, endAt: 89, color: &quot;#dd8877&quot;, alpha: 1 },&lt;br /&gt;	hourHand: { lineWidth: 15, startAt: -15, endAt: 50, color: &quot;white&quot;, alpha: 1 },&lt;br /&gt;	minuteHand: { lineWidth: 10, startAt: 24, endAt: 200, color: &quot;#771100&quot;, alpha: 0.6 },&lt;br /&gt;	secondHand: { lineWidth: 3, startAt: 22, endAt: 83, color: &quot;green&quot;, alpha: 0 },&lt;br /&gt;	secondDecoration: { lineWidth: 1, startAt: 52, radius: 26, fillColor: &quot;white&quot;, color: &quot;red&quot;, alpha: 0.2 }&lt;br /&gt;}'&gt;&gt;&lt;br /&gt;&lt;br /&gt;}}}&lt;br /&gt;&lt;&lt;clock2 fancy&gt;&gt;&lt;&lt;clock2 120&gt;&gt;&lt;br /&gt;&lt;&lt;clock2 chunkySwiss&gt;&gt; &lt;&lt;clock2 60 chunkySwiss noSeconds&gt;&gt;&lt;&lt;clock2 '{&lt;br /&gt;	outerBorder: { lineWidth: 60, radius:55, color: &quot;#dd8877&quot;, alpha: 1 },&lt;br /&gt;	smallIndicator: { lineWidth: 4, startAt: 80, endAt: 95, color: &quot;white&quot;, alpha: 1 },&lt;br /&gt;	largeIndicator: { lineWidth: 12, startAt: 77, endAt: 89, color: &quot;#dd8877&quot;, alpha: 1 },&lt;br /&gt;	hourHand: { lineWidth: 15, startAt: -15, endAt: 50, color: &quot;white&quot;, alpha: 1 },&lt;br /&gt;	minuteHand: { lineWidth: 10, startAt: 24, endAt: 200, color: &quot;#771100&quot;, alpha: 0.6 },&lt;br /&gt;	secondHand: { lineWidth: 3, startAt: 22, endAt: 83, color: &quot;green&quot;, alpha: 0 },&lt;br /&gt;	secondDecoration: { lineWidth: 1, startAt: 52, radius: 26, fillColor: &quot;white&quot;, color: &quot;red&quot;, alpha: 0.2 }&lt;br /&gt;}'&gt;&gt;&lt;br /&gt;&lt;br /&gt;See also BigClock.&lt;br /&gt;!!Code&lt;br /&gt;***/&lt;br /&gt;//{{{&lt;br /&gt;&lt;br /&gt;window.CoolClock = function(canvasId,displayRadius,skinId,showSecondHand) {&lt;br /&gt;	return this.init(canvasId,displayRadius,skinId,showSecondHand);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;CoolClock.config = {&lt;br /&gt;	clockTracker: {},&lt;br /&gt;	tickDelay: 1000,&lt;br /&gt;	longTickDelay: 15000,&lt;br /&gt;	defaultRadius: 85,&lt;br /&gt;	renderRadius: 100,&lt;br /&gt;	defaultSkin: &quot;swissRail&quot;,&lt;br /&gt;	skins:	{&lt;br /&gt;		// try making your own...&lt;br /&gt;		swissRail: {&lt;br /&gt;			outerBorder: { lineWidth: 1, radius:95, color: &quot;black&quot;, alpha: 1 },&lt;br /&gt;			smallIndicator: { lineWidth: 2, startAt: 89, endAt: 93, color: &quot;black&quot;, alpha: 1 },&lt;br /&gt;			largeIndicator: { lineWidth: 4, startAt: 80, endAt: 93, color: &quot;black&quot;, alpha: 1 },&lt;br /&gt;			hourHand: { lineWidth: 8, startAt: -15, endAt: 50, color: &quot;black&quot;, alpha: 1 },&lt;br /&gt;			minuteHand: { lineWidth: 7, startAt: -15, endAt: 75, color: &quot;black&quot;, alpha: 1 },&lt;br /&gt;			secondHand: { lineWidth: 1, startAt: -20, endAt: 85, color: &quot;red&quot;, alpha: 1 },&lt;br /&gt;			secondDecoration: { lineWidth: 1, startAt: 70, radius: 4, fillColor: &quot;red&quot;, color: &quot;red&quot;, alpha: 1 }&lt;br /&gt;		},&lt;br /&gt;		chunkySwiss: {&lt;br /&gt;			outerBorder: { lineWidth: 5, radius:97, color: &quot;black&quot;, alpha: 1 },&lt;br /&gt;			smallIndicator: { lineWidth: 4, startAt: 89, endAt: 93, color: &quot;black&quot;, alpha: 1 },&lt;br /&gt;			largeIndicator: { lineWidth: 8, startAt: 80, endAt: 93, color: &quot;black&quot;, alpha: 1 },&lt;br /&gt;			hourHand: { lineWidth: 12, startAt: -15, endAt: 60, color: &quot;black&quot;, alpha: 1 },&lt;br /&gt;			minuteHand: { lineWidth: 10, startAt: -15, endAt: 85, color: &quot;black&quot;, alpha: 1 },&lt;br /&gt;			secondHand: { lineWidth: 4, startAt: -20, endAt: 85, color: &quot;red&quot;, alpha: 1 },&lt;br /&gt;			secondDecoration: { lineWidth: 2, startAt: 70, radius: 8, fillColor: &quot;red&quot;, color: &quot;red&quot;, alpha: 1 }&lt;br /&gt;		},&lt;br /&gt;		fancy: {&lt;br /&gt;			outerBorder: { lineWidth: 5, radius:95, color: &quot;green&quot;, alpha: 0.7 },&lt;br /&gt;			smallIndicator: { lineWidth: 1, startAt: 80, endAt: 93, color: &quot;black&quot;, alpha: 0.4 },&lt;br /&gt;			largeIndicator: { lineWidth: 1, startAt: 30, endAt: 93, color: &quot;black&quot;, alpha: 0.5 },&lt;br /&gt;			hourHand: { lineWidth: 8, startAt: -15, endAt: 50, color: &quot;blue&quot;, alpha: 0.7 },&lt;br /&gt;			minuteHand: { lineWidth: 7, startAt: -15, endAt: 92, color: &quot;red&quot;, alpha: 0.7 },&lt;br /&gt;			secondHand: { lineWidth: 10, startAt: 80, endAt: 85, color: &quot;blue&quot;, alpha: 0.3 },&lt;br /&gt;			secondDecoration: { lineWidth: 1, startAt: 30, radius: 50, fillColor: &quot;blue&quot;, color: &quot;red&quot;, alpha: 0.15 }&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;CoolClock.prototype = {&lt;br /&gt;	init: function(canvasId,displayRadius,skinId,showSecondHand) {&lt;br /&gt;		this.canvasId = canvasId;&lt;br /&gt;		this.displayRadius = displayRadius || CoolClock.config.defaultRadius;&lt;br /&gt;		this.skinId = skinId || CoolClock.config.defaultSkin;&lt;br /&gt;		this.showSecondHand = typeof showSecondHand == &quot;boolean&quot; ? showSecondHand : true;&lt;br /&gt;		this.tickDelay = CoolClock.config[ this.showSecondHand ? &quot;tickDelay&quot; : &quot;longTickDelay&quot;];&lt;br /&gt;&lt;br /&gt;		this.canvas = document.getElementById(canvasId);&lt;br /&gt;		this.canvas.setAttribute(&quot;width&quot;,this.displayRadius*2);&lt;br /&gt;		this.canvas.setAttribute(&quot;height&quot;,this.displayRadius*2);&lt;br /&gt;&lt;br /&gt;		this.renderRadius = CoolClock.config.renderRadius; &lt;br /&gt;&lt;br /&gt;		var scale = this.displayRadius / this.renderRadius;&lt;br /&gt;		this.ctx = this.canvas.getContext(&quot;2d&quot;);&lt;br /&gt;		this.ctx.scale(scale,scale);&lt;br /&gt;&lt;br /&gt;		CoolClock.config.clockTracker[canvasId] = this;&lt;br /&gt;		this.tick();&lt;br /&gt;		return this;&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	fullCircle: function(skin) {&lt;br /&gt;		this.fullCircleAt(this.renderRadius,this.renderRadius,skin);&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	fullCircleAt: function(x,y,skin) {&lt;br /&gt;		with (this.ctx) {&lt;br /&gt;			save();&lt;br /&gt;			globalAlpha = skin.alpha;&lt;br /&gt;			lineWidth = skin.lineWidth;&lt;br /&gt;			arc(x, y, skin.radius, 0, 2*Math.PI, false);&lt;br /&gt;			if (skin.fillColor) {&lt;br /&gt;				fillStyle = skin.fillColor&lt;br /&gt;				fill();&lt;br /&gt;			}&lt;br /&gt;			else {&lt;br /&gt;				// XXX why not stroke and fill&lt;br /&gt;				strokeStyle = skin.color;&lt;br /&gt;				stroke();&lt;br /&gt;			}&lt;br /&gt;			restore();&lt;br /&gt;		}&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	radialLineAtAngle: function(angleFraction,skin) {&lt;br /&gt;		with (this.ctx) {&lt;br /&gt;			save();&lt;br /&gt;			translate(this.renderRadius,this.renderRadius);&lt;br /&gt;			rotate(Math.PI * (2 * angleFraction - 0.5));&lt;br /&gt;			globalAlpha = skin.alpha;&lt;br /&gt;			strokeStyle = skin.color;&lt;br /&gt;			lineWidth = skin.lineWidth;&lt;br /&gt;			if (skin.radius) {&lt;br /&gt;				this.fullCircleAt(skin.startAt,0,skin)&lt;br /&gt;			}&lt;br /&gt;			else {&lt;br /&gt;				beginPath();&lt;br /&gt;				moveTo(skin.startAt,0)&lt;br /&gt;				lineTo(skin.endAt,0);&lt;br /&gt;				stroke();&lt;br /&gt;			}&lt;br /&gt;			restore();&lt;br /&gt;		}&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	render: function(hour,min,sec) {&lt;br /&gt;		var skin = CoolClock.config.skins[this.skinId];&lt;br /&gt;		this.ctx.clearRect(0,0,this.renderRadius*2,this.renderRadius*2);&lt;br /&gt;&lt;br /&gt;		this.fullCircle(skin.outerBorder);&lt;br /&gt;&lt;br /&gt;		for (var i=0;i&lt;60;i++)&lt;br /&gt;			this.radialLineAtAngle(i/60,skin[ i%5 ? &quot;smallIndicator&quot; : &quot;largeIndicator&quot;]);&lt;br /&gt;				&lt;br /&gt;		this.radialLineAtAngle((hour+min/60)/12,skin.hourHand);&lt;br /&gt;		this.radialLineAtAngle((min+sec/60)/60,skin.minuteHand);&lt;br /&gt;		if (this.showSecondHand) {&lt;br /&gt;			this.radialLineAtAngle(sec/60,skin.secondHand);&lt;br /&gt;			this.radialLineAtAngle(sec/60,skin.secondDecoration);&lt;br /&gt;		}&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;	nextTick: function() {&lt;br /&gt;		setTimeout(&quot;CoolClock.config.clockTracker['&quot;+this.canvasId+&quot;'].tick()&quot;,this.tickDelay);&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	stillHere: function() {&lt;br /&gt;		return document.getElementById(this.canvasId) != null;&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	refreshDisplay: function() {&lt;br /&gt;		var now = new Date();&lt;br /&gt;		this.render(now.getHours(),now.getMinutes(),now.getSeconds());&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	tick: function() {&lt;br /&gt;		if (this.stillHere()) {&lt;br /&gt;			this.refreshDisplay()&lt;br /&gt;			this.nextTick();&lt;br /&gt;		}&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;config.macros.clock2 = {&lt;br /&gt;	counter: 0,&lt;br /&gt;	handler: function (place,macroName,params,wikifier,paramString,tiddler) {&lt;br /&gt;		var size,skin,seconds,skinData;&lt;br /&gt;		for (var i=0;i&lt;params.length;i++)&lt;br /&gt;			if (/^\d+$/.exec(params[i]))&lt;br /&gt;				size = params[i];&lt;br /&gt;			else if (params[i] == &quot;noSeconds&quot;)&lt;br /&gt;				seconds = false;&lt;br /&gt;			else if (/^\{/.exec(params[i]))&lt;br /&gt;				eval(&quot;skinData = &quot; + params[i]);&lt;br /&gt;			else&lt;br /&gt;				skin = params[i];&lt;br /&gt;		if (skinData) {&lt;br /&gt;			CoolClock.config.skins.customSkin = skinData;&lt;br /&gt;			skin = &quot;customSkin&quot;;&lt;br /&gt;		}&lt;br /&gt;		var canvas = createTiddlyElement(place,&quot;canvas&quot;,&quot;clockcanvas&quot;+this.counter);&lt;br /&gt;		var clock = new CoolClock(&quot;clockcanvas&quot;+this.counter,size,skin,seconds);&lt;br /&gt;		this.counter++;&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//}}}&lt;br /&gt;</description>
<category>systemConfig</category>
<category>Plugins</category>
<category>WhatsNew</category>
<link>http://simonbaird.com/mptw/#Clock2</link>
<pubDate>Fri, 04 Aug 2006 02:52:00 GMT</pubDate>
</item>
<item>
<title>BigClock</title>
<description>&lt;&lt;clock2 350&gt;&gt;</description>
<link>http://simonbaird.com/mptw/#BigClock</link>
<pubDate>Thu, 03 Aug 2006 22:28:00 GMT</pubDate>
</item>
<item>
<title>ShowClockMacro</title>
<description>/***&lt;br /&gt;!Example Usage&lt;br /&gt;&lt;&lt;eg&lt;br /&gt;| Local|&lt;&lt;showClock\&gt;\&gt;|&lt;br /&gt;| Queensland|&lt;&lt;showClock +10\&gt;\&gt;|&lt;br /&gt;| England (DST)|&lt;&lt;showClock +1\&gt;\&gt;|&lt;br /&gt;| California (DST)|&lt;&lt;showClock -7\&gt;\&gt;|&lt;br /&gt;&gt;&gt;&lt;br /&gt;***/&lt;br /&gt;//{{{&lt;br /&gt;version.extensions.ShowClockMacro = { major: 0, minor: 0, revision: 1, date: new Date(2006,7,12),&lt;br /&gt;	source: &quot;http://tiddlyspot.com/mptw/#ShowClockMacro&quot;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;config.macros.showClock = {&lt;br /&gt;&lt;br /&gt;	defaultClass: 'clock',&lt;br /&gt;	tickDelay: 1000, &lt;br /&gt;	format: &quot;0hh:0mm:0ss&quot;,&lt;br /&gt;&lt;br /&gt;	styles: &lt;br /&gt;		&quot;.clock {\n&quot;+&lt;br /&gt;		&quot;  padding:0 0.5em;\n&quot;+&lt;br /&gt;		&quot;}\n&quot; +&lt;br /&gt;		&quot;.clock .dow    { color:#000; }\n&quot; +&lt;br /&gt;		&quot;.clock .time   { color:#000; }\n&quot; +&lt;br /&gt;		&quot;.clock .offset { color:#999; }\n&quot; +&lt;br /&gt;		&quot;&quot;,&lt;br /&gt;&lt;br /&gt;	count: 0,&lt;br /&gt;&lt;br /&gt;	handler: function (place,macroName,params,wikifier,paramString,tiddler) {&lt;br /&gt;		var offset = params[0] || '';&lt;br /&gt;		var useClass = params[1] || this.defaultClass;&lt;br /&gt;		var c = this.count++;&lt;br /&gt;		var clockElement = createTiddlyElement(place, &quot;span&quot;, &quot;clock&quot; + c, useClass);&lt;br /&gt;		clockElement.setAttribute(&quot;offset&quot;,offset);&lt;br /&gt;		this.refreshDisplay(c);&lt;br /&gt;		this.waitForTick(c);&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	waitForTick: function(c) {&lt;br /&gt;		setTimeout(&quot;config.macros.showClock.tick(&quot; + c + &quot;)&quot;, this.tickDelay);&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	tick: function(c) {&lt;br /&gt;		if (this.stillHere(c)) {&lt;br /&gt;			this.refreshDisplay(c)&lt;br /&gt;			this.waitForTick(c);&lt;br /&gt;		}&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	getClock: function(c) {&lt;br /&gt;		return document.getElementById(&quot;clock&quot; + c);&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	stillHere: function(c) {&lt;br /&gt;		return this.getClock(c) != null;&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	refreshDisplay: function(c) {&lt;br /&gt;		var clock = this.getClock(c);&lt;br /&gt;		var offset = clock.getAttribute(&quot;offset&quot;)&lt;br /&gt;		var now = new Date();&lt;br /&gt;		//var label = &quot;local&quot;;&lt;br /&gt;		var label = &quot;&quot;;&lt;br /&gt;		if (offset &amp;&amp; offset != '') {&lt;br /&gt;			var offsetInt = parseInt(offset);&lt;br /&gt;			now.setHours(now.getHours() + (now.getTimezoneOffset() / 60) + offsetInt);&lt;br /&gt;			label = &quot;GMT &quot; + (offsetInt == 0 ? &quot;&quot; : offsetInt &gt; 0 ? &quot;+&quot;+offsetInt : offsetInt);&lt;br /&gt;		}&lt;br /&gt;		clock.innerHTML =&lt;br /&gt;			'&lt;span class=&quot;dow&quot;&gt;' + now.formatString(&quot;DDD&quot;).substr(0,3) + ' &lt;/span&gt;' +&lt;br /&gt;			'&lt;span class=&quot;time&quot;&gt;' + now.formatString(this.format) + '&lt;/span&gt;' + &lt;br /&gt;			'&lt;span class=&quot;offset&quot;&gt; ' + label + '&lt;/span&gt;'&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;setStylesheet(config.macros.showClock.styles,&quot;showClockStyles&quot;);&lt;br /&gt;&lt;br /&gt;//}}}&lt;br /&gt;</description>
<category>systemConfig</category>
<category>Plugins</category>
<category>WhatsNew</category>
<link>http://simonbaird.com/mptw/#ShowClockMacro</link>
<pubDate>Wed, 02 Aug 2006 15:29:00 GMT</pubDate>
</item>
<item>
<title>StyleSheet</title>
<description>/***&lt;br /&gt;Cosmetic fixes that probably should be included in a future TW...&lt;br /&gt;***/&lt;br /&gt;/*{{{*/&lt;br /&gt;.viewer .listTitle { list-style-type:none; margin-left:-2em; }&lt;br /&gt;.editorFooter .button { padding-top: 0px; padding-bottom:0px; }&lt;br /&gt;/*}}}*/&lt;br /&gt;/***&lt;br /&gt;Important stuff. See TagglyTaggingStyles and HorizontalMainMenuStyles&lt;br /&gt;***/&lt;br /&gt;/*{{{*/&lt;br /&gt;[[TagglyTaggingStyles]]&lt;br /&gt;[[HorizontalMainMenuStyles]]&lt;br /&gt;/*}}}*/&lt;br /&gt;/***&lt;br /&gt;Clint's fix for weird IE behaviours&lt;br /&gt;***/&lt;br /&gt;/*{{{*/&lt;br /&gt;body {position:static;}&lt;br /&gt;.tagClear{margin-top:1em;clear:both;}&lt;br /&gt;/*}}}*/&lt;br /&gt;/***&lt;br /&gt;Just colours, fonts, tweaks etc. See SideBarWhiteAndGrey&lt;br /&gt;***/&lt;br /&gt;/*{{{*/&lt;br /&gt;body {background:#eee; /* font-size:103%; */}&lt;br /&gt;a{ color: #069; }&lt;br /&gt;a:hover{ background: #069; color: #fff; }&lt;br /&gt;.popup { background: #069; border: 1px solid #035; }&lt;br /&gt;.headerForeground a { color: #38a; font-weight:bold;}&lt;br /&gt;.headerShadow a { font-weight:bold;}&lt;br /&gt;.headerShadow { left: 2px; top: 2px;}&lt;br /&gt;.title { padding:0px; margin:0px; }&lt;br /&gt;.siteSubtitle { padding:0px; margin:0px; padding-left:1.5em; font-weight:bold; }&lt;br /&gt;.headerForeground .siteSubtitle { color:#38a; }&lt;br /&gt;.subtitle { font-size:90%; color:#ccc; padding-left:0.25em; }&lt;br /&gt;h1,h2,h3,h4,h5 { color: #000; background: transparent; }&lt;br /&gt;.title {color:black; font-size:2em;}&lt;br /&gt;.shadow .title {color:#999; }&lt;br /&gt;.viewer pre { background-color:#f8f8ff; border-color:#ddf; }&lt;br /&gt;.viewer { padding-top:0px; }&lt;br /&gt;.editor textarea { font-family:monospace; }&lt;br /&gt;#sidebarOptions { border:1px #ccc solid; }&lt;br /&gt;.tiddler {&lt;br /&gt; border-bottom:1px solid #ccc; border-right:1px solid #ccc; padding-bottom:1em; margin-bottom:1em; &lt;br /&gt; background:#fff; padding-right:1.5em; }&lt;br /&gt;#messageArea { background-color:#bde; border-color:#8ab; border-width:4px; border-style:dotted; font-size:90%; }&lt;br /&gt;#messageArea .button { text-decoration:none; font-weight:bold; background:transparent; border:0px; }&lt;br /&gt;#messageArea .button:hover {background: #acd;}&lt;br /&gt;[[SideBarWhiteAndGrey]]&lt;br /&gt;&lt;br /&gt;.viewer td {vertical-align:top;}&lt;br /&gt;&lt;br /&gt;.viewer table.noBorder {border-style:none;}&lt;br /&gt;.viewer table.noBorder td {border-style:none;}&lt;br /&gt;.viewer table.threeCol td {width:33%;}&lt;br /&gt;&lt;br /&gt;#adsense {&lt;br /&gt; margin: 1em 15.7em 0em 1em; border:1px solid #ddd;&lt;br /&gt; background:#f8f8f8; text-align:center;margin-bottom:1em;overflow:hidden;padding:0.5em;} &lt;br /&gt;&lt;br /&gt;.sliderPanel { margin-left: 2em; }&lt;br /&gt;&lt;br /&gt;.viewer th { background:#ddd; color:black; }&lt;br /&gt;/*}}}*/&lt;br /&gt;/*{{{*/&lt;br /&gt;/* for testing clint's new formatter. eg {{red{asdfaf}}} */&lt;br /&gt;.red { color:white; background:red; display:block; padding:1em; } &lt;br /&gt;&lt;br /&gt;/* FF doesn't need this. but IE seems to want to make first one white */&lt;br /&gt;.txtMainTab .tabset { background:#eee; }&lt;br /&gt;.txtMoreTab .tabset { background:transparent; }&lt;br /&gt;&lt;br /&gt;.faq ol li { padding-top:1em; font-size:120%; }&lt;br /&gt;.faq ol ul li { padding-top:0px; font-size:100%; }&lt;br /&gt;&lt;br /&gt;#adsenseBox { background:white; padding:1em 1em; border:1px solid #ccc; margin-bottom:1em; margin-top:1em; }&lt;br /&gt;#adsenseBar { text-align:center; background:#fff; padding:1em 1em; border:1px solid #ccc; margin-bottom:1em; margin-top:0; overflow:hidden; }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/*}}}*/&lt;br /&gt;</description>
<category>CSS</category>
<category>StyleSheets</category>
<link>http://simonbaird.com/mptw/#StyleSheet</link>
<pubDate>Wed, 26 Jul 2006 06:49:00 GMT</pubDate>
</item>
<item>
<title>AmPmTimeFormat</title>
<description>/***&lt;br /&gt;This functionality is already in upcoming 2.1 beta, see http://trac.tiddlywiki.org/tiddlywiki/changeset/205&lt;br /&gt;***/&lt;br /&gt;&lt;br /&gt;//{{{&lt;br /&gt;&lt;br /&gt;Date.prototype.getHours12 = function()&lt;br /&gt;{&lt;br /&gt;	var h = this.getHours();&lt;br /&gt;	return (h &gt; 12 ? h-12 : ( h &gt; 0 ? h : 12 ));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Date.prototype.getAmPm = function()&lt;br /&gt;{&lt;br /&gt;	return (this.getHours() &gt;= 12 ? &quot;pm&quot; : &quot;am&quot;);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// Substitute date components into a string&lt;br /&gt;// should be a hijack but hopefull this or something like it will go into core...&lt;br /&gt;Date.prototype.formatString = function(template)&lt;br /&gt;{&lt;br /&gt;	template = template.replace(/YYYY/g,this.getFullYear());&lt;br /&gt;	template = template.replace(/YY/g,String.zeroPad(this.getFullYear()-2000,2));&lt;br /&gt;	template = template.replace(/MMM/g,config.messages.dates.months[this.getMonth()]);&lt;br /&gt;	template = template.replace(/0MM/g,String.zeroPad(this.getMonth()+1,2));&lt;br /&gt;	template = template.replace(/MM/g,this.getMonth()+1);&lt;br /&gt;	template = template.replace(/DDD/g,config.messages.dates.days[this.getDay()]);&lt;br /&gt;	template = template.replace(/0DD/g,String.zeroPad(this.getDate(),2));&lt;br /&gt;	template = template.replace(/DDth/g,this.getDate()+this.daySuffix());&lt;br /&gt;	template = template.replace(/DD/g,this.getDate());&lt;br /&gt;	template = template.replace(/0hh12/g,String.zeroPad(this.getHours12(),2));   // &lt;--------- new&lt;br /&gt;	template = template.replace(/hh12/g,this.getHours12());                      // &lt;--------- new&lt;br /&gt;	template = template.replace(/0hh/g,String.zeroPad(this.getHours(),2));&lt;br /&gt;	template = template.replace(/hh/g,this.getHours());&lt;br /&gt;	template = template.replace(/0mm/g,String.zeroPad(this.getMinutes(),2));&lt;br /&gt;	template = template.replace(/mm/g,this.getMinutes());&lt;br /&gt;	template = template.replace(/0ss/g,String.zeroPad(this.getSeconds(),2));&lt;br /&gt;	template = template.replace(/ss/g,this.getSeconds());&lt;br /&gt;	template = template.replace(/[ap]m/g,this.getAmPm().toLowerCase());   // &lt;--------- new&lt;br /&gt;	template = template.replace(/[AP]M/g,this.getAmPm().toUpperCase());   // &lt;--------- new&lt;br /&gt;	return template;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//}}}&lt;br /&gt;&lt;br /&gt;</description>
<category>systemConfig</category>
<category>Plugins</category>
<category>WhatsNew</category>
<link>http://simonbaird.com/mptw/#AmPmTimeFormat</link>
<pubDate>Mon, 17 Jul 2006 02:32:00 GMT</pubDate>
</item>
<item>
<title>TiddlyWikiFAQ</title>
<description>Still under construction but it's grown a little:&lt;br /&gt;http://tiddlyspot.com/twfaq/</description>
<category>WhatsNew</category>
<link>http://simonbaird.com/mptw/#TiddlyWikiFAQ</link>
<pubDate>Mon, 17 Jul 2006 00:25:00 GMT</pubDate>
</item>
<item>
<title>SiteMapMacro</title>
<description>/***&lt;br /&gt;| Name:|SiteMapMacro|&lt;br /&gt;| Author:|Simon Baird|&lt;br /&gt;| Location:|http://simonbaird.com/mptw/#SiteMapMacro|&lt;br /&gt;| Version:|1.0.3, 15-Mar-06|&lt;br /&gt;&lt;br /&gt;!!Examples&lt;br /&gt;See SiteMap and SliderSiteMap for example usage.&lt;br /&gt;&lt;br /&gt;!!Parameters&lt;br /&gt;* Name of tiddler to start at&lt;br /&gt;* Max depth (a number) &lt;br /&gt;* Format (eg, nested, see formats below)&lt;br /&gt;* Don't show root flag (anything other than null turns it on)&lt;br /&gt;* Tags - a string containing a bracketed list of tags that we are interested in&lt;br /&gt;&lt;br /&gt;!!History&lt;br /&gt;* 1.0.3 (15-Mar-06)&lt;br /&gt;** added tag filtering&lt;br /&gt;* 1.0.2 (15-Mar-06)&lt;br /&gt;** Added json format and dontshowroot option&lt;br /&gt;* 1.0.1 (9-Mar-06)&lt;br /&gt;** Added selectable formats and fixed nested slider format&lt;br /&gt;* 1.0.0 (8-Mar-06)&lt;br /&gt;** first release&lt;br /&gt;&lt;br /&gt;***/&lt;br /&gt;//{{{&lt;br /&gt;&lt;br /&gt;version.extensions.SiteMapMacro = {&lt;br /&gt;	major: 1,&lt;br /&gt;	minor: 0,&lt;br /&gt;	revision: 3,&lt;br /&gt;	date: new Date(2006,3,15),&lt;br /&gt;	source: &quot;http://simonbaird.com/mptw/#SiteMapMacro&quot;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;config.macros.siteMap = {&lt;br /&gt;&lt;br /&gt;	formats: {&lt;br /&gt;		bullets: {&lt;br /&gt;			formatString: &quot;%0[[%1]]\n%2&quot;,&lt;br /&gt;			indentString: &quot;*&quot;&lt;br /&gt;		},&lt;br /&gt;&lt;br /&gt;		// put this in your StyleSheet to make it look good.&lt;br /&gt;		// .sliderPanel { margin-left: 2em; }&lt;br /&gt;&lt;br /&gt;		sliders: {&lt;br /&gt;			formatString: &quot;[[%1]]+++\n%2===\n\n&quot;,&lt;br /&gt;			formatStringLeaf: &quot;[[%1]]\n&quot;&lt;br /&gt;		},&lt;br /&gt;&lt;br /&gt;		openSliders: {&lt;br /&gt;			formatString: &quot;[[%1]]++++\n%2===\n\n&quot;,&lt;br /&gt;			formatStringLeaf: &quot;[[%1]]\n&quot;&lt;br /&gt;		},&lt;br /&gt;&lt;br /&gt;		popups: {&lt;br /&gt;			formatString: &quot;[[%1]]+++^\n%2===\n\n&quot;,&lt;br /&gt;			formatStringLeaf: &quot;[[%1]]\n&quot;&lt;br /&gt;		},&lt;br /&gt;&lt;br /&gt;		// these don't work too well&lt;br /&gt;		openPopups: {&lt;br /&gt;			formatString: &quot;[[%1]]++++^\n%2===\n\n&quot;,&lt;br /&gt;			formatStringLeaf: &quot;[[%1]]\n&quot;&lt;br /&gt;		},&lt;br /&gt;		&lt;br /&gt;		// this is a little nuts but it works&lt;br /&gt;		json: {&lt;br /&gt;			formatString: '\n%0{&quot;%1&quot;:[%2\n%0]}',&lt;br /&gt;			formatStringLeaf: '\n%0&quot;%1&quot;',&lt;br /&gt;			indentString: &quot;  &quot;,&lt;br /&gt;			separatorString: &quot;,&quot;&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	defaultFormat: &quot;bullets&quot;,&lt;br /&gt;&lt;br /&gt;	treeTraverse: function(title,depth,maxdepth,format,dontshowroot,tags,excludetags) {&lt;br /&gt;&lt;br /&gt;		var tiddler = store.getTiddler(title);&lt;br /&gt;		var tagging = store.getTaggedTiddlers(title);&lt;br /&gt;&lt;br /&gt;		if (dontshowroot)&lt;br /&gt;			depth = 0;&lt;br /&gt;&lt;br /&gt;		var indent = &quot;&quot;;&lt;br /&gt;		if (this.formats[format].indentString)&lt;br /&gt;			for (var j=0;j&lt;depth;j++)&lt;br /&gt;				indent += this.formats[format].indentString;&lt;br /&gt;&lt;br /&gt;		var childOutput = &quot;&quot;;&lt;br /&gt;		if (!maxdepth || depth &lt; parseInt(maxdepth)) &lt;br /&gt;			for (var i=0;i&lt;tagging.length;i++)&lt;br /&gt;				if (tagging[i].title != title) {&lt;br /&gt;					if (this.formats[format].separatorString &amp;&amp; i != 0)&lt;br /&gt;						childOutput += this.formats[format].separatorString;&lt;br /&gt;					childOutput += this.treeTraverse(tagging[i].title,depth+1,maxdepth,format,null,tags,excludetags);&lt;br /&gt;				}&lt;br /&gt;&lt;br /&gt;		if (childOutput == &quot;&quot; &amp;&amp; (&lt;br /&gt;				(tags &amp;&amp; tags != &quot;&quot; &amp;&amp; !tiddler.tags.containsAll(tags.readBracketedList())) ||&lt;br /&gt;				(excludetags &amp;&amp; excludetags != &quot;&quot; &amp;&amp; tiddler.tags.containsAny(excludetags.readBracketedList()))&lt;br /&gt;				)&lt;br /&gt;			) {&lt;br /&gt;			// so prune it cos it doesn't have the right tags and neither do any of it's children&lt;br /&gt;			return &quot;&quot;;&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		if (dontshowroot)&lt;br /&gt;			return childOutput;&lt;br /&gt;&lt;br /&gt;		if (this.formats[format].formatStringLeaf &amp;&amp; childOutput == &quot;&quot;) {&lt;br /&gt;			// required for nestedSliders&lt;br /&gt;			return this.formats[format].formatStringLeaf.format([indent,title,childOutput]);&lt;br /&gt;		}&lt;br /&gt;&lt;br /&gt;		return this.formats[format].formatString.format([indent,title,childOutput]);&lt;br /&gt;	},&lt;br /&gt;&lt;br /&gt;	handler: function (place,macroName,params,wikifier,paramString,tiddler) {&lt;br /&gt;		wikify(this.treeTraverse(&lt;br /&gt;			params[0] &amp;&amp; params[0] != '.' ? params[0] : tiddler.title, 1, &lt;br /&gt;			params[1] &amp;&amp; params[1] != '.' ? params[1] : null, // maxdepth&lt;br /&gt;			params[2] &amp;&amp; params[2] != '.' ? params[2] : this.defaultFormat, // format&lt;br /&gt;			params[3] &amp;&amp; params[3] != '.' ? params[3] : null, // dontshowroot&lt;br /&gt;			params[4] &amp;&amp; params[4] != '.' ? params[4] : null, // tags&lt;br /&gt;			params[5] &amp;&amp; params[5] != '.' ? params[5] : null // excludetags&lt;br /&gt;			),place);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//}}}&lt;br /&gt;</description>
<category>Plugins</category>
<category>systemConfig</category>
<link>http://simonbaird.com/mptw/#SiteMapMacro</link>
<pubDate>Mon, 17 Jul 2006 00:24:00 GMT</pubDate>
</item>
<item>
<title>SliderSiteMap</title>
<description>Demo of slider formatting in SiteMapMacro&lt;br /&gt;|!sliders|!openSliders|!popups|&lt;br /&gt;|{{{&lt;&lt;siteMap TagglyTagging . sliders&gt;&gt;}}}|{{{&lt;&lt;siteMap TagglyTagging . openSliders&gt;&gt;}}}|{{{&lt;&lt;siteMap TagglyTagging . popups&gt;&gt;}}}|&lt;br /&gt;|&lt;&lt;siteMap TagglyTagging . sliders&gt;&gt;|&lt;&lt;siteMap TagglyTagging . openSliders&gt;&gt;|&lt;&lt;siteMap TagglyTagging . popups&gt;&gt;|</description>
<category>FunStuff</category>
<link>http://simonbaird.com/mptw/#SliderSiteMap</link>
<pubDate>Mon, 17 Jul 2006 00:24:00 GMT</pubDate>
</item>
<item>
<title>SiteSubtitle</title>
<description>some plugins and hacks for tiddlywiki (&lt;&lt;version&gt;&gt;)</description>
<link>http://simonbaird.com/mptw/#SiteSubtitle</link>
<pubDate>Fri, 14 Jul 2006 22:36:00 GMT</pubDate>
</item>
<item>
<title>PageTemplate</title>
<description>&lt;!---&lt;br /&gt;I've just tweaked my gradient colours and the topMenu bit. See HorizontalMainMenu.&lt;br /&gt;---&gt;&lt;br /&gt;&lt;!--{{{--&gt;&lt;br /&gt;&lt;div class='header' macro='gradient vert #013 #069'&gt;&lt;br /&gt;&lt;div class='headerShadow'&gt;&lt;br /&gt;&lt;span class='siteTitle' refresh='content' tiddler='SiteTitle'&gt;&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class='headerForeground'&gt;&lt;br /&gt;&lt;span class='siteTitle' refresh='content' tiddler='SiteTitle'&gt;&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span class='siteSubtitle' refresh='content' tiddler='SiteSubtitle'&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id='topMenu' refresh='content' tiddler='MainMenu'&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id='sidebar'&gt;&lt;br /&gt;&lt;div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id='displayArea'&gt;&lt;br /&gt;&lt;div id='messageArea'&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id='tiddlerDisplay'&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;!--}}}--&gt;&lt;br /&gt;</description>
<category>PageTemplates</category>
<link>http://simonbaird.com/mptw/#PageTemplate</link>
<pubDate>Fri, 14 Jul 2006 22:25:00 GMT</pubDate>
</item>
<item>
<title>HorizontalMainMenuStyles</title>
<description>/***&lt;br /&gt;To use, add {{{[[HorizontalMainMenuStyles]]}}} to your StyleSheet tiddler, or you can just paste the CSS in directly. See also HorizontalMainMenu and PageTemplate.&lt;br /&gt;***/&lt;br /&gt;/*{{{*/&lt;br /&gt;&lt;br /&gt;#topMenu br {display:none; }&lt;br /&gt;#topMenu { background: #069; }&lt;br /&gt;#topMenu { padding:2px; }&lt;br /&gt;#topMenu .button, #topMenu .tiddlyLink {&lt;br /&gt; margin-left:0.5em; margin-right:0.5em;&lt;br /&gt; padding-left:3px; padding-right:3px;&lt;br /&gt; color:white; font-size:115%;&lt;br /&gt;}&lt;br /&gt;#topMenu .button:hover, #topMenu .tiddlyLink:hover { background:#17a;}&lt;br /&gt;&lt;br /&gt;#displayArea { margin: 1em 15.7em 0em 1em; } /* so we use the freed up space */&lt;br /&gt;&lt;br /&gt;/* just in case want some QuickOpenTags in your topMenu */&lt;br /&gt;#topMenu .quickopentag { padding:0px; margin:0px; border:0px; }&lt;br /&gt;#topMenu .quickopentag .tiddlyLink { padding-right:1px; margin-right:0px; }&lt;br /&gt;#topMenu .quickopentag .button { padding-left:1px; margin-left:0px; border:0px; }&lt;br /&gt;&lt;br /&gt;@media print { #topMenu {display: none ! important;} }&lt;br /&gt;&lt;br /&gt;/*}}}*/</description>
<category>CSS</category>
<link>http://simonbaird.com/mptw/#HorizontalMainMenuStyles</link>
<pubDate>Fri, 14 Jul 2006 22:21:00 GMT</pubDate>
</item>
<item>
<title>Download</title>
<description>You can have your own personal, self-contained wiki exactly* like this site in just a few seconds. Here's how to do it.&lt;br /&gt;# Right click on [[empty_mptw.html|empty_mptw.html]]&lt;br /&gt;# Click 'Save link as...' and save the file somewhere locally. Name it whatever you want.&lt;br /&gt;# When the download is finished, double click the file to open it in your browser&lt;br /&gt;That's it! You're now ready configure your page's title, menus etc, and add your own content by following the instructions in your new TiddlyWiki file.&lt;br /&gt;&lt;br /&gt;~~* Actually the &quot;empty&quot; file contains the TagglyTagging stuff plus Eric Shulman's ImportTiddlersPlugin. I've removed the more experimental plugins used on this site. See [[here|empty_mptw.html#systemConfig]] for a full list of what comes with the empty file.~~</description>
<link>http://simonbaird.com/mptw/#Download</link>
<pubDate>Fri, 14 Jul 2006 22:16:00 GMT</pubDate>
</item>
<item>
<title>RefreshCommand</title>
<description>/***&lt;br /&gt;***/&lt;br /&gt;&lt;br /&gt;//{{{&lt;br /&gt;&lt;br /&gt;config.commands.refresh = {&lt;br /&gt; text: 'refresh',&lt;br /&gt; tooltip: 'Refresh this tiddler',&lt;br /&gt; handler: function(e,src,title) {&lt;br /&gt;  clearMessage();&lt;br /&gt;  story.refreshTiddler(title,false,true); // force=true&lt;br /&gt;  return false;&lt;br /&gt; }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;//}}}</description>
<category>systemConfig</category>
<category>Plugins</category>
<link>http://simonbaird.com/mptw/#RefreshCommand</link>
<pubDate>Wed, 12 Jul 2006 22:17:00 GMT</pubDate>
</item>
<item>
<title>TakeOffline</title>
<description>http://tiddlyspot.com/download/mptw</description>
<link>http://simonbaird.com/mptw/#TakeOffline</link>
<pubDate>Wed, 12 Jul 2006 05:33:00 GMT</pubDate>
</item>
</channel>
</rss>