Welcome to TiddlyWiki created by Jeremy Ruston, Copyright © 2007 UnaMesa Association
!usage
{{{<<player flash AnalogClock 400px 400px>>}}}
<<player flash AnalogClock 400px 400px>>
!notes
{{{<<player>>}}} macro requires http://www.TiddlyTools.com/#PlayerPlugin
!type
application/x-shockwave-flash
!file
./clock.swf
!url
http://www.TiddlyTools.com/clock.swf
!data
Background: #000080
Foreground: #000
PrimaryPale: #8cf
PrimaryLight: #18f
PrimaryMid: #000080
SecondaryPale: #ffc
SecondaryLight: #fe8
SecondaryMid: #db4
SecondaryDark: #841
TertiaryPale: #bbcc99
TertiaryLight: #8cf
TertiaryMid: #999
TertiaryDark: #666
Error: #f88
''Waar'' kunt u ons vinden?
<<<
t' Boekenhoekje
Goudenregenstraat 24
2906 CM Capelle aan den ~IJssel
<<<
Heeft u ook een ''telefoonnummer''?
<<<
Ja, dat is: ''010-4422212''
<<<
Kan ik ook ''emailen''?
<<<
<<tiddler Emailadres>>
<<<
/%
|Name|DigitalClock|
|Source|http://www.TiddlyTools.com/#DigitalClock|
|Version|1.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|script|
|Requires|InlineJavascriptPlugin|
|Overrides||
|Description|display current time with automatic LIVE update|
Usage: <<tiddler DigitalClock with: format tick>>
where 'format' is any TiddlyWiki date/time formatting string
and 'tick' is the time in seconds between display updates (default=1sec)
For example, use:
<< ... "0hh:0mm" 60>>
to show hours and minutes only, updated once per minute
%/<script>
window.DigitalClock_tick=function(id){
var e=document.getElementById(id); if (!e) return;
e.title='click to '+(e.paused?'RESUME':'PAUSE')+' clock display';
if (e.paused) return;
e.innerHTML=new Date().formatString(e.fmt);
setTimeout('window.DigitalClock_tick('+id+')',e.tick*1000);
}
var e=createTiddlyElement(place,'a',new Date().getTime()+Math.random());
e.onclick=function(){this.paused=!this.paused;window.DigitalClock_tick(this.id);}
e.style.cursor='pointer';
e.fmt=('$1'=='$'+'1')?'hh12:0mm:0ss am':'$1';
e.tick=('$2'=='$'+'2')?'1':'$2';
window.DigitalClock_tick(e.id);
</script>
<html>
<a href="mailto:info@tboekenhoekje.nl?subject=&cc=&bcc=&body=" style="" class="" id="">Stuur een email</a>
</html>
/%Versleuteld met http://www.addressmunger.com/ %/
Het adres voor als de link niet werkt:
info@tboekenhoekje.nl
/***
|Name:|HideWhenPlugin|
|Description:|Allows conditional inclusion/exclusion in templates|
|Version:|3.1 ($Rev: 3919 $)|
|Date:|$Date: 2008-03-13 02:03:12 +1000 (Thu, 13 Mar 2008) $|
|Source:|http://mptw.tiddlyspot.com/#HideWhenPlugin|
|Author:|Simon Baird <simon.baird@gmail.com>|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
For use in ViewTemplate and EditTemplate. Example usage:
{{{<div macro="showWhenTagged Task">[[TaskToolbar]]</div>}}}
{{{<div macro="showWhen tiddler.modifier == 'BartSimpson'"><img src="bart.gif"/></div>}}}
***/
//{{{
window.hideWhenLastTest = false;
window.removeElementWhen = function(test,place) {
window.hideWhenLastTest = test;
if (test) {
removeChildren(place);
place.parentNode.removeChild(place);
}
};
merge(config.macros,{
hideWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( eval(paramString), place);
}},
showWhen: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( !eval(paramString), place);
}},
hideWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( tiddler.tags.containsAll(params), place);
}},
showWhenTagged: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( !tiddler.tags.containsAll(params), place);
}},
hideWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( tiddler.tags.containsAny(params), place);
}},
showWhenTaggedAny: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( !tiddler.tags.containsAny(params), place);
}},
hideWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( tiddler.tags.containsAll(params), place);
}},
showWhenTaggedAll: { handler: function (place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( !tiddler.tags.containsAll(params), place);
}},
hideWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0]), place);
}},
showWhenExists: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( !(store.tiddlerExists(params[0]) || store.isShadowTiddler(params[0])), place);
}},
hideWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( tiddler.title == params[0], place);
}},
showWhenTitleIs: { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( tiddler.title != params[0], place);
}},
'else': { handler: function(place,macroName,params,wikifier,paramString,tiddler) {
removeElementWhen( !window.hideWhenLastTest, place);
}}
});
//}}}
We zijn "'t BOEKENHOEKJE" begonnen in 1993 op een kamertje boven Stapper
Vastgoed op Kanaalweg 19 te Capelle aan den ~IJssel.
Geopend op woensdag vrijdag en zaterdagmorgen: echt als hobby.
Door ruimte gebrek en snelle groei moesten wij op zoek naar een andere en grotere ruimte.
Die hebben wij gevonden op 1 December 1996 aan de Goudenregenstraat 24 in Capelle aan den ~IJssel:
Een mooie winkel voor "'t BOEKENHOEKJE ".
De opbrengsten van "'t BOEKENHOEKJE" zijn voor de ~MBUMA-ZENDING.
Deze zending zorgt in het armste deel van Afrika voor eten, kleding, huisjes, medicijnen,ziekenhuizen
en scholen met lager en voortgezet onderwijs en Bijbels onderwijs.
Ook verzorgen zij aidsbestrijding, baby en moederzorg, consultatiebureau en spreekuren voor artsen.
Daarom werken alle medewerksters van "'t BOEKENHOEKJE" als vrijwilligers.
We zijn een complete BOEKWINKEL en u kunt bij ons een ruime sortering vinden van:
''
*Bijbels en psalmboeken in de Statenvertaling
*Theologie
*Dagboeken
*Bijbelse geschiedenis voor kinderen
*Luxe Bijbels
**Met en zonder gouden of zilveren slot
*Muziek en preek CD`s
**ook op cassettes.
*Jeugd- kind- en kleuterboeken
*Romans en gedichtenboeken
*Geschenkboekjes
''
We streven ernaar de nieuwste uitgaven aan u te presenteren en alles uit voorraad te leveren.
Hartelijk welkom in onze gezellige winkel.
<<<
In onze Boekenhoek
Vind u beslist het goede boek
voor kerk en school en leesplezier
komt u elke keer naar hier.
dan staan we samen sterk
en steunen zo het zendingswerk.
<<<
Handig om te weten:
[[Openingstijden]]
[[Contact]]
<<tiddler ToggleRightSidebar with: ".">>
/***
|Name|InlineJavascriptPlugin|
|Source|http://www.TiddlyTools.com/#InlineJavascriptPlugin|
|Documentation|http://www.TiddlyTools.com/#InlineJavascriptPluginInfo|
|Version|1.9.5|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Description|Insert Javascript executable code directly into your tiddler content.|
''Call directly into TW core utility routines, define new functions, calculate values, add dynamically-generated TiddlyWiki-formatted output'' into tiddler content, or perform any other programmatic actions each time the tiddler is rendered.
!!!!!Documentation
>see [[InlineJavascriptPluginInfo]]
!!!!!Revisions
<<<
2009.04.11 [1.9.5] pass current tiddler object into wrapper code so it can be referenced from within 'onclick' scripts
2009.02.26 [1.9.4] in $(), handle leading '#' on ID for compatibility with JQuery syntax
|please see [[InlineJavascriptPluginInfo]] for additional revision details|
2005.11.08 [1.0.0] initial release
<<<
!!!!!Code
***/
//{{{
version.extensions.InlineJavascriptPlugin= {major: 1, minor: 9, revision: 5, date: new Date(2009,4,11)};
config.formatters.push( {
name: "inlineJavascript",
match: "\\<script",
lookahead: "\\<script(?: src=\\\"((?:.|\\n)*?)\\\")?(?: label=\\\"((?:.|\\n)*?)\\\")?(?: title=\\\"((?:.|\\n)*?)\\\")?(?: key=\\\"((?:.|\\n)*?)\\\")?( show)?\\>((?:.|\\n)*?)\\</script\\>",
handler: function(w) {
var lookaheadRegExp = new RegExp(this.lookahead,"mg");
lookaheadRegExp.lastIndex = w.matchStart;
var lookaheadMatch = lookaheadRegExp.exec(w.source)
if(lookaheadMatch && lookaheadMatch.index == w.matchStart) {
var src=lookaheadMatch[1];
var label=lookaheadMatch[2];
var tip=lookaheadMatch[3];
var key=lookaheadMatch[4];
var show=lookaheadMatch[5];
var code=lookaheadMatch[6];
if (src) { // external script library
var script = document.createElement("script"); script.src = src;
document.body.appendChild(script); document.body.removeChild(script);
}
if (code) { // inline code
if (show) // display source in tiddler
wikify("{{{\n"+lookaheadMatch[0]+"\n}}}\n",w.output);
if (label) { // create 'onclick' command link
var link=createTiddlyElement(w.output,"a",null,"tiddlyLinkExisting",wikifyPlainText(label));
var fixup=code.replace(/document.write\s*\(/gi,'place.bufferedHTML+=(');
link.code="function _out(place,tiddler){"+fixup+"\n};_out(this,this.tiddler);"
link.tiddler=w.tiddler;
link.onclick=function(){
this.bufferedHTML="";
try{ var r=eval(this.code);
if(this.bufferedHTML.length || (typeof(r)==="string")&&r.length)
var s=this.parentNode.insertBefore(document.createElement("span"),this.nextSibling);
if(this.bufferedHTML.length)
s.innerHTML=this.bufferedHTML;
if((typeof(r)==="string")&&r.length) {
wikify(r,s,null,this.tiddler);
return false;
} else return r!==undefined?r:false;
} catch(e){alert(e.description||e.toString());return false;}
};
link.setAttribute("title",tip||"");
var URIcode='javascript:void(eval(decodeURIComponent(%22(function(){try{';
URIcode+=encodeURIComponent(encodeURIComponent(code.replace(/\n/g,' ')));
URIcode+='}catch(e){alert(e.description||e.toString())}})()%22)))';
link.setAttribute("href",URIcode);
link.style.cursor="pointer";
if (key) link.accessKey=key.substr(0,1); // single character only
}
else { // run script immediately
var fixup=code.replace(/document.write\s*\(/gi,'place.innerHTML+=(');
var c="function _out(place,tiddler){"+fixup+"\n};_out(w.output,w.tiddler);";
try { var out=eval(c); }
catch(e) { out=e.description?e.description:e.toString(); }
if (out && out.length) wikify(out,w.output,w.highlightRegExp,w.tiddler);
}
}
w.nextMatch = lookaheadMatch.index + lookaheadMatch[0].length;
}
}
} )
//}}}
// // Backward-compatibility for TW2.1.x and earlier
//{{{
if (typeof(wikifyPlainText)=="undefined") window.wikifyPlainText=function(text,limit,tiddler) {
if(limit > 0) text = text.substr(0,limit);
var wikifier = new Wikifier(text,formatter,null,tiddler);
return wikifier.wikifyPlain();
}
//}}}
// // GLOBAL FUNCTION: $(...) -- 'shorthand' convenience syntax for document.getElementById()
//{{{
if (typeof($)=='undefined') { function $(id) { return document.getElementById(id.replace(/^#/,'')); } }
//}}}
/***
|Name:|LessBackupsPlugin|
|Description:|Intelligently limit the number of backup files you create|
|Version:|3.0.1 ($Rev: 2320 $)|
|Date:|$Date: 2007-06-18 22:37:46 +1000 (Mon, 18 Jun 2007) $|
|Source:|http://mptw.tiddlyspot.com/#LessBackupsPlugin|
|Author:|Simon Baird|
|Email:|simon.baird@gmail.com|
|License:|http://mptw.tiddlyspot.com/#TheBSDLicense|
!!Description
You end up with just backup one per year, per month, per weekday, per hour, minute, and second. So total number won't exceed about 200 or so. Can be reduced by commenting out the seconds/minutes/hours line from modes array
!!Notes
Works in IE and Firefox only. Algorithm by Daniel Baird. IE specific code by by Saq Imtiaz.
***/
//{{{
var MINS = 60 * 1000;
var HOURS = 60 * MINS;
var DAYS = 24 * HOURS;
if (!config.lessBackups) {
config.lessBackups = {
// comment out the ones you don't want or set config.lessBackups.modes in your 'tweaks' plugin
modes: [
["YYYY", 365*DAYS], // one per year for ever
["MMM", 31*DAYS], // one per month
["ddd", 7*DAYS], // one per weekday
//["d0DD", 1*DAYS], // one per day of month
["h0hh", 24*HOURS], // one per hour
["m0mm", 1*HOURS], // one per minute
// ["s0ss", 1*MINS], one per second
["latest",0] // always keep last version. (leave this).
]
};
}
window.getSpecialBackupPath = function(backupPath) {
var now = new Date();
var modes = config.lessBackups.modes;
for (var i=0;i<modes.length;i++) {
// the filename we will try
var specialBackupPath = backupPath.replace(/(\.)([0-9]+\.[0-9]+)(\.html)$/,
'$1'+now.formatString(modes[i][0]).toLowerCase()+'$3')
// open the file
try {
if (config.browser.isIE) {
var fsobject = new ActiveXObject("Scripting.FileSystemObject")
var fileExists = fsobject.FileExists(specialBackupPath);
if (fileExists) {
var fileObject = fsobject.GetFile(specialBackupPath);
var modDate = new Date(fileObject.DateLastModified).valueOf();
}
}
else {
netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(specialBackupPath);
var fileExists = file.exists();
if (fileExists) {
var modDate = file.lastModifiedTime;
}
}
}
catch(e) {
// give up
return backupPath;
}
// expiry is used to tell if it's an 'old' one. Eg, if the month is June and there is a
// June file on disk that's more than an month old then it must be stale so overwrite
// note that "latest" should be always written because the expiration period is zero (see above)
var expiry = new Date(modDate + modes[i][1]);
if (!fileExists || now > expiry)
return specialBackupPath;
}
}
// hijack the core function
window.getBackupPath_mptw_orig = window.getBackupPath;
window.getBackupPath = function(localPath) {
return getSpecialBackupPath(getBackupPath_mptw_orig(localPath));
}
//}}}
<html>
<body>
<a href="http://www.tboekenhoekje.nl">
<img border="0" src="images/knophome.jpg" width="125" height="30">
</body>
</html>
//--
//-- Translateable strings
//--
//-- Strings in "double quotes" should be translated (except for "DD MMM YYYY"); strings in 'single quotes' should be left alone
config.locale = "nl"; // W3C language tag
if (config.options.txtUserName == 'YourName') // do not translate this line, but do translate the next
merge(config.options,{txtUserName: "JouwNaam"});
merge(config.tasks,{
save: {text: "opslaan", tooltip: "Opslaan van alle wijzigingen in deze TiddlyWiki", action: saveChanges},
sync: {text: "sync", tooltip: "Synchroniseer wijzigingen met andere TiddlyWiki bestanden en servers", content: '<<sync>>'},
importTask: {text: "import", tooltip: "Importeer tiddlers en plugins uit andere TiddlyWiki bestanden en servers", content: '<<importTiddlers>>'},
tweak: {text: "opties", tooltip: "Aanpassen van verschijning en gedrag van TiddlyWiki", content: '<<options>>'},
upgrade: {text: "upgrade", tooltip: "Bijwerken TiddlyWiki kernprogramma", content: '<<upgrade>>'},
plugins: {text: "plugins", tooltip: "Beheer de geïnstalleerde plugins", content: '<<plugins>>'}
});
// Options that can be set in the options panel and/or cookies
merge(config.optionsDesc,{
txtUserName: "Jouw naam voor het signeren van je wijzigingen",
chkRegExpSearch: "JavaScript expressies toestaan in zoekopdrachten",
chkCaseSensitiveSearch: "Hoofdlettergevoelig zoeken",
chkIncrementalSearch: "Zoeken per ingevoerd zoek-karakter",
chkAnimate: "Activeer animaties",
chkSaveBackups: "Bewaar een backup bij het opslaan van wijzigingen",
chkAutoSave: "Automatisch opslaan van wijzigingen",
chkGenerateAnRssFeed: "Genereer een RSS-feed bij het opslaan van wijzigingen",
chkSaveEmptyTemplate: "Genereer een lege TW-template bij de opdracht 'opslaan'",
chkOpenInNewWindow: "Open externe links in een nieuw venster",
chkToggleLinks: "Door te klikken op links van reeds geopende tiddlers, zullen deze worden gesloten",
chkHttpReadOnly: "Verberg wijzigingsfunctionaliteit wanneer bekeken via HTTP",
chkForceMinorUpdate: "Handhaaf de oorspronkelijke auteur's naam en datum bij het wijzigen van tiddlers (bijv. bij het maken van kleine correcties)",
chkConfirmDelete: "Vraag om bevestiging voordat een tiddler wordt verwijderd",
chkInsertTabs: "Tab-key voegt tabs in in plaats van naar het volgende veld te springen",
txtBackupFolder: "Mapnaam om backups in op te slaan",
txtMaxEditRows: "Maximum aantal regels in het wijzigingsvenster",
txtFileSystemCharSet: "Default characterset bij het opslaan (alleen voor Firefox/Mozilla)"});
merge(config.messages,{
customConfigError: "Problemen bij het laden van plugins. Zie PluginManager voor details",
pluginError: "Fout: %0",
pluginDisabled: "Niet uitgevoerd, want uitgeschakeld middels het 'systemConfigDisable' label",
pluginForced: "Uitgevoerd, want geforceerd middels het 'systemConfigForce' label",
pluginVersionError: "Niet uitgevoerd want deze plugin is voor een jongere versie van TiddlyWiki",
nothingSelected: "Niets geselecteerd. Je moet eerst een of meerdere items selecteren",
savedSnapshotError: "Blijkbaar is deze TiddlyWiki eerder foutief opgeslagen. Kijk op http://www.tiddlywiki.com/#DownloadSoftware voor details",
subtitleUnknown: "(onbekend)",
undefinedTiddlerToolTip: "De tiddler '%0' bestaat nog niet",
shadowedTiddlerToolTip: "De tiddler '%0' bestaat nog niet, maar er is wel een voorgedefinieerde schaduw-versie",
tiddlerLinkTooltip: "%0 - %1, %2",
externalLinkTooltip: "Externe link naar %0",
noTags: "Er zijn geen tiddlers met een label",
notFileUrlError: "Je moet deze TiddlyWiki eerst opslaan als een bestand, voordat je wijzigingen kunt opslaan",
cantSaveError: "Opslaan van wijzigingen is niet mogelijk. Mogelijke oorzaken zijn o.a.:\n- je browser ondersteunt dat niet (Firefox, Internet Explorer, Safari en Opera kunnen opslaan mits juist geconfigureerd)\n- de padnaam naar je TiddlyWiki bestand bevat ongeldige tekens\n- je TiddlyWiki bestand is verplaatst of hernoemd",
invalidFileError: "Het originele bestand '%0' is geen geldige TiddlyWiki",
backupSaved: "Backup opgeslagen",
backupFailed: "Opslaan van backup-bestand mislukt",
rssSaved: "RSS-feed opgeslagen",
rssFailed: "Opslaan van RSS-feed-bestand mislukt",
emptySaved: "Leeg TiddlyWki template-bestand opgeslagen",
emptyFailed: "Opslaan van leeg TiddlyWiki template-bestand mislukt",
mainSaved: "TiddlyWiki bestand opgeslagen",
mainFailed: "Opslaan van TiddlyWiki bestand mislukt. Je wijzigingen zijn niet bewaard.",
macroError: "Fout in macro <<\%0>>",
macroErrorDetails: "Fout tijdens de uitvoering van macro <<\%0>>:\n%1",
missingMacro: "Die macro bestaat niet",
overwriteWarning: "Een tiddler met de naam '%0' bestaat al. Klik OK om die te overschrijven",
unsavedChangesWarning: "WAARSCHUWING! Deze TiddlyWiki bevat niet opgeslagen wijzigingen\n\nKlik OK om op te slaan\nKlik ANNULEREN om de wijzigingen te negeren",
confirmExit: "--------------------------------\n\nDeze TiddlyWiki bevat niet opgeslagen wijzigingen. Als je doorgaat gaan deze wijzigingen verloren\n\n--------------------------------",
saveInstructions: "Opslaan",
unsupportedTWFormat: "Niet ondersteund TiddlyWiki formaat '%0'",
tiddlerSaveError: "Fout bij het bewaren van tiddler '%0'",
tiddlerLoadError: "Fout bij het laden van tiddler '%0'",
wrongSaveFormat: "Opslaan met storage formaat '%0' kan niet. Standaard formaat wordt gebruikt.",
invalidFieldName: "Ongeldige veldnaam %0",
fieldCannotBeChanged: "Veld '%0' kan niet worden gewijzigd",
loadingMissingTiddler: "Bezig om tiddler '%0' op te halen van de '%1' server op:\n\n'%2' in werkruimte '%3'",
upgradeDone: "Het bijwerken naar versie %0 is gelukt\n\nKlik 'OK' om de nieuwe bijgewerkte TiddlyWiki te herladen"});
merge(config.messages.messageClose,{
text: "sluit",
tooltip: "sluit dit berichtvenster"});
config.messages.backstage = {
open: {text: "managementmenu", tooltip: "Open het managementmenu voor redactionele taken"},
close: {text: "sluit", tooltip: "Sluit het managementmenu"},
prompt: "managementmenu: ",
decal: {
edit: {text: "wijzig", tooltip: "Wijzig de inhoud van deze tiddler '%0'"}
}
};
config.messages.listView = {
tiddlerTooltip: "Klik voor de volledige tekst van deze tiddler",
previewUnavailable: "(preview niet beschikbaar)"
};
config.messages.dates.months = ["januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "oktober", "november","december"];
config.messages.dates.days = ["zondag", "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag"];
config.messages.dates.shortMonths = ["jan", "feb", "mrt", "apr", "mei", "jun", "jul", "aug", "sep", "okt", "nov", "dec"];
config.messages.dates.shortDays = ["zon", "maa", "din", "woe", "don", "vri", "zat"];
// suffixes for dates, eg "1st","2nd","3rd"..."30th","31st"
config.messages.dates.daySuffixes = ["e","e","e","e","e","e","e","e","e","e",
"e","e","e","e","e","e","e","e","e","e",
"e","e","e","e","e","e","e","e","e","e",
"e"];
config.messages.dates.am = "am";
config.messages.dates.pm = "pm";
merge(config.messages.tiddlerPopup,{
});
merge(config.views.wikified.tag,{
labelNoTags: "geen labels",
labelTags: "labels: ",
openTag: "Open label '%0'",
tooltip: "Bekijk tiddlers met label '%0'",
openAllText: "Open alle",
openAllTooltip: "Open al deze tiddlers",
popupNone: "Geen andere tiddlers met label '%0'"});
merge(config.views.wikified,{
defaultText: "De tiddler '%0' bestaat nog niet. Dubbel-klik om hem te maken",
defaultModifier: "(ontbreekt)",
shadowModifier: "(ingebouwde schaduw-tiddler)",
dateFormat: "DD MMM YYYY", // use this to change the date format for your locale, eg "YYYY MMM DD", do not translate the Y, M or D
createdPrompt: "aangemaakt"});
merge(config.views.editor,{
tagPrompt: "Typ labels gescheiden door spaties (gebruik dubbele rechte haakjes voor non-WikiWord-labels), of gebruik bestaande",
defaultText: "Typ de tekst voor '%0'"});
merge(config.views.editor.tagChooser,{
text: "labels",
tooltip: "Kies bestaande labels om aan deze tiddler toe te voegen",
popupNone: "Er zijn geen labels gedefinieerd",
tagTooltip: "Voeg het label '%0' toe"});
merge(config.messages,{
sizeTemplates:
[
{unit: 1024*1024*1024, template: "%0\u00a0GB"},
{unit: 1024*1024, template: "%0\u00a0MB"},
{unit: 1024, template: "%0\u00a0KB"},
{unit: 1, template: "%0\u00a0B"}
]});
merge(config.macros.search,{
label: "zoek",
prompt: "Zoek binnen deze TiddlyWiki",
accessKey: "F",
successMsg: "%0 tiddlers gevonden met de tekst %1",
failureMsg: "Geen tiddlers gevonden met de tekst %0"});
merge(config.macros.tagging,{
label: "labelverwijzingen: ",
labelNotTag: "geen labelverwijzingen",
tooltip: "Lijst van tiddlers gelabeld met '%0'"});
merge(config.macros.timeline,{
dateFormat: "DD MMM YYYY"});// use this to change the date format for your locale, eg "YYYY MMM DD", do not translate the Y, M or D
merge(config.macros.allTags,{
tooltip: "Bekijk tiddlers gelabeld met '%0'",
noTags: "Er zijn geen gelabelde tiddlers"});
config.macros.list.all.prompt = "Alle tiddlers in alfabetische volgorde";
config.macros.list.missing.prompt = "Tiddlers waarnaar wordt gelinkt maar die niet bestaan";
config.macros.list.orphans.prompt = "Tiddlers waarnaar vanuit geen enkele andere tiddler wordt gelinkt";
config.macros.list.shadowed.prompt = "Schaduw-tiddlers met standaard (default) inhoud";
config.macros.list.touched.prompt = "Tiddlers die lokaal zijn gewijzigd";
merge(config.macros.closeAll,{
label: "sluit alles",
prompt: "Sluit alle weergegeven tiddlers (behalve die open staan voor wijziging)"});
merge(config.macros.permaview,{
label: "permaview",
prompt: "Link naar een URL die alle tiddlers ophaalt die nu open staan"});
merge(config.macros.saveChanges,{
label: "wijzigingen opslaan",
prompt: "Opslaan van alle wijzigingen in deze TiddlyWiki",
accessKey: "S"});
merge(config.macros.newTiddler,{
label: "nieuwe tiddler",
prompt: "Maak een nieuwe tiddler",
title: "Nieuwe tiddler",
accessKey: "N"});
merge(config.macros.newJournal,{
label: "nieuwe blog-tiddler",
prompt: "Maak een nieuwe tiddler met de datum van vandaag",
accessKey: "J"});
merge(config.macros.options,{
wizardTitle: "Geavanceerde opties aanpassen",
step1Title: "Deze opties worden bewaard in een cookie in je browser",
step1Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='false' name='chkUnknown'>Bekijk onbekende opties</input>",
unknownDescription: "//(onbekend)//",
listViewTemplate: {
columns: [
{name: 'Option', field: 'option', title: "Optie", type: 'String'},
{name: 'Description', field: 'description', title: "Beschrijving", type: 'WikiText'},
{name: 'Name', field: 'name', title: "Naam", type: 'String'}
],
rowClasses: [
{className: 'lowlight', field: 'lowlight'}
]}
});
merge(config.macros.plugins,{
wizardTitle: "Beheer plugins",
step1Title: "Thans geladen plugins",
step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
skippedText: "(Deze plugin is niet uitgevoerd want hij is pas na startup geïnstalleerd)",
noPluginText: "Er zijn geen plugins geïnstalleerd",
confirmDeleteText: "Weet je zeker dat je deze plugins wilt verwijderen:\n\n%0",
removeLabel: "verwijder systemConfig label",
removePrompt: "Verwijder systemConfig label",
deleteLabel: "verwijder",
deletePrompt: "Verwijder deze tiddlers definitief",
listViewTemplate: {
columns: [
{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Grootte", type: 'Size'},
{name: 'Forced', field: 'forced', title: "Verplicht", tag: 'systemConfigForce', type: 'TagCheckbox'},
{name: 'Disabled', field: 'disabled', title: "Uitgeschakeld", tag: 'systemConfigDisable', type: 'TagCheckbox'},
{name: 'Executed', field: 'executed', title: "Geladen", type: 'Boolean', trueText: "Ja", falseText: "Nee"},
{name: 'Startup Time', field: 'startupTime', title: "Startup Tijd", type: 'String'},
{name: 'Error', field: 'error', title: "Status", type: 'Boolean', trueText: "Fout", falseText: "OK"},
{name: 'Log', field: 'log', title: "Log", type: 'StringList'}
],
rowClasses: [
{className: 'error', field: 'error'},
{className: 'warning', field: 'warning'}
]}
});
merge(config.macros.toolbar,{
moreLabel: "meer",
morePrompt: "Laat nog meer commando's zien"
});
merge(config.macros.refreshDisplay,{
label: "ververs",
prompt: "Beeld de gehele TiddlyWiki opnieuw af"
});
merge(config.macros.importTiddlers,{
readOnlyWarning: "Je kunt niet importeren in een alleen-lezen TiddlyWiki bestand. Open je TiddlyWiki met een file://-URL",
wizardTitle: "Importeer tiddlers vanuit een ander bestand of server",
step1Title: "Stap 1: Stel vast waar de server of het TiddlyWiki bestand zich bevindt",
step1Html: "Specificeer het type server: <select name='selTypes'><option value=''>Kies...</option></select><br>Typ de URL of padnaam hier: <input type='text' size=50 name='txtPath'><br>...of navigeer naar het bestand: <input type='file' size=50 name='txtBrowse'><br><hr>...of selecteer een voor-gedefinieerde bron: <select name='selFeeds'><option value=''>Kies...</option></select>",
openLabel: "open",
openPrompt: "Open de verbinding naar dit bestand of deze server",
openError: "Het TiddlyWiki bestand kon niet worden gevonden",
statusOpenHost: "Bezig de host te verbinden",
statusGetWorkspaceList: "Verkrijg de lijst van beschikbare werkruimtes",
step2Title: "Stap 2: Kies de werkruimte",
step2Html: "Typ de naam van een werkruimte: <input type='text' size=50 name='txtWorkspace'><br>...of selecteer een werkruimte: <select name='selWorkspace'><option value=''>Kies...</option></select>",
cancelLabel: "annuleer",
cancelPrompt: "Annuleer deze import",
statusOpenWorkspace: "Bezig de werkruimte te openen",
statusGetTiddlerList: "De lijst van beschikbare tiddlers ophalen",
errorGettingTiddlerList: "Fout bij het ophalen van de lijst van tiddlers, klik 'annuleer' en probeer opnieuw",
step3Title: "Stap 3: Kies de tiddlers die je wilt importeren",
step3Html: "<input type='hidden' name='markList'></input><br><input type='checkbox' checked='true' name='chkSync'>Onthoud de link naar deze tiddlers zodat je ook toekomstige wijzigingen eenvoudig zult kunnen synchroniseren</input><br><input type='checkbox' name='chkSave'>Bewaar de details van deze server in een 'systemServer'-tiddler genaamd:</input> <input type='text' size=25 name='txtSaveTiddler'>",
importLabel: "import",
importPrompt: "Importeer deze tiddlers",
confirmOverwriteText: "Weet je zeker dat je deze tiddlers wilt overschrijven:\n\n%0",
step4Title: "Stap 4: Bezig %0 tiddler(s) te importeren",
step4Html: "<input type='hidden' name='markReport'></input>", // DO NOT TRANSLATE
doneLabel: "klaar",
donePrompt: "Sluit deze wizard af",
statusDoingImport: "Bezig tiddlers te importeren",
statusDoneImport: "Alle tiddlers zijn geïmporteerd",
systemServerNamePattern: "%2 op %1",
systemServerNamePatternNoWorkspace: "%1",
confirmOverwriteSaveTiddler: "De tiddler '%0' bestaat al. Klik 'OK' om hem te overschrijven met de gegevens van deze server, of 'annuleer' om hem ongewijzigd te laten",
serverSaveTemplate: "|''Typ:''|%0|\n|''URL:''|%1|\n|''Werkruimte:''|%2|\n\nDeze tiddler is automatisch aangemaakt om de gegevens van deze server vast te leggen",
serverSaveModifier: "(System)",
listViewTemplate: {
columns: [
{name: 'Selected', field: 'Selected', rowName: 'title', type: 'Selector'},
{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
{name: 'Size', field: 'size', tiddlerLink: 'size', title: "Grootte", type: 'Size'},
{name: 'Tags', field: 'tags', title: "Labels", type: 'Tags'}
],
rowClasses: [
]}
});
merge(config.macros.upgrade,{
wizardTitle: "Bijwerken van het TiddlyWiki kernprogramma",
step1Title: "Deze TiddlyWiki bijwerken of repareren volgens de jongste versie",
step1Html: "Je staat op het punt om het TiddlyWiki kernprogramma bij te werken naar de jongste versie (vanaf <a href='%0' class='externalLink' target='_blank'>%1</a>). Tijdens het bijwerken zal je eigen TW-inhoud bewaard blijven.<br><br>Bedenk dat kernprogramma wijzigingen soms invloed hebben op oudere plugins. Als je problemen ondervindt met je bijgewerkte TiddlyWiki, kijk dan op <a href='http://www.tiddlywiki.org/wiki/CoreUpgrades' class='externalLink' target='_blank'>http://www.tiddlywiki.org/wiki/CoreUpgrades</a>",
errorCantUpgrade: "Deze TiddlyWiki kan niet worden bijgewerkt. Alleen lokaal opgeslagen TiddlyWiki bestanden kunnen worden bijgewerkt",
errorNotSaved: "Je moet je wijzigingen eerst opslaan voordat je het TiddlyWiki kernprogramma kunt bijwerken",
step2Title: "Bevestig de details van het bijwerken",
step2Html_downgrade: "Je staat op het punt om je TiddlyWiki versie %1 terug te zetten naar de oudere versie %0.<br><br>Terugzetten naar een oudere versie van het kernprogramma wordt ontraden",
step2Html_restore: "Deze TiddlyWiki maakt al gebruik van de jongste versie van het kernprogramma (%0).<br><br>Je kunt doorgaan met bijwerken om zeker te weten dat het kernprogramma niet is beschadigd",
step2Html_upgrade: "Je staat op het punt om je TiddlyWiki versie %1 bij te werken naar versie %0",
upgradeLabel: "bijwerken",
upgradePrompt: "Voorbereiden van het proces van bijwerken",
statusPreparingBackup: "Voorbereiding backup",
statusSavingBackup: "Backup bestand opslaan",
errorSavingBackup: "Er was een probleem bij het opslaan van het backup bestand",
statusLoadingCore: "Laden van het kernprogramma",
errorLoadingCore: "Fout bij het laden van het kernprogramma",
errorCoreFormat: "Fout in het nieuwe kernprogramma",
statusSavingCore: "Opslaan van het nieuwe kernprogramma",
statusReloadingCore: "Het nieuwe kernprogramma herladen",
startLabel: "start",
startPrompt: "Start het proces van bijwerken",
cancelLabel: "annuleer",
cancelPrompt: "Annuleer het proces van bijwerken",
step3Title: "Bijwerken geannuleerd",
step3Html: "Je hebt het proces van bijwerken geannuleerd"
});
merge(config.macros.sync,{
listViewTemplate: {
columns: [
{name: 'Selected', field: 'selected', rowName: 'title', type: 'Selector'},
{name: 'Tiddler', field: 'tiddler', title: "Tiddler", type: 'Tiddler'},
{name: 'Server Type', field: 'serverType', title: "Server type", type: 'String'},
{name: 'Server Host', field: 'serverHost', title: "Server host", type: 'String'},
{name: 'Server Workspace', field: 'serverWorkspace', title: "Server werkruimte", type: 'String'},
{name: 'Status', field: 'status', title: "Synchronisatie status", type: 'String'},
{name: 'Server URL', field: 'serverUrl', title: "Server URL", text: "Bekijk", type: 'Link'}
],
rowClasses: [
],
buttons: [
{caption: "Synchroniseer deze tiddlers", name: 'sync'}
]},
wizardTitle: "Synchroniseer met externe servers en bestanden",
step1Title: "Kies de tiddlers die je wilt synchroniseren",
step1Html: "<input type='hidden' name='markList'></input>", // DO NOT TRANSLATE
syncLabel: "sync",
syncPrompt: "Synchroniseer deze tiddlers",
hasChanged: "Gewijzigd zonder verbinding",
hasNotChanged: "Ongewijzigd zonder verbinding",
syncStatusList: {
none: {text: "...", color: "transparant", display:null},
changedServer: {text: "Gewijzigd op de server", color: '#8080ff', display:null},
changedLocally: {text: "Gewijzigd zonder verbinding", color: '#80ff80', display:null},
changedBoth: {text: "Gewijzigd op de server zonder verbinding", color: '#ff8080', display:null},
notFound: {text: "Niet gevonden op de server", color: '#ffff80', display:null},
putToServer: {text: "Wijziging opgeslagen op de server", color: '#ff80ff', display:null},
gotFromServer: {text: "Wijziging van de server opgehaald", color: '#80ffff', display:null}
}
});
merge(config.commands.closeTiddler,{
text: "sluit",
tooltip: "Sluit deze tiddler"});
merge(config.commands.closeOthers,{
text: "sluit andere",
tooltip: "Sluit alle andere tiddlers"});
merge(config.commands.editTiddler,{
text: "wijzig",
tooltip: "Wijzig de inhoud van deze tiddler",
readOnlyText: "bekijk",
readOnlyTooltip: "Bekijk de broncode van deze tiddler"});
merge(config.commands.saveTiddler,{
text: "bewaar",
tooltip: "Bewaar de wijzigingen in deze tiddler"});
merge(config.commands.cancelTiddler,{
text: "annuleer",
tooltip: "Negeer de wijzigingen in deze tiddler",
warning: "Weet je zeker dat de wijzigingen in '%0' niet moeten worden opgeslagen?",
readOnlyText: "klaar",
readOnlyTooltip: "Bekijk deze tiddler weer in de normale weergave"});
merge(config.commands.deleteTiddler,{
text: "verwijder",
tooltip: "Verwijder deze tiddler",
warning: "Weet je zeker dat je tiddler '%0' permanent wilt verwijderen?"});
merge(config.commands.permalink,{
text: "permalink",
tooltip: "Een URL die rechtstreeks naar deze tiddler verwijst"});
merge(config.commands.references,{
text: "verwijzingen",
tooltip: "Bekijk tiddlers die naar deze tiddler verwijzen",
popupNone: "Geen verwijzingen"});
merge(config.commands.jump,{
text: "spring",
tooltip: "Spring naar een andere open tiddler"});
merge(config.commands.syncing,{
text: "synchroniseren",
tooltip: "Beheer de synchronisatie van deze tiddler met een server of extern bestand",
currentlySyncing: "<div>Bezig met synchroniseren via <span class='popupHighlight'>'%0'</span> naar:</"+"div><div>host: <span class='popupHighlight'>%1</span></"+"div><div>werkruimte: <span class='popupHighlight'>%2</span></"+"div>", // Note escaping of closing <div> tag
notCurrentlySyncing: "Geen synchronisatie aan de gang",
captionUnSync: "Annuleer de synchronisatie van deze tiddler",
chooseServer: "Synchroniseer deze tiddler met een andere server:",
currServerMarker: "\u25cf ",
notCurrServerMarker: " "});
merge(config.commands.fields,{
text: "velden",
tooltip: "Bekijk de speciale velden van deze tiddler",
emptyText: "Er zijn geen speciale velden voor deze tiddler",
listViewTemplate: {
columns: [
{name: 'Field', field: 'field', title: "Veld", type: 'String'},
{name: 'Value', field: 'value', title: "Waarde", type: 'String'}
],
rowClasses: [
],
buttons: [
]}});
merge(config.shadowTiddlers,{
DefaultTiddlers: "[[HierBeginnen]]",
MainMenu: "[[HierBeginnen]]\n\n\n^^~TiddlyWiki versie <<version>>\n© 2007 [[UnaMesa|http://www.unamesa.org/]]^^",
HierBeginnen: "Om te beginnen met deze blanco TiddlyWiki, vul je hierachter je naam in, zodat vanaf dat moment al jouw wijzigingen daarmee zullen worden gesigneerd: <<option txtUserName>>\n\nVervolgens kun je de onderstaande tiddlers gaan aanpassen:\n* SiteTitle & SiteSubtitle: De naam en ondertitel van de site, zoals hierboven wordt weergegeven (na het bewaren, zullen ze ook in de titelbalk van de browser verschijnen)\n* MainMenu: Het hoofdmenu (gebruikelijk aan de linkerkant)\n* DefaultTiddlers: Bevat de namen van alle tiddlers die je wilt laten verschijnen zodra deze TiddlyWiki wordt geopend.\n\nNatuurlijk kun je bovenstaande tiddlers ook later nog steeds aanpassen.\n\nEn nu ben je klaar om je eigen inhoud aan deze website te gaan geven.\nKlik bijvoorbeeld maar eens in de rechter kolom op ''nieuwe tiddler'' en typ een eigen stukje tekst in het venster dat wordt geopend.\nKlik vervolgens op ''bewaar'' daar vlak boven, en kijk, je eerste hoofdstukje (tiddler) is gemaakt (compleet met jouw naam en de datum)!\n\nZo simpel is nou het werken met TiddlyWiki.",
SiteTitle: "Mijn TiddlyWiki",
SiteSubtitle: "een herbruikbaar niet lineair persoonlijk notitieboek voor het web",
SiteUrl: "http://www.tiddlywiki.com/",
OptionsPanel: "Met deze ~TiddlyWiki Instellingen kun je je persoonlijke voorkeuren instellen, die door je browser worden onthouden in een cookie.\n\nGeef hier je gebruikersnaam op voor het signeren van jouw teksten en andere inhoud:\n<<option txtUserName>>\n<<option chkSaveBackups>> Bewaar backups\n<<option chkAutoSave>> Gebruik Autosave\n<<option chkRegExpSearch>> Zoek met ~JavaScript expressies\n<<option chkCaseSensitiveSearch>> Zoek hoofdlettergevoelig\n<<option chkAnimate>> Activeer animaties\n\nZie ook [[Geavanceerde opties|AdvancedOptions]]",
SideBarOptions: '<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "blog">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "TiddlyWiki instellingen \u00bb" "Wijzig geavanceerde TiddlyWiki instellingen">>', // use this to change the date format for your locale, eg "YYYY MMM DD", do not translate the Y, M or D
SideBarTabs: '<<tabs txtMainTab "Op datum" "Tiddler chronologie" TabTimeline "Alle" "Alle tiddlers" TabAll "Labels" "Alle labels" TabTags "Meer" "Meer lijsten" TabMore>>',
TabMore: '<<tabs txtMoreTab "Ontbrekend" "Ontbrekende tiddlers" TabMoreMissing "Wezen" "Tiddlers waar niets naar verwijst" TabMoreOrphans "Schaduw" "Schaduw-tiddlers" TabMoreShadowed>>'
});
merge(config.annotations,{
AdvancedOptions: "Deze schaduw-tiddler geeft toegang tot diverse geavanceerde TiddlyWiki opties",
ColorPalette: "De waarden in deze schaduw-tiddler bepalen het kleuren-schema van de ~TiddlyWiki gebruikers-interface",
DefaultTiddlers: "De tiddlers genoemd in deze schaduw-tiddler worden automatisch weergegeven als ~TiddlyWiki opstart",
EditTemplate: "De HTML template in deze schaduw-tiddler bepaalt hoe tiddlers er uitzien in wijzigingsmodus",
GettingStarted: "Deze schaduw-tiddler bevat de allereerste gebruiks instructies",
ImportTiddlers: "Deze schaduw-tiddler geeft toegang tot de tiddler import faciliteit",
MainMenu: "Deze schaduw-tiddler wordt gebruikt om de inhoud te bepalen van het hoofdmenu in de linker kolom van het scherm",
MarkupPreHead: "Deze tiddler wordt ingevoegd bovenaan de <head> sectie van het TiddlyWiki HTML bestand",
MarkupPostHead: "Deze tiddler wordt ingevoegd onderaan de <head> sectie van het TiddlyWiki HTML bestand",
MarkupPreBody: "Deze tiddler wordt ingevoegd bovenaan de <body> sectie van het TiddlyWiki HTML bestand",
MarkupPostBody: "Deze tiddler wordt ingevoegd onderaan de <body> sectie van het TiddlyWiki HTML bestand, onmiddellijk na het script blok",
OptionsPanel: "Deze schaduw-tiddler wordt gebruikt voor de inhoud van het instellingen paneel in de rechter kolom op het scherm",
PageTemplate: "De HTML template in deze schaduw-tiddler bepaalt de algemene ~TiddlyWiki layout",
PluginManager: "Deze schaduw-tiddler geeft toegang tot de plugin manager",
SideBarOptions: "Deze schaduw-tiddler wordt gebruikt voor de inhoud van het instellingen paneel in de rechter kolom op het scherm",
SideBarTabs: "Deze schaduw-tiddler wordt gebruikt voor de inhoud van het tabs paneel in de rechter kolom op het scherm",
SiteSubtitle: "Deze schaduw-tiddler wordt gebruikt als een subdeel van de titel van je webpagina",
SiteTitle: "Deze schaduw-tiddler wordt gebruikt als het hoofddeel van de titel van je webpagina",
SiteUrl: "In deze schaduw-tiddler moet de volledige URL worden genoteerd waaronder deze TiddlyWiki wordt gepubliceerd",
StyleSheetColors: "Deze schaduw-tiddler bevat CSS definities met betrekking tot de kleur van pagina elementen. ''LAAT DEZE TIDDLER ONGEWIJZIGD'', en maak je kleuraanpassingen in de StyleSheet schaduw-tiddler.",
StyleSheet: "Deze tiddler kan persoonlijke CSS definities bevatten, bijv. m.b.t. kleur en layout",
StyleSheetLayout: "Deze schaduw-tiddler bevat CSS definities met betrekking tot de layout van pagina elementen. ''LAAT DEZE TIDDLER ONGEWIJZIGD'', en maak je layoutaanpassingen in de StyleSheet schaduw-tiddler.",
StyleSheetLocale: "Deze schaduw-tiddler bevat CSS definities met betrekking tot vertaling en localisatie",
StyleSheetPrint: "Deze schaduw-tiddler bevat CSS definities voor printen",
TabAll: "Deze schaduw-tiddler bevat de inhoud van de 'Alle'-tab in de rechter zijkolom",
TabMore: "Deze schaduw-tiddler bevat de inhoud van de 'Meer'-tab in de rechter zijkolom",
TabMoreMissing: "Deze schaduw-tiddler bevat de inhoud van de 'Ontbrekend'-tab in de rechter zijkolom",
TabMoreOrphans: "Deze schaduw-tiddler bevat de inhoud van de 'Wezen'-tab in de rechter zijkolom",
TabMoreShadowed: "Deze schaduw-tiddler bevat de inhoud van de 'Schaduw'-tab in de rechter zijkolom",
TabTags: "Deze schaduw-tiddler bevat de inhoud van de 'Labels'-tab in de rechter zijkolom",
TabTimeline: "Deze schaduw-tiddler bevat de inhoud van de 'Op datum'-tab in de rechter zijkolom",
ToolbarCommands: "Deze schaduw-tiddler bepaalt welke opdrachten worden vermeld in tiddler commandoregels",
ViewTemplate: "De HTML template in deze schaduw-tiddler bepaalt hoe tiddlers er uit zien"
});
//}}}
Op welke ''tijden'' kunnen wij u ontvangen?
<<<
Maandag gesloten
Dinsdag t/m vrijdag: van 09:00u tot 16:00u
Zaterdag: van 09:00u tot 13:00
Zondag gesloten
<<<
!!!Let op:
In ''december'' zijn we een uurtje langer open zodat u net wat meer tijd heeft om dat mooie boek uit te zoeken:
<<<
Maandag t/m zaterdag van 09:00 tot 1700u
Zondag gesloten
<<<
<!--{{{-->
<div class='header'>
</div>
<span class='toggler' refresh='content' tiddler='toggler'></span>
<div id='mainMenu' refresh='content' tiddler='MainMenu'></div>
<div id='sidebar'>
<div id='sidebarOptions' refresh='content' tiddler='SideBarOptions'></div>
<div id='sidebarTabs' refresh='content' force='true' tiddler='SideBarTabs'></div>
</div>
<div id='sidebar2'>
<span class='Zijbalk rechts' refresh='content' tiddler='Zijbalk rechts'></span>
</div>
<div id='displayArea'>
<div id='messageArea'></div>
<div id='tiddlerDisplay'></div>
</div>
<!--}}}-->
/***
|Name|PlayerPlugin|
|Source|http://www.TiddlyTools.com/#PlayerPlugin|
|Version|1.1.4|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements <br>and [[Creative Commons Attribution-ShareAlike 2.5 License|http://creativecommons.org/licenses/by-sa/2.5/]]|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides||
|Options|##Configuration|
|Description|Embed a media player in a tiddler|
!!!!!Usage
<<<
{{{<<player [id=xxx] [type] [URL] [width] [height] [autoplay|true|false] [showcontrols|true|false] [extras]>>}}}
''id=xxx'' is optional, and specifies a unique identifier for each embedded player. note: this is required if you intend to display more than one player at the same time.
''type'' is optional, and is one of the following: ''windows'', ''realone'', ''quicktime'', ''flash'', ''image'' or ''iframe''. If the media type is not specified, the plugin automatically detects Windows, Real, QuickTime, Flash video or JPG/GIF images by matching known file extensions and/or specialized streaming-media transfer protocols (such as RTSP:). For unrecognized media types, the plugin displays an error message.
''URL'' is the location of the media content
''width'' and ''height'' are the dimensions of the video display area (in pixels)
''autoplay'' or ''true'' or ''false'' is optional, and specifies whether the media content should begin playing as soon as it is loaded, or wait for the user to press the "play" button. Default is //not// to autoplay.
''showcontrols'' or ''true'' or ''false'' is optional, and specifies whether the embedded media player should display its built-in control panel (e.g., play, pause, stop, rewind, etc), if any. Default is to display the player controls.
''extras'' are optional //pairs// of parameters that can be passed to the embedded player, using the {{{<param name=xxx value=yyy>}}} HTML syntax.
''If you use [[AttachFilePlugin]] to encode and store a media file within your document, you can play embedded media content by using the title of the //attachment tiddler//'' as a parameter in place of the usual reference to an external URL. When playing an attached media content, you should always explicitly specify the media type parameter, because the name used for the attachment tiddler may not contain a known file extension from which a default media type can be readily determined.
<<<
!!!!!Configuration
<<<
Default player size:
width: <<option txtPlayerDefaultWidth>> height: <<option txtPlayerDefaultHeight>>
<<<
!!!!!Examples
<<<
+++[Windows Media]...
Times Square Live Webcam
{{{<<player id=1 http://www.earthcam.com/usa/newyork/timessquare/asx/tsq_stream.asx>>}}}
<<player id=1 http://www.earthcam.com/usa/newyork/timessquare/asx/tsq_stream.asx>>
===
+++[RealOne]...
BBC London: Live and Recorded news
{{{<<player id=2 http://www.bbc.co.uk/london/realmedia/news/tvnews.ram>>}}}
<<player id=2 http://www.bbc.co.uk/london/realmedia/news/tvnews.ram>>
===
+++[Quicktime]...
America Free TV: Classic Comedy
{{{<<player id=3 http://www.americafree.tv/unicast_mov/AmericaFreeTVComedy.mov>>}}}
<<player id=3 http://www.americafree.tv/unicast_mov/AmericaFreeTVComedy.mov>>
===
+++[Flash]...
Asteroids arcade game
{{{<<player id=4 http://www.80smusiclyrics.com/games/asteroids/asteroids.swf 400 300>>}}}
<<player id=4 http://www.80smusiclyrics.com/games/asteroids/asteroids.swf 400 300>>
Google Video
{{{<<player id=5 flash http://video.google.com/googleplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DoQAAAIVnUNP6GYRY8YnIRNPe4Uk5-j1q1MVpJIW4uyEFpq5Si0hcSDuig_JZcB9nNpAhbScm9W_8y_vDJQBw1DRdCVbXl-wwm5dyUiiStl_rXt0ATlstVzrUNC4fkgK_j7nmse7kxojRj1M3eo3jXKm2V8pQjWk97GcksMFFwg7BRAXmRSERexR210Amar5LYzlo9_k2AGUWPLyRhMJS4v5KtDSvNK0neL83ZjlHlSECYXyk%26sigh%3Dmpt2EOr86OAUNnPQ3b9Tr0wnDms%26begin%3D0%26len%3D429700%26docid%3D-914679554478687740&thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer%3Fcontentid%3De7e77162deb04c42%26second%3D5%26itag%3Dw320%26urlcreated%3D1144620753%26sigh%3DC3fqXPPS1tFiUqLzmkX3pdgYc2Y&playerId=-91467955447868774 400 326>>}}}
<<player id=5 flash http://video.google.com/googleplayer.swf?videoUrl=http%3A%2F%2Fvp.video.google.com%2Fvideodownload%3Fversion%3D0%26secureurl%3DoQAAAIVnUNP6GYRY8YnIRNPe4Uk5-j1q1MVpJIW4uyEFpq5Si0hcSDuig_JZcB9nNpAhbScm9W_8y_vDJQBw1DRdCVbXl-wwm5dyUiiStl_rXt0ATlstVzrUNC4fkgK_j7nmse7kxojRj1M3eo3jXKm2V8pQjWk97GcksMFFwg7BRAXmRSERexR210Amar5LYzlo9_k2AGUWPLyRhMJS4v5KtDSvNK0neL83ZjlHlSECYXyk%26sigh%3Dmpt2EOr86OAUNnPQ3b9Tr0wnDms%26begin%3D0%26len%3D429700%26docid%3D-914679554478687740&thumbnailUrl=http%3A%2F%2Fvideo.google.com%2FThumbnailServer%3Fcontentid%3De7e77162deb04c42%26second%3D5%26itag%3Dw320%26urlcreated%3D1144620753%26sigh%3DC3fqXPPS1tFiUqLzmkX3pdgYc2Y&playerId=-91467955447868774 400 326>>
YouTube Video
{{{<<player id=6 flash http://www.youtube.com/v/OdT9z-JjtJk 400 300>>}}}
<<player id=6 flash http://www.youtube.com/v/OdT9z-JjtJk 400 300>>
===
+++[Still Images]...
GIF (best for illustrations, animations, diagrams, etc.)
{{{<<player id=7 image images/meow.gif auto auto>>}}}
<<player id=7 image images/meow.gif auto auto>>
JPG (best for photographs, scanned images, etc.)
{{{<<player id=8 image images/meow2.jpg 200 150>>}}}
<<player id=8 image images/meow2.jpg 200 150>>
===
<<<
!!!!!Revisions
<<<
2008.05.10 [1.1.4] in handlers(), immediately return if no params (prevents error in macro). Also, refactored auto-detect code to make type mapping configurable.
2007.10.15 [1.1.3] in loadURL(), add recognition for .PNG (still image), fallback to iframe for unrecognized media types
2007.08.31 [1.1.2] added 'click-through' link for JPG/GIF images
2007.06.21 [1.1.1] changed "hidecontrols" param to "showcontrols" and recognize true/false values in addition to 'showcontrols', added "autoplay" param (also recognize true/false values), allow "auto" as value for type param
2007.05.22 [1.1.0] added support for type=="iframe" (displays src URL in an IFRAME)
2006.12.06 [1.0.1] in handler(), corrected check for config.macros.attach (instead of config.macros.attach.getAttachment) so that player plugin will work when AttachFilePlugin is NOT installed. (Thanks to Phillip Ehses for bug report)
2006.11.30 [1.0.0] support embedded media content using getAttachment() API defined by AttachFilePlugin or AttachFilePluginFormatters. Also added support for 'image' type to render JPG/GIF still images
2006.02.26 [0.7.0] major re-write. handles default params better. create/recreate player objects via loadURL() API for use with interactive forms and scripts.
2006.01.27 [0.6.0] added support for 'extra' macro params to pass through to object parameters
2006.01.19 [0.5.0] Initial ALPHA release
2005.12.23 [0.0.0] Started
<<<
!!!!!Code
***/
//{{{
version.extensions.PlayerPlugin= {major: 1, minor: 1, revision: 4, date: new Date(2008,5,10)};
config.macros.player = {};
config.macros.player.html = {};
config.macros.player.handler= function(place,macroName,params) {
if (!params.length) return; // missing parameters - do nothing
var id=null;
if (params[0].substr(0,3)=="id=") id=params.shift().substr(3);
var type="";
if (!params.length) return; // missing parameters - do nothing
var p=params[0].toLowerCase();
if (p=="auto" || p=="windows" || p=="realone" || p=="quicktime" || p=="flash" || p=="image" || p=="iframe")
type=params.shift().toLowerCase();
var url=params.shift(); if (!url || !url.trim().length) url="";
if (url.length && config.macros.attach!=undefined) // if AttachFilePlugin is installed
if ((tid=store.getTiddler(url))!=null && tid.isTagged("attachment")) // if URL is attachment
url=config.macros.attach.getAttachment(url); // replace TiddlerTitle with URL
var width=params.shift();
var height=params.shift();
var autoplay=false;
if (params[0]=='autoplay'||params[0]=='true'||params[0]=='false')
autoplay=(params.shift()!='false');
var show=true;
if (params[0]=='showcontrols'||params[0]=='true'||params[0]=='false')
show=(params.shift()!='false');
var extras="";
while (params[0]!=undefined)
extras+="<param name='"+params.shift()+"' value='"+params.shift()+"'> ";
this.loadURL(place,id,type,url,width,height,autoplay,show,extras);
}
if (config.options.txtPlayerDefaultWidth==undefined) config.options.txtPlayerDefaultWidth="100%";
if (config.options.txtPlayerDefaultHeight==undefined) config.options.txtPlayerDefaultHeight="480"; // can't use "100%"... player height doesn't stretch right :-(
config.macros.player.typeMap={
windows: ['mms', '.asx', '.wvx', '.wmv', '.mp3'],
realone: ['rtsp', '.ram', '.rpm', '.rm', '.ra'],
quicktime: ['.mov', '.qt'],
flash: ['.swf', '.flv'],
image: ['.jpg', '.gif', '.png'],
iframe: ['.htm', '.html', '.shtml', '.php']
};
config.macros.player.loadURL=function(place,id,type,url,width,height,autoplay,show,extras) {
if (id==undefined) id="tiddlyPlayer";
if (!width) var width=config.options.txtPlayerDefaultWidth;
if (!height) var height=config.options.txtPlayerDefaultHeight;
if (url && (!type || !type.length || type=="auto")) { // determine type from URL
u=url.toLowerCase();
var map=config.macros.player.typeMap;
for (var t in map) for (var i=0; i<map[t].length; i++)
if (u.indexOf(map[t][i])!=-1) var type=t;
}
if (!type || !config.macros.player.html[type]) var type="none";
if (!url) var url="";
if (show===undefined) var show=true;
if (!extras) var extras="";
if (type=="none" && url.trim().length) type="iframe"; // fallback to iframe for unrecognized media types
// adjust parameter values for player-specific embedded HTML
switch (type) {
case "windows":
autoplay=autoplay?"1":"0"; // player-specific param value
show=show?"1":"0"; // player-specific param value
break;
case "realone":
autoplay=autoplay?"true":"false";
show=show?"block":"none";
height-=show?60:0; // leave room for controls
break;
case "quicktime":
autoplay=autoplay?"true":"false";
show=show?"true":"false";
break;
case "image":
show=show?"block":"none";
break;
case "iframe":
show=show?"block":"none";
break;
}
// create containing div for player HTML
// and add or replace player in TW DOM structure
var newplayer = document.createElement("div");
newplayer.playerType=type;
newplayer.setAttribute("id",id+"_div");
var existing = document.getElementById(id+"_div");
if (existing && !place) place=existing.parentNode;
if (!existing)
place.appendChild(newplayer);
else {
if (place==existing.parentNode) place.replaceChild(newplayer,existing)
else { existing.parentNode.removeChild(existing); place.appendChild(newplayer); }
}
var html=config.macros.player.html[type];
html=html.replace(/%i%/mg,id);
html=html.replace(/%w%/mg,width);
html=html.replace(/%h%/mg,height);
html=html.replace(/%u%/mg,url);
html=html.replace(/%a%/mg,autoplay);
html=html.replace(/%s%/mg,show);
html=html.replace(/%x%/mg,extras);
newplayer.innerHTML=html;
}
//}}}
// // Player-specific API functions: isReady(id), isPlaying(id), toggleControls(id), showControls(id,flag)
//{{{
// status values:
// Windows: 0=Undefined, 1=Stopped, 2=Paused, 3=Playing, 4=ScanForward, 5=ScanReverse
// 6=Buffering, 7=Waiting, 8=MediaEnded, 9=Transitioning, 10=Ready, 11=Reconnecting
// RealOne: 0=Stopped, 1=Contacting, 2=Buffering, 3=Playing, 4=Paused, 5=Seeking
// QuickTime: 'Waiting', 'Loading', 'Playable', 'Complete', 'Error:###'
// Flash: 0=Loading, 1=Uninitialized, 2=Loaded, 3=Interactive, 4=Complete
config.macros.player.isReady=function(id)
{
var d=document.getElementById(id+"_div"); if (!d) return false;
var p=document.getElementById(id); if (!p) return false;
if (d.playerType=='windows') return !((p.playState==0)||(p.playState==7)||(p.playState==9)||(p.playState==11));
if (d.playerType=='realone') return (p.GetPlayState()>1);
if (d.playerType=='quicktime') return !((p.getPluginStatus()=='Waiting')||(p.getPluginStatus()=='Loading'));
if (d.playerType=='flash') return (p.ReadyState>2);
return true;
}
config.macros.player.isPlaying=function(id)
{
var d=document.getElementById(id+"_div"); if (!d) return false;
var p=document.getElementById(id); if (!p) return false;
if (d.playerType=='windows') return (p.playState==3);
if (d.playerType=='realone') return (p.GetPlayState()==3);
if (d.playerType=='quicktime') return (p.getPluginStatus()=='Complete');
if (d.playerType=='flash') return (p.ReadyState<4);
return false;
}
config.macros.player.showControls=function(id,flag) {
var d=document.getElementById(id+"_div"); if (!d) return false;
var p=document.getElementById(id); if (!p) return false;
if (d.playerType=='windows') { p.ShowControls=flag; p.ShowStatusBar=flag; }
if (d.playerType=='realone') { alert('show/hide controls not available'); }
if (d.playerType=='quicktime') // if player not ready, retry in one second
{ if (this.isReady(id)) p.setControllerVisible(flag); else setTimeout('config.macros.player.showControls("'+id+'",'+flag+')',1000); }
if (d.playerType=='flash') { alert('show/hide controls not available'); }
}
config.macros.player.toggleControls=function(id) {
var d=document.getElementById(id+"_div"); if (!d) return false;
var p=document.getElementById(id); if (!p) return false;
if (d.playerType=='windows') var flag=!p.ShowControls;
if (d.playerType=='realone') var flag=true; // TBD
if (d.playerType=='quicktime') var flag=!p.getControllerVisible();
if (d.playerType=='flash') var flag=true; // TBD
this.showControls(id,flag);
}
config.macros.player.fullScreen=function(id) {
var d=document.getElementById(id+"_div"); if (!d) return false;
var p=document.getElementById(id); if (!p) return false;
if (d.playerType=='windows') p.DisplaySize=3;
if (d.playerType=='realone') p.SetFullScreen();
if (d.playerType=='quicktime') { alert('full screen not available'); }
if (d.playerType=='flash') { alert('full screen not available'); }
}
//}}}
// // Player HTML
//{{{
// placeholder (no player)
config.macros.player.html.none=' \
<table id="%i%" width="%w%" height="%h%" style="background-color:#111;border:0;margin:0;padding:0;"> \
<tr style="background-color:#111;border:0;margin:0;padding:0;"> \
<td width="%w%" height="%h%" style="background-color:#111;color:#ccc;border:0;margin:0;padding:0;text-align:center;"> \
\
%u% \
\
</td></tr></table>';
//}}}
//{{{
// JPG/GIF/PNG still images
config.macros.player.html.image='\
<a href="%u%" target="_blank"><img width="%w%" height="%h%" style="display:%s%;" src="%u%"></a>';
//}}}
//{{{
// IFRAME web page viewer
config.macros.player.html.iframe='\
<iframe id="%i%" width="%w%" height="%h%" style="display:%s%;background:#fff;" src="%u%"></iframe>';
//}}}
//{{{
// Windows Media Player
// v7.1 ID: classid=CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6
// v9 ID: classid=CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95
config.macros.player.html.windows=' \
<object id="%i%" width="%w%" height="%h%" style="margin:0;padding:0;width:%w%;height:%h%px;" \
classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95" \
codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715" \
align="baseline" border="0" \
standby="Loading Microsoft Windows Media Player components..." \
type="application/x-oleobject"> \
<param name="FileName" value="%u%"> <param name="ShowControls" value="%s%"> \
<param name="ShowPositionControls" value="1"> <param name="ShowAudioControls" value="1"> \
<param name="ShowTracker" value="1"> <param name="ShowDisplay" value="0"> \
<param name="ShowStatusBar" value="1"> <param name="AutoSize" value="1"> \
<param name="ShowGotoBar" value="0"> <param name="ShowCaptioning" value="0"> \
<param name="AutoStart" value="%a%"> <param name="AnimationAtStart" value="1"> \
<param name="TransparentAtStart" value="0"> <param name="AllowScan" value="1"> \
<param name="EnableContextMenu" value="1"> <param name="ClickToPlay" value="1"> \
<param name="InvokeURLs" value="1"> <param name="DefaultFrame" value="datawindow"> \
%x% \
<embed src="%u%" style="margin:0;padding:0;width:%w%;height:%h%px;" \
align="baseline" border="0" width="%w%" height="%h%" \
type="application/x-mplayer2" \
pluginspage="http://www.microsoft.com/windows/windowsmedia/download/default.asp" \
name="%i%" showcontrols="%s%" showpositioncontrols="1" \
showaudiocontrols="1" showtracker="1" showdisplay="0" \
showstatusbar="%s%" autosize="1" showgotobar="0" showcaptioning="0" \
autostart="%a%" autorewind="0" animationatstart="1" transparentatstart="0" \
allowscan="1" enablecontextmenu="1" clicktoplay="0" invokeurls="1" \
defaultframe="datawindow"> \
</embed> \
</object>';
//}}}
//{{{
// RealNetworks' RealOne Player
config.macros.player.html.realone=' \
<table width="%w%" style="border:0;margin:0;padding:0;"><tr style="border:0;margin:0;padding:0;"><td style="border:0;margin:0;padding:0;"> \
<object id="%i%" width="%w%" height="%h%" style="margin:0;padding:0;" \
CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"> \
<PARAM NAME="CONSOLE" VALUE="player"> \
<PARAM NAME="CONTROLS" VALUE="ImageWindow"> \
<PARAM NAME="AUTOSTART" Value="%a%"> \
<PARAM NAME="MAINTAINASPECT" Value="true"> \
<PARAM NAME="NOLOGO" Value="true"> \
<PARAM name="BACKGROUNDCOLOR" VALUE="#333333"> \
<PARAM NAME="SRC" VALUE="%u%"> \
%x% \
<EMBED width="%w%" height="%h%" controls="ImageWindow" type="audio/x-pn-realaudio-plugin" style="margin:0;padding:0;" \
name="%i%" \
src="%u%" \
console=player \
maintainaspect=true \
nologo=true \
backgroundcolor=#333333 \
autostart=%a%> \
</OBJECT> \
</td></tr><tr style="border:0;margin:0;padding:0;"><td style="border:0;margin:0;padding:0;"> \
<object id="%i%_controls" width="%w%" height="60" style="margin:0;padding:0;display:%s%" \
CLASSID="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA"> \
<PARAM NAME="CONSOLE" VALUE="player"> \
<PARAM NAME="CONTROLS" VALUE="All"> \
<PARAM NAME="NOJAVA" Value="true"> \
<PARAM NAME="MAINTAINASPECT" Value="true"> \
<PARAM NAME="NOLOGO" Value="true"> \
<PARAM name="BACKGROUNDCOLOR" VALUE="#333333"> \
<PARAM NAME="SRC" VALUE="%u%"> \
%x% \
<EMBED WIDTH="%w%" HEIGHT="60" NOJAVA="true" type="audio/x-pn-realaudio-plugin" style="margin:0;padding:0;display:%s%" \
controls="All" \
name="%i%_controls" \
src="%u%" \
console=player \
maintainaspect=true \
nologo=true \
backgroundcolor=#333333> \
</OBJECT> \
</td></tr></table>';
//}}}
//{{{
// QuickTime Player
config.macros.player.html.quicktime=' \
<OBJECT ID="%i%" WIDTH="%w%" HEIGHT="%h%" style="margin:0;padding:0;" \
CLASSID="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" \
CODEBASE="http://www.apple.com/qtactivex/qtplugin.cab"> \
<PARAM name="SRC" VALUE="%u%"> \
<PARAM name="AUTOPLAY" VALUE="%a%"> \
<PARAM name="CONTROLLER" VALUE="%s%"> \
<PARAM name="BGCOLOR" VALUE="#333333"> \
<PARAM name="SCALE" VALUE="aspect"> \
<PARAM name="SAVEEMBEDTAGS" VALUE="true"> \
%x% \
<EMBED name="%i%" WIDTH="%w%" HEIGHT="%h%" style="margin:0;padding:0;" \
SRC="%u%" \
AUTOPLAY="%a%" \
SCALE="aspect" \
CONTROLLER="%s%" \
BGCOLOR="#333333" \
EnableJavaSript="true" \
PLUGINSPAGE="http://www.apple.com/quicktime/download/"> \
</EMBED> \
</OBJECT>';
//}}}
//{{{
// Flash Player
config.macros.player.html.flash='\
<object id="%i%" width="%w%" height="%h%" style="margin:0;padding:0;" \
classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" \
codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"> \
<param name="movie" value="%u%"> \
<param name="quality" value="high"> \
<param name="SCALE" value="exactfit"> \
<param name="bgcolor" value="333333"> \
%x% \
<embed name="%i%" src="%u%" style="margin:0;padding:0;" \
height="%h%" width="%w%" quality="high" \
pluginspage="http://www.macromedia.com/go/getflashplayer" \
type="application/x-shockwave-flash" scale="exactfit"> \
</embed> \
</object>';
//}}}
[img[Route|./plaatjes/route.jpg]]
<<search>><<closeAll>><<permaview>><<newTiddler>><<newJournal "DD MMM YYYY" "journal">><<saveChanges>><<slider chkSliderOptionsPanel OptionsPanel "options »" "Change TiddlyWiki advanced options">><<option txtUserName>>
if(!version.extensions.SimpleSearchPlugin) { //# ensure that the plugin is only installed once
version.extensions.SimpleSearchPlugin = { installed: true };
if(!plugins) { var plugins = {}; }
plugins.SimpleSearchPlugin = {
heading: "Search Results",
containerId: "searchResults",
btnCloseLabel: "close",
btnCloseTooltip: "dismiss search results",
btnCloseId: "search_close",
btnOpenLabel: "Open all",
btnOpenTooltip: "open all search results",
btnOpenId: "search_open",
displayResults: function(matches, query) {
story.refreshAllTiddlers(true); // update highlighting within story tiddlers
var el = document.getElementById(this.containerId);
query = '"""' + query + '"""'; // prevent WikiLinks
if(el) {
removeChildren(el);
} else { //# fallback: use displayArea as parent
var container = document.getElementById("displayArea");
el = document.createElement("div");
el.setAttribute("id", this.containerId);
el = container.insertBefore(el, container.firstChild);
}
var msg = "!" + this.heading + "\n";
if(matches.length > 0) {
msg += "''" + config.macros.search.successMsg.format([matches.length.toString(), query]) + ":''\n";
this.results = [];
for(var i = 0 ; i < matches.length; i++) {
this.results.push(matches[i].title);
msg += "* [[" + matches[i].title + "]]\n";
}
} else {
msg += "''" + config.macros.search.failureMsg.format([query]) + "''"; // XXX: do not use bold here!?
}
createTiddlyButton(el, this.btnCloseLabel, this.btnCloseTooltip, plugins.SimpleSearchPlugin.closeResults, "button", this.btnCloseId);
wikify(msg, el);
if(matches.length > 0) { // XXX: redundant!?
createTiddlyButton(el, this.btnOpenLabel, this.btnOpenTooltip, plugins.SimpleSearchPlugin.openAll, "button", this.btnOpenId);
}
},
closeResults: function() {
var el = document.getElementById(plugins.SimpleSearchPlugin.containerId);
removeNode(el);
plugins.SimpleSearchPlugin.results = null;
highlightHack = null;
},
openAll: function(ev) {
story.displayTiddlers(null, plugins.SimpleSearchPlugin.results);
return false;
}
};
config.shadowTiddlers.StyleSheetSimpleSearch = "/*{{{*/\n" +
"#" + plugins.SimpleSearchPlugin.containerId + " {\n" +
"\toverflow: auto;\n" +
"\tpadding: 5px 1em 10px;\n" +
"\tbackground-color: [[ColorPalette::TertiaryPale]];\n" +
"}\n\n" +
"#" + plugins.SimpleSearchPlugin.containerId + " h1 {\n" +
"\tmargin-top: 0;\n" +
"\tborder: none;\n" +
"}\n\n" +
"#" + plugins.SimpleSearchPlugin.containerId + " ul {\n" +
"\tmargin: 0.5em;\n" +
"\tpadding-left: 1.5em;\n" +
"}\n\n" +
"#" + plugins.SimpleSearchPlugin.containerId + " .button {\n" +
"\tdisplay: block;\n" +
"\tborder-color: [[ColorPalette::TertiaryDark]];\n" +
"\tpadding: 5px;\n" +
"\tbackground-color: [[ColorPalette::TertiaryLight]];\n" +
"}\n\n" +
"#" + plugins.SimpleSearchPlugin.containerId + " .button:hover {\n" +
"\tborder-color: [[ColorPalette::SecondaryMid]];\n" +
"\tbackground-color: [[ColorPalette::SecondaryLight]];\n" +
"}\n\n" +
"#" + plugins.SimpleSearchPlugin.btnCloseId + " {\n" +
"\tfloat: right;\n" +
"\tmargin: -5px -1em 5px 5px;\n" +
"}\n\n" +
"#" + plugins.SimpleSearchPlugin.btnOpenId + " {\n" +
"\tfloat: left;\n" +
"\tmargin-top: 5px;\n" +
"}\n" +
"/*}}}*/";
store.addNotification("StyleSheetSimpleSearch", refreshStyles);
// override Story.search()
Story.prototype.search = function(text, useCaseSensitive, useRegExp) {
highlightHack = new RegExp(useRegExp ? text : text.escapeRegExp(), useCaseSensitive ? "mg" : "img");
var matches = store.search(highlightHack, null, "excludeSearch");
var q = useRegExp ? "/" : "'";
plugins.SimpleSearchPlugin.displayResults(matches, q + text + q);
};
// override TiddlyWiki.search() to sort by relevance
TiddlyWiki.prototype.search = function(searchRegExp, sortField, excludeTag, match) {
var candidates = this.reverseLookup("tags", excludeTag, !!match);
var primary = [];
var secondary = [];
var tertiary = [];
for(var t = 0; t < candidates.length; t++) {
if(candidates[t].title.search(searchRegExp) != -1) {
primary.push(candidates[t]);
} else if(candidates[t].tags.join(" ").search(searchRegExp) != -1) {
secondary.push(candidates[t]);
} else if(candidates[t].text.search(searchRegExp) != -1) {
tertiary.push(candidates[t]);
}
}
var results = primary.concat(secondary).concat(tertiary);
if(sortField) {
results.sort(function(a, b) {
return a[sortField] < b[sortField] ? -1 : (a[sortField] == b[sortField] ? 0 : +1);
});
}
return results;
};
} //# end of "install only once"
/***
|Name|SinglePageModePlugin|
|Source|http://www.TiddlyTools.com/#SinglePageModePlugin|
|Documentation|http://www.TiddlyTools.com/#SinglePageModePluginInfo|
|Version|2.9.6|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|plugin|
|Requires||
|Overrides|Story.prototype.displayTiddler(), Story.prototype.displayTiddlers()|
|Options|##Configuration|
|Description|Show tiddlers one at a time with automatic permalink, or always open tiddlers at top/bottom of page.|
This plugin allows you to configure TiddlyWiki to navigate more like a traditional multipage web site with only one tiddler displayed at a time.
!!!!!Documentation
>see [[SinglePageModePluginInfo]]
!!!!!Configuration
<<<
<<option chkSinglePageMode>> Display one tiddler at a time
><<option chkSinglePagePermalink>> Automatically permalink current tiddler
><<option chkSinglePageKeepFoldedTiddlers>> Don't close tiddlers that are folded
><<option chkSinglePageKeepEditedTiddlers>> Don't close tiddlers that are being edited
<<option chkTopOfPageMode>> Open tiddlers at the top of the page
<<option chkBottomOfPageMode>> Open tiddlers at the bottom of the page
<<option chkSinglePageAutoScroll>> Automatically scroll tiddler into view (if needed)
Notes:
* The "display one tiddler at a time" option can also be //temporarily// set/reset by including a 'paramifier' in the document URL: {{{#SPM:true}}} or {{{#SPM:false}}}.
* If more than one display mode is selected, 'one at a time' display takes precedence over both 'top' and 'bottom' settings, and if 'one at a time' setting is not used, 'top of page' takes precedence over 'bottom of page'.
* When using Apple's Safari browser, automatically setting the permalink causes an error and is disabled.
<<<
!!!!!Revisions
<<<
2008.10.17 [2.9.6] changed chkSinglePageAutoScroll default to false
| Please see [[SinglePageModePluginInfo]] for previous revision details |
2005.08.15 [1.0.0] Initial Release. Support for BACK/FORWARD buttons adapted from code developed by Clint Checketts.
<<<
!!!!!Code
***/
//{{{
version.extensions.SinglePageModePlugin= {major: 2, minor: 9, revision: 6, date: new Date(2008,10,17)};
//}}}
//{{{
config.paramifiers.SPM = { onstart: function(v) {
config.options.chkSinglePageMode=eval(v);
if (config.options.chkSinglePageMode && config.options.chkSinglePagePermalink && !config.browser.isSafari) {
config.lastURL = window.location.hash;
if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
}
} };
//}}}
//{{{
if (config.options.chkSinglePageMode==undefined)
config.options.chkSinglePageMode=false;
if (config.options.chkSinglePagePermalink==undefined)
config.options.chkSinglePagePermalink=true;
if (config.options.chkSinglePageKeepFoldedTiddlers==undefined)
config.options.chkSinglePageKeepFoldedTiddlers=false;
if (config.options.chkSinglePageKeepEditedTiddlers==undefined)
config.options.chkSinglePageKeepEditedTiddlers=false;
if (config.options.chkTopOfPageMode==undefined)
config.options.chkTopOfPageMode=false;
if (config.options.chkBottomOfPageMode==undefined)
config.options.chkBottomOfPageMode=false;
if (config.options.chkSinglePageAutoScroll==undefined)
config.options.chkSinglePageAutoScroll=false;
//}}}
//{{{
config.SPMTimer = 0;
config.lastURL = window.location.hash;
function checkLastURL()
{
if (!config.options.chkSinglePageMode)
{ window.clearInterval(config.SPMTimer); config.SPMTimer=0; return; }
if (config.lastURL == window.location.hash) return; // no change in hash
var tids=decodeURIComponent(window.location.hash.substr(1)).readBracketedList();
if (tids.length==1) // permalink (single tiddler in URL)
story.displayTiddler(null,tids[0]);
else { // restore permaview or default view
config.lastURL = window.location.hash;
if (!tids.length) tids=store.getTiddlerText("DefaultTiddlers").readBracketedList();
story.closeAllTiddlers();
story.displayTiddlers(null,tids);
}
}
if (Story.prototype.SPM_coreDisplayTiddler==undefined)
Story.prototype.SPM_coreDisplayTiddler=Story.prototype.displayTiddler;
Story.prototype.displayTiddler = function(srcElement,tiddler,template,animate,slowly)
{
var title=(tiddler instanceof Tiddler)?tiddler.title:tiddler;
var tiddlerElem=document.getElementById(story.idPrefix+title); // ==null unless tiddler is already displayed
var opt=config.options;
var single=opt.chkSinglePageMode && !startingUp;
var top=opt.chkTopOfPageMode && !startingUp;
var bottom=opt.chkBottomOfPageMode && !startingUp;
if (single) {
story.forEachTiddler(function(tid,elem) {
// skip current tiddler and, optionally, tiddlers that are folded.
if ( tid==title
|| (opt.chkSinglePageKeepFoldedTiddlers && elem.getAttribute("folded")=="true"))
return;
// if a tiddler is being edited, ask before closing
if (elem.getAttribute("dirty")=="true") {
if (opt.chkSinglePageKeepEditedTiddlers) return;
// if tiddler to be displayed is already shown, then leave active tiddler editor as is
// (occurs when switching between view and edit modes)
if (tiddlerElem) return;
// otherwise, ask for permission
var msg="'"+tid+"' is currently being edited.\n\n";
msg+="Press OK to save and close this tiddler\nor press Cancel to leave it opened";
if (!confirm(msg)) return; else story.saveTiddler(tid);
}
story.closeTiddler(tid);
});
}
else if (top)
arguments[0]=null;
else if (bottom)
arguments[0]="bottom";
if (single && opt.chkSinglePagePermalink && !config.browser.isSafari) {
window.location.hash = encodeURIComponent(String.encodeTiddlyLink(title));
config.lastURL = window.location.hash;
document.title = wikifyPlain("SiteTitle") + " - " + title;
if (!config.SPMTimer) config.SPMTimer=window.setInterval(function() {checkLastURL();},1000);
}
if (tiddlerElem && tiddlerElem.getAttribute("dirty")=="true") { // editing... move tiddler without re-rendering
var isTopTiddler=(tiddlerElem.previousSibling==null);
if (!isTopTiddler && (single || top))
tiddlerElem.parentNode.insertBefore(tiddlerElem,tiddlerElem.parentNode.firstChild);
else if (bottom)
tiddlerElem.parentNode.insertBefore(tiddlerElem,null);
else this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
} else
this.SPM_coreDisplayTiddler.apply(this,arguments); // let CORE render tiddler
var tiddlerElem=document.getElementById(story.idPrefix+title);
if (tiddlerElem&&opt.chkSinglePageAutoScroll) {
// scroll to top of page or top of tiddler
var isTopTiddler=(tiddlerElem.previousSibling==null);
var yPos=isTopTiddler?0:ensureVisible(tiddlerElem);
// if animating, defer scroll until after animation completes
var delay=opt.chkAnimate?config.animDuration+10:0;
setTimeout("window.scrollTo(0,"+yPos+")",delay);
}
}
if (Story.prototype.SPM_coreDisplayTiddlers==undefined)
Story.prototype.SPM_coreDisplayTiddlers=Story.prototype.displayTiddlers;
Story.prototype.displayTiddlers = function() {
// suspend single/top/bottom modes when showing multiple tiddlers
var opt=config.options;
var saveSPM=opt.chkSinglePageMode; opt.chkSinglePageMode=false;
var saveTPM=opt.chkTopOfPageMode; opt.chkTopOfPageMode=false;
var saveBPM=opt.chkBottomOfPageMode; opt.chkBottomOfPageMode=false;
this.SPM_coreDisplayTiddlers.apply(this,arguments);
opt.chkBottomOfPageMode=saveBPM;
opt.chkTopOfPageMode=saveTPM;
opt.chkSinglePageMode=saveSPM;
}
//}}}
//config.options.txtUserName = "Ricardo"; // instead of "YourName"
readOnly = false; // allow edit buttons when viewed over HTTP -- for TiddlyWiki v2.2+ (see above)
config.options.chkSaveBackups = true; //make backups
config.options.chkAutoSave = true; // AutoSave whenever I edit
config.macros.tagging.labelNotTag = ""; //Wat staat er in het venster 'not tagging'
config.macros.tagging.label = "";
config.options.txtBackupFolder = "backup"; //reservekopieën in de map backup ipv root"
config.options.chkShowDecryptButtonInContent = true; //Geeft 'Decript' knop weer in een versleutelde tekst
config.options.chkInsertTabs = true; //voegt een tab in ipv naar het volgende veld te springen
config.options.chkSinglePageMode= true;
config.options.chkHttpReadOnly = true; //no edit features when vieuwed over http
config.options.chkShowRightSidebar=false;
if(config.options.txtUserName != "ricardorooz") {
readOnly = true;
showBackstage = false;
}
/*{{{*/
.tiddler {
width: 16cm;
padding:1em 1em 5em 1em;
background-color: #EFD600;
}
.header {
height: 75px;
background-image: url("images/tboekenhoekje.jpg");
background-repeat:no-repeat;
background-attachment:fixed;
background-position:50% 1%;
}
#sidebar {
position:absolute;
top:8cm;
width:15em;
font-size:.9em;
}
#sidebar2 {
position:absolute; right:2px;
width:12em;
}
/*}}}*/
/*{{{*/
body {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
a {color:[[ColorPalette::PrimaryDark]];}
a:hover {background-color:[[ColorPalette::PrimaryMid]]; color:[[ColorPalette::Background]];}
a img {border:0;}
h1,h2,h3,h4,h5,h6 {color:[[ColorPalette::SecondaryDark]]; background:transparent;}
h1 {border-bottom:2px solid [[ColorPalette::TertiaryLight]];}
h2,h3 {border-bottom:1px solid [[ColorPalette::TertiaryLight]];}
.button {color:[[ColorPalette::PrimaryDark]]; border:1px solid [[ColorPalette::Background]];}
.button:hover {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::SecondaryLight]]; border-color:[[ColorPalette::SecondaryMid]];}
.button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::SecondaryDark]];}
.header {background:[[ColorPalette::PrimaryMid]];}
.headerShadow {color:[[ColorPalette::Foreground]];}
.headerShadow a {font-weight:normal; color:[[ColorPalette::Foreground]];}
.headerForeground {color:[[ColorPalette::Background]];}
.headerForeground a {font-weight:normal; color:[[ColorPalette::PrimaryPale]];}
.tabSelected{color:[[ColorPalette::PrimaryDark]];
background:[[ColorPalette::TertiaryPale]];
border-left:1px solid [[ColorPalette::TertiaryLight]];
border-top:1px solid [[ColorPalette::TertiaryLight]];
border-right:1px solid [[ColorPalette::TertiaryLight]];
}
.tabUnselected {color:[[ColorPalette::Background]]; background:[[ColorPalette::TertiaryMid]];}
.tabContents {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::TertiaryPale]]; border:1px solid [[ColorPalette::TertiaryLight]];}
.tabContents .button {border:0;}
#sidebar {}
#sidebarOptions input {border1px solid [[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel {background:[[ColorPalette::PrimaryPale]];}
#sidebarOptions .sliderPanel a {border:none;color:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:hover {color:[[ColorPalette::Background]]; background:[[ColorPalette::PrimaryMid]];}
#sidebarOptions .sliderPanel a:active {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::Background]];}
.wizard {background:[[ColorPalette::PrimaryPale]]; border:1px solid [[ColorPalette::PrimaryMid]];}
.wizard h1 {color:[[ColorPalette::PrimaryDark]]; border:none;}
.wizard h2 {color:[[ColorPalette::Foreground]]; border:none;}
.wizardStep {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];
border:1px solid [[ColorPalette::PrimaryMid]];}
.wizardStep.wizardStepDone {background:[[ColorPalette::TertiaryLight]];}
.wizardFooter {background:[[ColorPalette::PrimaryPale]];}
.wizardFooter .status {background:[[ColorPalette::PrimaryDark]]; color:[[ColorPalette::Background]];}
.wizard .button {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryLight]]; border: 1px solid;
border-color:[[ColorPalette::SecondaryPale]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryDark]] [[ColorPalette::SecondaryPale]];}
.wizard .button:hover {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Background]];}
.wizard .button:active {color:[[ColorPalette::Background]]; background:[[ColorPalette::Foreground]]; border: 1px solid;
border-color:[[ColorPalette::PrimaryDark]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryPale]] [[ColorPalette::PrimaryDark]];}
.wizard .notChanged {background:transparent;}
.wizard .changedLocally {background:#80ff80;}
.wizard .changedServer {background:#8080ff;}
.wizard .changedBoth {background:#ff8080;}
.wizard .notFound {background:#ffff80;}
.wizard .putToServer {background:#ff80ff;}
.wizard .gotFromServer {background:#80ffff;}
#messageArea {border:1px solid [[ColorPalette::SecondaryMid]]; background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]];}
#messageArea .button {color:[[ColorPalette::PrimaryMid]]; background:[[ColorPalette::SecondaryPale]]; border:none;}
.popupTiddler {background:[[ColorPalette::TertiaryPale]]; border:2px solid [[ColorPalette::TertiaryMid]];}
.popup {background:[[ColorPalette::TertiaryPale]]; color:[[ColorPalette::TertiaryDark]]; border-left:1px solid [[ColorPalette::TertiaryMid]]; border-top:1px solid [[ColorPalette::TertiaryMid]]; border-right:2px solid [[ColorPalette::TertiaryDark]]; border-bottom:2px solid [[ColorPalette::TertiaryDark]];}
.popup hr {color:[[ColorPalette::PrimaryDark]]; background:[[ColorPalette::PrimaryDark]]; border-bottom:1px;}
.popup li.disabled {color:[[ColorPalette::TertiaryMid]];}
.popup li a, .popup li a:visited {color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border: none;}
.popup li a:active {background:[[ColorPalette::SecondaryPale]]; color:[[ColorPalette::Foreground]]; border: none;}
.popupHighlight {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
.listBreak div {border-bottom:1px solid [[ColorPalette::TertiaryDark]];}
.tiddler .defaultCommand {font-weight:bold;}
.shadow .title {color:[[ColorPalette::TertiaryDark]];}
.title {color:[[ColorPalette::SecondaryDark]];}
.subtitle {color:[[ColorPalette::TertiaryDark]];}
.toolbar {color:[[ColorPalette::PrimaryMid]];}
.toolbar a {color:[[ColorPalette::TertiaryLight]];}
.selected .toolbar a {color:[[ColorPalette::TertiaryMid]];}
.selected .toolbar a:hover {color:[[ColorPalette::Foreground]];}
.tagging, .tagged {border:1px solid [[ColorPalette::TertiaryPale]]; background-color:[[ColorPalette::TertiaryPale]];}
.selected .tagging, .selected .tagged {background-color:[[ColorPalette::TertiaryLight]]; border:1px solid [[ColorPalette::TertiaryMid]];}
.tagging .listTitle, .tagged .listTitle {color:[[ColorPalette::PrimaryDark]];}
.tagging .button, .tagged .button {border:none;}
.footer {color:[[ColorPalette::TertiaryLight]];}
.selected .footer {color:[[ColorPalette::TertiaryMid]];}
.sparkline {background:[[ColorPalette::PrimaryPale]]; border:0;}
.sparktick {background:[[ColorPalette::PrimaryDark]];}
.error, .errorButton {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::Error]];}
.warning {color:[[ColorPalette::Foreground]]; background:[[ColorPalette::SecondaryPale]];}
.lowlight {background:[[ColorPalette::TertiaryLight]];}
.zoomer {background:none; color:[[ColorPalette::TertiaryMid]]; border:3px solid [[ColorPalette::TertiaryMid]];}
.imageLink, #displayArea .imageLink {background:transparent;}
.annotation {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; border:2px solid [[ColorPalette::SecondaryMid]];}
.viewer .listTitle {list-style-type:none; margin-left:-2em;}
.viewer .button {border:1px solid [[ColorPalette::SecondaryMid]];}
.viewer blockquote {border-left:3px solid [[ColorPalette::TertiaryDark]];}
.viewer table, table.twtable {border:2px solid [[ColorPalette::TertiaryDark]];}
.viewer th, .viewer thead td, .twtable th, .twtable thead td {background:[[ColorPalette::SecondaryMid]]; border:1px solid [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::Background]];}
.viewer td, .viewer tr, .twtable td, .twtable tr {border:1px solid [[ColorPalette::TertiaryDark]];}
.viewer pre {border:1px solid [[ColorPalette::SecondaryLight]]; background:[[ColorPalette::SecondaryPale]];}
.viewer code {color:[[ColorPalette::SecondaryDark]];}
.viewer hr {border:0; border-top:dashed 1px [[ColorPalette::TertiaryDark]]; color:[[ColorPalette::TertiaryDark]];}
.highlight, .marked {background:[[ColorPalette::SecondaryLight]];}
.editor input {border:1px solid [[ColorPalette::PrimaryMid]];}
.editor textarea {border:1px solid [[ColorPalette::PrimaryMid]]; width:100%;}
.editorFooter {color:[[ColorPalette::TertiaryMid]];}
#backstageArea {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::TertiaryMid]];}
#backstageArea a {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstageArea a:hover {background:[[ColorPalette::SecondaryLight]]; color:[[ColorPalette::Foreground]]; }
#backstageArea a.backstageSelTab {background:[[ColorPalette::Background]]; color:[[ColorPalette::Foreground]];}
#backstageButton a {background:none; color:[[ColorPalette::Background]]; border:none;}
#backstageButton a:hover {background:[[ColorPalette::Foreground]]; color:[[ColorPalette::Background]]; border:none;}
#backstagePanel {background:[[ColorPalette::Background]]; border-color: [[ColorPalette::Background]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]] [[ColorPalette::TertiaryDark]];}
.backstagePanelFooter .button {border:none; color:[[ColorPalette::Background]];}
.backstagePanelFooter .button:hover {color:[[ColorPalette::Foreground]];}
#backstageCloak {background:[[ColorPalette::Foreground]]; opacity:0.6; filter:'alpha(opacity:60)';}
/*}}}*/
/*{{{*/
* html .tiddler {height:1%;}
body {font-size:.75em; font-family:arial,helvetica; margin:0; padding:0;}
h1,h2,h3,h4,h5,h6 {font-weight:bold; text-decoration:none;}
h1,h2,h3 {padding-bottom:1px; margin-top:1.2em;margin-bottom:0.3em;}
h4,h5,h6 {margin-top:1em;}
h1 {font-size:1.35em;}
h2 {font-size:1.25em;}
h3 {font-size:1.1em;}
h4 {font-size:1em;}
h5 {font-size:.9em;}
hr {height:1px;}
a {text-decoration:none;}
dt {font-weight:bold;}
ol {list-style-type:decimal;}
ol ol {list-style-type:lower-alpha;}
ol ol ol {list-style-type:lower-roman;}
ol ol ol ol {list-style-type:decimal;}
ol ol ol ol ol {list-style-type:lower-alpha;}
ol ol ol ol ol ol {list-style-type:lower-roman;}
ol ol ol ol ol ol ol {list-style-type:decimal;}
.txtOptionInput {width:11em;}
#contentWrapper .chkOptionInput {border:0;}
.externalLink {text-decoration:underline;}
.indent {margin-left:3em;}
.outdent {margin-left:3em; text-indent:-3em;}
code.escaped {white-space:nowrap;}
.tiddlyLinkExisting {font-weight:bold;}
.tiddlyLinkNonExisting {font-style:italic;}
/* the 'a' is required for IE, otherwise it renders the whole tiddler in bold */
a.tiddlyLinkNonExisting.shadow {font-weight:bold;}
#mainMenu .tiddlyLinkExisting,
#mainMenu .tiddlyLinkNonExisting,
#sidebarTabs .tiddlyLinkNonExisting {font-weight:normal; font-style:normal;}
#sidebarTabs .tiddlyLinkExisting {font-weight:bold; font-style:normal;}
.header {position:relative;}
.header a:hover {background:transparent;}
.headerShadow {position:relative; padding:4.5em 0em 1em 1em; left:-1px; top:-1px;}
.headerForeground {position:absolute; padding:4.5em 0em 1em 1em; left:0px; top:0px;}
.siteTitle {font-size:3em;}
.siteSubtitle {font-size:1.2em;}
#mainMenu {position:absolute; left:0; width:10em; text-align:right; line-height:1.6em; padding:1.5em 0.5em 0.5em 0.5em; font-size:1.1em;}
#sidebar {position:absolute; right:3px; width:16em; font-size:.9em;}
#sidebarOptions {padding-top:0.3em;}
#sidebarOptions a {margin:0em 0.2em; padding:0.2em 0.3em; display:block;}
#sidebarOptions input {margin:0.4em 0.5em;}
#sidebarOptions .sliderPanel {margin-left:1em; padding:0.5em; font-size:.85em;}
#sidebarOptions .sliderPanel a {font-weight:bold; display:inline; padding:0;}
#sidebarOptions .sliderPanel input {margin:0 0 .3em 0;}
#sidebarTabs .tabContents {width:15em; overflow:hidden;}
.wizard {padding:0.1em 1em 0em 2em;}
.wizard h1 {font-size:2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizard h2 {font-size:1.2em; font-weight:bold; background:none; padding:0em 0em 0em 0em; margin:0.4em 0em 0.2em 0em;}
.wizardStep {padding:1em 1em 1em 1em;}
.wizard .button {margin:0.5em 0em 0em 0em; font-size:1.2em;}
.wizardFooter {padding:0.8em 0.4em 0.8em 0em;}
.wizardFooter .status {padding:0em 0.4em 0em 0.4em; margin-left:1em;}
.wizard .button {padding:0.1em 0.2em 0.1em 0.2em;}
#messageArea {position:fixed; top:2em; right:0em; margin:0.5em; padding:0.5em; z-index:2000; _position:absolute;}
.messageToolbar {display:block; text-align:right; padding:0.2em 0.2em 0.2em 0.2em;}
#messageArea a {text-decoration:underline;}
.tiddlerPopupButton {padding:0.2em 0.2em 0.2em 0.2em;}
.popupTiddler {position: absolute; z-index:300; padding:1em 1em 1em 1em; margin:0;}
.popup {position:absolute; z-index:300; font-size:.9em; padding:0; list-style:none; margin:0;}
.popup .popupMessage {padding:0.4em;}
.popup hr {display:block; height:1px; width:auto; padding:0; margin:0.2em 0em;}
.popup li.disabled {padding:0.4em;}
.popup li a {display:block; padding:0.4em; font-weight:normal; cursor:pointer;}
.listBreak {font-size:1px; line-height:1px;}
.listBreak div {margin:2px 0;}
.tabset {padding:1em 0em 0em 0.5em;}
.tab {margin:0em 0em 0em 0.25em; padding:2px;}
.tabContents {padding:0.5em;}
.tabContents ul, .tabContents ol {margin:0; padding:0;}
.txtMainTab .tabContents li {list-style:none;}
.tabContents li.listLink { margin-left:.75em;}
#contentWrapper {display:block;}
#splashScreen {display:none;}
#displayArea {margin:1em 17em 0em 14em;}
.toolbar {text-align:right; font-size:.9em;}
.tiddler {padding:1em 1em 0em 1em;}
.missing .viewer,.missing .title {font-style:italic;}
.title {font-size:1.6em; font-weight:bold;}
.missing .subtitle {display:none;}
.subtitle {font-size:1.1em;}
.tiddler .button {padding:0.2em 0.4em;}
.tagging {margin:0.5em 0.5em 0.5em 0; float:left; display:none;}
.isTag .tagging {display:block;}
.tagged {margin:0.5em; float:right;}
.tagging, .tagged {font-size:0.9em; padding:0.25em;}
.tagging ul, .tagged ul {list-style:none; margin:0.25em; padding:0;}
.tagClear {clear:both;}
.footer {font-size:.9em;}
.footer li {display:inline;}
.annotation {padding:0.5em; margin:0.5em;}
* html .viewer pre {width:99%; padding:0 0 1em 0;}
.viewer {line-height:1.4em; padding-top:0.5em;}
.viewer .button {margin:0em 0.25em; padding:0em 0.25em;}
.viewer blockquote {line-height:1.5em; padding-left:0.8em;margin-left:2.5em;}
.viewer ul, .viewer ol {margin-left:0.5em; padding-left:1.5em;}
.viewer table, table.twtable {border-collapse:collapse; margin:0.8em 1.0em;}
.viewer th, .viewer td, .viewer tr,.viewer caption,.twtable th, .twtable td, .twtable tr,.twtable caption {padding:3px;}
table.listView {font-size:0.85em; margin:0.8em 1.0em;}
table.listView th, table.listView td, table.listView tr {padding:0px 3px 0px 3px;}
.viewer pre {padding:0.5em; margin-left:0.5em; font-size:1.2em; line-height:1.4em; overflow:auto;}
.viewer code {font-size:1.2em; line-height:1.4em;}
.editor {font-size:1.1em;}
.editor input, .editor textarea {display:block; width:100%; font:inherit;}
.editorFooter {padding:0.25em 0em; font-size:.9em;}
.editorFooter .button {padding-top:0px; padding-bottom:0px;}
.fieldsetFix {border:0; padding:0; margin:1px 0px 1px 0px;}
.sparkline {line-height:1em;}
.sparktick {outline:0;}
.zoomer {font-size:1.1em; position:absolute; overflow:hidden;}
.zoomer div {padding:1em;}
* html #backstage {width:99%;}
* html #backstageArea {width:99%;}
#backstageArea {display:none; position:relative; overflow: hidden; z-index:150; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageToolbar {position:relative;}
#backstageArea a {font-weight:bold; margin-left:0.5em; padding:0.3em 0.5em 0.3em 0.5em;}
#backstageButton {display:none; position:absolute; z-index:175; top:0em; right:0em;}
#backstageButton a {padding:0.1em 0.4em 0.1em 0.4em; margin:0.1em 0.1em 0.1em 0.1em;}
#backstage {position:relative; width:100%; z-index:50;}
#backstagePanel {display:none; z-index:100; position:absolute; width:90%; margin:0em 3em 0em 3em; padding:1em 1em 1em 1em;}
.backstagePanelFooter {padding-top:0.2em; float:right;}
.backstagePanelFooter a {padding:0.2em 0.4em 0.2em 0.4em;}
#backstageCloak {display:none; z-index:20; position:absolute; width:100%; height:100px;}
.whenBackstage {display:none;}
.backstageVisible .whenBackstage {display:block;}
/*}}}*/
/***
|Name|TiddlyLockPlugin|
|Source|http://www.minormania.com/tiddlylock/tiddlylock.html|
|Version|1.1.0|
|TiddlyWiki Core Version|2.5.0|
|Author|Richard Hobbis|
|License|[[Creative Commons Attribution-ShareAlike 3.0 License|http://creativecommons.org/licenses/by-sa/3.0/]]|
|Type|plugin|
|Overrides|config.macros.newTiddler.onClickNewTiddler(), config.commands.cancelTiddler.handler(), config.commands.deleteTiddler.handler, config.commands.editTiddler.handler(), config.commands.saveTiddler.handler(), saveChanges(), checkUnsavedChanges()|
|Description|Automatically locks and unlocks the TiddlyWiki as required, allowing multiple users to edit the TiddlyWiki without fear of overwriting other users' changes.|
!!!Usage
<<<
Simply import TiddlyLockPlugin into your TiddlyWiki!
<<<
!!!Installation
<<<
Import (or copy/paste) ''this tiddler'' into your TiddlyWiki and make sure it's tagged with <<tag systemConfig>>. Reload your TiddlyWiki to enable TiddlyLock.
<<<
!!!Configuration
<<<
None required!
<<<
!!!Revision History
<<<
''2009.05.28 [1.1.0]'' Upgraded this file to TiddlyWiki core version 2.5.0.
''2007.06.22 [1.0.4]'' Added locking on 'new tiddler' which also traps 'new journal'. Tweaked messages.
''2007.06.20 [1.0.3]'' Fixed an issue that occurred when a user navigated away from the TiddlyWiki without saving outstanding changes.
''2007.05.10 [1.0.2]'' Implemented a timestamp to track the last update time. This fixes the multi-browser edit issue and also removes the need for a password.
''2007.05.08 [1.0.1]'' Function overrides are now done using apply() ensuring clean upgrades (thanks Martin!)
''2007.05.01 [1.0.0]'' Initial Release
<<<
!!!Known Issues
<<<
*Monkey Pirate TiddlyWiki (MPTW) adds a ''disable'' button to the toolbar for systemConfig tiddlers. This button is available even when the TW is marked as readOnly and therefore it's possible for two users to disable/enable plugins at the same time. In this case, whoever saves the TW last will 'win' and their changes will be saved. Note that this is only an issue if there are no other unsaved changes in both browsers - TiddlyLock still handles all other changes.
<<<
!!!Credits
<<<
This feature was developed by Richard Hobbis (rhobbis [at] hotmail [dot] com).
<<<
!!!Code
***/
//{{{
// Convert a date to UTC YYYYMMDDHHMMSSMMM string format
// This is the same as the builtin function convertToYYYYMMDDHHMMSSMMM() but
// without the '.' in the middle - this allows simple date comparisons
Date.prototype.TLConvertToYYYYMMDDHHMMSSMMM = function()
{
return(String.zeroPad(this.getUTCFullYear(),4)
+ String.zeroPad(this.getUTCMonth()+1,2)
+ String.zeroPad(this.getUTCDate(),2)
+ String.zeroPad(this.getUTCHours(),2)
+ String.zeroPad(this.getUTCMinutes(),2)
+ String.zeroPad(this.getUTCSeconds(),2)
+ String.zeroPad(this.getUTCMilliseconds(),4));
}
// namespace for TiddlyLock
TiddlyLock = {};
// Load/Last Update timestamp
TiddlyLock.TimeStamp = new Date().TLConvertToYYYYMMDDHHMMSSMMM();
// Lockfile
TiddlyLock.LockPath = '';
TiddlyLock.OldLockData = '';
TiddlyLock.LockData = '';
// define messages
TiddlyLock.Msg = {
Locked: 'File locked',
Unlocked: 'File unlocked',
LockFailed: 'Failed to lock file',
UnlockFailed: 'Failed to unlock file',
ReadOnly: 'Now in Read-Only mode.',
Changed: 'This file has been changed by someone else.',
Reload: 'Reload this file before editing.'};
// create/update the lock file
function TLSave(timeStamp,lockedBy)
{
var lockedText='';
if (lockedBy!='')
{
lockedText=timeStamp+'##'+lockedBy;
}
else lockedText=timeStamp+'##';
var lockSave=saveFile(TiddlyLock.LockPath,lockedText);
TiddlyLock.TimeStamp = timeStamp;
return false;
}
// Create/update the lock file to prevent other users from editing the TW
function TLLock()
{
clearMessage();
lockSave = TLSave(new Date().TLConvertToYYYYMMDDHHMMSSMMM(),config.options.txtUserName);
displayMessage(TiddlyLock.Msg.Locked,'');
return false;
}
// Clear the lock file if necessary, but only if I have it locked, setting the
// timestamp in the lockfile to the specified value
function TLUnlock(timeStamp)
{
if ((store && store.isDirty && !store.isDirty())
&& (story && story.areAnyDirty && !story.areAnyDirty())
&& TLIsLocked()
&& TLIsLockedByMe())
{
lockSave=TLSave(timeStamp,'','');
displayMessage(TiddlyLock.Msg.Unlocked,'');
TiddlyLock.OldLockData = TiddlyLock.LockData;
}
return false;
}
// Get the contents of the lock file, if it exists
function TLLockPath()
{
var lockPath,p;
var originalPath=document.location.toString();
var localPath=getLocalPath(originalPath);
if((p=localPath.lastIndexOf('.')) != -1)
lockPath=localPath.substr(0,p) + '.lck';
else lockPath=localPath + '.lck';
return lockPath;
}
// Get the contents of the lock file, if it exists
function TLLockData()
{
TiddlyLock.LockPath = TLLockPath();
return loadFile(TiddlyLock.LockPath);
}
// Get the contents of the lock file, if it exists
function TLIsLocked()
{
TiddlyLock.LockData = TLLockData();
if (TiddlyLock.LockData
&& ( TLLockedBy(TiddlyLock.LockData)!='' // someone has it locked
|| TiddlyLock.TimeStamp < TLLockedTimeStamp(TiddlyLock.LockData) // changed by someone else but not currently locked
)
)
return true;
else
return false;
}
// check if locked by me
function TLIsLockedByMe()
{
if(TiddlyLock.LockData == TiddlyLock.TimeStamp+'##' + config.options.txtUserName)
return true;
else
return false;
}
// returns just the timestamp portion of the supplied lock file contents
function TLLockedTimeStamp(lockData)
{
if(lockData)
return lockData.split('##')[0];
else
return '';
}
// returns just the username portion of the supplied lock file contents
function TLLockedBy(lockData)
{
if(lockData)
return lockData.split('##')[1];
else
return '';
}
// display a message if locked or changed
function TLChangesAllowed()
{
if(TLIsLocked() && !TLIsLockedByMe())
{
// if(!readOnly)
{
readOnly=true;
if(TLLockedBy(TiddlyLock.LockData))
{
displayMessage(TiddlyLock.Msg.Locked+' by '+TLLockedBy(TiddlyLock.LockData));
alert(TiddlyLock.Msg.Locked+' by '+TLLockedBy(TiddlyLock.LockData)+'. '+TiddlyLock.Msg.ReadOnly);
}
else
{
displayMessage(TiddlyLock.Msg.Changed+' '+TiddlyLock.Msg.Reload);
alert(TiddlyLock.Msg.Changed+' '+TiddlyLock.Msg.Reload);
}
}
return false;
}
else
return true;
}
//*********************************************
// OVERRIDE STANDARD FUNCTIONS
//*********************************************
//
// OVERRIDE onClickNewTiddler()
//
TiddlyLock.onClickNewTiddler = config.macros.newTiddler.onClickNewTiddler;
config.macros.newTiddler.onClickNewTiddler = function(event,src,title)
{
if (TLChangesAllowed())
{
TiddlyLock.OldLockData = TiddlyLock.LockData;
TLLock();
var ret = TiddlyLock.onClickNewTiddler.apply(this,arguments);
return ret;
}
}
//
// OVERRIDE checkUnsavedChanges()
//
TiddlyLock.checkUnsavedChanges = checkUnsavedChanges;
checkUnsavedChanges = function(event,src,title)
{
var ret = TiddlyLock.checkUnsavedChanges.apply(this,arguments);
if(TLIsLocked() && TLIsLockedByMe())
lockSave=TLSave(TLLockedTimeStamp(TiddlyLock.OldLockData),'','');
return ret;
}
//
// OVERRIDE cancelTiddler()
//
TiddlyLock.cancelTiddler = config.commands.cancelTiddler.handler;
config.commands.cancelTiddler.handler = function(event,src,title)
{
var ret = TiddlyLock.cancelTiddler.apply(this,arguments);
TLUnlock(TLLockedTimeStamp(TiddlyLock.OldLockData));
return ret;
}
//
// OVERRIDE deleteTiddler()
//
TiddlyLock.deleteTiddler = config.commands.deleteTiddler.handler;
config.commands.deleteTiddler.handler = function(event,src,title)
{
if (TLChangesAllowed())
{
TiddlyLock.OldLockData = TiddlyLock.LockData;
TLLock();
var ret = TiddlyLock.deleteTiddler.apply(this,arguments);
return ret;
}
}
//
// OVERRIDE editTiddler()
//
TiddlyLock.editTiddler = config.commands.editTiddler.handler;
config.commands.editTiddler.handler = function(event,src,title)
{
if (TLChangesAllowed())
{
TiddlyLock.OldLockData = TiddlyLock.LockData;
TLLock();
}
var ret = TiddlyLock.editTiddler.apply(this,arguments);
return ret;
}
//
// OVERRIDE saveChanges()
//
TiddlyLock.saveChanges = saveChanges;
saveChanges = function(onlyIfDirty)
{
if(TLChangesAllowed())
{
var ret = TiddlyLock.saveChanges.apply(this,arguments);
TLUnlock(new Date().TLConvertToYYYYMMDDHHMMSSMMM());
return ret;
}
else
return false;
}
//
// OVERRIDE saveTiddler()
//
TiddlyLock.saveTiddler= config.commands.saveTiddler.handler;
config.commands.saveTiddler.handler=function(event,src,title)
{
var ret = TiddlyLock.saveTiddler.apply(this,arguments);
TLUnlock(new Date().TLConvertToYYYYMMDDHHMMSSMMM());
return ret;
}
//}}}
/%
|Name|ToggleRightSidebar|
|Source|http://www.TiddlyTools.com/#ToggleRightSidebar|
|Version|2.0.0|
|Author|Eric Shulman|
|License|http://www.TiddlyTools.com/#LegalStatements|
|~CoreVersion|2.1|
|Type|script|
|Requires|InlineJavascriptPlugin|
|Overrides||
|Description|show/hide right sidebar (MainMenu)|
Usage: <<tiddler ToggleRightSidebar with: "label">>
Config settings:
config.options.chkShowRightSidebar (true)
config.options.txtToggleRightSideBarLabelShow (â—„)
config.options.txtToggleRightSideBarLabelHide (â–º)
%/<script label="$1" title="show/hide right sidebar content">
var co=config.options;
if (co.chkShowRightSidebar=='undefined') co.chkShowRightSidebar=true;
co.chkShowRightSidebar=!co.chkShowRightSidebar;
var sb=document.getElementById('sidebar'); if (!sb) return;
sb.style.display=co.chkShowRightSidebar?'block':'none';
document.getElementById('displayArea').style.marginRight=co.chkShowRightSidebar?'':'1em';
saveOptionCookie('chkShowRightSidebar');
var labelShow=co.txtToggleRightSideBarLabelShow||'◄';
var labelHide=co.txtToggleRightSideBarLabelHide||'►';
if (typeof(place)!='undefined' && '$1'=='$'+'1') {
place.innerHTML=co.chkShowRightSidebar?labelHide:labelShow;
place.title=(co.chkShowRightSidebar?'hide':'show')+' right sidebar';
}
var sm=document.getElementById('storyMenu'); if (sm) config.refreshers.content(sm);
</script><script>
var co=config.options;
if (co.chkShowRightSidebar=='undefined') co.chkShowRightSidebar=true;
var sb=document.getElementById('sidebar'); if (!sb) return;
sb.style.display=co.chkShowRightSidebar?'block':'none';
document.getElementById('displayArea').style.marginRight=co.chkShowRightSidebar?'':'1em';
if ('$1'=='$'+'1') {
var labelShow=co.txtToggleRightSideBarLabelShow||'◄';
var labelHide=co.txtToggleRightSideBarLabelHide||'►';
place.lastChild.innerHTML=co.chkShowRightSidebar?labelHide:labelShow;
place.lastChild.title=(co.chkShowRightSidebar?'hide':'show')+' right sidebar';
}
</script>
|~ViewToolbar|closeTiddler closeOthers editTiddler > fields syncing permalink references jump|
|~EditToolbar|+saveTiddler -cancelTiddler deleteTiddler|
<!--{{{-->
<div class='toolbar' macro='toolbar [[ToolbarCommands::ViewToolbar]]'></div>
<div class='title' macro='view title'></div>
<!--
<div class='subtitle'><span macro='view modifier link'></span>, <span macro='view modified date'>
</span> (<span macro='message views.wikified.createdPrompt'></span> <span macro='view created date'></span>)</div>
<div class='tagging' macro='tagging'></div>
<div class='tagged' macro='tags'></div>
-->
<div class='viewer' macro='view text wikified'></div>
<div class='tagClear'></div>
<!--}}}-->
[img[zijbalk rechts|./images/categorien.jpg]]
[[webmail|http://mail.tboekenhoekje.nl]]
<<tiddler DigitalClock with: "0hh:0mm:0ss">>
<<player flash AnalogClock 400px 400px>>
<<tiddler ToggleRightSidebar with: ".">>