Hi Mark,
 Many thanks for your comments. For now, I use your solution with Mario
keyvalues (https://wikilabs.github.io/editions/keyvalues/) to sort
key:values.
 Unfortunately it seems the values filter operator has little chance to be
merged ()

I personally do not like to include JS in my solution, but for it seems
there is no better solution.


@stobot
In my opinion, data tiddler / JSON tiddler are quite handy elements, but it
seems there is little or no desire to improve their functionality in the
core. I believe some basic features like what Mario has proposed are really
useful.



Best wishes
Mohammad


On Fri, Feb 19, 2021 at 6:31 PM 'Mark S.' via TiddlyWiki <
tiddlywiki@googlegroups.com> wrote:

> Hi Mohammad,
>
> Whatever process you use to make the data tiddler needs to escape the
> colon's. Like replace ":" with __SEPARATOR__ . And then the code above
> would replace __SEPARATOR__ with ":" in the report.
>
> Yes, JSON fixes some problems. But it is not-human readable without a lot
> of formatting, and it is very unforgiving. Like a single comma at the end
> of an array sequence will throw an error. This makes it difficult to
> quickly edit  JSON by hand, since you have to go comma-wrangling every time.
>
> On Thursday, February 18, 2021 at 9:30:33 PM UTC-8 Mohammad wrote:
>
>> Hi Mark,
>>  Using your solution on 2000 entries, TW shows good performance while
>> using my solution TW freezes. So I like to use it, but there is a small
>> issue
>>
>> 1. the data tiddler itself is populated from tiddlers in Tiddlywiki, so I
>> may have entries like below
>> index=  My Tiddler: New Tid
>> value= -12
>>
>> Tiddlywiki uses JSON instead of data tiddler to address above issue
>>
>> So what do you think
>>
>>
>>
>>
>>
>> Best wishes
>> Mohammad
>>
>>
>> On Thu, Feb 18, 2021 at 11:45 PM 'Mark S.' via TiddlyWiki <
>> tiddl...@googlegroups.com> wrote:
>>
>>> Remember that in TW, the data dictionary is just a convenience tool. So
>>> it's ok to cheat. Or at least that's my theory.
>>>
>>> <$vars cr="""
>>> """
>>> sortby="[split[:]nth[2]]"
>>> >
>>> <$list filter="[[MyData]get[text]split<cr>sortsub:number<sortby>]" >
>>>
>>> </$list>
>>> </$vars>
>>>
>>> Gives
>>>
>>> lola: -7 <https://tiddlywiki.com/#lola%3A%20-7>
>>> fifa: -2 <https://tiddlywiki.com/#fifa%3A%20-2>
>>> nella: -1 <https://tiddlywiki.com/#nella%3A%20-1>
>>> villa: 0 <https://tiddlywiki.com/#villa%3A%200>
>>> rita: 1 <https://tiddlywiki.com/#rita%3A%201>
>>> afra: 1 <https://tiddlywiki.com/#afra%3A%201>
>>> cobra: 2 <https://tiddlywiki.com/#cobra%3A%202>
>>> sina: 3 <https://tiddlywiki.com/#sina%3A%203>
>>> zila: 3 <https://tiddlywiki.com/#zila%3A%203>
>>>
>>>
>>>
>>> On Thursday, February 18, 2021 at 11:30:23 AM UTC-8 Mohammad wrote:
>>>
>>>> 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/4f98a1bc-c408-4b6d-b89d-d4eebcb9561fn%40googlegroups.com
>>> <https://groups.google.com/d/msgid/tiddlywiki/4f98a1bc-c408-4b6d-b89d-d4eebcb9561fn%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/64429d00-315f-4240-a099-88e533db0764n%40googlegroups.com
> <https://groups.google.com/d/msgid/tiddlywiki/64429d00-315f-4240-a099-88e533db0764n%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/CAAV1gMD3_DWsJQ3d-q7XWDLi_rU_9sv8ULYYDZ8SsHhNzRGdzA%40mail.gmail.com.

Reply via email to