> So, I can use the *old* script version but I am curious about why the
> transclusion version does not work (always).

Transclusions use evaluated parameters in the <<tiddler>> macro to
invoke code.  However, the handler for the tiddler macro has a subtle
side-effect:

parseParams() -- the function that processes the evaluated parameters
-- is being called TWICE for each <<tiddler>> macro.... once by the
core invokeMacro() function (this is done for ALL macros), and again
by the tiddler macro's handler (so it can retrieve *named* parameter
values).

Unfortunately, because of the way SetTiddlerColumn (and other similar
transclusions) operate, the doubled processing results in an error
("too much recursion") that stops the code from working as intended.

Fortunately, the good news is that I reported this issue quite some
time ago, and that my suggested *support* for a fix was added to the
core, starting with TW 2.5.x.  The solution involves "switching off"
the pre-parsing done by invokeMacro(), so that only the
tiddler.handler() parses the parameters and the evaluated params are
invoked only once.

The core fix is to look for a special flag, 'noPreParse', associated
with a given macro, that signals it to bypass the default parsing and
allow the specific macro handler to do all the parsing itself.

Note: for backward-compatibility purposes, the 'noPreParse' flag is
NOT set by default for any core macros, including the <<tiddler>>
macro.  This means that the current behavior, including the double-
processing side effect, is still  in effect, and ensures that existing
documents won't have any problems after upgrading to the current TW
core.

Nonetheless, it is of course, 100% completely safe to activate the fix
when writing NEW content, since nothing would be relying upon the old,
buggy behavior.

To activate the noPreParse fix for the <<tiddler>> macro, you should
put the following into a tiddler, tagged with 'systemConfig':

//{{{
// prevents double processing of <<tiddler>> macro
config.macros.tiddler.noPreParse=true;
//}}}

enjoy,
-e
Eric Shulman
TiddlyTools / ELS Design Studios

-- 
You received this message because you are subscribed to the Google Groups 
"TiddlyWiki" group.
To post to this group, send email to tiddlyw...@googlegroups.com.
To unsubscribe from this group, send email to 
tiddlywiki+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/tiddlywiki?hl=en.

Reply via email to