Hi David,

I'm a quite amazed to find you using *setvars* at that level of complexity. 
*bows down*
As for long expressions like yours, I'd possibly use plenty line-breaks and 
white-space for readability, e.g.:

\define name_output(species,first,second,third)
<$setvars
twothreename="""
  (\$third$\ ? \$third$, $first$ $second$\) ||
  \$second$, $first$\
"""
formatted_name="""
  (\$species$\ == \Human\ ? twothreename ) ||
  (\$species$\ == \Bajoran\ ? \$first$ $second$\) ||
  (\$species$\ == \Garbrini\ ? \$second$, $first$ $third$\) ||
  \$first$\
""">
<<formatted_name>>
</$setvars>
\end

Can you test and confirm that the above works? I think it should.

Here are the fields in an example character tiddler:
>
> caption: <<name_output Human John Brown Doe>>
> species: Human
>

As for using wikitext in fields. Be mindful that transcluding and reusing 
that at other places, e.g. in macros may have unexpected results in that 
the field value is not wikified before using. So, you're actually passing 
the string <<name_output Human John Brown Doe>>.

Therefore, I think what you need to do is:

Instead of using wikitext (macros) in fields directly,
have as many fields as are needed to create the proper output where you 
need it, elsewhere.
In other words, you should have fields like *name-1st*, *name-2nd*, 
*name-3rd*
and then have a macro *outside* of your field contents
that does your desired handling where ever you need it,
but not as the field value.

Does that make sense?

Best wishes,

Tobias.

-- 
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 post to this group, send email to tiddlywiki@googlegroups.com.
Visit this group at https://groups.google.com/group/tiddlywiki.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/73772a65-a91b-4112-8795-cfbaa90a0ac6%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to