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 < > [email protected]> 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 <[email protected]> >>> 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 [email protected]. >> 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/64429d00-315f-4240-a099-88e533db0764n%40googlegroups.com.

