If we want to work with list-fields they do contain title-lists like title [[title with spaces]]
Eg: To read the list-field from HelloThere and create a link-list we can use:
{{{ [enlist{HelloThere!!list}] }}}
or
{{{ [[HelloThere]get[list]enlist-input[]] }}}
The later version is very flexible, since every element can be a variable. Eg:
\define tiddlerTitle() HelloThere
\define listName() list
{{{ [<tiddlerTitle>get<listName>enlist-input[]] }}}
[<tiddlerTitle>
… defines the tiddler to be used
get<listName>
… defines the name of the list-field and reads the title-list string
enlist-input[]]
… converts it into an array of titles see: enlist-input docs
It will give us:
A Gentle Guide to TiddlyWiki
Discover TiddlyWiki
Some of the things you can do with TiddlyWiki
Ten reasons to switch to TiddlyWiki
Examples
What happened to the original TiddlyWiki?
If we want to dynamically create a variable that contains a title-list we need to crate a “title-list string” that can be stored in a list-field.
As Eric wrote if we assign a “filtered transclusion” to a variable we only get the first parameter. That has been a very early design decision.
\function list1() d [[e e]] f
<$let list2={{{ a [[b b]] c }}}>
If we have filtered-transclusions we need to convert them to a title-string, then it will be 1 parameter.
That’s exactly what the format and join operators do
\function list1() d [[e e]] f +[format:titlelist[]join[ ]]
<$let list2={{{ a [[b b]] c +[format:titlelist[]join[ ]] }}}
Now the variable title-list string can be used with enlist or enlist-input to be separated again
{{{ [enlist<list2>][enlist<list1>] }}}
While writing this response I also saw, that I forgot about this.
Instead of creating a string we can define one, with \procedure
as follows.
\procedure list-p() d [[e e]] f
{{{ [<list-p>enlist-input[]] }}}
Hope that makes sense
-mario