This idea was initially shared in @TW_Tones thread on flags (variation on tags).
details: Why this new thread? / divergences from that flag idea
I want to let that thread have its own identity, because my variation may be a distraction from the flags vision, though we share the common problem of wanting to be able to “include/exclude” in a tag-like way, without actually modifying the tiddler.
I think wholesale external lists are important — most favorites plugins, and even the $:/StoryList, are great models of lists managed external to the tiddlers so listed. The idea of letting a tag still basically work as it does — but with a caveat — is different.
I’ve been working for a while on tagname nodes (as well as fieldname nodes) as places in the story river where helpful things automatically appear.
Meanwhile, actual tagname tiddlers (as well as fieldname tiddlers) can be harnessed for doing real work…
HYPOTHESIS: What if the tag’s home tiddler could “unlist” or “demote” some of its tag children, without modifying them? What if a tiddler’s claim to a tag could be… blocked? disregarded?
DEMO: I’ve set up a demo for how this would work with a disregard-list
field at $:/tags/ViewTemplate. This approach is not easily generalizable to other tags (at least with my wikitext-only skills!), because a solution requires figuring out where else in the wiki the tag matters, and setting up conditional bypass/signpost behavior in each of those locations. A number of core tiddlers have been tweaked in this proof-of-concept solution.
All the relevent tiddlers carry the tag-override-solution tag, so you can try dragging that tag to another wiki.
WHY: I find a strong use-case for this solution because…
- I often want to toggle view template elements on and off, but without losing track of which tiddlers belong in the “view template” category — which tiddlers are designed to function that way, and might want that tag re-added. (I tried a practice of replacing $:/tags/ViewTemplate with $:/tags/ViewTemplate/OFF but it was a nuissance.)
- Toggling the actual tag off (and on) can create confusion whether shadow templates (from core or 3rd-party plugins) had actually been substantively modified. When I update plugins, the process is slowed by going through and checking which of my shadow-override tiddlers were nothing more than removing the $:/tags/ViewTemplate tag from subtiddlers (and maybe putting it back on, without taking time to check whether it was safe to delete-to-restore-shadow).
OBSERVATION: Tagging is already a relationship managed in complex hybrid ways — it’s up to a tiddler whether it has a tag… But list-order is basically up to the tag tiddler… except … tiddlers can jockey for position with their own list-before and list-after fields (but… those fields can be silently removed from the tag tiddler end, if the tag’s list field is modified via tagpill…). Letting the tag’s home tiddler have a place to register a “veto” or “suspension” authority over its tag “children” is a natural development to explore.
CAVEAT: It would be a very heavy lift to generalize any such solution (at least without tinkering with javascript?), because of how deeply the core leans on the simplicity of unilateral (tiddler-side) “claiming” of tag status. Still, seeing what tag-side refusal looks like and feels like in practice, for this one tag, may help us think creatively about what kinds of tag-like-relations we desire.
Comments welcome!