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 importStore = new TiddlyWiki(); var text = loadFile(scriptPath+"master.html"); importStore.importTiddlyWiki(text); importStore.forEachTiddler(function(title,tiddler){ if (!store.getTiddler(title)){ tiddler.tags.pushUnique("externalTiddler"); store.addTiddler(tiddler); } }); importStore = undefined; delete importStore; store.setDirty(dirtyStatus); }; 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, if you edit it you can only save it in this TiddlyWiki file"; 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