:-)

HaHaHa......

USEFUL confusion!  :-)

On Monday, April 1, 2019 at 11:07:05 AM UTC+4:30, S. S. wrote:
>
> Ha ha!!!!
>
> I thought you asked - what does *each* operator do here.
> Now I believe you actually meant - what does the *"each"* operator do 
> here!
>
> Still, it was fun to explain what *each* operator was doing.
>
> Have a great semantic day!
>
> On Monday, April 1, 2019 at 1:27:33 PM UTC+7, Mohammad wrote:
>>
>> Hi S.S.,
>>  Many thanks for detailed explanation! I got why you have used *each *
>> operator!
>> This is actually a doubly sorted list! 
>> Wonderful!
>>
>> Added to TW-Scripts
>>
>> --Mohammad
>>
>> On Monday, April 1, 2019 at 10:31:39 AM UTC+4:30, S. S. wrote:
>>>
>>>
>>> Mohammad,
>>>
>>> Well, Michaelha hasn't confirmed that it works yet!
>>>
>>> What I did was to test a similar scenario in my own TiddlyWiki.
>>>
>>> I have a bunch of books tagged *book*, that have an *author* field, and 
>>> a (publication) *year* field.
>>> Some authors have multiple books.
>>>
>>> So I tried to list my books so that it sorted first by the Author name (
>>> *author* field), then subsorted the books of an author by the date of 
>>> publication (*date* field).
>>>
>>> The below did it quite nicely!
>>>
>>> <table>
>>> <$list filter="[tag[book]each[author]get[author]sort[]]">
>>> <$list filter="[tag[book]field:author<currentTiddler>sort[date]]">
>>> <tr>
>>>   <td>
>>>     //<$link to={{!!title}}><$view field="title"/></$link>//
>>>   </td>
>>>   <td>
>>>     <$view field='author'/>
>>>   </td>
>>>   <td>
>>>     <$view field='date'/>
>>>   </td>
>>> </tr>
>>> </$list>
>>> </$list>
>>> </table>
>>>
>>> \define Explanation()
>>>
>>> The 1st *$list* filter:
>>>
>>>    -  Gets a list of all my books (tagged *book*)
>>>    -  Looks at the *author* field and gets a list of authors using the 
>>>    *get* operator
>>>       - Since the *get* operator is one of the few operators that allow 
>>>       duplicates, it is possible to have the same author listed multiple 
>>> times in 
>>>       the list created 
>>>       - So I first use the *each* operator to ensure unique items 
>>>    (authors).
>>>    - Then this list of all authors is sorted by the author's name
>>>       -  As we know, *sort[] *sorts by *<<currentTiddler>>* which at 
>>>       this point is the author's name in the *author* field
>>>    
>>> The 2nd *$list* filter will now run for each author in the list created 
>>> by the 1st *$list*
>>>    
>>>    - For the first item (*<<currentTiddler>>* - which is the first 
>>>    author's name)
>>>    - It first gets a list of all the books (tagged *book*)
>>>       - Then looks at the *author* field - selects the ones that match 
>>>       this first author (*<<currentTiddler>>*)
>>>       - Then sorts those ( *sort[date]* ) by the publication date (
>>>       *date* field)
>>>    - Then it does that for the 2nd author in the list provided by the 
>>>    1st *$list* filter 
>>>    - . . . and so on for all the authors one by one as provided by the 
>>>    1st *$list* filter.
>>>
>>> \end Explanation
>>>
>>> I now have a nicely tabled list!
>>> I'm glad Michaelha asked the question, as I like the way all my books 
>>> are listed now.
>>>
>>> Cheers
>>>
>>> On Monday, April 1, 2019 at 11:59:36 AM UTC+7, Mohammad wrote:
>>>>
>>>> S.S,
>>>>  What does each operator do here?
>>>>
>>>>
>>>>

-- 
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 post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/b43e82b7-a1e8-4ded-9c7c-0fc1cd8729c9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to