starkakrats https://starkakrats.tiddlyhost.com/ en Copyright 2023 YourName Sat, 23 Dec 2023 04:22:11 GMT Sat, 23 Dec 2023 04:22:11 GMT http://blogs.law.harvard.edu/tech/rss TiddlyWiki 2.9.4 About Among all the blog systems, I choose tiddlywiki classic because it is wysiwyg, extensible and portable. Modern flat design blog systems (including tw5) are similar in appearance and fixed in layout, a strength in branded and marketed web but shortage in personal cyber space. Compare <a class="externalLink" href="https://www.cameronsworld.net/" title="External link to https://www.cameronsworld.net/" target="_blank">https://www.cameronsworld.net/</a> with hexo blog, you will be amazed at the abundance of 80s web desgin. Content https://starkakrats.tiddlyhost.com/#About Sat, 23 Dec 2023 04:19:00 GMT Home Hello, I am starkakrats. I am interested in math and computers.<br><hr><h1>Last content updates</h1><table class="twtable"><thead><tr class="evenRow"><th>Last 5 tiddlers created</th><th>Last 5 tiddlers modified</th></tr></thead><tbody><tr class="oddRow"><td><ul><li class="listTitle">23 December 2023</li><li class="listLink"><a class="tiddlyLink tiddlyLinkExisting" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#%5B%5BTest%20tiddler%5D%5D" title="Test tiddler - YourName, 2023/12/23 09:43:00" refresh="link" tiddlylink="Test tiddler">Test tiddler</a></li></ul><ul><li class="listTitle">22 December 2023</li><li class="listLink"><a class="tiddlyLink tiddlyLinkExisting" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#About" title="About - YourName, 2023/12/23 12:19:00" refresh="link" tiddlylink="About">About</a></li><li class="listLink"><a class="tiddlyLink tiddlyLinkExisting" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#Home" title="Home - YourName, 2023/12/23 11:36:00" refresh="link" tiddlylink="Home">Home</a></li></ul></td><td><ul><li class="listTitle">23 December 2023</li><li class="listLink"><a class="tiddlyLink tiddlyLinkExisting" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#About" title="About - YourName, 2023/12/23 12:19:00" refresh="link" tiddlylink="About">About</a></li><li class="listLink"><a class="tiddlyLink tiddlyLinkExisting" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#Home" title="Home - YourName, 2023/12/23 11:36:00" refresh="link" tiddlylink="Home">Home</a></li><li class="listLink"><a class="tiddlyLink tiddlyLinkExisting" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#%5B%5BTest%20tiddler%5D%5D" title="Test tiddler - YourName, 2023/12/23 09:43:00" refresh="link" tiddlylink="Test tiddler">Test tiddler</a></li></ul></td></tr></tbody></table> See more in <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#LastUpdates" title="External link to https://starkakrats.tiddlyhost.com/#LastUpdates" target="_blank" refresh="link" tiddlylink="LastUpdates">Last Updates</a><br><hr><h1>Tagcloud</h1><div class="tagCloud"> <a class="tagCloudtag tagCloud1" href="javascript:;" title="1 tiddlers tagged with 'TODO'" tag="TODO">TODO</a> <a class="tagCloudtag tagCloud1" href="javascript:;" title="1 tiddlers tagged with 'Tag'" tag="Tag">Tag</a></div> Content https://starkakrats.tiddlyhost.com/#Home Sat, 23 Dec 2023 03:36:00 GMT Test tiddler Test tiddler Content https://starkakrats.tiddlyhost.com/#%5B%5BTest%20tiddler%5D%5D Sat, 23 Dec 2023 01:43:00 GMT SiteUrl <a class="externalLink" href="https://starkakrats.tiddlyhost.com/" title="External link to https://starkakrats.tiddlyhost.com/" target="_blank">https://starkakrats.tiddlyhost.com/</a> https://starkakrats.tiddlyhost.com/#SiteUrl Fri, 22 Dec 2023 13:56:00 GMT MainMenu <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#Home" title="External link to https://starkakrats.tiddlyhost.com/#Home" target="_blank" refresh="link" tiddlylink="Home">Home</a> <br><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#CS" title="External link to https://starkakrats.tiddlyhost.com/#CS" target="_blank" refresh="link" tiddlylink="CS">CS</a><br><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#Math" title="External link to https://starkakrats.tiddlyhost.com/#Math" target="_blank" refresh="link" tiddlylink="Math">Math</a><br><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#Science" title="External link to https://starkakrats.tiddlyhost.com/#Science" target="_blank" refresh="link" tiddlylink="Science">Science</a><br><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#Miscellaneous" title="External link to https://starkakrats.tiddlyhost.com/#Miscellaneous" target="_blank" refresh="link" tiddlylink="Miscellaneous">Miscellaneous</a><br><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#%5B%5BSocial%20Account%5D%5D" title="External link to https://starkakrats.tiddlyhost.com/#%5B%5BSocial%20Account%5D%5D" target="_blank" refresh="link" tiddlylink="Social Account">Social Account</a><br><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#About" title="External link to https://starkakrats.tiddlyhost.com/#About" target="_blank" refresh="link" tiddlylink="About">About</a><br><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#RSS" title="External link to https://starkakrats.tiddlyhost.com/#RSS" target="_blank" refresh="link" tiddlylink="RSS">RSS</a><br><hr><u><strong><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#LastUpdates" title="External link to https://starkakrats.tiddlyhost.com/#LastUpdates" target="_blank" refresh="link" tiddlylink="LastUpdates">Last Updates</a></strong></u><br><hr><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#AdministrationPage" title="External link to https://starkakrats.tiddlyhost.com/#AdministrationPage" target="_blank" refresh="link" tiddlylink="AdministrationPage">Administration</a><br><input class="chkOptionInput" option="chkEnableTabsBar" type="checkbox"> Tabbed navigation<br><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#DisplayOptions" title="External link to https://starkakrats.tiddlyhost.com/#DisplayOptions" target="_blank" refresh="link" tiddlylink="DisplayOptions">DisplayOptions</a><br><sup><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#TiddlyWiki" title="External link to https://starkakrats.tiddlyhost.com/#TiddlyWiki" target="_blank" refresh="link" tiddlylink="TiddlyWiki">TiddlyWiki</a> <br><span>2.9.4</span><br>Adapted from <a class="externalLink" href="https://acarvalho.tiddlyhost.com" title="External link to https://acarvalho.tiddlyhost.com" target="_blank">acarvalho.tiddlyhost.com</a><br></sup><br><span class="unsavedChanges" mode="list" sep="<br>" label="<br>" tip="view a list of unsaved tiddler changes"></span><br><hr><span> <!-- hitwebcounter Code START --> <a href="https://www.hitwebcounter.com" target="_blank"> <img src="https://hitwebcounter.com/counter/counter.php?page=10414182&amp;style=0001&amp;nbdigits=5&amp;type=page&amp;initCount=0" title="Counter Widget" alt="Visit counter For Websites" border="0"></a> <a href="https://info.flagcounter.com/8Gc3"><img src="https://s11.flagcounter.com/count2/8Gc3/bg_FFFFFF/txt_000000/border_CCCCCC/columns_2/maxflags_10/viewers_0/labels_0/pageviews_0/flags_0/percent_0/" alt="Flag Counter" border="0"></a> </span><br><hr> https://starkakrats.tiddlyhost.com/#MainMenu Fri, 22 Dec 2023 13:51:00 GMT UploadLog <table class="twtable"><tbody><tr class="evenRow"><th align="center">date</th><th align="center">user</th><th align="center">location</th><th align="center">storeUrl</th><th align="center">uploadDir</th><th align="center">toFilename</th><th align="center">backupdir</th><th align="center">origin</th></tr><tr class="oddRow"><td align="center">22/12/2023 21:16:50</td><td align="center"><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#YourName" title="External link to https://starkakrats.tiddlyhost.com/#YourName" target="_blank" refresh="link" tiddlylink="YourName">YourName</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html</a></td><td align="center"><a class="externalLink" href="https://starkakrats.tiddlyhost.com/" title="External link to https://starkakrats.tiddlyhost.com/" target="_blank"></a></td><td align="center">.</td><td align="center"><a class="externalLink" href=" https://starkakrats.tiddlyhost.com/starkakrats-retro.html" title="External link to https://starkakrats.tiddlyhost.com/starkakrats-retro.html" target="_blank">starkakrats-retro.html </a></td><td align="right"></td><td align="center">failed</td></tr><tr class="evenRow"><td align="center">22/12/2023 21:17:25</td><td align="center"><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#YourName" title="External link to https://starkakrats.tiddlyhost.com/#YourName" target="_blank" refresh="link" tiddlylink="YourName">YourName</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html</a></td><td align="center"><a class="externalLink" href="https://starkakrats.tiddlyhost.com/" title="External link to https://starkakrats.tiddlyhost.com/" target="_blank"></a></td><td align="center">.</td><td align="center"><a class="externalLink" href=" https://starkakrats.tiddlyhost.com/starkakrats-retro.html" title="External link to https://starkakrats.tiddlyhost.com/starkakrats-retro.html" target="_blank">starkakrats-retro.html </a></td><td align="right"></td><td align="center">failed</td></tr><tr class="oddRow"><td align="center">22/12/2023 21:18:54</td><td align="center"><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#YourName" title="External link to https://starkakrats.tiddlyhost.com/#YourName" target="_blank" refresh="link" tiddlylink="YourName">YourName</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html</a></td><td align="center"><a class="externalLink" href="https://starkakrats.tiddlyhost.com/" title="External link to https://starkakrats.tiddlyhost.com/" target="_blank"></a></td><td align="center"><a class="externalLink" href="https://starkakrats.tiddlyhost.com/" title="External link to https://starkakrats.tiddlyhost.com/" target="_blank">https://starkakrats.tiddlyhost.com/</a></td><td align="center"><a class="externalLink" href=" https://starkakrats.tiddlyhost.com/https://starkakrats.tiddlyhost.com//starkakrats-retro.html" title="External link to https://starkakrats.tiddlyhost.com/https://starkakrats.tiddlyhost.com//starkakrats-retro.html" target="_blank">starkakrats-retro.html </a></td><td align="right"></td><td align="center">failed</td></tr><tr class="evenRow"><td align="center">22/12/2023 21:19:40</td><td align="center"><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#YourName" title="External link to https://starkakrats.tiddlyhost.com/#YourName" target="_blank" refresh="link" tiddlylink="YourName">YourName</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/." title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/." target="_blank">.</a></td><td align="center"><a class="externalLink" href="https://starkakrats.tiddlyhost.com/" title="External link to https://starkakrats.tiddlyhost.com/" target="_blank">https://starkakrats.tiddlyhost.com/</a></td><td align="center"><a class="externalLink" href=" file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/https://starkakrats.tiddlyhost.com//starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/https://starkakrats.tiddlyhost.com//starkakrats-retro.html" target="_blank">starkakrats-retro.html </a></td><td align="right"></td><td align="center">failed</td></tr><tr class="oddRow"><td align="center">22/12/2023 21:19:56</td><td align="center"><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#YourName" title="External link to https://starkakrats.tiddlyhost.com/#YourName" target="_blank" refresh="link" tiddlylink="YourName">YourName</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html</a></td><td align="center"><a class="externalLink" href="https://starkakrats.tiddlyhost.com/" title="External link to https://starkakrats.tiddlyhost.com/" target="_blank"></a></td><td align="center">.</td><td align="center"><a class="externalLink" href=" https://starkakrats.tiddlyhost.com/starkakrats-retro.html" title="External link to https://starkakrats.tiddlyhost.com/starkakrats-retro.html" target="_blank">starkakrats-retro.html </a></td><td align="right"></td><td align="center">failed</td></tr><tr class="evenRow"><td align="center">22/12/2023 21:23:55</td><td align="center"><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#YourName" title="External link to https://starkakrats.tiddlyhost.com/#YourName" target="_blank" refresh="link" tiddlylink="YourName">YourName</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/tiddlyhost.com/" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/tiddlyhost.com/" target="_blank"></a></td><td align="center">.</td><td align="center"><a class="externalLink" href=" file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/tiddlyhost.com/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/tiddlyhost.com/starkakrats-retro.html" target="_blank">starkakrats-retro.html </a></td><td align="right"></td></tr><tr class="oddRow"><td align="center">22/12/2023 21:24:36</td><td align="center"><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#YourName" title="External link to https://starkakrats.tiddlyhost.com/#YourName" target="_blank" refresh="link" tiddlylink="YourName">YourName</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/" target="_blank"></a></td><td align="center">.</td><td align="center"><a class="externalLink" href=" file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html </a></td><td align="right"></td><td align="center">failed</td></tr><tr class="evenRow"><td align="center">22/12/2023 21:24:48</td><td align="center"><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#YourName" title="External link to https://starkakrats.tiddlyhost.com/#YourName" target="_blank" refresh="link" tiddlylink="YourName">YourName</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/" target="_blank"></a></td><td align="center">.</td><td align="center"><a class="externalLink" href=" file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html </a></td><td align="right"></td><td align="center">failed</td></tr><tr class="oddRow"><td align="center">22/12/2023 21:25:01</td><td align="center"><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#YourName" title="External link to https://starkakrats.tiddlyhost.com/#YourName" target="_blank" refresh="link" tiddlylink="YourName">YourName</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/store" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/store" target="_blank">store</a></td><td align="center">.</td><td align="center"><a class="externalLink" href=" file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html </a></td><td align="right"></td></tr><tr class="evenRow"><td align="center">22/12/2023 21:25:16</td><td align="center"><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#YourName" title="External link to https://starkakrats.tiddlyhost.com/#YourName" target="_blank" refresh="link" tiddlylink="YourName">YourName</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html</a></td><td align="center"><a class="externalLink" href="file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html</a></td><td align="center">.</td><td align="center"><a class="externalLink" href=" file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" title="External link to file:///home/stark/%E6%96%87%E6%A1%A3/math-owen/blog/starkakrats-retro.html" target="_blank">starkakrats-retro.html </a></td><td align="right"></td><td align="center">failed</td></tr></tbody></table> https://starkakrats.tiddlyhost.com/#UploadLog Fri, 22 Dec 2023 13:25:00 GMT Social Account <span> <iframe src="https://mastodon.social/@starkakrats" class="mastodon-embed" border:="" 0"="" width="400" height="400" allowfullscreen="allowfullscreen"></iframe><script src="https://mastodon.social/embed.js" async="async"></script> </span> https://starkakrats.tiddlyhost.com/#%5B%5BSocial%20Account%5D%5D Fri, 22 Dec 2023 11:08:00 GMT SiteTitle starkakrats https://starkakrats.tiddlyhost.com/#SiteTitle Fri, 22 Dec 2023 11:03:00 GMT SiteSubtitle https://starkakrats.tiddlyhost.com/#SiteSubtitle Fri, 22 Dec 2023 11:03:00 GMT DefaultTiddlers <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#Home" title="External link to https://starkakrats.tiddlyhost.com/#Home" target="_blank" refresh="link" tiddlylink="Home">Home</a> https://starkakrats.tiddlyhost.com/#DefaultTiddlers Fri, 22 Dec 2023 11:03:00 GMT ThostUploadPlugin <table class="twtable"><tbody><tr class="evenRow"><td align="left"><strong>Name:</strong></td><td align="left">ThostUploadPlugin</td></tr><tr class="oddRow"><td align="left"><strong>Description:</strong></td><td align="left">Support saving to Tiddlyhost.com</td></tr><tr class="evenRow"><td align="left"><strong>Version:</strong></td><td align="left">1.0.0</td></tr><tr class="oddRow"><td align="left"><strong>Date:</strong></td><td align="left">March 06, 2021</td></tr><tr class="evenRow"><td align="left"><strong>Source:</strong></td><td align="left"><a class="externalLink" href="https://github.com/simonbaird/tiddlyhost/tree/main/rails/tw_content/plugins" title="External link to https://github.com/simonbaird/tiddlyhost/tree/main/rails/tw_content/plugins" target="_blank">https://github.com/simonbaird/tiddlyhost/tree/main/rails/tw_content/plugins</a></td></tr><tr class="oddRow"><td align="left"><strong>Author:</strong></td><td align="left">BidiX, Simon Baird</td></tr><tr class="evenRow"><td align="left"><strong>License:</strong></td><td align="left">BSD open source license</td></tr><tr class="oddRow"><td align="left"><strong>CoreVersion:</strong></td><td align="left">2.9.2</td></tr></tbody></table><pre>version.extensions.ThostUploadPlugin = { major: 1, minor: 0, revision: 0, date: new Date("Mar 06, 2021"), source: 'https://github.com/simonbaird/tiddlyhost/rails/tw_content/plugins', author: 'BidiX, Simon Baird', coreVersion: '2.9.2' }; // // Environment // if (!window.bidix) window.bidix = {}; bidix.debugMode = false; // // Upload Macro // config.macros.thostUpload = { handler: function(place,macroName,params) { createTiddlyButton(place, "save to tiddlyhost", "save this TiddlyWiki to a site on Tiddlyhost.com", this.action, null, null, this.accessKey); }, action: function(params) { var siteName = config.options.txtThostSiteName.trim(); if (!siteName) { alert("Tiddlyhost site name is missing!"); clearMessage(); } else { bidix.thostUpload.uploadChanges('https://' + siteName + '.tiddlyhost.com'); } return false; } }; // // Upload functions // if (!bidix.thostUpload) bidix.thostUpload = {}; if (!bidix.thostUpload.messages) bidix.thostUpload.messages = { invalidFileError: "The original file '%0' does not appear to be a valid TiddlyWiki", mainSaved: "Main TiddlyWiki file uploaded", mainFailed: "Failed to upload main TiddlyWiki file. Your changes have not been saved", loadOriginalHttpPostError: "Can't get original file", aboutToSaveOnHttpPost: 'About to upload on %0 ...', storePhpNotFound: "The store script '%0' was not found." }; bidix.thostUpload.uploadChanges = function(storeUrl) { var callback = function(status, uploadParams, original, url, xhr) { if (!status) { displayMessage(bidix.thostUpload.messages.loadOriginalHttpPostError); return; } if (bidix.debugMode) { alert(original.substr(0,500)+"\n..."); } var posDiv = locateStoreArea(original); if ((posDiv[0] == -1) || (posDiv[1] == -1)) { alert(config.messages.invalidFileError.format([localPath])); return; } bidix.thostUpload.uploadMain(uploadParams, original, posDiv); }; clearMessage(); // get original var uploadParams = [storeUrl]; var originalPath = document.location.toString(); var dest = 'index.html'; displayMessage(bidix.thostUpload.messages.aboutToSaveOnHttpPost.format([dest])); if (bidix.debugMode) { alert("about to execute Http - GET on "+originalPath); } var r = doHttp("GET", originalPath, null, null, null, null, callback, uploadParams, null); if (typeof r == "string") { displayMessage(r); } return r; }; bidix.thostUpload.uploadMain = function(uploadParams, original, posDiv) { var callback = function(status, params, responseText, url, xhr) { if (status) { displayMessage(bidix.thostUpload.messages.mainSaved); store.setDirty(false); } else { alert(bidix.thostUpload.messages.mainFailed); displayMessage(bidix.thostUpload.messages.mainFailed); } }; var revised = bidix.thostUpload.updateOriginal(original, posDiv); bidix.thostUpload.httpUpload(uploadParams, revised, callback, uploadParams); }; bidix.thostUpload.httpUpload = function(uploadParams, data, callback, params) { var localCallback = function(status, params, responseText, url, xhr) { if (xhr.status == 404) { alert(bidix.thostUpload.messages.storePhpNotFound.format([url])); } var saveNotOk = responseText.charAt(0) != '0'; if (bidix.debugMode || saveNotOk) { alert(responseText); } if (saveNotOk) { 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=x" + ";user=x" + ";password=x" + ";uploaddir=x"; if (bidix.debugMode) { sheader += ";debug=1"; } sheader += ";;\r\n"; sheader += "\r\n" + "--" + boundary + "\r\n"; sheader += "Content-disposition: form-data; name=\"userfile\"; filename=\"index.html\"\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 = ""; 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, 'x','x', localCallback, params, null); if (typeof r == "string") { displayMessage(r); } return r; }; // same as Saving's updateOriginal but without convertUnicodeToUTF8 calls bidix.thostUpload.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("&lt;title"+"&gt;","&lt;/title"+"&gt;"," " + 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; }; // // Site config // bidix.initOption = function(name,value) { if (!config.options[name]) { config.options[name] = value; } }; merge(config.optionsDesc, { txtThostSiteName: "Site name for uploads to Tiddlyhost.com", }); bidix.initOption('txtThostSiteName','starkakrats'); // // Tiddlyhost stuff // // So you can see edit controls via http config.options.chkHttpReadOnly = false; window.readOnly = false; window.showBackstage = true; // Add 'upload to tiddlyhost' button with (config.shadowTiddlers) { SideBarOptions = SideBarOptions.replace(/(&lt;&lt;saveChanges&gt;&gt;)/,"$1&lt;&lt;thostUpload&gt;&gt;"); } </pre> systemConfig https://starkakrats.tiddlyhost.com/#ThostUploadPlugin Wed, 10 May 2023 16:00:00 GMT ImageMacro <table class="twtable"><tbody><tr class="evenRow"><td>Name</td><td>ImageMacro</td></tr><tr class="oddRow"><td>Created by</td><td>Andre' de Carvalho</td></tr><tr class="evenRow"><td>Location</td><td><a class="externalLink" href="http://acarvalho.tiddlyspace.com/#ImageMacro" title="External link to http://acarvalho.tiddlyspace.com/#ImageMacro" target="_blank">http://acarvalho.tiddlyspace.com/#ImageMacro</a></td></tr><tr class="oddRow"><td>Version</td><td>1.1.1</td></tr><tr class="evenRow"><td>Date</td><td>2021 06 18</td></tr><tr class="oddRow"><td>Type</td><td>Macro</td></tr><tr class="evenRow"><td>Description</td><td>A TiddlyWiki Macro to create configurable links to images.</td></tr></tbody></table><br><br><br><h2>Example</h2><span class="imgfloatleft"><img title="DRAG=stretch/shrink, SHIFT-CLICK=show full size, CTRL-CLICK=restore initial size" src="https://dl.dropbox.com/s/vfki4dkx343k4ut/Coupling-root-level.png?dl=1" style="width: 200px; cursor: move;"><br><span style="padding: 0.8em;"></span><span style="color: rgb(0, 0, 255);"><sup>Root level allowed dependencies.</sup></span></span><br><pre>&lt;&lt;Image "FL" "200" "Coupling-root-level.png" "https://dl.dropbox.com/" "s/vfki4dkx343k4ut/" "?dl=1" "Root level allowed dependencies."&gt;&gt; </pre><br><br><br><br>or<br><br><span class="imgfloatright"><img title="DRAG=stretch/shrink, SHIFT-CLICK=show full size, CTRL-CLICK=restore initial size" src="https://dl.dropbox.com/s/vfki4dkx343k4ut/Coupling-root-level.png?dl=1" style="width: 200px; cursor: move;"><br><span style="padding: 0.8em;"></span><span style="color: rgb(0, 0, 255);"><sup>Root level allowed dependencies.</sup></span></span><br><pre>&lt;&lt;Image "FR" "200" "Coupling-root-level.png" "https://dl.dropbox.com/" "s/vfki4dkx343k4ut/" "?dl=1" "Root level allowed dependencies."&gt;&gt; </pre><br>or<br><br><img src="https://dl.dropbox.com/s/vfki4dkx343k4ut/Coupling-root-level.png?dl=1"><br><pre>&lt;&lt;Image "" "" "Coupling-root-level.png" "https://dl.dropbox.com/" "s/vfki4dkx343k4ut/" "?dl=1" "Root level allowed dependencies."&gt;&gt; </pre><br><h2>Installation</h2>Import (or copy/paste) this tiddler into your document and tag it with "systemConfig". For using size you need <a class="externalLink" href=" http://www.TiddlyTools.com/#ImageSizePlugin" title="External link to http://www.TiddlyTools.com/#ImageSizePlugin" target="_blank">ImageSizePlugin</a>.<br><br><h2>Code</h2><pre>version.extensions.Image= {major: 1, minor: 1 , revision: 1, date: new Date(2021,06,18)}; //Created by André de Carvalho </pre><pre>config.macros.Image = {}; config.macros.Image.handler= function(place,macroName,params) { /* Type : FL = float left, FR = float right, "" = no float */ var type=params[0]; /* Size : number = pixels (requires ImageSizePlugin), "" = no size */ var size=params[1]; /* Name : the name of the image file */ var name=params[2]; /* Path : the path of the image file (include end backslash) */ var path = params[3]; /* Prefix : optional prefix to be inserted between Path and FileName */ var prefix = params[4]; /* Postfix : optional postfix to be appended after FileName */ var postfix = params[5]; /* Caption : optional caption */ var caption = params[6]; var ini = ""; var end = ""; if (caption) { caption = "&lt;br&gt;@@padding:0.8em;@@@@color:#00f;^^"+caption+"^^@@"; } else { caption = ""; } switch(type) { case "FR": ini = "{{imgfloatright{[img"; end = "]]"+caption+"}}}"; break; case "FL": ini = "{{imgfloatleft{[img"; end = "]]"+caption+"}}}"; break; default: ini="[img"; end = "]]"; } if (size) ini = ini + "("+size+"px+,+)"; ini = ini+"["; if (path) ini = ini+ path; if (prefix) ini = ini+ prefix; if (name) ini = ini+ name; if (postfix) ini = ini+ postfix; wikify(ini+end, place) }; </pre> TODO systemConfig https://starkakrats.tiddlyhost.com/#ImageMacro Fri, 18 Jun 2021 08:56:00 GMT HoverMenu <a class="button" href="javascript:;" title="jump to top">^</a><br><a class="button" href="javascript:;" title="jump to an open tiddler" top="true">j</a><br><a class="button HideSideBarButton" href="javascript:;" title="toggle sidebar">&gt;</a><br><a class="button" href="javascript:;" title="Full Screen">↕</a><br><a class="button" href="javascript:;" title="Create a new tiddler" accesskey="N" newtitle="New Tiddler" isjournal="false" newfocus="title" newtemplate="2">n</a><br><a class="button" href="javascript:;" title="Save TiddlyWiki">s</a><br> Administration System https://starkakrats.tiddlyhost.com/#HoverMenu Fri, 12 Mar 2021 18:13:00 GMT UnsavedChangesPlugin <table class="twtable"><tbody><tr class="evenRow"><td>Name</td><td>UnsavedChangesPlugin</td></tr><tr class="oddRow"><td>Source</td><td><a class="externalLink" href="http://www.TiddlyTools.com/#UnsavedChangesPlugin" title="External link to http://www.TiddlyTools.com/#UnsavedChangesPlugin" target="_blank">http://www.TiddlyTools.com/#UnsavedChangesPlugin</a></td></tr><tr class="evenRow"><td>Version</td><td>3.3.6</td></tr><tr class="oddRow"><td>Author</td><td>Eric Shulman</td></tr><tr class="evenRow"><td>License</td><td><a class="externalLink" href="http://www.TiddlyTools.com/#LegalStatements" title="External link to http://www.TiddlyTools.com/#LegalStatements" target="_blank">http://www.TiddlyTools.com/#LegalStatements</a></td></tr><tr class="oddRow"><td>CoreVersion</td><td>2.1</td></tr><tr class="evenRow"><td>Type</td><td>plugin</td></tr><tr class="oddRow"><td>Description</td><td>show droplist of tiddlers that have changed since the last time the document was saved</td></tr></tbody></table>Display a list of tiddlers that have been changed since the last time the document was saved. The list includes all new/modified tiddlers as well as those changed with "minor edits" enabled and any tiddlers that you import during the session, regardless of their modification date.<br><h5>Usage</h5><blockquote><pre>&lt;&lt;unsavedChanges panel&gt;&gt; or &lt;&lt;unsavedChanges&gt;&gt; </pre><div class="indent">the <strong>panel</strong> keyword displays a 'control panel' interface containing a droplist of unsaved tiddlers and a 'goto' button, along with a command link to 'save changes'. Depending upon what other plugins are installed, several additional elements will also be displayed: When <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#NestedSlidersPlugin" title="External link to https://starkakrats.tiddlyhost.com/#NestedSlidersPlugin" target="_blank" refresh="link" tiddlylink="NestedSlidersPlugin">NestedSlidersPlugin</a> is installed, the entire control panel is contained within a <strong>SLIDER</strong>. When <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#LoadTiddlersPlugin" title="External link to https://starkakrats.tiddlyhost.com/#LoadTiddlersPlugin" target="_blank" refresh="link" tiddlylink="LoadTiddlersPlugin">LoadTiddlersPlugin</a> is installed, a <strong>REVERT</strong> button is added. When <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#SaveAsPlugin" title="External link to https://starkakrats.tiddlyhost.com/#SaveAsPlugin" target="_blank" refresh="link" tiddlylink="SaveAsPlugin">SaveAsPlugin</a> is installed, a <strong>SAVE AS</strong> link is added. When <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#UploadPlugin" title="External link to https://starkakrats.tiddlyhost.com/#UploadPlugin" target="_blank" refresh="link" tiddlylink="UploadPlugin">UploadPlugin</a> is installed, an <strong>UPLOAD</strong> (or <strong>save to web</strong>) link is added. When <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#TrashPlugin" title="External link to https://starkakrats.tiddlyhost.com/#TrashPlugin" target="_blank" refresh="link" tiddlylink="TrashPlugin">TrashPlugin</a> is installed and there are tiddlers tagged with<a class="button" href="javascript:;" title="Show tiddlers tagged with 'Trash'" tag="Trash">Trash</a>, an <strong>EMPTY TRASH</strong> link is added.<br></div><br><pre>&lt;&lt;unsavedChanges list separator&gt;&gt; </pre><div class="indent">the <strong>list</strong> keyword displays a simple space-separated list of unsaved tiddlers without any other command links. You can specify an optional <strong>separator</strong> value that can be used in place of the default space character. For example, you can specify <code>"&lt;br&gt;"</code> as the separator in order to display each link, one per line.<br></div><br><pre>&lt;&lt;unsavedChanges command label tip&gt;&gt; </pre><div class="indent">the <strong>command</strong> keyword displays a single 'command link' that, when clicked, displays a TiddlyWiki popup containing the list of unsaved tiddlers, the 'save changes' command and, depending upon what other plugins are installed, additional commands for 'save as', 'upload', and 'empty trash' (similar to the panel display described above).<br><br>You can specify optional <strong>label</strong> and <strong>tip</strong> parameters in the macro to customize the command link text and tooltip. The default label for the command link is: "There %1 %0 unsaved tiddler%2...", where:<br><ul><li> %0 is automatically replaced with the number of unsaved changes</li><li> %1 is either "is" (if changes=1) or "are" (if changes&gt;1)</li><li> %2 is either blank (if changes=1) or "s" (if changes&gt;1)</li></ul>resulting in the text: <em>"There is 1 unsaved tiddler...", "There are 2 unsaved tiddlers...", etc.</em><br></div><br></blockquote><h5>Examples</h5><blockquote><sup><em>note: the following examples will not display any output unless you have already created/modified tiddlers in the current document.</em></sup><br><code>&lt;&lt;unsavedChanges&gt;&gt;</code><br><span class="unsavedChanges" mode="panel" sep=" " label="There %1 %0 unsaved tiddler%2" tip="view a list of unsaved tiddler changes"></span><br><hr><code>&lt;&lt;unsavedChanges command&gt;&gt;</code><br><span class="unsavedChanges" mode="command" sep=" " label="There %1 %0 unsaved tiddler%2" tip="view a list of unsaved tiddler changes"></span><br><hr><code>&lt;&lt;unsavedChanges list&gt;&gt;</code><br><span class="unsavedChanges" mode="list" sep=" " label="There %1 %0 unsaved tiddler%2" tip="view a list of unsaved tiddler changes"></span><br><hr><code>&lt;&lt;unsavedChanges list "&lt;br&gt;"&gt;&gt;</code><br><span class="unsavedChanges" mode="list" sep="<br>" label="<br>" tip="view a list of unsaved tiddler changes"></span><br></blockquote><h5>Revisions</h5><blockquote>2011.11.27 3.3.6 in panel(), command(), and list(), check for null 'place' (maybe caused if tiddlers are modified by a plugin during startup 'init' handling)<br>2011.04.29 3.3.5 in panel(), use custom label (if provided). Also, removed "small" style from panel commands so surrounding CSS font size will be used.<br>2010.12.05 3.3.4 display 'save as...' command even if readOnly<br>2009.03.02 3.3.3 fix handling for titles that contain HTML special chars (lt,gt,quot,amp)<br>2008.09.02 3.3.2 cleanup popup list output generation and added timestamps/sizes to popup display<br>2008.08.23 3.3.1 added optional custom 'label' and 'tip' params to 'command' mode and defined default values for mode, label, tip, and separator as object properties for I18N/L10N-readiness.<br>2008.08.21 3.3.0 complete re-write of rendering and refresh processing to support multiple instances and automatic self-refresh (no longer depends upon core refresh notifications)<br>2008.08.21 3.2.0 added 'command' option for link+popup as alternative to 'control panel' interface<br>2008.04.22 3.1.2 use SaveAsPlugin instead of obsolete NewDocumentPlugin to add "save as" link<br>2007.12.22 3.1.1 hijack removeTiddler() instead of low-level deleteTiddler() to correct tracking and refresh handling issues. in saveTiddler(), check for 'tiddler rename' (title!=newtitle) and adjust list accordingly.<br>2007.12.21 3.1.0 added support for <code>&lt;&lt;unsavedChanges list separator&gt;&gt;</code> usage to unsaved tiddlers as a simple list of links, embedded in tiddler content (e.g., <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#MainMenu" title="External link to https://starkakrats.tiddlyhost.com/#MainMenu" target="_blank" refresh="link" tiddlylink="MainMenu">MainMenu</a>)<br>2007.12.20 3.0.0 rewrite to track ALL changed tiddlers, including imports and minor edits, regardless of saved modification dates. Also, rewrote display logic to directly refresh macro output instead of triggering a page refresh. The entire process is MUCH more efficient now.<br>2007.08.02 2.0.0 converted from inline script<br>2007.01.01 1.0.0 initial release<br></blockquote><h5>Code</h5><pre>version.extensions.UnsavedChangesPlugin= {major: 3, minor: 3, revision: 6, date: new Date(2011,12,27)}; config.macros.unsavedChanges = { changed: [], // list of currently unsaved tiddler titles defMode: "panel", defSep: " ", defLabel: "There %1 %0 unsaved tiddler%2", defTip: "view a list of unsaved tiddler changes", handler: function(place,macroName,params,wikifier,paramString,tiddler) { var wrapper=createTiddlyElement(place,"span",null,"unsavedChanges"); wrapper.setAttribute("mode",params[0]||this.defMode); wrapper.setAttribute("sep",params[1]||this.defSep); // for 'list' mode wrapper.setAttribute("label",params[1]||this.defLabel); // for 'command' mode wrapper.setAttribute("tip",params[2]||this.defTip); // for 'command' mode this.render(wrapper); }, render: function(wrapper) { removeChildren(wrapper); // make sure its empty if (!this.changed.length) return; // no changes = no output switch (wrapper.getAttribute("mode")) { case "command": this.command(wrapper); break; case "list": this.list(wrapper); break; case "panel": default: this.panel(wrapper); break; } }, refresh: function() { var wrappers=document.getElementsByTagName("span"); for (var w=0; w&lt;wrappers.length; w++) if (hasClass(wrappers[w],"unsavedChanges")) this.render(wrappers[w]); }, list: function(place) { // show simple list of unsaved tiddlers if (!place) return; wikify("[["+this.changed.join("]]"+place.getAttribute("sep")+"[[")+"]]",place); }, command: function(place) { // show command link with popup list if (!place) return; var c=this.changed.length; var txt=place.getAttribute("label").format([c,c==1?'is':'are',c==1?'':'s']); var tip=place.getAttribute("tip"); var action=function(ev) { if (!ev) var ev=window.event; var p=Popup.create(this); if (!p) return false; var d=createTiddlyElement(p,"div"); d.style.whiteSpace="normal"; d.style.width="auto"; d.style.padding="2px"; // gather pretty links for changed tiddlers var list=[]; var item=" &amp;nbsp;[[%1 - %0 (%2 bytes)|%0]]&amp;nbsp; "; for (var i=config.macros.unsavedChanges.changed.length-1; i&gt;=0; i--) { var tid=store.getTiddler(config.macros.unsavedChanges.changed[i]); if (!tid) continue; var when=tid.modified.formatString('YYYY.0MM.0DD 0hh:0mm:0ss'); list.push(item.format([tid.title,when,tid.text.length])); } wikify("@@white-space:nowrap;"+list.join("&lt;br&gt;")+"@@",d); var t="\n----\n"; t+="@@white-space:nowrap;display:block;text-align:center; &amp;nbsp;"; if (!readOnly) { t+="&lt;&lt;saveChanges&gt;&gt;"; t+=config.macros.saveAs?" | &lt;&lt;saveAs&gt;&gt;":""; t+=config.macros.upload?" | &lt;&lt;upload&gt;&gt;":""; t+=(config.macros.emptyTrash&amp;&amp;store.getTaggedTiddlers("Trash").length)?" | &lt;&lt;emptyTrash&gt;&gt;":""; } else { t+=config.macros.saveAs?"&lt;&lt;saveAs&gt;&gt;":""; } t+="&amp;nbsp; @@"; wikify(t,d); Popup.show(); ev.cancelBubble=true; if(ev.stopPropagation)ev.stopPropagation(); return(false); } createTiddlyButton(place,txt,tip,action,"button"); }, panel: function(place) { // show composite droplist+buttons+commands if (!place) return; // gather changed tiddlers (in reverse order by date - most recent first) var tids=[]; for (var i=this.changed.length-1; i&gt;=0; i--) { var t=store.getTiddler(this.changed[i]); if (t) tids.push(t); } tids.sort(function(a,b){return a.modified&lt;b.modified?-1:(a.modified==b.modified?0:1);}); // generate droplist items var list=[]; var item='&lt;option value="%0"&gt;%1 - %0 (%2 bytes)&lt;/option&gt;'; for (var i=tids.length-1; i&gt;=0; i--) { var when=tids[i].modified.formatString('YYYY.0MM.0DD 0hh:0mm:0ss'); list.push(item.format([tids[i].title.htmlEncode(),when,tids[i].text.length])); } // display droplist, buttons, and command links var out=''; var c=this.changed.length; var NSP=config.formatters.findByField("name","nestedSliders"); var summary=place.getAttribute("label").format([c,c==1?'is':'are',c==1?'':'s']); out+=NSP?'+++(unsaved)['+summary+'|'+this.defTip+']...':(summary+"\n"); out+='&lt;html&gt;&lt;form style="display:inline"&gt;&lt;!--\ --&gt;&lt;select size="1" name="list" \ title="select a tiddler to view" \ onchange="var v=this.value; if (v.length) story.displayTiddler(null,v);"&gt;&lt;!--\ --&gt;'+list.join('')+'&lt;!--\ --&gt;&lt;/select&gt;&lt;!--\ --&gt;&lt;input type="button" value="goto" onclick="this.form.list.onchange();"&gt;'; if (config.macros.loadTiddlers) { out+='&lt;input type="button" value="revert" \ title="import the last saved version of this tiddler" \ onclick="var v=this.form.list.value; if (!v.length) return; \ var t=\'&lt;\'+\'&lt;loadTiddlers [[tiddler:\'+v+\']] \'; \ t+=document.location.href; \ t+=\' confirm force noreport&gt;\'+\'&gt;\'; \ var e=document.getElementById(\'executeRevert\'); \ if (e) e.parentNode.removeChild(e); \ e=document.createElement(\'span\'); \ e.id=\'executeRevert\'; \ wikify(t,e);"&gt;'; } out+='&lt;/form&gt;&lt;/html&gt;'; out+='\n{{nowrap{'; if (!readOnly) { out+="&lt;&lt;saveChanges&gt;&gt;"; out+=config.macros.saveAs?" | &lt;&lt;saveAs&gt;&gt;":""; out+=config.macros.upload?" | &lt;&lt;upload&gt;&gt;":""; out+=(config.macros.emptyTrash&amp;&amp;store.getTaggedTiddlers("Trash").length)?" | &lt;&lt;emptyTrash&gt;&gt;":""; } else { out+=config.macros.saveAs?"&lt;&lt;saveAs&gt;&gt;":""; } out+='}}}'; out+=NSP?'===':''; wikify(out,place); } }; // hijack store.saveTiddler() to track changes to tiddlers if (store.showUnsaved_saveTiddler==undefined) { store.showUnsaved_saveTiddler=store.saveTiddler; store.saveTiddler=function(title,newtitle) { if (title!=newtitle) { var i=config.macros.unsavedChanges.changed.indexOf(title); if (i!=-1) config.macros.unsavedChanges.changed.splice(i,1); // remove old from list } var i=config.macros.unsavedChanges.changed.indexOf(newtitle); if (i!=-1) config.macros.unsavedChanges.changed.splice(i,1); // remove new title from list config.macros.unsavedChanges.changed.push(newtitle); // add new title to END of list var t=this.showUnsaved_saveTiddler.apply(this,arguments); if (!this.notificationLevel) config.macros.unsavedChanges.refresh(); return t; } } // hijack store.removeTiddler() to track changes to tiddlers if (store.showUnsaved_removeTiddler==undefined) { store.showUnsaved_removeTiddler=store.removeTiddler; store.removeTiddler=function(title) { var i=config.macros.unsavedChanges.changed.indexOf(title); if (i!=-1) config.macros.unsavedChanges.changed.splice(i,1); // remove from list this.showUnsaved_removeTiddler.apply(this,arguments); if (!this.notificationLevel) config.macros.unsavedChanges.refresh(); } } // hijack store.setDirty() function to reset change list after file save // note: do NOT hijack the prototype function. This hijack should only be applied to // the main 'store' instance only (i.e., don't refresh when loading temporary store // as part of ImportTiddlers processing) if (store.showUnsaved_setDirty==undefined) { store.showUnsaved_setDirty=store.setDirty; store.setDirty = function(flag) { var refresh=this.isDirty() &amp;&amp; !flag; // 'dirty' to 'clean', force a refresh... this.showUnsaved_setDirty.apply(this,arguments); // but change the flag first. if (refresh) { config.macros.unsavedChanges.changed=[]; // clear changed list config.macros.unsavedChanges.refresh(); } } } </pre> systemConfig https://starkakrats.tiddlyhost.com/#UnsavedChangesPlugin Fri, 12 Mar 2021 18:00:00 GMT PaletteViewMacro <table class="twtable"><tbody><tr class="evenRow"><td><strong>Name</strong></td><td>PaletteViewMacro</td></tr><tr class="oddRow"><td><strong>Version</strong></td><td>0.2</td></tr><tr class="evenRow"><td><strong>Author</strong></td><td>FND</td></tr><tr class="oddRow"><td><strong>Source</strong></td><td><a class="externalLink" href="http://devpad.tiddlyspot.com/#PaletteViewMacro" title="External link to http://devpad.tiddlyspot.com/#PaletteViewMacro" target="_blank">FND's DevPad</a></td></tr><tr class="evenRow"><td><strong>License</strong></td><td><a class="externalLink" href="http://creativecommons.org/licenses/by-sa/3.0/" title="External link to http://creativecommons.org/licenses/by-sa/3.0/" target="_blank">Creative Commons Attribution-ShareAlike 3.0 License</a></td></tr><tr class="oddRow"><td><strong>CoreVersion</strong></td><td>2.1</td></tr><tr class="evenRow"><td><strong>Type</strong></td><td>macro</td></tr><tr class="oddRow"><td><strong>Requires</strong></td><td>N/A</td></tr><tr class="evenRow"><td><strong>Overrides</strong></td><td>N/A</td></tr><tr class="oddRow"><td><strong>Description</strong></td><td>Displays color palettes.</td></tr></tbody></table><h1>Notes</h1>There is also <a class="externalLink" href="http://simon.tiddlyspot.com/#ViewPalettePlugin" title="External link to http://simon.tiddlyspot.com/#ViewPalettePlugin" target="_blank">ViewPalettePlugin</a>, which currently does not work with TiddlyWiki v2.2 though.<br><h1>Usage</h1><pre>&lt;&lt;paletteView [tiddler name]&gt;&gt; </pre><h2>Example</h2><table class="twtable"><thead><tr class="evenRow"><th>Sample</th><th>Value</th><th>Name</th></tr></thead><tbody><tr class="oddRow"><td style="padding: 0px 4em; background-color: rgb(255, 255, 255);"><span>&nbsp;</span></td><td><code>#fff</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">Background</a></td></tr><tr class="evenRow"><td style="padding: 0px 4em; background-color: rgb(0, 0, 0);"><span>&nbsp;</span></td><td><code>#000</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">Foreground</a></td></tr><tr class="oddRow"><td style="padding: 0px 4em; background-color: rgb(136, 204, 255);"><span>&nbsp;</span></td><td><code>#8cf</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">PrimaryPale</a></td></tr><tr class="evenRow"><td style="padding: 0px 4em; background-color: rgb(17, 136, 255);"><span>&nbsp;</span></td><td><code>#18f</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">PrimaryLight</a></td></tr><tr class="oddRow"><td style="padding: 0px 4em; background-color: rgb(0, 68, 187);"><span>&nbsp;</span></td><td><code>#04b</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">PrimaryMid</a></td></tr><tr class="evenRow"><td style="padding: 0px 4em; background-color: rgb(0, 17, 68);"><span>&nbsp;</span></td><td><code>#014</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">PrimaryDark</a></td></tr><tr class="oddRow"><td style="padding: 0px 4em; background-color: rgb(255, 255, 204);"><span>&nbsp;</span></td><td><code>#ffc</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">SecondaryPale</a></td></tr><tr class="evenRow"><td style="padding: 0px 4em; background-color: rgb(255, 238, 136);"><span>&nbsp;</span></td><td><code>#fe8</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">SecondaryLight</a></td></tr><tr class="oddRow"><td style="padding: 0px 4em; background-color: rgb(221, 187, 68);"><span>&nbsp;</span></td><td><code>#db4</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">SecondaryMid</a></td></tr><tr class="evenRow"><td style="padding: 0px 4em; background-color: rgb(136, 68, 17);"><span>&nbsp;</span></td><td><code>#841</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">SecondaryDark</a></td></tr><tr class="oddRow"><td style="padding: 0px 4em; background-color: rgb(238, 238, 238);"><span>&nbsp;</span></td><td><code>#eee</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">TertiaryPale</a></td></tr><tr class="evenRow"><td style="padding: 0px 4em; background-color: rgb(204, 204, 204);"><span>&nbsp;</span></td><td><code>#ccc</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">TertiaryLight</a></td></tr><tr class="oddRow"><td style="padding: 0px 4em; background-color: rgb(153, 153, 153);"><span>&nbsp;</span></td><td><code>#999</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">TertiaryMid</a></td></tr><tr class="evenRow"><td style="padding: 0px 4em; background-color: rgb(102, 102, 102);"><span>&nbsp;</span></td><td><code>#666</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">TertiaryDark</a></td></tr><tr class="oddRow"><td style="padding: 0px 4em; background-color: rgb(255, 136, 136);"><span>&nbsp;</span></td><td><code>#f88</code></td><td><a class="tiddlyLink tiddlyLinkNonExisting shadow" href="file:///home/stark/%E6%96%87%E6%A1%A3/tiddlyblog-temp/index.html#ColorPalette" title="These values in this shadow tiddler determine the colour scheme of the ~TiddlyWiki user interface" refresh="link" tiddlylink="ColorPalette">Error</a></td></tr></tbody></table><br><h1>Revision History</h1><h2>v0.1 (2007-11-18)</h2><ul><li> initial release</li></ul><h2>v0.2 (2007-11-20)</h2><ul><li> limited processing to slices containing <a class="externalLink" href="http://www.w3.org/TR/CSS21/syndata.html#color-units" title="External link to http://www.w3.org/TR/CSS21/syndata.html#color-units" target="_blank">actual color values</a></li><li> changed fallback value to the tiddler the macro is called from (instead of using <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#ColorPalette" title="External link to https://starkakrats.tiddlyhost.com/#ColorPalette" target="_blank" refresh="link" tiddlylink="ColorPalette">ColorPalette</a>)</li></ul><h1>To Do</h1><ul><li> selection list for all available palettes (tag-based)</li><li> parameter for custom table class</li><li> customizable column order</li><li> documentation (e.g. using from within <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#ViewTemplate" title="External link to https://starkakrats.tiddlyhost.com/#ViewTemplate" target="_blank" refresh="link" tiddlylink="ViewTemplate">ViewTemplate</a>)</li></ul><h1>Code</h1><pre>config.macros.paletteView = {}; config.macros.paletteView.handler = function(place, macroName, params, wikifier, paramString, tiddler) { var title = params[0] || tiddler.title; //var palettes = store.getTaggedTiddlers(params[0]); // DEBUG: yet to be implemented var colors = store.calcAllSlices(title); var labels = []; for(var c in colors) { if(this.isColor(colors[c])) { labels.push(c); } } if(labels.length &gt; 0) { var output = "|!Sample|!Value|!Name|h\n"; for(var i = 0; i &lt; labels.length; i++) { output += "|padding:0 4em;background-color:" + colors[labels[i]] + ";&amp;nbsp;|" + "{{{" + colors[labels[i]] + "}}}|" + "[[" + labels[i] + "|" + title + "]]|\n"; } wikify(output, place); } }; config.macros.paletteView.isColor = function(s) { var colors = ["Black", "Green", "Silver", "Lime", "Gray", "Olive", "White", "Yellow", "Maroon", "Navy", "Red", "Blue", "Purple", "Teal", "Fuchsia", "Aqua", "Orange"]; var match = s.match(/^#[0-9A-F]{3}$|^#[0-9A-F]{6}$|^RGB\([\d,\s]{5,}\)$/i); if(match) return true; if(colors.contains(s)) return true; return false; }; </pre> systemConfig https://starkakrats.tiddlyhost.com/#PaletteViewMacro Mon, 30 Jan 2017 19:00:00 GMT TiddlersBarPluginMP <table class="twtable"><tbody><tr class="evenRow"><td><strong>Name:</strong></td><td>TiddlersBarPluginMP</td></tr><tr class="oddRow"><td><strong>Description:</strong></td><td>A bar to switch between tiddlers through tabs (like browser tabs bar).</td></tr><tr class="evenRow"><td><strong>Version:</strong></td><td>1.2.5</td></tr><tr class="oddRow"><td><strong>Date:</strong></td><td>Jan 18,2008</td></tr><tr class="evenRow"><td><strong>Source:</strong></td><td><a class="externalLink" href="http://visualtw.ouvaton.org/VisualTW.html" title="External link to http://visualtw.ouvaton.org/VisualTW.html" target="_blank">http://visualtw.ouvaton.org/VisualTW.html</a></td></tr><tr class="oddRow"><td><strong>Author:</strong></td><td>Pascal Collin</td></tr><tr class="evenRow"><td><strong>License:</strong></td><td><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#License" title="External link to https://starkakrats.tiddlyhost.com/#License" target="_blank" refresh="link" tiddlylink="License">BSD open source license</a></td></tr><tr class="oddRow"><td><strong>CoreVersion:</strong></td><td>2.1.0</td></tr><tr class="evenRow"><td><strong>Browser:</strong></td><td>Firefox 2.0; InternetExplorer 6.0, others</td></tr></tbody></table><h1>Attention</h1>This plugin contains some changings, at the end of the plugin marked with !!MP!!<br><br><h1>Demos</h1>On <a class="externalLink" href="http://visualtw.ouvaton.org/VisualTW.html" title="External link to http://visualtw.ouvaton.org/VisualTW.html" target="_blank">homepage</a>, open several tiddlers to use the tabs bar.<br><h1>Installation</h1><ol><li>import this tiddler from <a class="externalLink" href="http://visualtw.ouvaton.org/VisualTW.html" title="External link to http://visualtw.ouvaton.org/VisualTW.html" target="_blank">homepage</a> (tagged as systemConfig)</li><li>save and reload</li><li><strong>if you're using a custom <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#PageTemplate" title="External link to https://starkakrats.tiddlyhost.com/#PageTemplate" target="_blank" refresh="link" tiddlylink="PageTemplate">PageTemplate</a></strong>, add <code>&lt;div id='tiddlersBar' refresh='none' ondblclick='config.macros.tiddlersBar.onTiddlersBarAction(event)'&gt;&lt;/div&gt;</code> before <code>&lt;div id='tiddlerDisplay'&gt;&lt;/div&gt;</code></li><li>optionally, adjust <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#StyleSheetTiddlersBar" title="External link to https://starkakrats.tiddlyhost.com/#StyleSheetTiddlersBar" target="_blank" refresh="link" tiddlylink="StyleSheetTiddlersBar">StyleSheetTiddlersBar</a></li></ol><h1>Tips</h1><ul><li>Doubleclick on the tiddlers bar (where there is no tab) create a new tiddler.</li><li>Tabs include a button to close <code>x</code> or save <code>!</code> their tiddler.</li><li>By default, click on the current tab close all others tiddlers.</li></ul><h1>Configuration options </h1><input class="chkOptionInput" option="chkDisableTabsBar" type="checkbox"> Disable the tabs bar (to print, by example).<br><input class="chkOptionInput" option="chkHideTabsBarWhenSingleTab" type="checkbox"> Automatically hide the tabs bar when only one tiddler is displayed. <br><input class="txtOptionInput" option="txtSelectedTiddlerTabButton"> <strong>selected</strong> tab command button.<br><input class="txtOptionInput" option="txtPreviousTabKey"> previous tab access key.<br><input class="txtOptionInput" option="txtNextTabKey"> next tab access key.<br><h1>Code</h1><pre>config.options.chkEnableTabsBar = config.options.chkEnableTabsBar ? config.options.chkEnableTabsBar : true; config.options.chkHideTabsBarWhenSingleTab = config.options.chkHideTabsBarWhenSingleTab ? config.options.chkHideTabsBarWhenSingleTab : true; config.options.txtSelectedTiddlerTabButton = config.options.txtSelectedTiddlerTabButton ? config.options.txtSelectedTiddlerTabButton : "closeOthers"; config.options.txtPreviousTabKey = config.options.txtPreviousTabKey ? config.options.txtPreviousTabKey : ""; config.options.txtNextTabKey = config.options.txtNextTabKey ? config.options.txtNextTabKey : ""; config.macros.tiddlersBar = { tooltip : "see ", tooltipClose : "click here to close this tab", tooltipSave : "click here to save this tab", promptRename : "Enter tiddler new name", currentTiddler : "", previousState : false, previousKey : config.options.txtPreviousTabKey, nextKey : config.options.txtNextTabKey, tabsAnimationSource : null, //use document.getElementById("tiddlerDisplay") if you need animation on tab switching. handler: function(place,macroName,params) { var previous = null; if (config.macros.tiddlersBar.isShown()) story.forEachTiddler(function(title,e){ if (title==config.macros.tiddlersBar.currentTiddler){ var d = createTiddlyElement(null,"span",null,"tab tabSelected"); config.macros.tiddlersBar.createActiveTabButton(d,title); if (previous &amp;&amp; config.macros.tiddlersBar.previousKey) previous.setAttribute("accessKey",config.macros.tiddlersBar.nextKey); previous = "active"; } else { var d = createTiddlyElement(place,"span",null,"tab tabUnselected"); var btn = createTiddlyButton(d,title,config.macros.tiddlersBar.tooltip + title,config.macros.tiddlersBar.onSelectTab); btn.setAttribute("tiddler", title); if (previous=="active" &amp;&amp; config.macros.tiddlersBar.nextKey) btn.setAttribute("accessKey",config.macros.tiddlersBar.previousKey); previous=btn; } var isDirty =story.isDirty(title); var c = createTiddlyButton(d,isDirty ?"!":"x",isDirty?config.macros.tiddlersBar.tooltipSave:config.macros.tiddlersBar.tooltipClose, isDirty ? config.macros.tiddlersBar.onTabSave : config.macros.tiddlersBar.onTabClose,"tabButton"); c.setAttribute("tiddler", title); if (place.childNodes) { place.insertBefore(document.createTextNode(" "),place.firstChild); // to allow break line here when many tiddlers are open place.insertBefore(d,place.firstChild); } else place.appendChild(d); }) }, refresh: function(place,params){ removeChildren(place); config.macros.tiddlersBar.handler(place,"tiddlersBar",params); if (config.macros.tiddlersBar.previousState!=config.macros.tiddlersBar.isShown()) { story.refreshAllTiddlers(); if (config.macros.tiddlersBar.previousState) story.forEachTiddler(function(t,e){e.style.display="";}); config.macros.tiddlersBar.previousState = !config.macros.tiddlersBar.previousState; } }, isShown : function(){ if (! config.options.chkEnableTabsBar) return false; if (!config.options.chkHideTabsBarWhenSingleTab) return true; var cpt=0; story.forEachTiddler(function(){cpt++}); return (cpt&gt;1); }, selectNextTab : function(){ //used when the current tab is closed (to select another tab) var previous=""; story.forEachTiddler(function(title){ if (!config.macros.tiddlersBar.currentTiddler) { story.displayTiddler(null,title); return; } if (title==config.macros.tiddlersBar.currentTiddler) { if (previous) { story.displayTiddler(null,previous); return; } else config.macros.tiddlersBar.currentTiddler=""; // so next tab will be selected } else previous=title; }); }, onSelectTab : function(e){ var t = this.getAttribute("tiddler"); if (t) story.displayTiddler(null,t); return false; }, onTabClose : function(e){ var t = this.getAttribute("tiddler"); if (t) { if(story.hasChanges(t) &amp;&amp; !readOnly) { if(!confirm(config.commands.cancelTiddler.warning.format([t]))) return false; } story.closeTiddler(t); } return false; }, onTabSave : function(e) { var t = this.getAttribute("tiddler"); if (!e) e=window.event; if (t) config.commands.saveTiddler.handler(e,null,t); return false; }, onSelectedTabButtonClick : function(event,src,title) { var t = this.getAttribute("tiddler"); if (!event) event=window.event; if (t &amp;&amp; config.options.txtSelectedTiddlerTabButton &amp;&amp; config.commands[config.options.txtSelectedTiddlerTabButton]) config.commands[config.options.txtSelectedTiddlerTabButton].handler(event, src, t); return false; }, onTiddlersBarAction: function(event) { var source = event.target ? event.target.id : event.srcElement.id; // FF uses target and IE uses srcElement; if (source=="tiddlersBar") story.displayTiddler(null,'New Tiddler',DEFAULT_EDIT_TEMPLATE,false,null,null); }, createActiveTabButton : function(place,title) { if (config.options.txtSelectedTiddlerTabButton &amp;&amp; config.commands[config.options.txtSelectedTiddlerTabButton]) { var btn = createTiddlyButton(place, title, config.commands[config.options.txtSelectedTiddlerTabButton].tooltip ,config.macros.tiddlersBar.onSelectedTabButtonClick); btn.setAttribute("tiddler", title); } else createTiddlyText(place,title); } } story.coreCloseTiddler = story.coreCloseTiddler? story.coreCloseTiddler : story.closeTiddler; story.coreDisplayTiddler = story.coreDisplayTiddler ? story.coreDisplayTiddler : story.displayTiddler; story.closeTiddler = function(title,animate,unused) { if (title==config.macros.tiddlersBar.currentTiddler) config.macros.tiddlersBar.selectNextTab(); story.coreCloseTiddler(title,false,unused); //disable animation to get it closed before calling tiddlersBar.refresh var e=document.getElementById("tiddlersBar"); if (e) config.macros.tiddlersBar.refresh(e,null); } story.displayTiddler = function(srcElement,tiddler,template,animate,unused,customFields,toggle){ story.coreDisplayTiddler(config.macros.tiddlersBar.tabsAnimationSource,tiddler,template,animate,unused,customFields,toggle); var title = (tiddler instanceof Tiddler)? tiddler.title : tiddler; if (config.macros.tiddlersBar.isShown()) { story.forEachTiddler(function(t,e){ if (t!=title) e.style.display="none"; else e.style.display=""; }) config.macros.tiddlersBar.currentTiddler=title; } var e=document.getElementById("tiddlersBar"); if (e) config.macros.tiddlersBar.refresh(e,null); } var coreRefreshPageTemplate = coreRefreshPageTemplate ? coreRefreshPageTemplate : refreshPageTemplate; refreshPageTemplate = function(title) { coreRefreshPageTemplate(title); /*-- new --*/ var e = document.getElementById("tiddlersBar"); if (config.macros.tiddlersBar &amp;&amp; e) config.macros.tiddlersBar.refresh(e); // !!MP!! old prevents a theme, which has no div id=tiddlersBar from loading. //old if (config.macros.tiddlersBar &amp;&amp; e) config.macros.tiddlersBar.refresh(document.getElementById("tiddlersBar")); } // !!MP!! removed this line because it causes a scroll to top if a popup opens. // ensureVisible=function (e) {return 0} config.shadowTiddlers.StyleSheetTiddlersBar = "/*{{{*/\n"; config.shadowTiddlers.StyleSheetTiddlersBar += "#tiddlersBar .button {border:0}\n"; config.shadowTiddlers.StyleSheetTiddlersBar += "#tiddlersBar .tab {white-space:nowrap}\n"; config.shadowTiddlers.StyleSheetTiddlersBar += "#tiddlersBar {padding : 1em 0.5em 2px 0.5em}\n"; config.shadowTiddlers.StyleSheetTiddlersBar += ".tabUnselected .tabButton, .tabSelected .tabButton {padding : 0 2px 0 2px; margin: 0 0 0 4px;}\n"; config.shadowTiddlers.StyleSheetTiddlersBar += ".tiddler, .tabContents {border:1px [[ColorPalette::TertiaryPale]] solid;}\n"; config.shadowTiddlers.StyleSheetTiddlersBar +="/*}}}*/"; store.addNotification("StyleSheetTiddlersBar", refreshStyles); config.refreshers.none = function(){return true;} config.shadowTiddlers.PageTemplate=config.shadowTiddlers.PageTemplate.replace(/&lt;div id='tiddlerDisplay'&gt;&lt;\/div&gt;/m,"&lt;div id='tiddlersBar' refresh='none' ondblclick='config.macros.tiddlersBar.onTiddlersBarAction(event)'&gt;&lt;/div&gt;\n&lt;div id='tiddlerDisplay'&gt;&lt;/div&gt;"); </pre> System systemConfig https://starkakrats.tiddlyhost.com/#TiddlersBarPluginMP Thu, 27 Jun 2013 15:05:00 GMT DisplayOptions <h1> Display and Navigation Options</h1><br><em>Display and navigation options for this space</em><br><br><input class="chkOptionInput" option="chkEnableTabsBar" type="checkbox"> Tabbed navigation<br><input class="chkOptionInput" option="chkShowBreadcrumbs" type="checkbox"> Show Breadcrumbs<br><input class="chkOptionInput" option="chkSinglePageMode" type="checkbox"> Display one tiddler at a time<br><blockquote><input class="chkOptionInput" option="chkSinglePagePermalink" type="checkbox"> Automatically permalink current tiddler<br><input class="chkOptionInput" option="chkSinglePageKeepFoldedTiddlers" type="checkbox"> Don't close tiddlers that are folded<br><input class="chkOptionInput" option="chkSinglePageKeepEditedTiddlers" type="checkbox"> Don't close tiddlers that are being edited<br></blockquote><input class="chkOptionInput" option="chkTopOfPageMode" type="checkbox"> Open tiddlers at the top of the page<br><input class="chkOptionInput" option="chkBottomOfPageMode" type="checkbox"> Open tiddlers at the bottom of the page<br><input class="chkOptionInput" option="chkSinglePageAutoScroll" type="checkbox"> Automatically scroll tiddler into view (if needed)<br><br><hr><span style="color: rgb(196, 214, 237);"> <sup><br>Description: Display and navigation options for this space<br></sup></span> System https://starkakrats.tiddlyhost.com/#DisplayOptions Wed, 24 Apr 2013 22:33:00 GMT SinglePageModePluginInfo <table class="twtable"><tbody><tr class="evenRow"><td>Name</td><td><a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#SinglePageModePluginInfo" title="External link to https://starkakrats.tiddlyhost.com/#SinglePageModePluginInfo" target="_blank" refresh="link" tiddlylink="SinglePageModePluginInfo">SinglePageModePluginInfo</a></td></tr><tr class="oddRow"><td>Source</td><td><a class="externalLink" href="http://www.TiddlyTools.com/#SinglePageModePlugin" title="External link to http://www.TiddlyTools.com/#SinglePageModePlugin" target="_blank">http://www.TiddlyTools.com/#SinglePageModePlugin</a></td></tr><tr class="evenRow"><td>Documentation</td><td><a class="externalLink" href="http://www.TiddlyTools.com/#SinglePageModePluginInfo" title="External link to http://www.TiddlyTools.com/#SinglePageModePluginInfo" target="_blank">http://www.TiddlyTools.com/#SinglePageModePluginInfo</a></td></tr><tr class="oddRow"><td>Version</td><td>2.9.6</td></tr><tr class="evenRow"><td>Author</td><td>Eric Shulman</td></tr><tr class="oddRow"><td>License</td><td><a class="externalLink" href="http://www.TiddlyTools.com/#LegalStatements" title="External link to http://www.TiddlyTools.com/#LegalStatements" target="_blank">http://www.TiddlyTools.com/#LegalStatements</a></td></tr><tr class="evenRow"><td>CoreVersion</td><td>2.1</td></tr><tr class="oddRow"><td>Type</td><td>documentation</td></tr><tr class="evenRow"><td>Description</td><td>Documentation for <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#SinglePageModePlugin" title="External link to https://starkakrats.tiddlyhost.com/#SinglePageModePlugin" target="_blank" refresh="link" tiddlylink="SinglePageModePlugin">SinglePageModePlugin</a></td></tr></tbody></table>Normally, as you click on the links in <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#TiddlyWiki" title="External link to https://starkakrats.tiddlyhost.com/#TiddlyWiki" target="_blank" refresh="link" tiddlylink="TiddlyWiki">TiddlyWiki</a>, more and more tiddlers are displayed on the page. The order of this tiddler display depends upon when and where you have clicked. Some people like this non-linear method of reading the document, while others have reported that when many tiddlers have been opened, it can get somewhat confusing. <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#SinglePageModePlugin" title="External link to https://starkakrats.tiddlyhost.com/#SinglePageModePlugin" target="_blank" refresh="link" tiddlylink="SinglePageModePlugin">SinglePageModePlugin</a> allows you to configure <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#TiddlyWiki" title="External link to https://starkakrats.tiddlyhost.com/#TiddlyWiki" target="_blank" refresh="link" tiddlylink="TiddlyWiki">TiddlyWiki</a> to navigate more like a traditional multipage web site with only one item displayed at a time.<br><h5>Usage</h5><blockquote>When the plugin is enabled, only one tiddler will be displayed at a time and the browser window's titlebar is updated to include the current tiddler title. The browser's location URL is also updated with a 'permalink' for the current tiddler so that it is easier to create a browser 'bookmark' for the current tiddler. Alternatively, even when displaying multiple tiddlers <em>is</em> permitted, you can still reduce the potential for confusion by forcing tiddlers to always open at the top (or bottom) of the page instead of being displayed following the tiddler containing the link that was clicked.<br></blockquote><h5>Configuration</h5><blockquote><input class="chkOptionInput" option="chkSinglePageMode" type="checkbox"> Display one tiddler at a time<br><blockquote><input class="chkOptionInput" option="chkSinglePagePermalink" type="checkbox"> Automatically permalink current tiddler<br><input class="chkOptionInput" option="chkSinglePageKeepFoldedTiddlers" type="checkbox"> Don't close tiddlers that are folded<br><input class="chkOptionInput" option="chkSinglePageKeepEditedTiddlers" type="checkbox"> Don't close tiddlers that are being edited<br></blockquote><input class="chkOptionInput" option="chkTopOfPageMode" type="checkbox"> Open tiddlers at the top of the page<br><input class="chkOptionInput" option="chkBottomOfPageMode" type="checkbox"> Open tiddlers at the bottom of the page<br><input class="chkOptionInput" option="chkSinglePageAutoScroll" type="checkbox"> Automatically scroll tiddler into view (if needed)<br><br>Notes:<br><ul><li> <div class="block">The "display one tiddler at a time" option can also be <em>temporarily</em> set/reset by including a 'paramifier' in the document URL: <code>#SPM:true</code> or <code>#SPM:false</code>. You can also use <code>SPM:expression</code>, where 'expression' is any javascript statement that evaluates to true or false. This allows you to create hard-coded links in other documents that can selectively enable/disable the use of this option based on various programmatic conditions, such as the current username. For example, using<br><span>&nbsp;</span><span>&nbsp;</span><span>&nbsp;</span><code>#SPM:config.options.txtUserName!="SomeName"</code><br>enables 'one tiddler at a time' display for all users <em>other than</em> "SomeName")</div></li><li> If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.</li><li> When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.</li></ul></blockquote><h5>Revisions</h5><blockquote>2008.10.17 2.9.6 changed chkSinglePageAutoScroll default to false<br>2008.06.12 2.9.5 corrected 'scroll to top of page' logic in auto-scroll handling<br>2008.06.11 2.9.4 added chkSinglePageKeepEditedTiddlers option<br>2008.06.05 2.9.3 in displayTiddler(), bypass single/top/bottom mode handling if startingUp. Allows multiple tiddlers to be displayed during startup processing (e.g., #story:<a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#DefaultTiddlers" title="External link to https://starkakrats.tiddlyhost.com/#DefaultTiddlers" target="_blank" refresh="link" tiddlylink="DefaultTiddlers">DefaultTiddlers</a>), even if single/top/bottom mode is enabled.<br>2008.04.18 2.9.2 in displayTiddler() and checkLastURL(), handling for Unicode in tiddler titles (remove explicit conversion between Unicode and UTF, as this is apparently done automatically by encode/decodeURIComponent, resulting in double-encoding!<br>2008.04.08 2.9.1 don't automatically add options to <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#AdvancedOptions" title="External link to https://starkakrats.tiddlyhost.com/#AdvancedOptions" target="_blank" refresh="link" tiddlylink="AdvancedOptions">AdvancedOptions</a> shadow tiddler<br>2008.04.02 2.9.0 in displayTiddler(), when single-page mode is in use and a tiddler is being edited, ask for permission to save-and-close that tiddler, instead of just leaving it open.<br>2008.03.29 2.8.3 in displayTiddler(), get title from tiddler object (if needed). Fixes errors caused when calling function passes a tiddler *object* instead of a tiddler *title*<br>2008.03.14 2.8.2 in displayTiddler(), if editing specified tiddler, just move it to top/bottom of story *without* re-rendering (prevents discard of partial edits).<br>2008.03.06 2.8.1 in paramifier handler, start 'checkURL' timer if chkSinglePageMode is enabled<br>2008.03.06 2.8.0 added option, <code>config.options.chkSinglePageKeepFoldedTiddlers</code>, so folded tiddlers won't be closed when using single-page mode. Also, in checkURL(), if hash is a <strong>permaview</strong> (e.g., "#foo bar baz"), then display multiple tiddlers rather than attempting to display "foo bar baz" as a single tiddler<br>2008.03.05 2.7.0 added support for "SPM:" URL paramifier<br>2008.03.01 2.6.0 in hijack of displayTiddler(), added 'title' argument to closeAllTiddlers() so that target tiddler isn't closed-and-reopened if it was already displayed. Also, added config.options.chkSinglePageAutoScrolloption to bypass automatic 'scroll into view' logic (note: core still does it's own ensureVisible() handling)<br>2007.12.22 2.5.3 in checkLastURL(), use decodeURIComponent() instead of decodeURI so that tiddler titles with commas (and/or other punctuation) are correctly handled.<br>2007.10.26 2.5.2 documentation cleanup<br>2007.10.08 2.5.1 in displayTiddler(), when using single-page or top-of-page mode, scrollTo(0,0) to ensure that page header is in view.<br>2007.09.13 2.5.0 for TPM/BPM modes, don't force tiddler to redisplay if already shown. Allows transition between view/edit or collapsed/view templates, without repositioning displayed tiddler.<br>2007.09.12 2.4.0 added option to disable automatic permalink feature. Also, Safari is now excluded from permalinking action to avoid bug where tiddlers don't display after hash is updated.<br>2007.03.03 2.3.1 fix typo when adding BPM option to <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#AdvancedOptions" title="External link to https://starkakrats.tiddlyhost.com/#AdvancedOptions" target="_blank" refresh="link" tiddlylink="AdvancedOptions">AdvancedOptions</a> (prevented checkbox from appearing)<br>2007.03.03 2.3.0 added support for <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#BottomOfPageMode" title="External link to https://starkakrats.tiddlyhost.com/#BottomOfPageMode" target="_blank" refresh="link" tiddlylink="BottomOfPageMode">BottomOfPageMode</a> (BPM) based on request from <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#DaveGarbutt" title="External link to https://starkakrats.tiddlyhost.com/#DaveGarbutt" target="_blank" refresh="link" tiddlylink="DaveGarbutt">DaveGarbutt</a><br>2007.02.06 2.2.3 in Story.prototype.displayTiddler(), use convertUnicodeToUTF8() for correct <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#I18N" title="External link to https://starkakrats.tiddlyhost.com/#I18N" target="_blank" refresh="link" tiddlylink="I18N">I18N</a> string handling when creating URL hash string from tiddler title (based on bug report from <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#BidiX" title="External link to https://starkakrats.tiddlyhost.com/#BidiX" target="_blank" refresh="link" tiddlylink="BidiX">BidiX</a>)<br>2007.01.08 2.2.2 use apply() to invoke hijacked core functions<br>2006.07.04 2.2.1 in hijack for displayTiddlers(), suspend TPM as well as SPM so that <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#DefaultTiddlers" title="External link to https://starkakrats.tiddlyhost.com/#DefaultTiddlers" target="_blank" refresh="link" tiddlylink="DefaultTiddlers">DefaultTiddlers</a> displays in the correct order.<br>2006.06.01 2.2.0 added chkTopOfPageMode (TPM) handling<br>2006.02.04 2.1.1 moved global variable declarations to config.* to avoid <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#FireFox" title="External link to https://starkakrats.tiddlyhost.com/#FireFox" target="_blank" refresh="link" tiddlylink="FireFox">FireFox</a> 1.5.0.1 crash bug when assigning to globals<br>2005.12.27 2.1.0 hijack displayTiddlers() so that SPM can be suspended during startup while displaying the <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#DefaultTiddlers" title="External link to https://starkakrats.tiddlyhost.com/#DefaultTiddlers" target="_blank" refresh="link" tiddlylink="DefaultTiddlers">DefaultTiddlers</a> (or #hash list). Also, corrected initialization for undefined SPM flag to "false", so default behavior is to display multiple tiddlers<br>2005.12.27 2.0.0 Update for <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#TW2" title="External link to https://starkakrats.tiddlyhost.com/#TW2" target="_blank" refresh="link" tiddlylink="TW2">TW2</a>.0<br>2005.11.24 1.1.2 When the back and forward buttons are used, the page now changes to match the URL. Based on code added by Clint Checketts<br>2005.10.14 1.1.1 permalink creation now calls encodeTiddlyLink() to handle tiddler titles with spaces in them<br>2005.10.14 1.1.0 added automatic setting of window title and location bar ('auto-permalink'). feature suggestion by David Dickens.<br>2005.10.09 1.0.1 combined documentation and code in a single tiddler<br>2005.08.15 1.0.0 Initial Release<br></blockquote> System https://starkakrats.tiddlyhost.com/#SinglePageModePluginInfo Wed, 24 Apr 2013 16:26:00 GMT SinglePageModePlugin <table class="twtable"><tbody><tr class="evenRow"><td>Name</td><td>SinglePageModePlugin</td></tr><tr class="oddRow"><td>Source</td><td><a class="externalLink" href="http://www.TiddlyTools.com/#SinglePageModePlugin" title="External link to http://www.TiddlyTools.com/#SinglePageModePlugin" target="_blank">http://www.TiddlyTools.com/#SinglePageModePlugin</a></td></tr><tr class="evenRow"><td>Documentation</td><td><a class="externalLink" href="http://www.TiddlyTools.com/#SinglePageModePluginInfo" title="External link to http://www.TiddlyTools.com/#SinglePageModePluginInfo" target="_blank">http://www.TiddlyTools.com/#SinglePageModePluginInfo</a></td></tr><tr class="oddRow"><td>Version</td><td>2.9.7</td></tr><tr class="evenRow"><td>Author</td><td>Eric Shulman</td></tr><tr class="oddRow"><td>License</td><td><a class="externalLink" href="http://www.TiddlyTools.com/#LegalStatements" title="External link to http://www.TiddlyTools.com/#LegalStatements" target="_blank">http://www.TiddlyTools.com/#LegalStatements</a></td></tr><tr class="evenRow"><td>CoreVersion</td><td>2.1</td></tr><tr class="oddRow"><td>Type</td><td>plugin</td></tr><tr class="evenRow"><td>Description</td><td>Show tiddlers one at a time with automatic permalink, or always open tiddlers at top/bottom of page.</td></tr></tbody></table>This plugin allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one tiddler displayed at a time.<br><h5>Documentation</h5><blockquote>see <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#SinglePageModePluginInfo" title="External link to https://starkakrats.tiddlyhost.com/#SinglePageModePluginInfo" target="_blank" refresh="link" tiddlylink="SinglePageModePluginInfo">SinglePageModePluginInfo</a><br></blockquote><h5>Configuration</h5><blockquote><input class="chkOptionInput" option="chkSinglePageMode" type="checkbox"> Display one tiddler at a time<br><blockquote><input class="chkOptionInput" option="chkSinglePagePermalink" type="checkbox"> Automatically permalink current tiddler<br><input class="chkOptionInput" option="chkSinglePageKeepFoldedTiddlers" type="checkbox"> Don't close tiddlers that are folded<br><input class="chkOptionInput" option="chkSinglePageKeepEditedTiddlers" type="checkbox"> Don't close tiddlers that are being edited<br></blockquote><input class="chkOptionInput" option="chkTopOfPageMode" type="checkbox"> Open tiddlers at the top of the page<br><input class="chkOptionInput" option="chkBottomOfPageMode" type="checkbox"> Open tiddlers at the bottom of the page<br><input class="chkOptionInput" option="chkSinglePageAutoScroll" type="checkbox"> Automatically scroll tiddler into view (if needed)<br><br>Notes:<br><ul><li> The "display one tiddler at a time" option can also be <em>temporarily</em> set/reset by including a 'paramifier' in the document URL: <code>#SPM:true</code> or <code>#SPM:false</code>.</li><li> If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.</li><li> When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.</li></ul></blockquote><h5>Revisions</h5><blockquote>2010.11.30 2.9.7 use story.getTiddler()<br>2008.10.17 2.9.6 changed chkSinglePageAutoScroll default to false<br><table class="twtable"><tbody><tr class="evenRow"><td align="center">Please see <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#SinglePageModePluginInfo" title="External link to https://starkakrats.tiddlyhost.com/#SinglePageModePluginInfo" target="_blank" refresh="link" tiddlylink="SinglePageModePluginInfo">SinglePageModePluginInfo</a> for previous revision details</td></tr></tbody></table>2005.08.15 1.0.0 Initial Release. Support for BACK/FORWARD buttons adapted from code developed by Clint Checketts.<br></blockquote><h5>Code</h5><pre>version.extensions.SinglePageModePlugin= {major: 2, minor: 9, revision: 7, date: new Date(2010,11,30)}; </pre><pre>config.paramifiers.SPM = { onstart: function(v) { config.options.chkSinglePageMode=eval(v); if (config.options.chkSinglePageMode &amp;&amp; config.options.chkSinglePagePermalink &amp;&amp; !config.browser.isSafari) { config.lastURL = window.location.hash; if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000); } } }; </pre><pre>if (config.options.chkSinglePageMode==undefined) config.options.chkSinglePageMode=false; if (config.options.chkSinglePagePermalink==undefined) config.options.chkSinglePagePermalink=true; if (config.options.chkSinglePageKeepFoldedTiddlers==undefined) config.options.chkSinglePageKeepFoldedTiddlers=false; if (config.options.chkSinglePageKeepEditedTiddlers==undefined) config.options.chkSinglePageKeepEditedTiddlers=false; if (config.options.chkTopOfPageMode==undefined) config.options.chkTopOfPageMode=false; if (config.options.chkBottomOfPageMode==undefined) config.options.chkBottomOfPageMode=false; if (config.options.chkSinglePageAutoScroll==undefined) config.options.chkSinglePageAutoScroll=false; </pre><pre>config.SPMTimer = 0; config.lastURL = window.location.hash; function checkLastURL() { if (!config.options.chkSinglePageMode) { window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; } if (config.lastURL == window.location.hash) return; // no change in hash var tids=decodeURIComponent(window.location.hash.substr(1)).readBracketedList(); if (tids.length==1) // permalink (single tiddler in URL) story.displayTiddler(null,tids[0]); else { // restore permaview or default view config.lastURL = window.location.hash; if (!tids.length) tids=store.getTiddlerText("DefaultTiddlers").readBracketedList(); story.closeAllTiddlers(); story.displayTiddlers(null,tids); } } if (Story.prototype.SPM_coreDisplayTiddler==undefined) Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler; Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,slowly) { var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler; var tiddlerElem=story.getTiddler(title); // ==null unless tiddler is already displayed var opt=config.options; var single=opt.chkSinglePageMode &amp;&amp; !startingUp; var top=opt.chkTopOfPageMode &amp;&amp; !startingUp; var bottom=opt.chkBottomOfPageMode &amp;&amp; !startingUp; if (single) { story.forEachTiddler(function(tid,elem) { // skip current tiddler and, optionally, tiddlers that are folded. if ( tid==title || (opt.chkSinglePageKeepFoldedTiddlers &amp;&amp; elem.getAttribute("folded")=="true")) return; // if a tiddler is being edited, ask before closing if (elem.getAttribute("dirty")=="true") { if (opt.chkSinglePageKeepEditedTiddlers) return; // if tiddler to be displayed is already shown, then leave active tiddler editor as is // (occurs when switching between view and edit modes) if (tiddlerElem) return; // otherwise, ask for permission var msg="'"+tid+"' is currently being edited.\n\n"; msg+="Press OK to save and close this tiddler\nor press Cancel to leave it opened"; if (!confirm(msg)) return; else story.saveTiddler(tid); } story.closeTiddler(tid); }); } else if (top) arguments[0]=null; else if (bottom) arguments[0]="bottom"; if (single &amp;&amp; opt.chkSinglePagePermalink &amp;&amp; !config.browser.isSafari) { window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title)); config.lastURL = window.location.hash; document.title = wikifyPlain("SiteTitle") + " - " + title; if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000); } if (tiddlerElem &amp;&amp; tiddlerElem.getAttribute("dirty")=="true") { // editing... move tiddler without re-rendering var isTopTiddler=(tiddlerElem.previousSibling==null); if (!isTopTiddler &amp;&amp; (single || top)) tiddlerElem.parentNode.insertBefore(tiddlerElem,tiddlerElem.parentNode.firstChild); else if (bottom) tiddlerElem.parentNode.insertBefore(tiddlerElem,null); else this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler } else this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler var tiddlerElem=story.getTiddler(title); if (tiddlerElem&amp;&amp;opt.chkSinglePageAutoScroll) { // scroll to top of page or top of tiddler var isTopTiddler=(tiddlerElem.previousSibling==null); var yPos=isTopTiddler?0:ensureVisible(tiddlerElem); // if animating, defer scroll until after animation completes var delay=opt.chkAnimate?config.animDuration+10:0; setTimeout("window.scrollTo(0,"+yPos+")",delay); } } if (Story.prototype.SPM_coreDisplayTiddlers==undefined) Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers; Story.prototype.displayTiddlers = function() { // suspend single/top/bottom modes when showing multiple tiddlers var opt=config.options; var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false; var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false; var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false; this.SPM_coreDisplayTiddlers.apply(this,arguments); opt.chkBottomOfPageMode=saveBPM; opt.chkTopOfPageMode=saveTPM; opt.chkSinglePageMode=saveSPM; } </pre> System systemConfig https://starkakrats.tiddlyhost.com/#SinglePageModePlugin Wed, 24 Apr 2013 16:26:00 GMT TiddlerToCPlugin <table class="twtable"><tbody><tr class="evenRow"><td>Name</td><td>TiddlerToCPlugin</td></tr><tr class="oddRow"><td>Description</td><td>Tiddler Table of Contents generator</td></tr><tr class="evenRow"><td>Author</td><td>Julien Coloos</td></tr><tr class="oddRow"><td>Version</td><td>1.1.0</td></tr><tr class="evenRow"><td>Date</td><td>2011-06-12</td></tr><tr class="oddRow"><td>Status</td><td>stable</td></tr><tr class="evenRow"><td>Source</td><td><a class="externalLink" href="http://julien.coloos.free.fr/TiddlyWiki-dev/#TiddlerToCPlugin" title="External link to http://julien.coloos.free.fr/TiddlyWiki-dev/#TiddlerToCPlugin" target="_blank">http://julien.coloos.free.fr/TiddlyWiki-dev/#TiddlerToCPlugin</a></td></tr><tr class="oddRow"><td>License</td><td><a class="externalLink imageLink" href="http://creativecommons.org/licenses/by-sa/3.0/" title="External link to http://creativecommons.org/licenses/by-sa/3.0/" target="_blank"><img title="CC BY-SA 3.0" src="http://i.creativecommons.org/l/by-sa/3.0/80x15.png"></a></td></tr><tr class="evenRow"><td>CoreVersion</td><td>2.6</td></tr><tr class="oddRow"><td>Documentation</td><td><a class="externalLink" href="http://julien.coloos.free.fr/TiddlyWiki-dev/#TiddlerToCPlugin" title="External link to http://julien.coloos.free.fr/TiddlyWiki-dev/#TiddlerToCPlugin" target="_blank">http://julien.coloos.free.fr/TiddlyWiki-dev/#TiddlerToCPlugin</a></td></tr></tbody></table><br><span class="tw_ttoc"></span><br><h1>Description</h1>This plugin adds the <code>TiddlerToC</code> macro to generate a ToC inside a tiddler.<br>The generated ToC entries list the visible headings found in the tidder, each entry being preceded by a number representing its level and index (e.g.: <em>1.2.1</em>). Those numbers link to the corresponding heading.<br>Found headings are also altered to display a link back to the ToC.<br><br>The ToC does not reference tiddlers embedded using the <code>tiddler</code>, <code>slider</code> or <code>tabs</code> macro.<br><br>The ToC is either generated at a given target, or at the beginning of the place it was dropped in. If there are less headings than a given minimum (default being 2), the ToC is not displayed.<br>The ToC title can be clicked to hide/display the ToC content.<br><br><br><h1>Notes</h1>The <code>TiddlerToC</code> macro searches for the HTML headings (<code>h1</code> to <code>h6</code> tags) in the place where it is inserted. Each heading is then converted to a ToC entry, preserving inner text format.<br>The macro thus has to be inserted at the end of the tiddler: content has been generated and the ToC can be populated.<br><br><br><h1>Usage</h1>The <code>TiddlerToC</code> macro is intended to be inserted at the end of a tiddler.<br><br>By default the ToC is generated at the beginning of the place the macro was inserted in.<br>However a target can be used: if the place contains an element which class is <code>tw_ttoc</code>, this element will be replaced by the ToC.<br>Such an element can be generated by dropping one of the following inside the tiddler:<br><ul><li> using a TiddlyWiki macro</li></ul><pre>{{tw_ttoc{}}} </pre><ul><li> inserting an explicit HTML tag; the advantage here is that attributes can be specified</li></ul><pre>&lt;html&gt;&lt;div class="tw_ttoc" min-entries="3"/&gt;&lt;/html&gt; </pre><br><br>The macro and/or target element can also be used in <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#ViewTemplate" title="External link to https://starkakrats.tiddlyhost.com/#ViewTemplate" target="_blank" refresh="link" tiddlylink="ViewTemplate">ViewTemplate</a> to be applied to all tiddlers:<br><pre>... &lt;!-- Wikified tiddler content --&gt; &lt;div class='viewer' macro='view text wikified'&gt; &lt;!-- Insert ToC right before tiddler content --&gt; &lt;div class='tw_ttoc'&gt;&lt;/div&gt; &lt;/div&gt; &lt;!-- ToC generator, to use at the end of the tiddler --&gt; &lt;div macro='TiddlerToC min-entries:3'&gt;&lt;/div&gt; </pre><br><h2>Parameters</h2>The following parameters are available:<br><ul><li> <code>min-entries</code> (optional)<ul><li> minimum number of entries needed to display the ToC</li><li> can be specified as macro parameter, and can be overridden in the target tag (needs explicit HTML tag; see before)</li><li> default value is <code>2</code></li></ul></li></ul><br><h2>Examples</h2>Without target:<br><pre>Tiddler content. ... &lt;&lt;TiddlerToC min-entries:3&gt;&gt; </pre><br>With a target:<br><pre>Beginning of the tiddler. ... Where to generate the ToC: {{tw_ttoc{}}} Or, with a minimum number of entries specified: &lt;html&gt;&lt;div class="tw_ttoc" min-entries="3"/&gt;&lt;/html&gt; Tiddler continues ... &lt;&lt;TiddlerToC min-entries:3&gt;&gt; </pre><br><br><h1>Styling</h1>ToC content uses some classes which style can be overriden using CSS. Those classes are:<br><ul><li> <code>tw_ttoc</code>: ToC</li><li> <code>tw_ttoc_title</code>: title (<code>Table of Contents</code>)</li><li> <code>tw_ttoc_level</code>: sub-level entry indentation</li><li> <code>tw_ttoc_entry</code>: entry</li><li> <code>tw_ttoc_id</code>: entry number</li><li> <code>tw_ttoc_top</code>: heading link back to the ToC</li></ul><br>Default style can be found in the code below, and can be overridden in the <a class="externalLink null" href="https://starkakrats.tiddlyhost.com/#StyleSheet" title="External link to https://starkakrats.tiddlyhost.com/#StyleSheet" target="_blank" refresh="link" tiddlylink="StyleSheet">StyleSheet</a> tiddler.<br><br><br><h1>Revision History</h1><h2>v1.1.0 (2011-06-12)</h2>Changes:<br><ul><li> by default, ToC is now displayed only if it contains more than one entry</li></ul><br>Enhancements:<br><ul><li> added a macro parameter to give the minimum number of entries needed to display the ToC<ul><li> the parameter can be overridden in the ToC target</li></ul></li></ul><br>Fixes:<br><ul><li> do not list headings that are not <em>displayed</em></li></ul><br><h2>v1.0.1 (2011-05-29)</h2>Changes:<br><ul><li> if there is none, adds a <code>br</code> tag after the ToC</li></ul><br><h2>v1.0.0 (2011-05-28)</h2>Initial release.<br><br><br><h1>Code</h1><pre>if (!config.macros.TiddlerToC) {(function($) { version.extensions.TiddlerToCPlugin = {major: 1, minor: 1, revision: 0, date: new Date(2011, 6, 12)}; var hTag = /^h([1-6])$/i; setStylesheet(".tw_ttoc {background-color: #F8F8F8; padding: 10px; border: 1px #CCCCCC solid;} .tw_ttoc_title {text-align:center; font-weight: bold; margin: 5px 0px 20px 0px;} .tw_ttoc_level {padding-left: 20px;} .tw_ttoc_id {margin-right: 6px;} .tw_ttoc_top {float: right; font-size: 0.5em;}", "TiddlerToCPlugin"); function cloneNodeWithEvents(node) { var clone = node.cloneNode(true); var n1 = [node].concat(Array.prototype.slice.call(node.getElementsByTagName('*'))); var n2 = [clone].concat(Array.prototype.slice.call(clone.getElementsByTagName('*'))); for (var i=0 ; i&lt;n1.length ; i++) { for (var j in n1[i]) { if (j.substr(0,2) != "on") continue; n2[i][j] = n1[i][j]; } } return clone; } var pl = config.macros.TiddlerToC = { handler: function(place, macroName, params, wikifier, paramString, tiddler) { var namedParams = paramString.parseParams(null, null, true), paramMinEntries = getParam(namedParams, "min-entries"), minEntries = paramMinEntries ? parseInt(paramMinEntries) : 2; if ($(place).hasClass("viewer") || $(place).parents(".viewer").size()) pl.generate(place, minEntries); else { /* the macro is not used inside a tiddler content but probably in a template */ var t = story.findContainingTiddler(place); if (!t) return; pl.generate(t, minEntries); } }, getElements: function(place) { var els = $(); $(place).children().each(function(i, n) { /* exclude embedded tiddlers */ if ($(n).attr("tiddler") || $(n).hasClass("sliderPanel") || $(n).hasClass("tabsetWrapper")) return; /* include headings and ToC target */ if (hTag.test(n.tagName) || $(n).is(".tw_ttoc")) els = els.add(n); /* recurse */ els = els.add(pl.getElements(n)); }); return els; }, generate: function(place, minEntries) { var els = pl.getElements(place); /* get ToC target, or insert it as first element */ var toc = els.filter(".tw_ttoc"); if (toc.size()) { if (toc.size() &gt; 1) { /* More than one target; happens when using ViewTemplate while * tiddler already contains a ToC target. In any case, it is best * to keep the last one and remove others. */ toc.not(toc.last()).remove(); toc = toc.last(); } /* check the ToC was not already generated */ if (toc[0].toc &amp;&amp; toc[0].toc.generated) return; /* check if the minimum number of entries is overridden */ if (toc.attr("min-entries")) minEntries = parseInt(toc.attr("min-entries")); /* rebuild target tag */ toc = toc.empty().wrapInner("&lt;div class='tw_ttoc'/&gt;").children("div").unwrap(); } else toc = $("&lt;div class='tw_ttoc'/&gt;").prependTo(place); var hLevelCurrent = 0, hLevel; var tocInner = $("&lt;div/&gt;"), listCurrent = tocInner[0], listId = "1"; toc.hide().append($("&lt;div class='tw_ttoc_title'&gt;&lt;a href='javascript:;'&gt;Table of Contents&lt;/a&gt;&lt;/div&gt;"), tocInner); $(".tw_ttoc_title a", toc).click(function() { if (tocInner.is(":visible")) tocInner.hide("fast"); else tocInner.show("fast"); }); var headings = $(); els.each(function(i, c) { /* check we got a visible heading */ var match = hTag.exec(c.tagName); if (!match || !$(c).is(":visible")) return; hLevel = parseInt(match[1]); /* check the heading level */ if (!hLevelCurrent) hLevelCurrent = hLevel; if (hLevel &lt; hLevelCurrent) { /* have to go up */ while ((hLevel &lt;= --hLevelCurrent) &amp;&amp; listCurrent.parentNode) { listCurrent = listCurrent.parentNode.parentNode; ids = listId.split("."); ids.pop(); listId = ids.join("."); } } else if (hLevel &gt; hLevelCurrent) { /* have to go down */ while (hLevel &gt;= ++hLevelCurrent) { $(listCurrent.lastChild).append(listCurrent = $("&lt;div class='tw_ttoc_level'/&gt;")[0]); ids = listId.split("."); ids.push(1); listId = ids.join("."); } } /* determine this heading index */ ids = listId.split("."); ids[ids.length-1] = $(listCurrent).children("div.tw_ttoc_entry").size() + 1; listId = ids.join("."); /* clone the heading content to insert it in the ToC */ $(cloneNodeWithEvents(c)).wrapInner("&lt;div class='tw_ttoc_entry'/&gt;").children("div").unwrap().prepend($("&lt;a class='tw_ttoc_id' href='javascript:;'/&gt;").html(listId).click({target: c}, function(ev){window.scrollTo(0,findPosY(ev.data.target))})).appendTo(listCurrent); headings = headings.add(c); hLevelCurrent = hLevel; }); toc[0].toc = {generated: true}; if (headings.size() &gt;= minEntries) { /* display ToC */ /* Note: jQuery 'next' does not take into account text nodes */ var sibling = toc.show()[0].nextSibling; if (sibling &amp;&amp; (sibling.nodeName != "BR")) toc.after("&lt;br/&gt;"); /* insert a 'ToC' link in the headings */ headings.append($("&lt;span class='tw_ttoc_top'&gt;&lt;a href='javascript:;' title='Go to Table of Contents'&gt;[ToC]&lt;/a&gt;&lt;/span&gt;")).find(".tw_ttoc_top a").click(function() {window.scrollTo(0,findPosY(toc[0]))}); } } }; })(jQuery);} </pre><br> systemConfig https://starkakrats.tiddlyhost.com/#TiddlerToCPlugin Mon, 22 Apr 2013 14:21:00 GMT