mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-26 19:47:20 +00:00
Add support for safe mode
This commit is contained in:
parent
15d0c27e2a
commit
ba576d9f1b
37
boot/boot.js
37
boot/boot.js
@ -1044,6 +1044,37 @@ $tw.Wiki.prototype.defineShadowModules = function() {
|
||||
});
|
||||
};
|
||||
|
||||
/*
|
||||
Enable safe mode by deleting any tiddlers that override a shadow tiddler
|
||||
*/
|
||||
$tw.Wiki.prototype.processSafeMode = function() {
|
||||
var self = this,
|
||||
overrides = [];
|
||||
// Find the overriding tiddlers
|
||||
this.each(function(tiddler,title) {
|
||||
if(self.isShadowTiddler(title)) {
|
||||
console.log(title);
|
||||
overrides.push(title);
|
||||
}
|
||||
});
|
||||
// Assemble a report tiddler
|
||||
var titleReportTiddler = "TiddlyWiki Safe Mode",
|
||||
report = [];
|
||||
report.push("TiddlyWiki has been started in [[safe mode|http://tiddlywiki.com/static/SafeMode.html]]. Most customisations have been disabled by renaming the following tiddlers:")
|
||||
// Delete the overrides
|
||||
overrides.forEach(function(title) {
|
||||
var tiddler = self.getTiddler(title),
|
||||
newTitle = "SAFE: " + title;
|
||||
self.deleteTiddler(title);
|
||||
self.addTiddler(new $tw.Tiddler(tiddler, {title: newTitle}));
|
||||
report.push("* [[" + title + "|" + newTitle + "]]");
|
||||
});
|
||||
report.push()
|
||||
this.addTiddler(new $tw.Tiddler({title: titleReportTiddler, text: report.join("\n\n")}));
|
||||
// Set $:/DefaultTiddlers to point to our report
|
||||
this.addTiddler(new $tw.Tiddler({title: "$:/DefaultTiddlers", text: "[[" + titleReportTiddler + "]]"}));
|
||||
};
|
||||
|
||||
/*
|
||||
Extracts tiddlers from a typed block of text, specifying default field values
|
||||
*/
|
||||
@ -1563,6 +1594,8 @@ readBrowserTiddlers: whether to read tiddlers from the HTML file we're executing
|
||||
*/
|
||||
$tw.boot.startup = function(options) {
|
||||
options = options || {};
|
||||
// Check for safe mode
|
||||
$tw.safeMode = $tw.browser && location.hash === "#:safe";
|
||||
// Initialise some more $tw properties
|
||||
$tw.utils.deepDefaults($tw,{
|
||||
modules: { // Information about each module
|
||||
@ -1646,6 +1679,10 @@ $tw.boot.startup = function(options) {
|
||||
$tw.wiki.readPluginInfo();
|
||||
$tw.wiki.registerPluginTiddlers("plugin");
|
||||
$tw.wiki.unpackPluginTiddlers();
|
||||
// Process "safe mode"
|
||||
if($tw.safeMode) {
|
||||
$tw.wiki.processSafeMode();
|
||||
}
|
||||
// Register typed modules from the tiddlers we've just loaded
|
||||
$tw.wiki.defineTiddlerModules();
|
||||
// And any modules within plugins
|
||||
|
@ -1,5 +1,5 @@
|
||||
created: 20131202102427114
|
||||
modified: 20140126135354379
|
||||
modified: 20140419082835626
|
||||
tags: howto
|
||||
title: Upgrading
|
||||
type: text/vnd.tiddlywiki
|
||||
@ -47,3 +47,7 @@ This will download a file called ''empty.html'' to your computer. This file is t
|
||||
! Offline upgrading
|
||||
|
||||
You can also download http://tiddlywiki.com/empty.html locally and perform the same drag-and-drop procedure to upgrade your files.
|
||||
|
||||
! Problems with Upgrades
|
||||
|
||||
Particularly during the beta, it is possible for a customisation applied in a previous version to break when upgraded to the latest version. Use SafeMode to investigate and fix these problems.
|
||||
|
21
editions/tw5.com/tiddlers/features/SafeMode.tid
Normal file
21
editions/tw5.com/tiddlers/features/SafeMode.tid
Normal file
@ -0,0 +1,21 @@
|
||||
created: 20140419082845576
|
||||
modified: 20140419083436245
|
||||
tags: features
|
||||
title: SafeMode
|
||||
type: text/vnd.tiddlywiki
|
||||
|
||||
! Introduction
|
||||
|
||||
Safe mode provides a way to disabling most customisations in TiddlyWiki. This is useful because if TiddlyWiki is customised incorrectly it can be rendered inoperable. A particular issue is that some customisations break when upgrading to a newer core version of TiddlyWiki (especially during the beta).
|
||||
|
||||
! Enabling Safe Mode
|
||||
|
||||
Safe mode is enabled in the browser by starting TiddlyWiki with the URL hash set to the string `#:safe`. For example:
|
||||
|
||||
http://tiddlywiki.com/#:safe
|
||||
|
||||
! How Safe Mode Works
|
||||
|
||||
In safe mode, any tiddlers that override shadow tiddlers are renamed to give them the prefix `SAFE: `, thus restoring the underlying shadow tiddler.
|
||||
|
||||
A report tiddler is displayed that allows you to inspect the tiddlers that were renamed.
|
Loading…
Reference in New Issue
Block a user