old_load_plugins = window.loadPlugins;window.loadPlugins=function(){ loadExternalScripts.apply(this,arguments); old_load_plugins.apply(this,arguments);};function loadExternalScripts(){ var dirtyStatus = store.isDirty(); if (!store.isTiddler("ExternalTiddlers")) return; var originalPath = document.location.toString(); var localPath = getLocalPath(originalPath); var backSlash = true; var dirPathPos = localPath.lastIndexOf("\\"); if(dirPathPos == -1) { dirPathPos = localPath.lastIndexOf("/"); backSlash = false; } var scriptPath = localPath.substr(0,dirPathPos) + (backSlash ? "\\" : "/"); var scripts = store.getTiddlerText("ExternalTiddlers").readBracketedList(); for (var i=0; i<scripts.length;i++) { addTempTiddler(scripts[i],loadFile(scriptPath+scripts[i]).replace(/\r/mg,"")); //eval(loadFile(scriptPath+scripts[i])); } store.setDirty(dirtyStatus);};function addTempTiddler(title,text){ //var title = title.replace(/(\..*?$)/g, ""); var myregexp = /(?:.*(?:\\|\/))?(.*)(?:\.)(.*)/; var match = myregexp.exec(title); var title = match[1]; var type = match[2]; var tags = type == 'js'? 'externalTiddler systemConfig':'externalTiddler'; store.saveTiddler(title,title,text,"external tiddler",new Date(),tags);}TiddlyWiki.prototype.isTiddler= function (title){ return store.tiddlerExists(title) || store.isShadowTiddler(title)};SaverBase.prototype.externalize = function(store){ var results = []; var tiddlers = store.getTiddlers("title","externalTiddler"); for(var t = 0; t < tiddlers.length; t++) results.push(this.externalizeTiddler(store,tiddlers[t])); return results.join("\n");};var tempnotice= "This tiddler has been loaded from an external file, it cannot be edited.";var tempnoticecss= ".tempnotice {background:#FFBFC2; color:#000; border:2px solid #FF2F37; padding:0.5em; margin:0.5em;}\n.isTemp{background:#FFCFD2;}";setStylesheet(tempnoticecss,"TempTiddlerStyles");Story.prototype.old_temptiddlers_refreshTiddler = Story.prototype.refreshTiddler;Story.prototype.refreshTiddler = function(title,template,force,customFields,defaultText){ var t = this.old_temptiddlers_refreshTiddler.apply(this,arguments); if (t && store.getTiddler(title) && store.getTiddler(title).isTagged("externalTiddler")){ if (t.getAttribute("dirty") == "true"){ var count = t.childNodes.length; var ed; for (var j=0; j<count; j++){ if(hasClass(t.childNodes[j],"editor")){ ed = t.childNodes[j]; break; } } var notice = ed.parentNode.insertBefore(createTiddlyElement(null,"div",null,"tempnotice"),ed.nextSibling); wikify(tempnotice,notice); } } return t;};Story.prototype.old_temptiddlers_saveTiddler = Story.prototype.saveTiddler;Story.prototype.saveTiddler = function(title,minorUpdate){ if(store.getTiddler(title) && store.getTiddler(title).isTagged("externalTiddler")){ alert("This tiddler has been loaded from an external file.\n It cannot be edited."); return false; } else{ this.old_temptiddlers_saveTiddler.apply(this,arguments); }};