@Springer here is a quick responce to the concept as a whole, independent of my Flag work.
I have actualy found a need to handle exceptions as well to a tag list. This led me to build a quite sophisticated solution to explore this myself and I have a way to add exceptions to the view template tags as an example. This is part of a class of issues with dealing with the hackability of tiddlywikis core processes, without reverting to new layout or viewtemplate cascades that are 99% unchanged.
It is my view here that the problem needs a good “code pattern” for designing solutions that can use inclusions and exclusions to a list, initialy established with tags.
However one clear conclusion is that the core needs improving in a number of its tag driven solutions to permit the inclusion or exclusion dynamicaly.
- An example may be a designer wants to loeverage the full view template mechanisium, as added to via multiple plugins and solutions be setup a class of tiddlers that do not display the tags and subtitle. he/she only want to exclude these elements on selected tiddlers. Currently the only way isto build an alternate view template cascade that handles the exception.
- Another type of exception is allowing the user to “reorder the edit template” for convienence such as with very long tiddlers place the text editor at the bottom so you can access the fields at the top, but only for large tiddlers. This does not exclude, and may just include (duplicate) the field editor at the top on long tiddlers, or provide an alternative order.
- A key way now to achive this using finctions, or variables containing a subfilter, even if the setting is obtained from the current tiddler or a global definition. By making inclusion and exclusion lists available via a variable/function gives a useful abstraction layer rather than direct tiddler/field references, that can be localy overidden.
Speculation
Given my work on the flag concept, I am tempted to ask if we could invent another mechanisium that lends itself to achiving what you want without interfearing with the current tag mechanisum. Although once established there may be an argument to move the tag driven UI to such an alternate mechanisium.
The reason I am thinking this is there has being a number of times when I have thought more features for handling lists/sets would be helpful to users and designers of tiddlywiki as a whole. Such lists/sets would be able to be used with common set manipulations such as union. We have the operators to do this already. We just need to promote appropriate “code patterns” to make this easier to follow.
Just as I have looked at designing flags, or a no touch way to categorising tiddlers, I could see the idea of adding tools to support and design a new “set handling mechanisium” that includes “include and exception handling”, even if it lays on top of tags.
There is also a “natural cascade” that we could bring to the for that determins a value in the following order;
- An overidding value set in the tiddlywiki script
- An overidding value set in a currentTiddler field
- An overidding value set in the view or edit cascade
- An overidding value set in a global setting tiddler
- And a default when not avialble.
Imagin having this available for your include and exclude lists/sets. They can me modified at any appropriate level.