Post script When using a transclusion of the form `{{actioname||$:/actions}}` the currentTiddler will become "actionname", if you want to refer to the original "display" tiddler use the `<<storyTiddler>>` variable.
Regards Tony On Thursday, January 2, 2020 at 7:13:04 PM UTC+11, TonyM wrote: > > Folks, > (Minor edit) > > I am working on a way to add custom actions to any button in the core and > that you create. > I want this to result in the smallest change possible to see if it is > worthy of core inclusion or plugin. > I have also designed an approach to make this reusable, and set some > standards. > > This post is not for the faint hearted but those keen to extend > tiddlywiki, set new standards, new users please don't bother with it. I > will share any results. > *If you have any suggestions for a better way for me to communicate such > ideas please let me know.* > > I have come up with a strategy and I want to call for your comments > > - Each new or existing button will have the actions=actionreference > specify a template tiddler. > - The template tiddler will then respond to a "tag name" if it exists > and transclude all tiddlers so tagged into the actions= parameter. > - Thus it it will be easy to add additional actions to any button by > placing them in a tiddler so tagged. > > *Why would I do this?* > > Because tiddlywiki needs a trigger for a range of actions. Buttons allow > this but we often have to make a button to just to cause an action to take > place. > This often demands an additional step by the user when often the standard > buttons provide the ideal opportunity already. For example I could trigger > an action on closing a tiddler, on saving the wiki, on importing something > to mention a few. > > *Why a request for comments?* > > I want the following concepts considered, perhaps to set de facto or de > jure standards. > > - This solution includes two concepts, one is the concept of actions > in "action tiddlers" that would become part of the core to support > hackability of core buttons ; > - We may as well also have a generalised form for other > transclusions by tagname > - A concept called autotags, where by a tagname is defined and used > only if a tiddler exists with that tagname. > > For example $:/core/ui/Buttons/edit would have the following actions > parameter `actions={{edit||$:/actions}} `. > > *My Current Strategy is to * > > - create a tiddler called $:/actions which is transcluded as follows > `actions={{actioname||$:/actions}}` as needed. > - This template could then transclude a tiddler (if it exists called > $:/actions/actioname) but first let us consider autotags. > - You can have more than one action name in one button tiddler eg > `actions={{fold||$:/actions}} and actions={{unfold||$:/actions}}` > > Autotags: because multiple designers/developers may wish to add additional > actions and not impact other macros and plugins using extended actions for > the core buttons, I want to add another feature called autotags. > > - The $:/actions template can assume a tag name from the actioname > such that as for the above edit example it would be $:/actions/edit > - Any tiddler tagged $:/actions/edit will be transcluded into the > actions parameter of the edit button, > - the actual tiddler $:/actions/edit need not exist, although I would > create one with an explanation for each core button. see > [prefix[$:/core/ui/buttons]] and others such as $:/core/ui/EditorToolbar > and more. > > It is useful to have action templates of the form > `{{actioname||$:/actions}}` because they must contain actions however we > could provide a generic transclude solution as well. > > - create a tiddler called $:/transclusions which is transcluded as > follows `actions={{transclusionname||$:/transclusions}}` as needed. > - The $:/transclusions template can assume a tag name from the > $:/transclusionsname such that for example it would be > $:/transclusions/transclusionsname > - Any tiddler tagged $:/transclusions/transclusionsname will be > transcluded where `{{transclusionname||$:/transclusions}}` is used, > - for example the tag $:/transclusions/chapter in > {{chapter||$:/transclusions}} > > *In closing* > > A key advantage of taking this approach is we can share actions or > transclusions freely without requiring more than a tiddler and a template > transclusion in our own code. > > The order of actions can be set in the tagpill (list field) of each > tagname, and use list-before and list-after fields. > > The autotag concept can be extended further. > > NB: I am aware of some work by Jeremy > Allow message handlers to be written as action strings #4265 > <https://github.com/Jermolene/TiddlyWiki5/issues/4265> that need to > "understand each other". > See my own issue Hackability of default triggers - "Buttons" #4272 > <https://github.com/Jermolene/TiddlyWiki5/issues/4272> > > Regards > Tony > > -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" group. To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywiki+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/4acf947e-3948-43a3-83bf-3412978379a2%40googlegroups.com.