Mark perhaps each time you add a tiddler to the data tiddler you increment a key number and use it as the key, even in a field on the data tiddler
If you delete a tiddler it will just be a missing key. If you use a button to add new tiddlers you can make use of the button to trigger an event to add one with the current operators (use triple curly braces) to the key/index number and set the key number field to the new value. Tony On Thursday, November 14, 2019 at 7:31:18 AM UTC+11, Mark S. wrote: > > Joshua's site says that the improved "indexes" filter will return all > paths. So > > IF you have the same number of entries for each nested group, then you can > divide by that number and add one to get the next number in the sequence: > > <$list filter="[[myData]indexes[]count[]divide[2]add[1]]" > variable="nextnum"> > ... do stuff > </$list> > > This example assumes 2 items per group. > > The problem with this approach is that you might, at some time, delete an > entry. So this approach only works if you never delete entries. > > A more advanced approach would require you to add a "number" field to each > nested group. If you had such an index, then you could write > a macro that would run through the entries, find the highest value and add > one. > > hth > > On Wednesday, November 13, 2019 at 11:51:24 AM UTC-8, si wrote: > >> Thanks for your help, that does the trick. >> >> In order to get a new numerical value for each level every time I press >> the button I have used the MathyThing >> <http://inmysocks.tiddlyspot.com/#MathyThing%20-%20action-increment%20Widget> >> >> plugin to increment the number in a field called "number". It's a little >> tenuous though because it will be easy in my use case to accidentally >> overwrite this number. >> >> Do you know of a better way to this? e.g. a way to count the number of >> bottom level entries in the JSONTiddler and add 1 or something? >> >> I've attached an example of what I have done. >> >> <$edit-text tiddler="$:/state/enter-text"/> >> >> <$button> >> <$wikify name=title-value text="<<currentTiddler>> [{{!!number}}]/Title" > >> <$wikify name=text-value text="<<currentTiddler>> [{{!!number}}]/Text" > >> <$wikify name=date-value text="<<currentTiddler>> [{{!!number}}]/Date" > >> <$action-increment $tiddler=<<currentTiddler>> $field=number $initial="0" >> $increment="1"/> >> <$action-setfield $tiddler=myData $index=<<title-value>> >> $value=<<currentTiddler>>/> >> <$action-setfield $tiddler=myData $index=<<text-value>> >> $value={{$:/state/enter-text}}/> >> <$action-setfield $tiddler=myData $index=<<date-value>> $value=<<now>>/> >> </$wikify> >> </$wikify> >> </$wikify> >> Save >> </$button> >> >> Thanks again for your help. >> >> On Sunday, November 10, 2019 at 10:24:34 PM UTC, Mark S. wrote: >>> >>> Since you're writing to the same indexes on the same tiddler, it >>> overwrites them. >>> >>> There's no tools in TW for handling nested data tidders, but you can use >>> >>> Joshua Fontany's JSON Mangler: >>> >>> https://joshuafontany.github.io/TW5-JsonMangler/ >>> >>> Then you can make $index=level1/Title, $index=level2/Title, etc. and >>> create nested data tiddlers. >>> >>> Good luck! >>> >>> -- 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/43f5a373-3f53-435f-a9e3-23eabf80586d%40googlegroups.com.

