Thanks for this work! I am excited for expanded and more intuitive flexbility in tocs (especially, in my case, the tabbed variants).
Playing around a bit, it seems a bit surprising to me that the toc-include
field and the toc-exclude
field have very different behaviors:
The toc-include
contains a list of tiddlers that act like “virtual children” of this tiddler, in any toc that already includes them. AND it overrides any existing tag-children (which may be a surprising result, for those who expect it only to append additional toc-children)
Meanwhile, the toc-exclude
field does NOT specify a list of otherwise would-be toc-children that will now be included. Instead, if it is set to “yes”, that means “exclude ME from any toc that would otherwise include me” (as I’ve done with a tag-child of Second in screenshot below)
I see motivation for each of these behaviors (perhaps with the exception of letting toc-include
totally displace whatever would be included by default), but the naming of these fields implies a kind of complementarity of function, while the reality is pretty different.
What I have below aren’t elegant field-names, but semantically it seems like there are three conceptual field-possibilities:
toc-include-here
: [for naming or filtering-in virtual toc-children even though they’re not tagged (or otherwise included based on whatever an active toc-macro is looking for)]
toc-exclude-here
[for naming or filtering-out toc-children that would be included based on a tag (or whatever an active toc-macro is looking for)]
toc-hide-me
for an across-the-board easy way to get a tiddler to drop out of any toc that might otherwise try to include it.
Right now you seem to be using the first and the third of these conceptual possibilities, but they’re named in ways that would better fit the first and second.