On Friday, July 10, 2020 at 3:23:39 PM UTC-7, jay wrote:
>
> I hadn't heard of the set widget before, very useful.
>
There is also a more compact syntax for setting variables: the <$vars>
widget.
It is particularly useful when you are setting multiple variables.
Using <$set>, you need one widget for each variable, like this:
<$set name="foo" value=...>
<$set name="bar" value=...>
<$set name="baz" value=...>
... your code here...
</$set>
</$set>
</$set>
with a matching </$set> for each.
Using <$vars> you can define multiple variables with a single widget:
<$vars foo=... bar=... baz=...>
... your code here ...
</$vars>
and a single matching </$vars>
For setting of simple variables, I always use <$vars> instead of <$set>.
One exception is when you want to use the <$set filter="..."> syntax to
capture an entire list of items into a single variable, like this:
<$set name="matches" filter="[tag[foo]]">
...
</$set>
Using the above syntax, you can get a space-separated list of all titles
tagged with "foo",
and store it in a single variable, "matches".
You can also use <$set> to make "conditional assignments". For example,
suppose you
want to set a value based on whether or not a filter returns any results.
In that case, you
can write something like:
<$set name="myvar" filter="[tag<currentTiddler>]" value=<<currentTiddler>>
emptyValue="none">
...
</$set>
Note that the same result can also be achieved with the <$vars> widget,
using "inline filter" syntax
combined with the "then" and "else" filter operators, like this:
<$vars myvar={{{ [tag<currentTiddler>then<currentTiddler>else[none]] }}}
...
</$vars>
The main difference here is that the <$set> syntax was created first.
"inline filter" syntax,
and also the "then" and "else" filter operators were added to the TWCore
much later.
I hope this explanation hasn't confused you, but simply given you more
alternatives
that enhance your TW coding efforts!
enjoy,
-e
> Have a great day
>
> On Friday, 10 July 2020 22:11:36 UTC+1, si wrote:
>>
>> Hi Jay.
>>
>> 1) Your problem here is that by default the list widget stores the title
>> of each tiddler that it lists in the <<currentTiddler>> variable. One
>> solution is to use the set <https://tiddlywiki.com/#SetWidget> widget to
>> set a new variable to the title of the /m/performance tiddler *before*
>> invoking the list widget, like this:
>>
>> <$set name="performance" value=<<currentTiddler>> >
>> <$list filter="[tag[/m/song]]">
>> <$checkbox tag=<<performance>> /> <$link to={{!!title}}><$view
>> field="title"/></$link><br>
>> </$list>
>> </$set>
>>
>> 2) Here you can use the list-tagged-draggable
>> <https://tiddlywiki.com/#list-tagged-draggable%20Macro> macro:
>>
>> <<list-tagged-draggable tag:"the title of the performance tiddler">>
>>
>> If you want to use a variable for the value of the tag (for example
>> <<currentTiddler>>), you will need to use the Macro Call
>> <https://tiddlywiki.com/#MacroCallWidget> widget:
>>
>> <$macrocall $name="list-tagged-draggable" tag=<<currentTiddler>> />
>>
>>
>> Hopefully that helps!
>>
>>
>> On Friday, 10 July 2020 10:23:01 UTC+1, jay wrote:
>>
>>> Hey
>>>
>>> So I'm a musician, I've been using tiddlywiki to keep a record of my
>>> performances, setlists, practice etc.
>>>
>>> Each week I prepare and perform a 30 minute gig.
>>>
>>> I have tiddlers for each performance, tagged /m/performance, and
>>> tiddlers for each song are tagged /m/song
>>>
>>> I use the /m/performance tiddler to help me prepare for gigs and as a
>>> log of songs what I've performed. The naming convention for the title of
>>> these tiddlers is the date of the show followed by the venue.
>>>
>>> There are 2 things i want to do with lists that I can't figure out.
>>>
>>> 1) When assembling the setlist for a performance I can generate a list
>>> of all the songs in my repotoire on the /m/performance tiddler. I want a
>>> checkbox next to each link tha,t if selected, will tag the song with the
>>> title of the performance tiddler (or link it with the performance tiddler
>>> in some other way). This is the code I'm currently using in the template
>>> for my /m/performance tiddlers but if I check the box the song is tagged
>>> with its own title (name of the song), not the title of the performance
>>> tiddler.
>>>
>>> <$list filter="[tag[/m/song]]">
>>> <$checkbox tag=<<currentTiddler>> /> <$link to={{!!title}}><$view
>>> field="title"/></$link><br>
>>> </$list>
>>>
>>> 2) I will next create a list of all songs tagged with the performance.
>>> These will be the pieces that I work on during the week. Thats fine I can
>>> do that. But I'd also like to be able to drag and drop / rearrange this
>>> list in view mode, as it becomes the final setlist for the gig. I'd also
>>> like to be able to preserve that order. Not sure how to make any of this
>>> happen?
>>>
>>> I hope this makes sense, any thoughts on any of these problems would be
>>> helpful.
>>>
>>>
>>>
--
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/420aa2e1-7ddc-4efa-905c-6721b1ed6a5eo%40googlegroups.com.