Changeset 70

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

TiddlyWiki 1.2.39

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • Branches/1.2.39/tiddlywiki.html

    r69 r70  
    1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
     1<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
    22<script type="text/javascript"> 
    3 var version = {major: 1, minor: 2, revision: 39, beta: 3, date: new Date("Nov 29, 2005"), extensions: {}}; 
     3var version = {major: 1, minor: 2, revision: 39, date: new Date("Nov 30, 2005"), extensions: {}}; 
    44</script> 
    55<!-- 
    6 TiddlyWiki 1.2.39 beta 3 by Jeremy Ruston, (jeremy [at] osmosoft [dot] com) 
     6TiddlyWiki 1.2.39 by Jeremy Ruston, (jeremy [at] osmosoft [dot] com) 
     7 
     8Published under a BSD open source license 
    79 
    810Copyright (c) Osmosoft Limited 2005 
     
    3638<head> 
    3739<meta http-equiv="Content-Type" content="text/html;charset=utf-8" > 
    38 <title>TiddlyWiki 1.2.39 (beta 3) - a reusable non-linear personal web notebook</title> 
     40<title>TiddlyWiki - a reusable non-linear personal web notebook</title> 
    3941<script type="text/javascript"> 
    4042 
     
    5961                chkForceMinorUpdate: false, 
    6062                txtMainTab: "tabTimeline", 
    61                 txtMoreTab: "moreTabAll", 
    62                 txtStyleSheet: "StyleSheet", 
    63                 txtPageTemplate: "PageTemplate", 
    64                 txtViewTemplate: "ViewTemplate", 
    65                 txtEditTemplate: "EditTemplate" 
     63                txtMoreTab: "moreTabAll" 
    6664                }, 
    6765        // List of notification functions to be called when certain tiddlers are changed or deleted 
     
    6967                {name: "StyleSheetColors", notify: refreshStyles}, 
    7068                {name: "StyleSheetLayout", notify: refreshStyles}, 
    71                 {name: "StyleSheetPrint", notify: refreshStyles}, 
    7269                {name: "StyleSheet", notify: refreshStyles}, 
    73                 {name: "PageTemplate", notify: refreshPageTemplate}, 
    74                 {name: null, notify: refreshDisplay} 
     70                {name: null, notify: refreshMenu}, 
     71                {name: null, notify: refreshStory}, 
     72                {name: null, notify: refreshTabs}, 
     73                {name: "SiteTitle", notify: refreshTitle}, 
     74                {name: "SiteSubtitle", notify: refreshSubtitle}, 
     75                {name: "SideBarOptions", notify: refreshSidebar} 
    7576                ], 
     77        // Shadow tiddlers for emergencies 
     78        shadowTiddlers: { 
     79                SideBarOptions: "<<gradient vert #ffffff #cc9900>><<search>><<closeAll>><<permaview>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel options 'Change TiddlyWiki advanced options'>>>>", 
     80                OptionsPanel: "These InterfaceOptions for customising TiddlyWiki are saved in your browser\n\nYour username for signing your edits. Write it as a WikiWord (eg JoeBloggs)\n\n<<option txtUserName>>\n<<option chkSaveBackups>> SaveBackups\n<<option chkAutoSave>> AutoSave\n<<option chkGenerateAnRssFeed>> GenerateAnRssFeed\n<<option chkRegExpSearch>> RegExpSearch\n<<option chkCaseSensitiveSearch>> CaseSensitiveSearch\n<<option chkAnimate>> EnableAnimations\n\nSee AdvancedOptions", 
     81                AdvancedOptions: "<<option chkOpenInNewWindow>> OpenLinksInNewWindow\n<<option chkSaveEmptyTemplate>> SaveEmptyTemplate\n<<option chkToggleLinks>> Clicking on links to tiddlers that are already open causes them to close\n^^(override with Control or other modifier key)^^\n<<option chkHttpReadOnly>> HideEditingFeatures when viewed over HTTP\n<<option chkForceMinorUpdate>> Treat edits as MinorChanges by preserving date and time\n^^(override with Shift key when clicking 'done' or by pressing Ctrl-Shift-Enter^^", 
     82                SideBarTabs: "<<tabs txtMainTab Timeline Timeline TabTimeline All 'All tiddlers' TabAll Tags 'All tags' TabTags More 'More lists' TabMore>>", 
     83                TabTimeline: "<<timeline>>", 
     84                TabAll: "<<list all>>", 
     85                TabTags: "<<allTags>>", 
     86                TabMore: "<<tabs txtMoreTab Missing 'Missing tiddlers' TabMoreMissing Orphans 'Orphaned tiddlers' TabMoreOrphans>>", 
     87                TabMoreMissing: "<<list missing>>", 
     88                TabMoreOrphans: "<<list orphans>>" 
     89                }, 
    7690        // Miscellaneous options 
    7791        numRssItems: 20, // Number of items in the RSS feed 
    78         animFast: 0.08, // Speed for animations (lower == slower) 
     92        animFast: 0.12, // Speed for animations (lower == slower) 
    7993        animSlow: 0.01, // Speed for EasterEgg animations 
    8094        // Messages 
     
    98112                mainSaved: "Main TiddlyWiki file saved", 
    99113                mainFailed: "Failed to save main TiddlyWiki file. Your changes have not been saved", 
    100                 macroError: "Error in macro <<%0>>", 
    101                 macroErrorDetails: "Error while executing macro <<%0>>:\n%1", 
    102                 missingMacro: "No such macro", 
     114                macroError: "Error executing macro '%0'", 
    103115                overwriteWarning: "A tiddler named '%0' already exists. Choose OK to overwrite it", 
    104116                unsavedChangesWarning: "WARNING! There are unsaved changes in TiddlyWiki\n\nChoose OK to save\nChoose CANCEL to discard", 
     
    112124                        tag: {labelNoTags: "no tags", labelTags: "tags: ", tooltip: "Show tiddlers tagged with '%0'", openAllText: "Open all", openAllTooltip: "Open all of these tiddlers", popupNone: "No other tiddlers tagged with '%0'"}, 
    113125                        toolbarClose: {text: "close", tooltip: "Close this tiddler"}, 
    114                         toolbarCloseOthers: {text: "close others", tooltip: "Close all other tiddlers"}, 
    115126                        toolbarEdit: {text: "edit", tooltip: "Edit this tiddler"}, 
    116127                        toolbarPermalink: {text: "permalink", tooltip: "Permalink for this tiddler"}, 
    117128                        toolbarReferences: {text: "references", tooltip: "Show tiddlers that link to this one", popupNone: "No references"}, 
    118                         defaultText: "The tiddler '%0' doesn't yet exist. Double-click to create it", 
    119                         defaultModifier: "Noone", 
    120                         shadowModifier: "Shadow" 
     129                        defaultText: "The tiddler '%0' doesn't yet exist. Double-click to create it" 
    121130                        }, 
    122131                editor: { 
     
    135144                tiddler: {}, 
    136145                tag: {}, 
    137                 tags: {}, 
    138146                timeline: {dateFormat: "DD MMM YYYY"}, 
    139147                allTags: {tooltip: "Show tiddlers tagged with '%0'", noTags: "There are no tagged tiddlers"}, 
     
    153161                sparkline: {}, 
    154162                tabs: {}, 
    155                 gradient: {}, 
    156                 message: {}, 
    157                 closeTiddler: {}, 
    158                 closeOthers: {}, 
    159                 editTiddler: {}, 
    160                 saveTiddler: {}, 
    161                 cancelTiddler: {}, 
    162                 deleteTiddler: {}, 
    163                 permalink: {}, 
    164                 references: {}, 
    165                 jump: {label: "jump", prompt: "Jump to another open tiddler"}, 
    166                 view: {}, 
    167                 edit: {}, 
    168                 tagChooser: {} 
     163                gradient: {} 
    169164                }, 
    170165        textPrimitives: {} 
     
    180175config.browser = { 
    181176        isIE: config.userAgent.indexOf("msie") != -1 && config.userAgent.indexOf("opera") == -1, 
    182         isSafari: config.userAgent.indexOf("applewebkit") != -1, 
    183         isBadSafari: config.userAgent.indexOf("applewebkit/416.11") != -1 
     177        isBadSafari: !((new RegExp("[\u0150\u0170]","g")).test("\u0150")) 
    184178        }; 
    185179 
     
    188182// --------------------------------------------------------------------------------- 
    189183 
    190 config.textPrimitives.upperLetter = "[A-Z\u00c0-\u00de\u0150\u0170]"; 
    191 config.textPrimitives.lowerLetter = "[a-z\u00df-\u00ff_0-9\\-\u0151\u0171]"; 
    192 config.textPrimitives.anyLetter = "[A-Za-z\u00c0-\u00de\u00df-\u00ff_0-9\\-\u0150\u0170\u0151\u0171]"; 
    193184if(config.browser.isBadSafari) 
    194185        { 
     
    197188        config.textPrimitives.anyLetter = "[A-Za-z\u00c0-\u00de\u00df-\u00ff_0-9\\-]"; 
    198189        } 
     190else 
     191        { 
     192        config.textPrimitives.upperLetter = "[A-Z\u00c0-\u00de\u0150\u0170]"; 
     193        config.textPrimitives.lowerLetter = "[a-z\u00df-\u00ff_0-9\\-\u0151\u0171]"; 
     194        config.textPrimitives.anyLetter = "[A-Za-z\u00c0-\u00de\u00df-\u00ff_0-9\\-\u0150\u0170\u0151\u0171]"; 
     195        } 
    199196config.textPrimitives.anyDigit = "[0-9]"; 
    200197config.textPrimitives.anyNumberChar = "[0-9\\.E]"; 
    201 config.textPrimitives.urlPattern = "(?:file|http|https|mailto|ftp):[^\\s'\"]+(?:/|\\b)"; 
     198config.textPrimitives.urlPattern = "(?:http|https|mailto|ftp):[^\\s'\"]+(?:/|\\b)"; 
    202199config.textPrimitives.unWikiLink = "~"; 
    203200config.textPrimitives.wikiLink = "(?:" + config.textPrimitives.unWikiLink + "{0,1})(?:(?:" + config.textPrimitives.upperLetter + "+" + 
     
    209206 
    210207// --------------------------------------------------------------------------------- 
    211 // Shadow tiddlers 
    212 // --------------------------------------------------------------------------------- 
    213  
    214  
    215 // Shadow tiddlers for emergencies 
    216 config.shadowTiddlers = { 
    217         SideBarOptions: "<<search>><<closeAll>><<permaview>><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel 'options »' 'Change TiddlyWiki advanced options'>>", 
    218         OptionsPanel: "These InterfaceOptions for customising TiddlyWiki are saved in your browser\n\nYour username for signing your edits. Write it as a WikiWord (eg JoeBloggs)\n\n<<option txtUserName>>\n<<option chkSaveBackups>> SaveBackups\n<<option chkAutoSave>> AutoSave\n<<option chkGenerateAnRssFeed>> GenerateAnRssFeed\n<<option chkRegExpSearch>> RegExpSearch\n<<option chkCaseSensitiveSearch>> CaseSensitiveSearch\n<<option chkAnimate>> EnableAnimations\n\nSee AdvancedOptions", 
    219         AdvancedOptions: "<<option chkOpenInNewWindow>> OpenLinksInNewWindow\n<<option chkSaveEmptyTemplate>> SaveEmptyTemplate\n<<option chkToggleLinks>> Clicking on links to tiddlers that are already open causes them to close\n^^(override with Control or other modifier key)^^\n<<option chkHttpReadOnly>> HideEditingFeatures when viewed over HTTP\n<<option chkForceMinorUpdate>> Treat edits as MinorChanges by preserving date and time\n^^(override with Shift key when clicking 'done' or by pressing Ctrl-Shift-Enter^^", 
    220         SideBarTabs: "<<tabs txtMainTab Timeline Timeline TabTimeline All 'All tiddlers' TabAll Tags 'All tags' TabTags More 'More lists' TabMore>>", 
    221         TabTimeline: "<<timeline>>", 
    222         TabAll: "<<list all>>", 
    223         TabTags: "<<allTags>>", 
    224         TabMore: "<<tabs txtMoreTab Missing 'Missing tiddlers' TabMoreMissing Orphans 'Orphaned tiddlers' TabMoreOrphans>>", 
    225         TabMoreMissing: "<<list missing>>", 
    226         TabMoreOrphans: "<<list orphans>>", 
    227         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(#ff3): #ff3@@\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#sidebar {\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.title {\n   color: #422;\n}\n\n.subtitle {\n        color: #866;\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.errorButton {\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: #ff3;\n}\n/*}}}*/\n/***\n''The editor replaces the viewer in the tiddler'' /%------------------------------------------------%/\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/*}}}*/", 
    228         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: 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\n#titleLine {\n    padding: 5em 0em 1em 0em;\n}\n\n#siteTitle {\n    font-size: 3em;\n margin-left: .33em;\n}\n\n#siteSubtitle {\n    padding-left: 1em;\n    font-size: 1.1em;\n}\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 a {\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    display: inline;\n      padding: 0;\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\n.toolbar {\n text-align: right;\n    font-size: .9em;\n      visibility: hidden;\n}\n\n.selected .toolbar {\n        visibility: visible;\n}\n\n.tiddler {\n padding: 1em 1em 0em 1em;\n}\n\n.missing .body,.missing .title {\n      font-style: italic;\n}\n\n.title {\n    font-size: 2em;\n       font-weight: bold;\n}\n\n.subtitle {\n  font-size: 1.25em;\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 {\nfont-size: 1.1em;\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/*}}}*/", 
    229         StyleSheetPrint: "@media print {\n#mainMenu, #sidebar, #messageArea {display: none ! important;}\n#displayArea {margin: 1em 1em 0em 1em;}\n}", 
    230         PageTemplate: "<div id='header'>\n<div id='titleLine' macro='gradient vert #000000 #000000 #000000 #000000 #000000 #000000 #000000 #000000 #000000 #000000 #000000 #000000 #111111 #222222 #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 macro='gradient vert #ffffff #cc9900'><div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div></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>", 
    231         ViewTemplate: "<div class='toolbar'><span macro='closeTiddler'></span><span macro='editTiddler'></span><span macro='permalink'></span><span macro='references'></span></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='tags'></span>\n</div>", 
    232         EditTemplate: "<div class='toolbar'><span macro='saveTiddler'></span><span macro='cancelTiddler'></span><span macro='deleteTiddler'></span></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><div class='editorFooter'><span macro='tagChooser'></span></div>" 
    233         }; 
     208// Shadow stylesheet elements 
     209// --------------------------------------------------------------------------------- 
     210 
     211config.shadowTiddlers.StyleSheetColors = "body {\n      background: #fff;\n}\n\n#titleLine {\n  color: #fff;\n  background: #300;\n}\n\n#titleLine a {\n        color: #cf6;\n}\n\n#mainMenu {\n        color: #000;\n}\n\n#mainMenu .tiddlyLink {\n    color: #963;\n}\n\n#mainMenu .tiddlyLink:hover {\n      background: #963;\n     color: #fff;\n}\n\n#mainMenu .externalLink {\n  color: #963;\n}\n\n#mainMenu .externalLink: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;\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: 0;\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 {\n     background: #eea;\n}\n\n.tabUnselected {\n      background: #c90;\n}\n\n.tabContents {\n        background: #eea;\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.toolbar {\n    color: #aaa;\n}\n\n.footer {\n  color: #ddd;\n}\n\n.selectedTiddler .footer {\n color: #888;\n}\n\n.viewer {\n  color: #000;\n}\n\n.viewer a:link, .body a:visited {\n  color: #963;\n}\n\n.viewer a:hover {\n  color: #fff;\n  background: #963;\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 h1,.viewer h2,.viewer h3,.viewer h4,.viewer 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        color: #000000;\n       border: 1px solid #963;\n       background: #eea;\n}\n\n.viewer code {\n        color: #630;\n}\n\n.viewer hr {\n       border-top: dashed 1px #606060;\n       border-left: none;\n    border-right: none;\n   border-bottom: none;\n  color: #666;\n}\n\n.highlight, .marked {\n      color: #000;\n  background: #ffe72f;\n}\n\n.editor {\n  color: #402C74;\n}\n\n.editor input {\n border: 1px solid #000000;\n}\n\n.editor textarea {\n   border: 1px solid #000000;\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#sidebar {\n    color: #000;\n}\n\n#sidebarOptions {\n  background: #c90;\n}\n\n#sidebarOptions .button {\n     color: #930;\n}\n\n#sidebarOptions .button:hover {\n    color: #cf6;\n  background: #930;\n}\n\n#sidebarOptions .button: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.sidebarSubHeading {\n  color: #300;\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\n#sidebarTabs .txtMoreTab .tabSelected {\n     background: #930;\n}\n\n#sidebarTabs .txtMoreTab .tabUnselected {\n     background: #300;\n}\n\n#sidebarTabs .txtMoreTab .tabContents {\n       background: #930;\n}\n\n#sidebarTabs .tabContents .tiddlyLink {\n       color: #cf6;\n}\n\n#sidebarTabs .tabContents .tiddlyLink:hover {\n      background: #ccff66;\n  color: #300;\n}\n\n#sidebarTabs .tabContents .button {\n        color: #cf6;\n}\n\n#sidebarTabs .tabContents .button:hover {\n  color: #300;\n  background: #cf6;\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}"; 
     212config.shadowTiddlers.StyleSheetLayout = "body {\n      font-size: 9pt;\n       font-family: verdana,arial,helvetica;\n margin: 0;\n    padding: 0;\n   position: relative;\n   z-index: 0;\n}\n\na:link, a:visited, a:hover, a:active{\n       text-decoration: none;\n}\n\n#contentWrapper {\n        position: relative;\n}\n\n#titleLine {\n        padding: 5em 1em 1em 1em;\n}\n\n#siteTitle {\n  font-size: 26pt;\n}\n\n#siteSubtitle {\n        padding-left: 1em;\n    font-size: 10pt;\n}\n\n#mainMenu {\n    position: absolute;\n   left: 0em;\n    width: 10em;\n  line-height: 166%;\n    padding: 1.5em 0.5em 0.5em 0.5em;\n     font-size: 10pt;\n      text-align: right;\n}\n\n\n#mainMenu .externalLink {\n  text-decoration: underline;\n}\n\n#displayArea {\n      margin: 1em 17em 0em 14em;\n}\n\n#messageArea {\n       padding: 0.5em;\n\n}\n\n#messageArea a:link, #messageArea a:visited {\n display: inline;\n      text-decoration: underline;\n}\n\n.popup {\n    font-size: 8pt;\n       list-style: none;\n     padding: 0.2em;\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 {\n  display: block;\n       padding: 0;\n}\n\n.popup li.disabled {\n        padding: 0.2em;\n}\n\n.popup li a, .popup li a:visited {\n      display: block;\n       text-decoration: none;\n        padding: 0.2em;\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.tiddler {\n   padding: 0;\n   padding: 1em 1em 0em 1em;\n     font-size: 9pt;\n}\n\n\n/* Can these styles be moved to the previous rule?\n.selectedTiddler {\n        padding: 1em 1em 0em 1em;\n     font-size: 9pt;\n}\n\n.unselectedTiddler {\n    padding: 1em 1em 0em 1em;\n     font-size: 9pt;\n} */\n\n.tiddler a.tiddlyLinkExisting {\n      font-weight: bold;\n}\n\n.tiddler a.tiddlyLinkNonExisting {\n   font-style: italic;\n}\n\n.tiddler a.tiddlyLinkNonExisting.shadow {\n   font-weight: bold;\n}\n\n.tiddler a.externalLink {\n    text-decoration: underline;\n}\n\n.tiddler .button {\n  padding: 0.2em 0.4em;\n}\n\n.tiddler .button:hover {\n  text-decoration: none;\n}\n\n.title {\n font-size: 10pt;\n      font-weight: bold;\n}\n\n.shadow .title {\n     color: #888888;\n}\n\n.toolbar {\n      text-align: right;\n    font-weight: normal;\n  font-size: 8pt;\n       padding: 0;\n   visibility: hidden;\n}\n\n.selectedTiddler .toolbar {\n visibility: visible;\n}\n\n.footer {\n/* Isn't 'clear:both' the right rule? */\n        clear: left;\n  clear: right;\n font-weight: normal;\n  font-size: 8pt;\n       margin: 0;\n    padding: 0;\n}\n\n.body {\n     padding-top: 0.5em;\n}\n\n.viewer {\n   line-height: 140%;\n}\n\n.viewer .button {\n    margin: 0em 0.25em;\n   padding: 0em 0.25em;\n}\n\n.viewer blockquote {\n       font-size: 8pt;\n       line-height: 150%;\n    padding-left: 0.8em;\n  margin-left: 2.5em;\n}\n\n.viewer ul {\n        margin-left: 0.5em;\n   padding-left: 1.5em;\n}\n\n.viewer ol {\n       margin-left: 0.5em;\n   padding-left: 1.5em;\n}\n\n.viewer h1,.viewer h2,.viewer h3,.viewer h4,.viewer h5 {\n   font-weight: bold;\n    text-decoration: none;\n        padding-left: 0.4em;\n}\n\n.viewer h1 {font-size: 12pt;}\n.viewer h2 {font-size: 11pt;}\n.viewer h3 {font-size: 10pt;}\n.viewer h4 {font-size: 9pt;}\n.viewer h5 {font-size: 8pt;}\n\n.viewer table {\n border-collapse: collapse;\n    margin: 0.8em 1.0em;;\n font-size: 100%;\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: 100%;\n      line-height: 1.4em;\n   overflow: auto;\n}\n\n.viewer code {\n  font-size: 100%;\n      line-height: 1.4em;\n}\n\n.viewer hr {\n        height: 1px;\n}\n\n.editor {\n  font-size: 8pt;\n       font-weight: normal;\n}\n\n.editor input {\n    display: block;\n       width: 100%;\n}\n\n.editor textarea {\n display: block;\n       font: inherit;\n        width: 100%;\n}\n\n.editorFooter {\n    padding: 0.25em 0em;\n  font-size: 8pt;\n}\n\n.editorFooter A {\n       padding: 0.2em 0.4em;\n}\n\n.editorFooter A:hover {\n   text-decoration: none;\n}\n\n#sidebar {\n       position: absolute;\n   right: 0em;\n   width: 16em;\n  font-size: 8pt;\n}\n\n#sidebarOptions {\n       padding-top: 0em;\n}\n\n#sidebarOptions .button {\n     padding: 0.3em 0.2em 0.3em 1em;\n       display: block;\n}\n\n#sidebarOptions input {\n margin: 0.4em 0em 0.3em 1em;\n}\n\n#sidebarOptions .sliderPanel {\n     padding: 0.5em;\n       font-size: 7pt;\n}\n\n#sidebarOptions .sliderPanel A {\n        font-weight: bold;\n}\n\n#sidebarOptions .sliderPanel input {\n margin: 0;\n    margin-bottom: 0.3em;\n}\n\n.sidebarSubHeading {\n      font-size: 7pt;\n}\n\n#sidebarTabs .tabSelected {\n     position: relative;\n   top: -2px;\n}\n\n\n#sidebarTabs .tabContents {\n        width: 15em;\n  overflow: hidden;\n}\n\n.sparkline {\n  line-height: 100%;\n}\n\n.sparktick {\n outline: 0;\n}\n\n.zoomer {\n   font-size: 10pt;\n      position: absolute;\n   padding: 1em;\n}\n"; 
    234213 
    235214// --------------------------------------------------------------------------------- 
     
    239218// TiddlyWiki storage 
    240219var store = new TiddlyWiki(); 
    241  
    242 // Main story 
    243 var story = new Story("tiddlerDisplay","tiddler"); 
    244  
    245 // Default wikifier 
    246 var wikifier = null; 
    247220 
    248221// Animation engine 
     
    261234        store.loadFromDiv("storeArea","store"); 
    262235        loadSystemConfig(); 
    263         wikifier = new Wikifier(config.formatters); 
    264236        readOnly = (document.location.toString().substr(0,7) == "http://") ? config.options.chkHttpReadOnly : false; 
    265237        store.notifyAll(); 
     
    272244        var start = store.getTiddlerText("DefaultTiddlers"); 
    273245        if(window.location.hash) 
    274                 story.displayTiddlers(null,convertUTF8ToUnicode(decodeURI(window.location.hash.substr(1))).readBracketedList()); 
     246                displayTiddlers(null,convertUTF8ToUnicode(decodeURI(window.location.hash.substr(1))),1,null,null); 
    275247        else if(start) 
    276                 story.displayTiddlers(null,start.readBracketedList()); 
     248                displayTiddlers(null,start,1,null,null); 
    277249} 
    278250 
     
    310282                } 
    311283        return null; 
    312 } 
    313  
    314 function invokeMacro(place,macro,params,wikifier,tiddler) 
    315 { 
    316         try 
    317                 { 
    318                 var m = config.macros[macro]; 
    319                 if(m && m.handler) 
    320                         m.handler(place,macro,params.readMacroParams(),wikifier,params,tiddler); 
    321                 else 
    322                         createTiddlyError(place,config.messages.macroError.format([macro]),config.messages.macroErrorDetails.format([macro,config.messages.missingMacro])); 
    323                 } 
    324         catch(ex) 
    325                 { 
    326                 createTiddlyError(place,config.messages.macroError.format([macro]),config.messages.macroErrorDetails.format([macro,ex.toString()])); 
    327                 } 
    328284} 
    329285 
     
    428384                                        w.nextMatch = w.nextMatch + 1; 
    429385                                        w.subWikify(rowContainer,this.rowTerminator); 
    430                                         table.insertBefore(rowContainer,table.firstChild); 
    431386                                        } 
    432387                                else 
     
    546501 
    547502{ 
    548         name: "monospacedByLineForCSS", 
    549         match: "^/\\*[\\{]{3}\\*/\\n", 
    550         lookahead: "/\\*[\\{]{3}\\*/\\n*((?:^[^\\n]*\\n)+?)(\\n*^/\\*[\\}]{3}\\*/$\\n?)",  
    551         handler: config.formatterHelpers.monospacedByLineHelper 
    552 }, 
    553  
    554 { 
    555503        name: "monospacedByLineForPlugin", 
    556504        match: "^//\\{\\{\\{\\n", 
     
    725673{ 
    726674        name: "urlLink", 
    727         match: config.textPrimitives.urlPattern, 
     675        match: "(?:http|https|mailto|ftp):[^\\s'\"]+(?:/|\\b)", 
    728676        handler: function(w) 
    729677        { 
     
    751699                                else 
    752700                                        e = createExternalLink(w.output,lookaheadMatch[5]); 
    753                                 addClass(e,"imageLink"); 
    754701                                } 
    755702                        var img = createTiddlyElement(e,"img"); 
     
    769716        name: "macro", 
    770717        match: "<<", 
    771         lookahead: "<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*)>>", 
     718        lookahead: "<<([^>\\s]+)(?:\\s*)([^>]*)>>", 
    772719        handler: function(w) 
    773720        { 
     
    776723                var lookaheadMatch = lookaheadRegExp.exec(w.source) 
    777724                if(lookaheadMatch && lookaheadMatch.index == w.matchStart && lookaheadMatch[1]) 
    778                         {                
     725                        { 
     726                        var params = lookaheadMatch[2].readMacroParams();                        
    779727                        w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length; 
    780                         invokeMacro(w.output,lookaheadMatch[1],lookaheadMatch[2],w,w.tiddler); 
     728                        try 
     729                                { 
     730                                var macro = config.macros[lookaheadMatch[1]]; 
     731                                if(macro && macro.handler) 
     732                                        macro.handler(w.output,lookaheadMatch[1],params,w); 
     733                                else 
     734                                        createTiddlyElement(w.output,"span",null,"errorNoSuchMacro","<<" + lookaheadMatch[1] + ">>"); 
     735                                } 
     736                        catch(e) 
     737                                { 
     738                                displayMessage(config.messages.macroError.format([lookaheadMatch[1]])); 
     739                                displayMessage(e.toString()); 
     740                                } 
    781741                        } 
    782742        } 
     
    912872// --------------------------------------------------------------------------------- 
    913873 
    914 function wikify(source,output,highlightText,highlightCaseSensitive,tiddler) 
    915 { 
    916         if(source && source != "") 
    917                 { 
    918                 wikifier.initialise(source,output,highlightText,highlightCaseSensitive,tiddler); 
    919                 wikifier.subWikify(output,null); 
    920                 } 
    921 } 
    922  
    923 function Wikifier(formatters) 
    924 { 
    925         this.formatters = []; 
    926         var pattern = []; 
    927         for(var n=0; n<formatters.length; n++) 
    928                 { 
    929                 pattern.push("(" + formatters[n].match + ")"); 
    930                 this.formatters.push(formatters[n]); 
    931                 } 
    932         this.formatterRegExp = new RegExp(pattern.join("|"),"mg"); 
    933 } 
    934  
    935 Wikifier.prototype.initialise = function(source,output,highlightText,highlightCaseSensitive,tiddler) 
     874function wikify(source,output,highlightText,highlightCaseSensitive) 
     875{ 
     876        var w = new Wikifier(source,output,config.formatters,highlightText,highlightCaseSensitive); 
     877} 
     878 
     879function Wikifier(source,output,formatters,highlightText,highlightCaseSensitive) 
    936880{ 
    937881        this.source = source; 
     
    942886        this.highlightRegExp = null; 
    943887        this.highlightMatch = null; 
    944         this.tiddler = tiddler; 
     888        this.assembleFormatterMatches(formatters); 
    945889        if(highlightText) 
    946890                { 
     
    948892                this.highlightMatch = this.highlightRegExp.exec(this.source); 
    949893                } 
     894        if(source && source != "") 
     895                this.subWikify(output,null); 
     896        return this; 
     897} 
     898 
     899Wikifier.prototype.assembleFormatterMatches = function(formatters) 
     900{ 
     901        this.formatters = []; 
     902        var pattern = []; 
     903        for(var n=0; n<formatters.length; n++) 
     904                { 
     905                pattern.push("(" + formatters[n].match + ")"); 
     906                this.formatters.push(formatters[n]); 
     907                } 
     908        this.formatterRegExp = new RegExp(pattern.join("|"),"mg"); 
    950909} 
    951910 
     
    11381097        var doSearch = function(txt) 
    11391098                { 
    1140                 story.closeAllTiddlers(); 
     1099                closeAllTiddlers(); 
    11411100                var matches = store.search(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch,"title","excludeSearch"); 
    1142                 story.highlight(txt.value,config.options.chkCaseSensitiveSearch,config.options.chkRegExpSearch); 
    11431101                for(var t=matches.length-1; t>=0; t--) 
    1144                         story.displayTiddler(null,matches[t].title); 
     1102                        displayTiddler(null,matches[t].title,0,txt.value,config.options.chkCaseSensitiveSearch,false,false); 
    11451103                var q = config.options.chkRegExpSearch ? "/" : "'"; 
    11461104                if(matches.length > 0) 
     
    11861144        txt.setAttribute("accessKey",this.accessKey); 
    11871145        txt.setAttribute("autocomplete","off"); 
    1188         if(config.browser.isSafari) 
     1146        if(navigator.userAgent.toLowerCase().indexOf("safari") == -1) 
     1147                txt.setAttribute("type","text"); 
     1148        else 
    11891149                { 
    11901150                txt.setAttribute("type","search"); 
    11911151                txt.setAttribute("results","5"); 
    11921152                } 
    1193         else 
    1194                 txt.setAttribute("type","text"); 
    11951153} 
    11961154 
     
    12001158        var text = store.getTiddlerText(params[0]); 
    12011159        if(text) 
    1202                 wikify(text,wrapper,null,null,store.getTiddler(params[0])); 
     1160                wikify(text,wrapper); 
    12031161} 
    12041162 
     
    12081166} 
    12091167 
    1210 config.macros.tags.handler = function(place,macroName,params,wikifier,paramString,tiddler) 
    1211 { 
    1212         if(params[0] && store.tiddlerExists[params[0]]) 
    1213                 tiddler = store.getTiddler(params[0]); 
    1214         var lingo = config.views.wikified.tag; 
    1215         var prompt = tiddler.tags.length == 0 ? lingo.labelNoTags : lingo.labelTags; 
    1216         var theTags = createTiddlyElement(place,"div",null,null,prompt); 
    1217         for(var t=0; t<tiddler.tags.length; t++) 
    1218                 { 
    1219                 var theTag = createTagButton(theTags,tiddler.tags[t],tiddler.title); 
    1220                 createTiddlyText(theTags," "); 
    1221                 } 
    1222 } 
    1223  
    12241168config.macros.closeAll.handler = function(place) 
    12251169{ 
    1226         createTiddlyButton(place,this.label,this.prompt,function () {story.closeAllTiddlers(); return false;}); 
     1170        createTiddlyButton(place,this.label,this.prompt,function () {closeAllTiddlers(); return false;}); 
    12271171} 
    12281172 
    12291173config.macros.permaview.handler = function(place) 
    12301174{ 
    1231         createTiddlyButton(place,this.label,this.prompt,function () {story.permaView(); return false;}); 
     1175        createTiddlyButton(place,this.label,this.prompt,function () {onClickPermaView(); return false;}); 
    12321176} 
    12331177 
     
    12621206        panel.style.display = config.options[cookie] ? "block" : "none"; 
    12631207        if(text) 
    1264                 wikify(text,panel,null,null,store.getTiddler(params[1])); 
     1208                wikify(text,panel); 
    12651209} 
    12661210