I'm trying to use the <$list> widget generate table rows. One is this even possible. Two How? Here is simplified version of code I've tried.
\define davout-list(levels: "1,3,5")
| ! Level | ! Blah |
<$list filter="[[$levels$]split[,]]" variable="level">
| <<level>> | Blah |
</$list>
\end
\define davout-list2(levels: "1,3,5")
| ! Level | ! Blah |
<$list filter="[[$levels$]split[,]]" variable="level">
| <<level>> | Blah |
<$wikify name=wikifiedRow text=| <<level>> | Blah |>
<<wikifiedRow>>
</$wikify>
</$list>
\end
<<davout-list>>
<<davout-list2>>
The html it generates:
<table><tbody><tr class="evenRow"><th align="center"> Level</th><th align="center"> Blah</th></tr></tbody></table><p>
| 1 | Blah |
| 3 | Blah |
| 5 | Blah |
</p><table><tbody><tr class="evenRow"><th align="center"> Level</th><th align="center"> Blah</th></tr></tbody></table><p>
| 1 | Blah |
> | Blah |>
|
| 3 | Blah |
> | Blah |>
|
| 5 | Blah |
> | Blah |>
|
</p>
It's closing the table and generating <p> tags.
---------------------------------------------------------
A more general question. It's been stated that macros are text substitution not functions that return a value. And they don't "evaluate". I've seen first hand they don't return a value, but they do seem to at least execute some code. For example they do call other macros:
\define a()
<<b "here">>
\end
\define b(where)
$where$
\end
<<a>>
produces:
here
So what are the rules for what macros will and will not "execute"?
Thanks.