mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-11-27 03:57:21 +00:00
Introduce post-render startup actions
This commit is contained in:
parent
1a91f81976
commit
5cc1600072
@ -106,6 +106,8 @@ exports.startup = function() {
|
|||||||
// Fix up the link between the root widget and the page container
|
// Fix up the link between the root widget and the page container
|
||||||
$tw.rootWidget.domNodes = [$tw.pageContainer];
|
$tw.rootWidget.domNodes = [$tw.pageContainer];
|
||||||
$tw.rootWidget.children = [$tw.pageWidgetNode];
|
$tw.rootWidget.children = [$tw.pageWidgetNode];
|
||||||
|
// Run any post-render startup actions
|
||||||
|
$tw.rootWidget.executeStartupTiddlers("$:/tags/StartupAction/PostRender");
|
||||||
};
|
};
|
||||||
|
|
||||||
})();
|
})();
|
||||||
|
@ -64,17 +64,12 @@ exports.startup = function() {
|
|||||||
document: $tw.browser ? document : $tw.fakeDocument
|
document: $tw.browser ? document : $tw.fakeDocument
|
||||||
});
|
});
|
||||||
// Execute any startup actions
|
// Execute any startup actions
|
||||||
var executeStartupTiddlers = function(tag) {
|
$tw.rootWidget.executeStartupTiddlers("$:/tags/StartupAction");
|
||||||
$tw.utils.each($tw.wiki.filterTiddlers("[all[shadows+tiddlers]tag[" + tag + "]!has[draft.of]]"),function(title) {
|
|
||||||
$tw.rootWidget.invokeActionString($tw.wiki.getTiddlerText(title),$tw.rootWidget);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
executeStartupTiddlers("$:/tags/StartupAction");
|
|
||||||
if($tw.browser) {
|
if($tw.browser) {
|
||||||
executeStartupTiddlers("$:/tags/StartupAction/Browser");
|
$tw.rootWidget.executeStartupTiddlers("$:/tags/StartupAction/Browser");
|
||||||
}
|
}
|
||||||
if($tw.node) {
|
if($tw.node) {
|
||||||
executeStartupTiddlers("$:/tags/StartupAction/Node");
|
$tw.rootWidget.executeStartupTiddlers("$:/tags/StartupAction/Node");
|
||||||
}
|
}
|
||||||
// Kick off the language manager and switcher
|
// Kick off the language manager and switcher
|
||||||
$tw.language = new $tw.Language();
|
$tw.language = new $tw.Language();
|
||||||
|
@ -571,6 +571,16 @@ Widget.prototype.invokeActionString = function(actions,triggeringWidget,event,va
|
|||||||
return widgetNode.invokeActions(this,event);
|
return widgetNode.invokeActions(this,event);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
Execute action tiddlers by tag
|
||||||
|
*/
|
||||||
|
Widget.prototype.executeStartupTiddlers = function(tag) {
|
||||||
|
var self = this;
|
||||||
|
$tw.utils.each(self.wiki.filterTiddlers("[all[shadows+tiddlers]tag[" + tag + "]!has[draft.of]]"),function(title) {
|
||||||
|
self.invokeActionString(self.wiki.getTiddlerText(title),self);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
Widget.prototype.allowActionPropagation = function() {
|
Widget.prototype.allowActionPropagation = function() {
|
||||||
return true;
|
return true;
|
||||||
};
|
};
|
||||||
|
@ -1,16 +1,21 @@
|
|||||||
created: 20180323092308399
|
created: 20180323092308399
|
||||||
modified: 20190307183936035
|
modified: 20201025161723719
|
||||||
tags: Features
|
tags: Features
|
||||||
title: StartupActions
|
title: StartupActions
|
||||||
type: text/vnd.tiddlywiki
|
type: text/vnd.tiddlywiki
|
||||||
|
|
||||||
TiddlyWiki executes any ActionWidgets found in tiddlers with the following system tags during startup:
|
TiddlyWiki executes any ActionWidgets found in tiddlers with the following system tags during startup:
|
||||||
|
|
||||||
* <<tag "$:/tags/StartupAction">> (executed on all platforms)
|
* Executed during initial startup:
|
||||||
* <<tag "$:/tags/StartupAction/Browser">> (only executed when running in the browser)
|
** <<tag "$:/tags/StartupAction">> (executed on all platforms)
|
||||||
* <<tag "$:/tags/StartupAction/Node">> (only executed when running under Node.js)
|
** <<tag "$:/tags/StartupAction/Browser">> (only executed when running in the browser)
|
||||||
|
** <<tag "$:/tags/StartupAction/Node">> (only executed when running under Node.js)
|
||||||
|
* Executed after startup rendering:
|
||||||
|
** <<.from-version "5.1.23">> <<tag "$:/tags/StartupAction/PostRender">> (only executed when running in the browser)
|
||||||
|
|
||||||
Startup actions are useful for customising TiddlyWiki according to environmental factors such as the screen size. For example, the following action widgets when placed in a tiddler tagged `$:/tags/StartupAction/Browser` will cause the sidebar to be hidden by default when the screen width is less than 1000 pixels:
|
!! Initial Startup Actions
|
||||||
|
|
||||||
|
The initial startup actions are useful for customising TiddlyWiki according to environmental factors such as the screen size. For example, the following action widgets when placed in a tiddler tagged `$:/tags/StartupAction/Browser` will cause the sidebar to be hidden by default when the screen width is less than 1000 pixels:
|
||||||
|
|
||||||
```
|
```
|
||||||
<$reveal type="lt" state="$:/info/browser/screen/width" text="3000">
|
<$reveal type="lt" state="$:/info/browser/screen/width" text="3000">
|
||||||
@ -28,8 +33,12 @@ Startup actions are useful for customising TiddlyWiki according to environmental
|
|||||||
<$action-setfield $tiddler="$:/language" text={{{ [[$:/languages/en-GB]] [plugin-type[language]sort[description]removeprefix[$:/languages/]] +[prefix{$:/info/browser/language}] ~[[en-GB]] +[addprefix[$:/languages/]] }}}/>
|
<$action-setfield $tiddler="$:/language" text={{{ [[$:/languages/en-GB]] [plugin-type[language]sort[description]removeprefix[$:/languages/]] +[prefix{$:/info/browser/language}] ~[[en-GB]] +[addprefix[$:/languages/]] }}}/>
|
||||||
```
|
```
|
||||||
|
|
||||||
Note that global macros are not available within startup action tiddlers by default. If you need to access them then you'll need to explicitly include them with an ''import'' [[pragma|Pragma]] at the top of the tiddler:
|
Note that global macros are not available within initial startup action tiddlers by default. If you need to access them then you'll need to explicitly include them with an ''import'' [[pragma|Pragma]] at the top of the tiddler:
|
||||||
|
|
||||||
```
|
```
|
||||||
\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]
|
\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
!! Post-Render Startup Actions
|
||||||
|
|
||||||
|
<<.from-version "5.1.23">> Post-render startup actions occur after the TiddlyWiki user interface has been rendered. This makes it possible to perform actions that depend on the rendered display (such as displaying modals).
|
||||||
|
Loading…
Reference in New Issue
Block a user