added New Filter Cascade Mechanism
The cascade mechanism provides a flexible way to choose between multiple options. Crucially, it is done in a way that makes it simple for plugins to tweak the logic or add their own options.
Some of the things that can be done with cascades are:
- Replacing the default tiddler body template with a custom one for a certain type of tiddler
- Giving all journal tiddlers a custom icon
- Implementing a custom editor for certain types of tiddler
There are two parts to these changes. The underpinning is a new Cascade Filter Run Prefix that takes a list of filters and runs them in order, returning the result of the first one to return a value.
The second part is a series of improvements based on this new filter cascade mechanism. Conditional logic that was previously hidden within core templates can now be extended and tweaked much more easily than before.
Choosing the following elements of the core user interface is now handled with cascades:
- Story Tiddler Templates
- Tiddler Colour
- Tiddler Icons
- View Template Body
- View Template Title
- Edit Template Body
The cascades can be inspected in $:/ControlPanel under Info -> Advanced -> Cascades.
See Cascades for more information.
The chief advantage is that the LetWidget performs the variable assignments in the same order as they are written, and permits references to earlier assignments. For example, here we swap the values of two variables:
<$let temp=<<foo>> foo=<<bar>> bar=<<temp>>> ... </$let>
- fixed fixed issue with drag and drop in Chrome 96
- fixed fixed issue with drag and drop and the CodeMirror Plugin in Chrome 96
- fixed refreshing of LinkWidget attributes
- fixed crash when using "source=basename-uri-decoded" in tiddlywiki.files
- fixed $timestamp attribute ignored when using ActionSetFieldWidget to set the value of an index
- fixed crash during static rendering of CodeMirror Plugin
- fixed image picker in theme tweaks to not dismiss when an image is selected
- added a new hidden setting for controlling the visibility of the editor preview pane on a per-tiddler basis
- improved sidebar plugin listing to show icon and more details
- fixed refreshing of the CodeBlockWidget
- extended EditTextWidget to provide a new actionValue variable to action strings that contains the value of the input
- added new trigonometric operators: acos, asin, atan, cos, sin and tan
- added new zth Operator that works like nth Operator but counts from zero instead of one
- extended Map Filter Run Prefix to provide additional variables to the filter
- fixed macro parameters in filter run prefixes
- added new ActionSetMultipleFieldsWidget, new SetMultipleVariablesWidget and extended ActionSendMessageWidget for working with multiple variables/fields/indexes/parameters in one operation
- added new
focus-editoroperation to WidgetMessage: tm-edit-text-operation
- added support for widgets to access the order in which attributes are defined