Hi Stobot
> I don't know if anyone else builds things like I do - with a ton of dynamic
> tables and branched lookups, but I use this pattern all the time:
>
> \define macrotobuildfilter() ...
>
> <$wikify name="macrotobuildfilterwiki" text=<<macrotobuildfilter>>>
> <table>
> <$list filter=<<macrotobuildfilterwiki>>>
> ...
> </$list>
> </table>
> </$wikfiy>
>
> That's just with one, but usually I have a few nested ones. In fact I'll go
> so far as to say that more than half of the time I use a macro, I have to
> wikify it before use as it's being used as a parameter for something else.
The pattern you’re using here is a subtle one: to use the wikification process
to create filter strings. As you’ve probably gathered, it can be quite brittle.
For example, there can be problems if titles included in your filter strings
include wikitext markup (e.g. HTTP links contain an embedded //). One tip is to
prepend the \rules pragma to the start of the text to be wikified and thus
restrict the wikitext rules that will be recognised.
> I've often thought of how great it would be to have that wikification done in
> the same step - maybe with triple brackets like <<<wikified macro>>> ?
> Similarities to the {{{...}}} notation in a way.
Yes, it’s somewhat anomalous that there isn’t a quoted attribute syntax that
returns the wikified value of the argument. Part of the reason is that as Mat
points out, wikification is a relatively slow process (unlike wikifying the
page we can’t do any selective refreshing, we have to process the entire text
on each refresh cycle).
> Is this possible? I see some other threads on additional parser rules, so
> thought it might be a good time to bring up.
It might be worth experimenting with it, but I’d be concerned about performance.
An alternative approach that might be a bit easier would be to create a pragma
that’s a shortcut for the wikify widget. Something like:
\define-with-wikification macrotobuildfilter() ...
<table>
<$list filter=<<macrotobuildfilterwiki>>>
...
</$list>
</table>
An ordinary \define pragma generates a single <$set> widget; this new pragma
would generate a <$set> widget with a nested <$wikify> widget.
https://github.com/Jermolene/TiddlyWiki5/blob/master/core/modules/parsers/wikiparser/rules/macrodef.js
<https://github.com/Jermolene/TiddlyWiki5/blob/master/core/modules/parsers/wikiparser/rules/macrodef.js>
Best wishes
Jeremy
>
> --
> 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]
> <mailto:[email protected]>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/tiddlywiki/a0aff5bb-2aa3-4bc0-8094-72cf07c550a8%40googlegroups.com
>
> <https://groups.google.com/d/msgid/tiddlywiki/a0aff5bb-2aa3-4bc0-8094-72cf07c550a8%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/7ED54FDB-6C11-4379-A808-AC6CC432110F%40gmail.com.