I wish you luck Mohammad, I went down the same road (and you even 
commented) back a year ago on this 
https://groups.google.com/g/tiddlywiki/c/aBxtUItUbPw/m/fp24FYYFBgAJ but I 
couldn't get any traction. 

On Friday, February 19, 2021 at 2:05:29 AM UTC-5 Mohammad wrote:

> I have opened a new discussion on GitHub please see 
> https://github.com/Jermolene/TiddlyWiki5/discussions/5506#discussion-3227970
>
> Mario has submitted a PR to address some issues in working with data 
> tiddler see: https://github.com/Jermolene/TiddlyWiki5/pull/3971
>
>
>
> Best wishes
> Mohammad
>
>
> On Fri, Feb 19, 2021 at 12:39 AM Álvaro <alvaro.gonz...@gmail.com> wrote:
>
>> I also want to work with indes and values.  But I did not know how to do 
>> it combining filters like you. Then i created a new filter cloning  * 
>> $:/core/modules/filters/indexes.js *and I modified it for obtain values, 
>> the important changes are in bold.
>>   
>> /*\
>> values.js
>> type: application/javascript
>> module-type: filteroperator
>>
>> Filter operator for returning the values of a data tiddler
>>
>> \*/
>> (function(){
>> "use strict";
>>
>> /*
>> Export our filter function
>> */
>> exports.*values* = function(source,operator,options) {
>>     var results = [];
>>     source(function(tiddler,title) {
>>         var data = options.wiki.getTiddlerDataCached(title);
>>         if(data) {
>>             $tw.utils.pushTop(results,Object.*values*(data));
>>         }
>>     });
>>     return results;
>> };
>>
>> })();
>>
>> Now you can use it. [<dataTiddler>values[]] instead the *populate* macro 
>> which is filtering the output of other filter.
>> El jueves, 18 de febrero de 2021 a las 20:30:23 UTC+1, Mohammad escribió:
>>
>>> when using nsort on new values (e.g. value::index note :: is a character 
>>> used to create new entries) it fails.
>>> One solution is as below, but for large number index - value (e.g 200 or 
>>> more) the solution is very slow
>>>
>>> This solution contains
>>>
>>> 1. a populate macro to list all values
>>> 2. a wikify and list widget let sort values
>>> 3. a lookup macro to find index(s) for a value
>>>
>>> \define  dataTiddler() myData  
>>> \define myfilter() [<dataTiddler>indexes[]] 
>>>
>>> \define populate()
>>> <$list filter="[subfilter<myfilter>]">
>>> <$text text={{{[<dataTiddler>getindex<currentTiddler>]}}}/>
>>> </$list>
>>> \end
>>>
>>> \define lookup-index(val)
>>> <$list filter="[subfilter<myfilter>]" variable=idx>
>>> <$list filter="[<dataTiddler>getindex<idx>] +[match[$val$]]">
>>> <tr>
>>> <td><$link to=<<idx>> /></td><td> $val$ </td>
>>> </tr>
>>> </$list>
>>> </$list>
>>> \end
>>>
>>>
>>> <table>
>>> <$wikify name=u text=<<populate>> >
>>> <$list filter="[enlist<u>nsort[]]">
>>> <$macrocall $name=lookup-index val=<<currentTiddler>> />
>>> </$list>
>>> </$wikify>
>>> </table>
>>>
>>>
>>> The above can be tested in https://tiddlywiki.com/ if one creates a 
>>> data tiddler with the myData title containing the data of the previous post.
>>>
>>> Question: as stated above this solution is very slow for large numbers 
>>> of data (index-value pairs). What alternative solution do you propose?
>>>
>>> Best wishes
>>> Mohammad
>>>
>>>
>>> On Thu, Feb 18, 2021 at 10:07 PM Mohammad Rahmani <mohammad...@gmail.com> 
>>> wrote:
>>>
>>>> This is an old question and there are several solution for that, but 
>>>> not for the case I explain here
>>>>
>>>> Assume you have a dataTiddler or JSON tiddler with data like below
>>>>
>>>> nella: -1
>>>> rita: 1
>>>> villa: 0
>>>> lola: -7
>>>> sina: 3
>>>> cobra: 2
>>>> fifa: -2
>>>> zila: 3
>>>> afra: 1
>>>>
>>>>
>>>> I want to list data in this dictionary table sorted by value, so I 
>>>> should have
>>>>
>>>>   lola: -7  
>>>>   fifa: -2 
>>>>   nella: -1  
>>>>   villa: 0  
>>>>   afra: 1  
>>>>   rita: 1  
>>>>   cobra: 2 
>>>>   sina: 3  
>>>>   zila: 3 
>>>>
>>>> Note, there are duplicated values. The solution is that new entries 
>>>> created from appending value to index like value::index do not work here!
>>>> As you need to use nsort
>>>>
>>>>
>>>>
>>>> Best wishes
>>>> Mohammad
>>>>
>>> -- 
>>
> 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 tiddlywiki+...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/tiddlywiki/65d562c5-88e4-49b1-aa5f-e399ca397a81n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/tiddlywiki/65d562c5-88e4-49b1-aa5f-e399ca397a81n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
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 tiddlywiki+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/b550da0b-7e9c-492b-b59f-6e420e784480n%40googlegroups.com.

Reply via email to