If I use
DEMO: <$text text=<<demo {{!!dico}} {{!!index}}>>/>
then I get the body of tho demo macro' with the parameters ($dico$ and $index$) replaced by the expressions sent as arguments (not their evaluation). It could be somewhat handy but it was not what was looked for.
for the MACRO line, I can't do anything else. I can't use a widget within a widget.
As for wikify, I play with it a lot, but I was unable to get what I wanted in complex situation. Surely a good hint to indicate that trying a new approach could be the way to go.
Now, I have just devised a way to have a source tiddler to be trancluded as source and being interpreted: The "code" tiddler has the code AND it is typed as plain text (this is REQUIRED). I'm doing this:
First, the tiddler where is the text to be seen
--------------------------------
!! source code
<code>
<$text text={{code}}/>
</code>
!! output ({{dictionary!!metal}})
<$wikify text={{code}} name=ex><<ex>></$wikify>
!! here a copycat of the code (hand made, no transclusion)
; value of {{!!index}} to be read in <$link to={{!!dico}}>{{!!dico}}</$link>
: field: (<$transclude tiddler={{!!dico}} field={{!!index}}/>)
: index: (<$transclude tiddler={{!!dico}} index={{!!index}}/>)
-----------------------------
with filelds "dico" set to "dictionary" and "index" to "metal".
now the tiddler with the source code (type: simple text)
------------------------------------
; value of {{!!index}} to be read in <$link to={{!!dico}}>{{!!dico}}</$link>
: field: (<$transclude tiddler={{!!dico}} field={{!!index}}/>)
: index: (<$transclude tiddler={{!!dico}} index={{!!index}}/>)
------------------------------------
But this is not perfect. The wiki interpretation is lacking some levels. For instance, the transcluded code does net interpret the wiki-style definition and do not produce a link, but the copycat does. but tghe fetching of the field and of the index works OK for both codes.