You were very close!
Use the :else
filter run prefix, like this:
{{{ [<currentTiddler>has:field[field-name-1]then{!!field-name-1}] :else[<currentTiddler>has:field[field-name-2]then{!!field-name 2}] :else[<macro-name>] }}}
Note: To reduce typing, you can use ~
as a filter run prefix that is synonymous with :else
.
Thus:
{{{ [<currentTiddler>has:field[field-name-1]then{!!field-name-1}] ~[<currentTiddler>has:field[field-name-2]then{!!field-name 2}] ~[<macro-name>] }}}
You can further reduce the syntax by combining the three filter runs together, like this:
{{{ [<currentTiddler>has:field[field-name-1]then{!!field-name-1}else<currentTiddler>has:field[field-name-2]then{!!field-name 2}else<macro-name>] }}}
Also, I notice that you are using has:field[...]
, which yields true
if the field exists, even if the field value is empty. Depending on your particular use-case, if you can check for only non-blank field values, you can simplify the syntax by using the get[...]
operator, like this:
{{{ [<currentTiddler>get[field-name-1]else<currentTiddler>get[field-name-2]else<macro-name>] }}}
enjoy,
-e