Changeset 68

Show
Ignore:
Timestamp:
04/11/06 20:49:06 (3 years ago)
Author:
DevonJones
Message:

TiddlyWiki 1.2.39 Beta 2

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • Branches/1.2.39/tiddlywiki.html

    r67 r68  
    11<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
    22<script type="text/javascript"> 
    3 var version = {major: 1, minor: 2, revision: 39, beta: 1, date: new Date("Nov 10, 2005"), extensions: {}}; 
     3var version = {major: 1, minor: 2, revision: 39, beta: 2, date: new Date("Nov 22, 2005"), extensions: {}}; 
    44</script> 
    55<!-- 
    6 TiddlyWiki 1.2.39 beta 1 by Jeremy Ruston, (jeremy [at] osmosoft [dot] com) 
    7  
    8 Published under a BSD open source license 
     6TiddlyWiki 1.2.39 beta 2 by Jeremy Ruston, (jeremy [at] osmosoft [dot] com) 
    97 
    108Copyright (c) Osmosoft Limited 2005 
     
    3836<head> 
    3937<meta http-equiv="Content-Type" content="text/html;charset=utf-8" > 
    40 <title>TiddlyWiki 1.2.39 (beta 1) - a reusable non-linear personal web notebook</title> 
     38<title>TiddlyWiki 1.2.39 (beta 2) - a reusable non-linear personal web notebook</title> 
    4139<script type="text/javascript"> 
    4240 
     
    6159                chkForceMinorUpdate: false, 
    6260                txtMainTab: "tabTimeline", 
    63                 txtMoreTab: "moreTabAll" 
     61                txtMoreTab: "moreTabAll", 
     62                txtStyleSheet: "StyleSheet", 
     63                txtPageTemplate: "PageTemplate", 
     64                txtTiddlerTemplate: "ViewTemplate" 
    6465                }, 
    6566        // List of notification functions to be called when certain tiddlers are changed or deleted 
     
    6768                {name: "StyleSheetColors", notify: refreshStyles}, 
    6869                {name: "StyleSheetLayout", notify: refreshStyles}, 
     70                {name: "StyleSheetPrint", notify: refreshStyles}, 
    6971                {name: "StyleSheet", notify: refreshStyles}, 
    7072                {name: "PageTemplate", notify: refreshPageTemplate}, 
     
    8688        // Miscellaneous options 
    8789        numRssItems: 20, // Number of items in the RSS feed 
    88         animFast: 0.12, // Speed for animations (lower == slower) 
     90        animFast: 0.05, // Speed for animations (lower == slower) 
    8991        animSlow: 0.01, // Speed for EasterEgg animations 
    9092        // Messages 
     
    108110                mainSaved: "Main TiddlyWiki file saved", 
    109111                mainFailed: "Failed to save main TiddlyWiki file. Your changes have not been saved", 
    110                 macroError: "Error executing macro '%0'", 
     112                macroError: "Error in macro <<%0>>", 
     113                macroErrorDetails: "Error while executing macro <<%0>>:\n%1", 
     114                missingMacro: "No such macro", 
    111115                overwriteWarning: "A tiddler named '%0' already exists. Choose OK to overwrite it", 
    112116                unsavedChangesWarning: "WARNING! There are unsaved changes in TiddlyWiki\n\nChoose OK to save\nChoose CANCEL to discard", 
     
    123127                        toolbarPermalink: {text: "permalink", tooltip: "Permalink for this tiddler"}, 
    124128                        toolbarReferences: {text: "references", tooltip: "Show tiddlers that link to this one", popupNone: "No references"}, 
    125                         defaultText: "The tiddler '%0' doesn't yet exist. Double-click to create it" 
     129                        defaultText: "The tiddler '%0' doesn't yet exist. Double-click to create it", 
     130                        defaultModifier: "Noone", 
     131                        shadowModifier: "Shadow" 
    126132                        }, 
    127133                editor: { 
     
    140146                tiddler: {}, 
    141147                tag: {}, 
     148                tags: {}, 
    142149                timeline: {dateFormat: "DD MMM YYYY"}, 
    143150                allTags: {tooltip: "Show tiddlers tagged with '%0'", noTags: "There are no tagged tiddlers"}, 
     
    157164                sparkline: {}, 
    158165                tabs: {}, 
    159                 gradient: {} 
     166                gradient: {}, 
     167                message: {}, 
     168                closeTiddler: {}, 
     169                editTiddler: {}, 
     170                saveTiddler: {}, 
     171                cancelTiddler: {}, 
     172                deleteTiddler: {}, 
     173                permalink: {}, 
     174                references: {}, 
     175                view: {}, 
     176                edit: {} 
    160177                }, 
    161178        textPrimitives: {} 
     
    178195// --------------------------------------------------------------------------------- 
    179196 
     197config.textPrimitives.upperLetter = "[A-Z\u00c0-\u00de\u0150\u0170]"; 
     198config.textPrimitives.lowerLetter = "[a-z\u00df-\u00ff_0-9\\-\u0151\u0171]"; 
     199config.textPrimitives.anyLetter = "[A-Za-z\u00c0-\u00de\u00df-\u00ff_0-9\\-\u0150\u0170\u0151\u0171]"; 
    180200if(config.browser.isBadSafari) 
    181201        { 
     
    183203        config.textPrimitives.lowerLetter = "[a-z\u00df-\u00ff_0-9\\-]"; 
    184204        config.textPrimitives.anyLetter = "[A-Za-z\u00c0-\u00de\u00df-\u00ff_0-9\\-]"; 
    185         } 
    186 else 
    187         { 
    188         config.textPrimitives.upperLetter = "[A-Z\u00c0-\u00de\u0150\u0170]"; 
    189         config.textPrimitives.lowerLetter = "[a-z\u00df-\u00ff_0-9\\-\u0151\u0171]"; 
    190         config.textPrimitives.anyLetter = "[A-Za-z\u00c0-\u00de\u00df-\u00ff_0-9\\-\u0150\u0170\u0151\u0171]"; 
    191205        } 
    192206config.textPrimitives.anyDigit = "[0-9]"; 
     
    202216 
    203217// --------------------------------------------------------------------------------- 
    204 // Shadow stylesheet elements 
    205 // --------------------------------------------------------------------------------- 
    206  
    207 config.shadowTiddlers.StyleSheetColors = "/***\n!Generic Rules\n***/\nbody {\n  background: #fff;\n     color: #000;\n}\n\n#titleLine {\n       color: #fff;\n  background: #300;\n}\n\n#titleLine a {\n        color: #cf6;\n}\n\n#titleLine a:hover {\n       background: transparent;\n}\n\na{\n     color: #963;\n}\n\na:hover{\n   background: #963;\n     color: #fff;\n}\n\n#mainMenu .button {\n        color: #930;\n}\n\n#mainMenu .button:hover {\n  color: #cf6;\n  background: #930;\n}\n\n#messageArea {\n        background: #930;\n     color: #fff;\n}\n\n#messageArea a:link, #messageArea a:visited {\n      color: #c90;\n}\n\n#messageArea a:hover {\n     color: #963;\nbackground: transparent;\n}\n\n#messageArea a:active {\n  color: #fff;\n}\n\n.popup {\n   background: #eea;\n     border: 1px solid #930;\n}\n\n.popup hr {\n     color: #963;\n  background: #963;\n     border-bottom: 1px;\n}\n\n.popup li.disabled {\n        color: #ba9;\n}\n\n.popup li a, .popup li a:visited {\n color: #300;\n}\n\n.popup li a:hover {\n        background: #930;\n     color: #eea;\n}\n\n.tabSelected,.tabContents {\n        background: #eea;\n}\n\n.tabUnselected {\n      background: #c90;\n}\n\n.tiddler .button {\n    color: #930;\n}\n\n.tiddler .button:hover {\n   color: #cf6;\n  background: #930;\n}\n\n.tiddler .button:active {\n     color: #fff;\n  background: #c90;\n}\n\n.shadow .title {\n      color: #888;\n}\n\n.toolbar {\n color: #aaa;\n}\n\n.footer {\n  color: #ddd;\n}\n\n.selectedTiddler .footer {\n color: #888;\n}\n\n.viewer .button {\n  background: #c90;\n     color: #300;\n  border-right: 1px solid #300;\n border-bottom: 1px solid #300;\n}\n\n.viewer .button:hover {\n  background: #eea;\n     color: #c90;\n}\n\n.viewer blockquote {\n       border-left: 3px solid #666;\n}\n\nh1,h2,h3,h4,h5 {\n   background: #cc9;\n}\n\n.viewer table {\n       border: 2px solid #303030;\n}\n\n.viewer th {\n background: #996;\n     border: 1px solid #606060;\n    color: #fff;\n}\n\n.viewer td, .viewer tr {\n   border: 1px solid #606060;\n}\n\n.viewer pre {\n        border: 1px solid #963;\n       background: #eea;\n}\n\n.viewer code {\n        color: #630;\n}\n\n.viewer hr {\n       border: 0;\n    border-top: dashed 1px #606060;\n       color: #666;\n}\n\n.highlight, .marked {\n      background: #ffe72f;\n}\n\n.editor {\n  color: #402C74;\n}\n\n.editor input {\n border: 1px solid #000;\n}\n\n.editor textarea {\n      border: 1px solid #000;\n       width: 100%;\n}\n\n.editorFooter {\n    color: #aaa;\n}\n\n.editorFooter a {\n  color: #930;\n}\n\n.editorFooter a:hover {\n    color: #cf6;\n  background: #930;\n}\n\n.editorFooter a:active {\n      color: #fff;\n  background: #c90;\n}\n/***\n!On the sidebar buttons and tiddlylinks are treated the same\n***/\n#sidebarOptions {\n     background: #c90;\n}\n\n#sidebarOptions a{\n    color: #930;\n}\n\n#sidebarOptions a:hover {\n  color: #cf6;\n  background: #930;\n}\n\n#sidebarOptions a:active {\n    color: #930;\n  background: #cf6;\n}\n\n#sidebarOptions .sliderPanel {\n        background: #eea;\n}\n\n#sidebarOptions .sliderPanel a {\n      color: #930;\n}\n\n#sidebarOptions .sliderPanel a:hover {\n     color: #cf6;\n  background: #930;\n}\n\n#sidebarOptions .sliderPanel a:active {\n       color: #930;\n  background: #cf6;\n}\n/***\n!Sidebar tabs are styled \n***/\n#sidebarTabs {\n   background: #c90;\n}\n\n#sidebarTabs .tabSelected{\n    color: #cf6;\n  background: #963;\n}\n\n#sidebarTabs .tabUnselected {\n color: #cf6;\n  background: #930;\n}\n\n#sidebarTabs .tabContents{\n    background: #963;\n}\n\n#sidebarTabs .txtMoreTab .tabSelected,\n#sidebarTabs .txtMoreTab .tabSelected:hover{\n  background: #930;\n     color: #cf6;\n}\n\n#sidebarTabs .txtMoreTab .tabUnselected,\n#sidebarTabs .txtMoreTab .tabUnselected:hover{\n   background: #300;\n     color: #cf6;\n}\n\n#sidebarTabs .txtMoreTab .tabContents {\n    background: #930;\n}\n\n#sidebarTabs .tabContents a {\n color: #cf6;\n}\n\n#sidebarTabs .tabContents a:hover {\n        background: #cf6;\n     color: #300;\n}\n\n\n.sparkline {\n     background: #eea;\n     border: 0;\n}\n\n.sparktick {\n background: #930;\n}\n\n.errorNoSuchMacro {\n   color: #ff0;\n  background: #f00;\n}\n\n.zoomer {\n     color: #963;\n  border: 1px solid #963;\n}"; 
    208 config.shadowTiddlers.StyleSheetLayout = "/***\n!The layout stylesheet is divided into following sections:\n***/\n/*{{{*/\nbody {\n     font-size: .75em;\n     font-family: verdana,arial,helvetica;\n position: relative;\n   margin: 0;\n/* Padding required for Opera */\n  padding: 0;\n}\n\na{\n  text-decoration: none;\n}\n\n#titleLine {\n     padding: 5em 1em 1em 1em;\n}\n\n#siteTitle {\n  font-size: 3em;\n}\n\n#siteSubtitle {\n padding-left: 1em;\n    font-size: 1.1em;\n}\n\n#mainMenu {\n   position: absolute;\n   left: 0;\n      width: 10em;\n  text-align: right;\n    line-height: 1.6em;\n   padding: 1.5em 0.5em 0.5em 0.5em;\n     font-size: 1.1em;\n}\n\n/***\n!Link Styles\n***/\n.externalLink {\n     text-decoration: underline;\n}\n\n.tiddlyLinkExisting {\n       font-weight: bold;\n}\n\n.tiddlyLinkNonExisting {\n     font-style: italic;\n}\n\n/* the 'a' is required for IE, otherwise it renders the whole tiddler a bold */\na.tiddlyLinkNonExisting.shadow {\n   font-weight: bold;\n}\n\n/***\n!Exceptions to common link styles\n***/\n#mainMenu .tiddlyLinkExisting, \n#mainMenu .tiddlyLinkNonExisting,\n#sidebarTabs .tiddlyLinkExisting,\n#sidebarTabs .tiddlyLinkNonExisting,\n#siteTitle .tiddlyLinkExisting,\n#siteTitle .tiddlyLinkNonExisting{\n font-weight: normal;\n font-style: normal;\n}\n\n#displayArea {\n    margin: 1em 17em 0em 14em;\n}\n\n#messageArea {\n       padding: 0.5em;\n}\n\n#messageArea a{\n text-decoration: underline;\n}\n\n\n.popup {\n  font-size: .9em;\n      padding: 0.2em;\n       list-style: none;\n     margin: 0;\n}\n\n.popup hr {\n  display: block;\n       height: 1px;\n  width: auto;\n  padding: 0;\n   margin: 0.2em 0em;\n}\n\n.popup li.disabled {\n padding: 0.2em;\n}\n\n.popup li a{\n    display: block;\n       padding: 0.2em;\n}\n\n\n.tabset {\n     padding: 1em 0em 0em 0.5em;\n}\n\n.tab {\n      margin: 0em 0em 0em 0.25em;\n   padding: 2px;\n}\n\n.tabContents {\n    padding: 0.5em;\n}\n\n.tabContents ul, .tabContents ol {\n      margin: 0;\n    padding: 0;\n}\n\n.tabContents li {\n   list-style: none;\n}\n\n.tabContents li.listLink {\n   margin-left: .75em;\n}\n\n.toolbar {\n   text-align: right;\n    font-size: .9em;\n      visibility: hidden;\n}\n\n.selectedTiddler .toolbar {\n visibility: visible;\n}\n\n.tiddler {\n padding: 1em 1em 0em 1em;\n}\n\n.title {\n      font-size: 1.1em;\n     font-weight: bold;\n}\n\n/* I'm not a fan of how button look in tiddlers... */\n.tiddler .button {\n    padding: 0.2em 0.4em;\n}\n\n.footer {\n font-size: .9em;\n}\n\n.body {\n        padding-top: 0.5em;\n}\n\n\n.viewer {\n line-height: 1.4em;\n}\n\n.viewer .button {\n   margin: 0em 0.25em;\n   padding: 0em 0.25em;\n}\n\n.viewer blockquote {\n       line-height: 1.5em;\n   padding-left: 0.8em;\n  margin-left: 2.5em;\n}\n\n.viewer ul, .viewer ol{\n     margin-left: 0.5em;\n   padding-left: 1.5em;\n}\n\nh1,h2,h3,h4,h5 {\n   font-weight: bold;\n    text-decoration: none;\n        padding-left: 0.4em;\n}\n\nh1 {font-size: 1.35em;}\nh2 {font-size: 1.25em;}\nh3 {font-size: 1.1em;}\nh4 {font-size: 1em;}\nh5 {font-size: .9em;}\n\n.viewer table {\n   border-collapse: collapse;\n    margin: 0.8em 1.0em;\n}\n\n.viewer th, .viewer td, .viewer tr,.viewer caption{\n        padding: 3px;\n}\n\n.viewer pre {\n     padding: 0.5em;\n       margin-left: 0.5em;\n   font-size: 1.2em;\n     line-height: 1.4em;\n   overflow: auto;\n}\n\n.viewer code {\n  font-size: 1.2em;\n     line-height: 1.4em;\n}\n\nhr {\n        height: 1px;\n}\n\n.editor {\n  font-size: 0.9em;\n}\n\n.editor input, .editor textarea {\n     display: block;\n       width: 100%;\n  font: inherit;\n}\n\n.editorFooter {\n  padding: 0.25em 0em;\n  font-size: .9em;\n}\n\n#sidebar {\n     position: absolute;\n   right: 0em;\n   width: 16em;\n  font-size: .9em;\n}\n\n#sidebarOptions .button {\n      padding: 0.3em 1em;\n   display: block;\n}\n\n#sidebarOptions input {\n margin: 0.4em 1em;\n}\n\n#sidebarOptions .sliderPanel {\n       padding: 0.5em;\n       font-size: .85em;\n}\n\n#sidebarOptions .sliderPanel a {\n      font-weight: bold;\n}\n\n#sidebarOptions .sliderPanel input {\n margin: 0 0 .3em 0;\n}\n\n\n#sidebarTabs .tabContents {\n       width: 15em;\n  overflow: hidden;\n}\n\n#sidebarTabs .tabSelected {\n   position: relative;\n   top: -2px;\n}\n\n.sparkline {\n line-height: 1em;\n}\n\n.sparktick {\n  outline: 0;\n}\n\n.zoomer {\n   font-size: 1.1em;\n     position: absolute;\n   padding: 1em;\n}\n/*}}}*/"; 
    209 config.shadowTiddlers.PageTemplate = "<div id='header'>\n<div id='titleLine'>\n<span id='siteTitle' refresh='content' tiddler='SiteTitle'></span>\n<span id='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n</div>\n<div id='sidebar'>\n<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n</div>\n<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>\n<div id='displayArea'>\n<div id='messageArea'></div>\n<div id='tiddlerDisplay'></div>"; 
     218// Shadow tiddlers 
     219// --------------------------------------------------------------------------------- 
     220 
     221config.shadowTiddlers.StyleSheetColors = "/***\n!Color Sections in this Tiddler:\n*Generic rules\n*Header\n*Main menu\n*Sidebar options\n*Sidebar tabs\n*Message area\n*Popup\n*Tiddler display\n**Misc. tiddler rules\n**Viewer\n**Editor\n!Colors Used\n*@@bgcolor(#630):color(#fff): #630@@\n*@@bgcolor(#930): #930@@\n*@@bgcolor(#996633): #963@@\n*@@bgcolor(#c90): #c90@@\n*@@bgcolor(#cf6): #cf6@@\n*@@bgcolor(#cc9): #cc9@@\n*@@bgcolor(#ba9): #ba9@@\n*@@bgcolor(#996): #996@@\n*@@bgcolor(#300):color(#fff): #300@@\n*@@bgcolor(#000000):color(#fff): #000@@\n*@@bgcolor(#666): #666@@\n*@@bgcolor(#888): #888@@\n*@@bgcolor(#aaa): #aaa@@\n*@@bgcolor(#ddd): #ddd@@\n*@@bgcolor(#eee): #eee@@\n*@@bgcolor(#ffffff): #fff@@\n*@@bgcolor(#f00): #f00@@\n*@@bgcolor(#ffe72f): #ffe72f@@\n*@@bgcolor(#402c74):color(#fff): #402c74@@\n!Generic Rules /%==============================================%/\n***/\n/*{{{*/\nbody {\n background: #fff;\n     color: #000;\n}\n\na{\n color: #963;\n}\n\na:hover{\n   background: #963;\n     color: #fff;\n}\n\na img{\n     border: 0;\n}\n\nh1,h2,h3,h4,h5 {\n     background: #cc9;\n}\n/*}}}*/\n/***\n!Header /%==================================================%/\n***/\n/*{{{*/\n#titleLine {\n      color: #fff;\n  background: #300;\n}\n\n#titleLine a {\n        color: #cf6;\n}\n\n#titleLine a:hover {\n       background: transparent;\n}\n/*}}}*/\n/***\n!Main Menu /%=================================================%/\n***/\n/*{{{*/\n#mainMenu .button {\n      color: #930;\n}\n\n#mainMenu .button:hover {\n  color: #cf6;\n  background: #930;\n}\n/*}}}*/\n/***\n!Sidebar options /%=================================================%/\n~TiddlyLinks and buttons are treated identically in the sidebar and slider panel\n***/\n/*{{{*/\n#sidebarOptions {\n       background: #c90;\n}\n\n#sidebarOptions a{\n    color: #930;\n}\n\n#sidebarOptions a:hover {\n  color: #cf6;\n  background: #930;\n}\n\n#sidebarOptions a:active {\n    color: #930;\n  background: #cf6;\n}\n\n#sidebarOptions .sliderPanel {\n        background: #eea;\n}\n\n#sidebarOptions .sliderPanel a {\n      color: #930;\n}\n\n#sidebarOptions .sliderPanel a:hover {\n     color: #cf6;\n  background: #930;\n}\n\n#sidebarOptions .sliderPanel a:active {\n       color: #930;\n  background: #cf6;\n}\n/*}}}*/\n/***\n!Sidebar tabs /%=================================================%/\n***/\n/*{{{*/\n.tabSelected,.tabContents {\n  background: #eea;\n}\n\n.tabUnselected {\n      background: #c90;\n}\n\n#sidebarTabs {\n        background: #c90;\n}\n\n#sidebarTabs .tabSelected{\n    color: #cf6;\n  background: #963;\n}\n\n#sidebarTabs .tabUnselected {\n color: #cf6;\n  background: #930;\n}\n\n#sidebarTabs .tabContents{\n    background: #963;\n}\n\n#sidebarTabs .txtMoreTab .tabSelected,\n#sidebarTabs .txtMoreTab .tabSelected:hover{\n  background: #930;\n     color: #cf6;\n}\n\n#sidebarTabs .txtMoreTab .tabUnselected,\n#sidebarTabs .txtMoreTab .tabUnselected:hover{\n   background: #300;\n     color: #cf6;\n}\n\n#sidebarTabs .txtMoreTab .tabContents {\n    background: #930;\n}\n\n#sidebarTabs .tabContents a {\n color: #cf6;\n}\n\n#sidebarTabs .tabContents a:hover {\n        background: #cf6;\n     color: #300;\n}\n/*}}}*/\n/***\n!Message Area /%=================================================%/\n***/\n/*{{{*/\n#messageArea {\n    background: #930;\n     color: #fff;\n}\n\n#messageArea a:link, #messageArea a:visited {\n      color: #c90;\n}\n\n#messageArea a:hover {\n     color: #963;\n  background: transparent;\n}\n\n#messageArea a:active {\n        color: #fff;\n}\n/*}}}*/\n/***\n!Popup /%=================================================%/\n***/\n/*{{{*/\n.popup {\n background: #eea;\n     border: 1px solid #930;\n}\n\n.popup hr {\n     color: #963;\n  background: #963;\n     border-bottom: 1px;\n}\n\n.popup li.disabled {\n        color: #ba9;\n}\n\n.popup li a, .popup li a:visited {\n color: #300;\n}\n\n.popup li a:hover {\n        background: #930;\n     color: #eea;\n}\n/*}}}*/\n/***\n!Tiddler Display /%=================================================%/\n***/\n/*{{{*/\n.tiddler .button {\n     color: #930;\n}\n\n.tiddler .button:hover {\n   color: #cf6;\n  background: #930;\n}\n\n.tiddler .button:active {\n     color: #fff;\n  background: #c90;\n}\n\n.shadow .title {\n      color: #888;\n}\n\n.toolbar {\n color: #aaa;\n}\n\n.footer {\n  color: #ddd;\n}\n\n.selectedTiddler .footer {\n color: #888;\n}\n\n.sparkline {\n       background: #eea;\n     border: 0;\n}\n\n.sparktick {\n background: #930;\n}\n\n.errorNoSuchMacro {\n   color: #ff0;\n  background: #f00;\n}\n\n.zoomer {\n     color: #963;\n  border: 1px solid #963;\n}\n/*}}}*/\n/***\n''The viewer is where the tiddler content is displayed'' /%------------------------------------------------%/\n***/\n/*{{{*/\n.viewer .button {\n    background: #c90;\n     color: #300;\n  border-right: 1px solid #300;\n border-bottom: 1px solid #300;\n}\n\n.viewer .button:hover {\n  background: #eea;\n     color: #c90;\n}\n\n.viewer blockquote {\n       border-left: 3px solid #666;\n}\n\n.viewer table {\n    border: 2px solid #303030;\n}\n\n.viewer th, thead td {\n       background: #996;\n     border: 1px solid #606060;\n    color: #fff;\n}\n\n.viewer td, .viewer tr {\n   border: 1px solid #606060;\n}\n\n.viewer pre {\n        border: 1px solid #963;\n       background: #eea;\n}\n\n.viewer code {\n        color: #630;\n}\n\n.viewer hr {\n       border: 0;\n    border-top: dashed 1px #606060;\n       color: #666;\n}\n\n.highlight, .marked {\n      background: #ffe72f;\n}\n/*}}}*/\n/***\n''The editor replaces the viewer in the tiddler'' /%------------------------------------------------%/\n***/\n/*{{{*/\n.editor {\n      color: #402C74;\n}\n\n.editor input {\n border: 1px solid #000;\n}\n\n.editor textarea {\n      border: 1px solid #000;\n       width: 100%;\n}\n\n.editorFooter {\n    color: #aaa;\n}\n\n.editorFooter a {\n  color: #930;\n}\n\n.editorFooter a:hover {\n    color: #cf6;\n  background: #930;\n}\n\n.editorFooter a:active {\n      color: #fff;\n  background: #c90;\n}\n/*}}}*/"; 
     222config.shadowTiddlers.StyleSheetLayout = "/***\n!Sections in this Tiddler:\n*Generic rules\n**Links styles\n**Link Exceptions\n*Header\n*Main menu\n*Sidebar\n**Sidebar options\n**Sidebar tabs\n*Message area\n*Popup\n*Tabs\n*Tiddler display\n**Viewer\n**Editor\n*Misc. rules\n!Generic Rules /%==============================================%/\n***/\n/*{{{*/\nbody {\n   font-size: .75em;\n     font-family: verdana,arial,helvetica;\n position: relative;\n   margin: 0;\n    padding: 0;\n}\n\nh1,h2,h3,h4,h5 {\n    font-weight: bold;\n    text-decoration: none;\n        padding-left: 0.4em;\n}\n\nh1 {font-size: 1.35em;}\nh2 {font-size: 1.25em;}\nh3 {font-size: 1.1em;}\nh4 {font-size: 1em;}\nh5 {font-size: .9em;}\n\nhr {\n      height: 1px;\n}\n\nimg{\n       display: block;\n}\n\na{\n      text-decoration: none;\n}\n/*}}}*/\n/***\n''Gerneral Link Styles'' /%-----------------------------------------------------------------------------%/\n***/\n/*{{{*/\n.externalLink {\n  text-decoration: underline;\n}\n\n.tiddlyLinkExisting {\n       font-weight: bold;\n}\n\n.tiddlyLinkNonExisting {\n     font-style: italic;\n}\n\n/* the 'a' is required for IE, otherwise it renders the whole tiddler a bold */\na.tiddlyLinkNonExisting.shadow {\n   font-weight: bold;\n}\n/*}}}*/\n/***\n''Exceptions to common link styles'' /%------------------------------------------------------------------%/\n***/\n/*{{{*/\n\n#mainMenu .tiddlyLinkExisting, \n#mainMenu .tiddlyLinkNonExisting,\n#sidebarTabs .tiddlyLinkExisting,\n#sidebarTabs .tiddlyLinkNonExisting,\n#siteTitle .tiddlyLinkExisting,\n#siteTitle .tiddlyLinkNonExisting{\n font-weight: normal;\n font-style: normal;\n}\n\n/*}}}*/\n/***\n!Header /%==================================================%/\n***/\n/*{{{*/\n#titleLine {\n    padding: 5em 1em 1em 1em;\n}\n\n#siteTitle {\n  font-size: 3em;\n}\n\n#siteSubtitle {\n padding-left: 1em;\n    font-size: 1.1em;\n}\n/*}}}*/\n/***\n!Main menu /%==================================================%/\n***/\n/*{{{*/\n#mainMenu {\n    position: absolute;\n   left: 0;\n      width: 10em;\n  text-align: right;\n    line-height: 1.6em;\n   padding: 1.5em 0.5em 0.5em 0.5em;\n     font-size: 1.1em;\n}\n\n/*}}}*/\n/***\n!Sidebar rules /%==================================================%/\n***/\n/*{{{*/\n#sidebar {\n       position: absolute;\n   right: 0em;\n   width: 16em;\n  font-size: .9em;\n}\n/*}}}*/\n/***\n''Sidebar options'' /%----------------------------------------------------------------------------------%/\n***/\n/*{{{*/\n#sidebarOptions .button {\n      padding: 0.3em 1em;\n   display: block;\n}\n\n#sidebarOptions input {\n margin: 0.4em 1em;\n}\n\n#sidebarOptions .sliderPanel {\n       padding: 0.5em;\n       font-size: .85em;\n}\n\n#sidebarOptions .sliderPanel a {\n      font-weight: bold;\n}\n\n#sidebarOptions .sliderPanel input {\n margin: 0 0 .3em 0;\n}\n/*}}}*/\n/***\n''Sidebar tabs'' /%-------------------------------------------------------------------------------------%/\n***/\n/*{{{*/\n#sidebarTabs .tabContents {\n width: 15em;\n  overflow: hidden;\n}\n\n#sidebarTabs .tabSelected {\n   position: relative;\n   top: -2px;\n}\n/*}}}*/\n/***\n!Message area /%==================================================%/\n***/\n/*{{{*/\n#messageArea {\n     padding: 0.5em;\n}\n\n#messageArea a{\n text-decoration: underline;\n}\n/*}}}*/\n/***\n!Popup /%==================================================%/\n***/\n/*{{{*/\n.popup {\n font-size: .9em;\n      padding: 0.2em;\n       list-style: none;\n     margin: 0;\n}\n\n.popup hr {\n  display: block;\n       height: 1px;\n  width: auto;\n  padding: 0;\n   margin: 0.2em 0em;\n}\n\n.popup li.disabled {\n padding: 0.2em;\n}\n\n.popup li a{\n    display: block;\n       padding: 0.2em;\n}\n/*}}}*/\n/***\n!Tabs /%==================================================%/\n***/\n/*{{{*/\n.tabset {\n     padding: 1em 0em 0em 0.5em;\n}\n\n.tab {\n      margin: 0em 0em 0em 0.25em;\n   padding: 2px;\n}\n\n.tabContents {\n    padding: 0.5em;\n}\n\n.tabContents ul, .tabContents ol {\n      margin: 0;\n    padding: 0;\n}\n\n.tabContents li {\n   list-style: none;\n}\n\n.tabContents li.listLink {\n   margin-left: .75em;\n}\n/*}}}*/\n/***\n!Tiddler display rules /%==================================================%/\n***/\n/*{{{*/\n#displayArea {\n    margin: 1em 17em 0em 14em;\n}\n\n.toolbar {\n   text-align: right;\n    font-size: .9em;\n      visibility: hidden;\n}\n\n.selectedTiddler .toolbar {\n visibility: visible;\n}\n\n.tiddler {\n padding: 1em 1em 0em 1em;\n}\n\n.title {\n      font-size: 1.1em;\n     font-weight: bold;\n}\n\n/* I'm not a fan of how button looks in tiddlers... */\n.tiddler .button {\n   padding: 0.2em 0.4em;\n}\n\n.footer {\n font-size: .9em;\n}\n\n.body {\n        padding-top: 0.5em;\n}\n/*}}}*/\n/***\n''The viewer is where the tiddler content is displayed'' /%------------------------------------------------%/\n***/\n/*{{{*/\n.viewer {\n        line-height: 1.4em;\n}\n\n.viewer .button {\n   margin: 0em 0.25em;\n   padding: 0em 0.25em;\n}\n\n.viewer blockquote {\n       line-height: 1.5em;\n   padding-left: 0.8em;\n  margin-left: 2.5em;\n}\n\n.viewer ul, .viewer ol{\n     margin-left: 0.5em;\n   padding-left: 1.5em;\n}\n\n.viewer table {\n    border-collapse: collapse;\n    margin: 0.8em 1.0em;\n}\n\n.viewer th, .viewer td, .viewer tr,.viewer caption{\n        padding: 3px;\n}\n\n.viewer pre {\n     padding: 0.5em;\n       margin-left: 0.5em;\n   font-size: 1.2em;\n     line-height: 1.4em;\n   overflow: auto;\n}\n\n.viewer code {\n  font-size: 1.2em;\n     line-height: 1.4em;\n}\n/*}}}*/\n/***\n''The editor replaces the viewer in the tiddler'' /%------------------------------------------------%/\n***/\n/*{{{*/\n.editor {\n       font-size: 0.9em;\n}\n\n.editor input, .editor textarea {\n     display: block;\n       width: 100%;\n  font: inherit;\n}\n\n.editorFooter {\n  padding: 0.25em 0em;\n  font-size: .9em;\n}\n/*}}}*/\n/***\n!Misc rules /%==================================================%/\n***/\n/*{{{*/\n.sparkline {\n   line-height: 1em;\n}\n\n.sparktick {\n  outline: 0;\n}\n\n.zoomer {\n   font-size: 1.1em;\n     position: absolute;\n   padding: 1em;\n}\n/*}}}*/"; 
     223config.shadowTiddlers.StyleSheetPrint = "@media print {\n#mainMenu, #sidebar, #messageArea {display: none ! important;}\n#displayArea {margin: 1em 1em 0em 1em;}\n}"; 
     224config.shadowTiddlers.PageTemplate = "<div id='header'>\n<div id='titleLine' macro='gradient vert #000000 #333333 #555555 #777777 #999999 #aaaaaa #ffffff'>\n<span id='siteTitle' refresh='content' tiddler='SiteTitle'></span>\n<span id='siteSubtitle' refresh='content' tiddler='SiteSubtitle'></span>\n</div>\n</div>\n<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>\n<div id='sidebar'>\n<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>\n<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>\n</div>\n<div id='displayArea'>\n<div id='messageArea'></div>\n<div id='tiddlerDisplay'></div>\n</div>"; 
     225config.shadowTiddlers.ViewTemplate = "<div class='toolbar'><div macro='closeTiddler'></div><div macro='editTiddler'></div><div macro='permalink'></div><div macro='references'></div></div><div class='title' macro='view title'></div>\n<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date [[DD MMM YYYY]]'></span></div>\n<div class='viewer' macro='view text wikified'></div>\n<div class='footer'>\n<span macro='message '></span><span macro='tags'></span>\n</div>"; 
     226config.shadowTiddlers.EditTemplate = "<div class='toolbar'><div macro='saveTiddler'></div><div macro='cancelTiddler'></div><div macro='deleteTiddler'></div></div>\n<div class='title' macro='view title'></div>\n<div class='editor' macro='edit title'></div>\n<div class='editor' macro='edit text'></div>\n<div class='editor' macro='edit tags'></div>"; 
    210227 
    211228// --------------------------------------------------------------------------------- 
     
    215232// TiddlyWiki storage 
    216233var store = new TiddlyWiki(); 
     234 
     235// Main story 
     236var story = new Story("tiddlerDisplay","tiddler"); 
    217237 
    218238// Animation engine 
     
    241261        var start = store.getTiddlerText("DefaultTiddlers"); 
    242262        if(window.location.hash) 
    243                 displayTiddlers(null,convertUTF8ToUnicode(decodeURI(window.location.hash.substr(1))),1,null,null); 
     263                story.displayTiddlers(null,convertUTF8ToUnicode(decodeURI(window.location.hash.substr(1))).readBracketedList()); 
    244264        else if(start) 
    245                 displayTiddlers(null,start,1,null,null); 
     265                story.displayTiddlers(null,start.readBracketedList()); 
    246266} 
    247267 
     
    279299                } 
    280300        return null; 
     301} 
     302 
     303function invokeMacro(place,macro,params,wikifier,tiddler) 
     304{ 
     305        try 
     306                { 
     307                var m = config.macros[macro]; 
     308                if(m && m.handler) 
     309                        m.handler(place,macro,params.readMacroParams(),wikifier,params,tiddler); 
     310                else 
     311                        createTiddlyError(place,config.messages.macroError.format([macro]),config.messages.macroErrorDetails.format([macro,config.messages.missingMacro])); 
     312                } 
     313        catch(ex) 
     314                { 
     315                createTiddlyError(place,config.messages.macroError.format([macro]),config.messages.macroErrorDetails.format([macro,ex.toString()])); 
     316                } 
    281317} 
    282318 
     
    381417                                        w.nextMatch = w.nextMatch + 1; 
    382418                                        w.subWikify(rowContainer,this.rowTerminator); 
     419                                        table.insertBefore(rowContainer,table.firstChild); 
    383420                                        } 
    384421                                else 
     
    703740                                else 
    704741                                        e = createExternalLink(w.output,lookaheadMatch[5]); 
     742                                addClass(e,"imageLink"); 
    705743                                } 
    706744                        var img = createTiddlyElement(e,"img"); 
     
    720758        name: "macro", 
    721759        match: "<<", 
    722         lookahead: "<<([^>\\s]+)(?:\\s*)([^>]*)>>", 
     760        lookahead: "<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*)>>", 
    723761        handler: function(w) 
    724762        { 
     
    727765                var lookaheadMatch = lookaheadRegExp.exec(w.source) 
    728766                if(lookaheadMatch && lookaheadMatch.index == w.matchStart && lookaheadMatch[1]) 
    729                         { 
    730                         var params = lookaheadMatch[2].readMacroParams();                        
     767                        {                
    731768                        w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length; 
    732                         try 
    733                                 { 
    734                                 var macro = config.macros[lookaheadMatch[1]]; 
    735                                 if(macro && macro.handler) 
    736                                         macro.handler(w.output,lookaheadMatch[1],params,w); 
    737                                 else 
    738                                         createTiddlyElement(w.output,"span",null,"errorNoSuchMacro","<<" + lookaheadMatch[1] + ">>"); 
    739                                 } 
    740                         catch(e) 
    741                                 { 
    742                                 displayMessage(config.messages.macroError.format([lookaheadMatch[1]])); 
    743                                 displayMessage(e.toString()); 
    744                                 } 
     769                        invokeMacro(w.output,lookaheadMatch[1],lookaheadMatch[2],w,w.tiddler); 
    745770                        } 
    746771        } 
     
    876901// --------------------------------------------------------------------------------- 
    877902 
    878 function wikify(source,output,highlightText,highlightCaseSensitive) 
    879 { 
    880         var w = new Wikifier(source,output,config.formatters,highlightText,highlightCaseSensitive); 
    881 } 
    882  
    883 function Wikifier(source,output,formatters,highlightText,highlightCaseSensitive) 
     903function wikify(source,output,highlightText,highlightCaseSensitive,tiddler) 
     904{ 
     905        var w = new Wikifier(source,output,config.formatters,highlightText,highlightCaseSensitive,tiddler); 
     906        if(source && source != "") 
     907                w.subWikify(output,null); 
     908} 
     909 
     910function Wikifier(source,output,formatters,highlightText,highlightCaseSensitive,tiddler) 
    884911{ 
    885912        this.source = source; 
     
    890917        this.highlightRegExp = null; 
    891918        this.highlightMatch = null; 
     919        this.tiddler = tiddler; 
    892920        this.assembleFormatterMatches(formatters); 
    893921        if(highlightText) 
     
    896924                this.highlightMatch = this.highlightRegExp.exec(this.source); 
    897925                } 
    898         if(source && source != "") 
    899                 this.subWikify(output,null); 
    900926        return this; 
    901927} 
     
    11011127        var doSearch = function(txt) 
    11021128                { 
    1103                 closeAllTiddlers(); 
     1129                story.closeAllTiddlers(); 
    11041130                var matches = store.search(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch,"title","excludeSearch"); 
     1131                story.highlight(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch); 
    11051132                for(var t=matches.length-1; t>=0; t--) 
    1106                         displayTiddler(null,matches[t].title,0,txt.value,config.options.chkCaseSensitiveSearch,false,false); 
     1133                        story.displayTiddler(null,matches[t].title); 
    11071134                var q = config.options.chkRegExpSearch ? "/" : "'"; 
    11081135                if(matches.length > 0) 
     
    11621189        var text = store.getTiddlerText(params[0]); 
    11631190        if(text) 
    1164                 wikify(text,wrapper); 
     1191                wikify(text,wrapper,null,null,store.getTiddler(params[0])); 
    11651192} 
    11661193 
     
    11701197} 
    11711198 
     1199config.macros.tags.handler = function(place,macroName,params,wikifier,paramString,tiddler) 
     1200{ 
     1201        if(params[0] && store.tiddlerExists[params[0]]) 
     1202                tiddler = store.getTiddler(params[0]); 
     1203        var lingo = config.views.wikified.tag; 
     1204        var prompt = tiddler.tags.length == 0 ? lingo.labelNoTags : lingo.labelTags; 
     1205        var theTags = createTiddlyElement(place,"div",null,null,prompt); 
     1206        for(var t=0; t<tiddler.tags.length; t++) 
     1207                { 
     1208                var theTag = createTagButton(theTags,tiddler.tags[t],tiddler.title); 
     1209                createTiddlyText(theTags," "); 
     1210                } 
     1211} 
     1212 
    11721213config.macros.closeAll.handler = function(place) 
    11731214{ 
    1174         createTiddlyButton(place,this.label,this.prompt,function () {closeAllTiddlers(); return false;}); 
     1215        createTiddlyButton(place,this.label,this.prompt,function () {story.closeAllTiddlers(); return false;}); 
    11751216} 
    11761217 
     
    12101251        panel.style.display = config.options[cookie] ? "block" : "none"; 
    12111252        if(text) 
    1212                 wikify(text,panel); 
     1253                wikify(text,panel,null,null,store.getTiddler(params[1])); 
    12131254} 
    12141255 
     
    12721313config.macros.newTiddler.onClick = function() 
    12731314{ 
    1274         displayTiddler(null,config.macros.newTiddler.title,2,null,null,false,false); 
     1315        displayTiddler(null,config.macros.newTiddler.title,"EditTemplate"); 
    12751316        var e = document.getElementById("editorTitle" + config.macros.newTiddler.title); 
    12761317        e.focus(); 
     
    12921333                var title = now.formatString(params[0].trim()); 
    12931334                var createJournal = function() { 
    1294                         displayTiddler(null,title,2,null,null,false,false); 
     1335                        displayTiddler(null,title,"EditTemplate"); 
    12951336                        var tagsBox = document.getElementById("editorTags" + title); 
    12961337                        if(tagsBox && params[1]) 
     
    13901431                var tabContent = createTiddlyElement(null,"div",null,"tabContents",null); 
    13911432                tabset.parentNode.insertBefore(tabContent,tabset.nextSibling); 
    1392                 wikify(store.getTiddlerText(theTab.getAttribute("content")),tabContent); 
     1433                var contentTitle = theTab.getAttribute("content"); 
     1434                wikify(store.getTiddlerText(contentTitle),tabContent,null,null,store.getTiddler(contentTitle)); 
    13931435                if(cookie) 
    13941436                        { 
     
    14031445{ 
    14041446        var terminator = ">>"; 
    1405         var panel = createTiddlyElement(place,"div",null,"gradient",null); 
     1447        var panel; 
     1448        if(wikifier) 
     1449                panel = createTiddlyElement(place,"div",null,"gradient",null); 
     1450        else 
     1451                panel = place; 
    14061452        panel.style.position = "relative"; 
    14071453        panel.style.overflow = "hidden"; 
    1408         var styles = config.formatterHelpers.inlineCssHelper(wikifier); 
    1409         var t; 
    1410         for(t=0; t<styles.length; t++) 
    1411                 panel.style[styles[t].style] = styles[t].value; 
     1454        if(wikifier) 
     1455                { 
     1456                var styles = config.formatterHelpers.inlineCssHelper(wikifier); 
     1457                var t; 
     1458                for(t=0; t<styles.length; t++) 
     1459                        panel.style[styles[t].style] = styles[t].value; 
     1460                } 
    14121461        var colours = []; 
    14131462        for(t=1; t<params.length; t++) 
     
    14181467                } 
    14191468        drawGradient(panel,params[0] != "vert",colours); 
    1420         wikifier.subWikify(panel,terminator); 
     1469        if(wikifier) 
     1470                wikifier.subWikify(panel,terminator); 
    14211471        if(document.all) 
    14221472                { 
    14231473                panel.style.height = "100%"; 
    14241474                panel.style.width = "100%"; 
     1475                } 
     1476} 
     1477 
     1478config.macros.message.handler = function(place,macroName,params) 
     1479{ 
     1480        if(params[0]) 
     1481                { 
     1482                var m = config.messages; 
     1483                var p = params[0].split("."); 
     1484                for(var t=0; t<p.length; t++) 
     1485                        { 
     1486                        if(p[t] in m) 
     1487                                m = m[p[t]]; 
     1488                        } 
     1489                createTiddlyText(place,m); 
     1490                } 
     1491} 
     1492 
     1493config.macros.closeTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) 
     1494{ 
     1495        if(tiddler instanceof Tiddler) 
     1496                { 
     1497                var title = tiddler.title; 
     1498                var onclick = function(e) { 
     1499                        if (!e) var e = window.event; 
     1500                        story.closeTiddler(title,true,e.shiftKey || e.altKey); 
     1501                        return false; 
     1502                        }; 
     1503                var lingo = config.views.wikified.toolbarClose; 
     1504                createTiddlyButton(place,lingo.text,lingo.tooltip,onclick); 
     1505                } 
     1506} 
     1507 
     1508config.macros.editTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) 
     1509{ 
     1510        if(tiddler instanceof Tiddler) 
     1511                { 
     1512                var title = tiddler.title; 
     1513                var onclick = function(e) { 
     1514                        if (!e) var e = window.event; 
     1515                        story.displayTiddler(null,title,"EditTemplate"); 
     1516                        return false; 
     1517                        }; 
     1518                var lingo = config.views.wikified.toolbarEdit; 
     1519                createTiddlyButton(place,lingo.text,lingo.tooltip,onclick); 
     1520                } 
     1521} 
     1522 
     1523config.macros.saveTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) 
     1524{ 
     1525        if(tiddler instanceof Tiddler) 
     1526                { 
     1527                var title = tiddler.title; 
     1528                var onclick = function(e) { 
     1529                        if (!e) var e = window.event; 
     1530                        story.saveTiddler(title,e.shiftKey); 
     1531                        return false; 
     1532                        }; 
     1533                var lingo = config.views.editor.toolbarDone; 
     1534                createTiddlyButton(place,lingo.text,lingo.tooltip,onclick); 
     1535                } 
     1536} 
     1537 
     1538config.macros.cancelTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) 
     1539{ 
     1540        if(tiddler instanceof Tiddler) 
     1541                { 
     1542                var title = tiddler.title; 
     1543                var onclick = function(e) { 
     1544                        if (!e) var e = window.event; 
     1545                        story.displayTiddler(null,title); 
     1546                        return false; 
     1547                        }; 
     1548                var lingo = config.views.editor.toolbarCancel; 
     1549                createTiddlyButton(place,lingo.text,lingo.tooltip,onclick); 
     1550                } 
     1551} 
     1552 
     1553config.macros.deleteTiddler.handler = function(place,macroName,params,wikifier,paramString,tiddler) 
     1554{ 
     1555        if(tiddler instanceof Tiddler) 
     1556                { 
     1557                var title = tiddler.title; 
     1558                var onclick = function(e) { 
     1559                        if (!e) var e = window.event; 
     1560                        store.removeTiddler(title); 
     1561                        story.closeTiddler(title,true,e.shiftKey || e.altKey); 
     1562                        return false; 
     1563                        }; 
     1564                var lingo = config.views.editor.toolbarDelete; 
     1565                createTiddlyButton(place,lingo.text,lingo.tooltip,onclick); 
     1566                } 
     1567} 
     1568 
     1569config.macros.permalink.handler = function(place,macroName,params,wikifier,paramString,tiddler) 
     1570{ 
     1571        if(tiddler instanceof Tiddler) 
     1572                { 
     1573                var title = tiddler.title; 
     1574                var onclick = function(e) {