Answer to question #1:
By default, titles resulting from a filter are only listed once, with the last instance of a given title “dominantly appended” to the list (i.e., duplicates are removed). Thus, in your example, adding [[foo]]
to the end of the list automatically removed the first instance of foo
from the front of the list. You’ve already discovered the use of the :raw
suffix for the enlist-input
operator, which prevents duplicates from being removed when you enlist an existing space-separated list. Another bit of filter syntax that helps with preserving duplicates is the “=” prefix on a filter run. To get the results you expected, you would write: [[foo foo foo bar]enlist-input:raw[]] =[[foo]]
.
Answer to question #2:
As you noted in your followup message, you have an existing list stored in a tiddler field called fieldName
. Let’s assume this field contains 4 items: foo [[bar baz]] mumble [[frotz gronk snork]]
(where the 2nd and 4th items contain spaces). To add an item to that list, you would write something like this:: [<currentTiddler>get[fieldName]enlist-input:raw[]] =[<addedTitle>]
. Note also that using <currentTiddler>
in your filter is slightly more efficient than all[current]
, since the all[]
operator first needs to parse the operand (current
) to determine that you want to retrieve the current tiddler’s title, while <currentTiddler>
directly retrieves the title without the added internal layer of parsing.
enjoy,
-e