Thanks, Tony, for pointing me at the range[] operator. Could you elaborate 
a bit on how you use it. So far I've gotten by using the <$list> widget, 
but your approach might be more efficient than mine.

Here's what I'm doing when looping through JSON data

<$set name="actions" filter="[all[current]indexes[Actions]sort[]]" > <!--- 
indexes[] doesn't necessarily provide the correct sorting order -->
<$set name="actionCount" filter="[<actions>split[ ]count[]]" > <!-- needed 
later for determining rowspan value -->
<!-- start loop through actions; fetch array indexes -->
<$list variable="currentAction" filter=<<actions>> >
...
</$list>
</$set>
</$set>

Speaking of tables, is there anything to be aware of, as to how TW injects 
HTML tags? I can't seem to get <tr> and </tr> right in my dynamically 
created nested table. I have delegated some code to conditionally executed 
macros, and Chrome seems go get confused, when a </tr> is used at a 
position it doesn't like.

Thanks again
Werner

Am Donnerstag, 27. August 2020 04:01:09 UTC+2 schrieb TW Tones:
>
> Werner,
>
> The exact detail needs to be worked out but I agree with Saq its all 
> doable in wikitext. I also use the HTML table tags rather than tiddlywiki 
> table markup. As long as you do not break the rules of html tables its easy 
> to have a variable number or rows or columns in a table if you wrap that 
> element in another and use a list to iterate the items. Boarders and 
> setting column title sis a little more tricky but doable
>
> Rather than rowspan you can iterate the cells but display: none; and other 
> methods.
>
> Also remember you can use the count widget or count operator to determine 
> how many items in a set and use the range operator to iterate them once you 
> know.
>
> Effectively you nest list widgets within table elements.
>
> Regards
> Tony
>
>
> On Thursday, 27 August 2020 05:16:30 UTC+10, Werner wrote:
>>
>> Good evening guys, me again.
>>
>> I understand that the scope of a variable is defined by the enclosing 
>> <$vars> <$set> or <$wikify> widgets. I also understand that any new <$set> 
>> widget opens up a new scope, where a variable <myVar> defined in an outer 
>> scope would be overridden. I am facing a problem where I would need to 
>> access out-of-scope variables (or come up with a completely different 
>> approach).
>>
>> I am still working on a set of double-nested JSON data (using Josh 
>> Fontany's JSONmangler plugin). I want to display the content of the data in 
>> a table using table cells spanning multiple rows like <td rowspan = "5">. 
>> The problem here is, the rowspan is defined by the number of elements in 
>> the lowest nested level and I would need it before rendering the table and 
>> looping through the array elements fetching the data. So typically, in a 
>> garden variety programming language, I would do something as follows:
>>
>> totalRows = 0
>> Loop through Level1
>>    nestedRows= Level2.count()
>>    totalRows += nestedRows
>> End Loop
>>
>> Could anybody enlighten me, if a construct like this is possible in TW 
>> and how I would achieve it?
>>
>> Two fallback options: 
>> - storing the number of elements in the JSON structure (yuck - feels like 
>> cheating).
>> - throwing the whole JSON data structure at an JS macro. Positive side 
>> effect: I would have to dive into it and learn something new.
>>
>> Thanks for helping me out on this.
>> Best, Werner
>>
>>
>>
>>
>>
>>

-- 
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/83a11d52-77b1-4183-b8c9-74e34107f65ao%40googlegroups.com.

Reply via email to