That is a distinction in the operators which had completely eluded me. That 
was extremely helpful, thank you!

On Friday, November 1, 2019 at 7:22:26 AM UTC-4, Eric Shulman wrote:
>
> On Friday, November 1, 2019 at 4:06:22 AM UTC-7, Andrés Pérez wrote:
>>
>> So this is probably me not understanding something fully, so I am asking 
>> here to be better educated. I was playing around with a viewtemplate and 
>> thought about how to apply it based on tiddler title. When I did that 
>> filter, though, it applied the template to every single tiddler.
>>
>> So I have these two viewtemplate-tagged tiddlers:
>> Title-based:
>>
>>> <$list filter="[all[current]is[tiddler]!is[system]title[foobar]]">
>>> foo
>>> </$list>
>>
>>
>> Tag-based:
>>
>>> <$list filter="[all[current]is[tiddler]!is[system]tag[foobar]]">
>>> bar
>>> </$list>
>>
>>
>> My expectation is that the title-based viewtemplate only gets applied to 
>> a tiddler with a title of 'foobar' and the tag-based one is only applied to 
>> tiddlers with a tag of "foobar'.
>> What winds up happening is that the tag-based template only gets applied 
>> based on the tag, but the title-based one gets applied to all tiddlers.
>>
>> I feel like this is due to something fundamental/important in how this is 
>> all put together, but I don't know what or why.
>>
>> I have a working example in this link:
>>
>> https://storage.googleapis.com/hgdrop/titlebasedtemplate.html#TagBasedViewTemplate:foobar%20blankTiddler%20tagged%20TitleBasedViewTemplate%20TagBasedViewTemplate
>>  
>>
>> And a wordier description here:
>>
>> With the two ViewTemplates described above, and these 3 tiddlers with no 
>> contents:
>> A: Title: foobar, Tag: *none*
>> B: Title: blankTiddler, Tag: *none*
>> C: Title: tagged, Tag: foobar
>>
>> My expectation is that the contents of the three tiddlers be:
>> A: foo
>> B: *nothing*
>> C: bar
>>
>> Actual rendered contents:
>> A: foo
>> B: foo
>> C: foo bar
>>
>
> The following note appears in the documentation for 
> https://tiddlywiki.com/#title%20Operator
>
> title is a constructor (except in the form !title), but field:title is a 
>> modifier. 
>
>
> see https://tiddlywiki.com/#Selection%20Constructors, which explains:
>
> The output of a Filter Step depends on its operator:
>> Most operators derive their output from their input. For example, many of 
>> them output a subset of their input, and thus truly live up to the name of 
>> "filters", narrowing down the overall output of the containing run. These 
>> operators are called selection modifiers.
>> A few operators ignore their input and generate an independent output 
>> instead. These are called selection constructors: they construct an 
>> entirely new selection.
>> A good example of a constructor is title. The output of 
>> [title[A]title[B]] is just B. But the field operator is a modifier, so 
>> [title[A]field:title[B] outputs nothing at all.
>
>
> Thus, in your experiment:
> "title[foobar]" is a "constructor" that always returns "foobar" regardless 
> of what precedes it in the filter, while "field:title[foobar]" is a 
> "modifier" that only returns "foobar" if the preceding filter terms already 
> contain "foobar"
>
> enjoy,
> -e
> Eric Shulman
> TiddlyTools: "Small Tools for Big Ideas!" (tm) 
> http://tiddlytools.github.io/
> InsideTiddlyWiki: The Missing Manuals 
> http://insidetiddlywiki.tiddlyspot.com/
>
>

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/c5a1ed53-b95b-4578-9e6d-83caa53f060c%40googlegroups.com.

Reply via email to