Add th-saving-tiddler hook for autotagging etc.

@danielo515 this enhancement is intended to make it easier to implement
things like the auto tag plugin. Does it meet your needs?
This commit is contained in:
Jermolene
2015-09-08 16:16:50 +01:00
parent ecdae4ceff
commit 424b2fea32
4 changed files with 29 additions and 5 deletions
+1 -1
View File
@@ -118,7 +118,7 @@ function openStartupTiddlers(options) {
}
// Process the story filter to get the story list
var storyList = $tw.wiki.filterTiddlers(storyFilter);
//invoke any hooks that might change the default story list
// Invoke any hooks that want to change the default story list
storyList = $tw.hooks.invokeHook("th-opening-default-tiddlers-list",storyList);
// If the target tiddler isn't included then splice it in at the top
if(target && storyList.indexOf(target) === -1) {
+5 -3
View File
@@ -341,12 +341,14 @@ NavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {
));
}
if(isConfirmed) {
// Save the draft tiddler as the real tiddler
this.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{
// Create the new tiddler and pass it through the th-saving-tiddler hook
var newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{
title: draftTitle,
"draft.title": undefined,
"draft.of": undefined
},this.wiki.getModificationFields()));
},this.wiki.getModificationFields());
newTiddler = $tw.hooks.invokeHook("th-saving-tiddler",newTiddler);
this.wiki.addTiddler(newTiddler);
// Remove the draft tiddler
this.wiki.deleteTiddler(title);
// Remove the original tiddler if we're renaming it
@@ -1,6 +1,6 @@
created: 20141122200310516
modified: 20141122200310516
title: Hook: tc-opening-default-tiddlers-list
title: Hook: th-opening-default-tiddlers-list
type: text/vnd.tiddlywiki
This hook allows plugins to add to or remove from the list of tiddlers that are opened when the wiki is first loaded or the home button is clicked.
@@ -0,0 +1,22 @@
created: 20150908150314994
modified: 20150908150314994
title: Hook: th-saving-tiddler
type: text/vnd.tiddlywiki
This hook allows plugins to modify tiddlers before they are saved via the ''confirm'' toolbar button; the hook is not invoked for tiddlers that are saved through other means, such as state tiddlers created by the ActionSetFieldWidget.
Hook function parameters:
* ''tiddler'': tiddler object about to be saved
Return value:
* tiddler object to be saved
The original tiddler object can be returned unmodified by the hook. If the hook needs to modify the tiddler then it should return a new tiddler object, for example:
```
return new $tw.Tiddler(tiddler,{"my-field": value});
```
Hooks must not change the ''title'' field but can freely modify any other field of the tiddler.