\define getfirst(tid) <$list filter="$tid$ +[first[]]"><$view field="title"/></$list>
\define getrest(tid) <$list filter="$tid$ +[rest[]]"><$view field="title"/></$list>
\define PetLink(first,rest) <$link to="$first$ $rest$" class="$first$">$rest$</$link>
\define makePetLink(tid)
<$macrocall $name="PetLink" first=<<getfirst "$tid$">> rest=<<getrest "$tid$">> />
\end
Start sample output
<<getfirst "Dog Zerberus">>
<<getrest "Dog Zerberus">>
<<PetLink "Dog" "Zerberus">>
<<makePetLink "Dog Zerberus">>
End sample output
Start sample Output
Dog
Zerberus
Zerberus
<$link to="Dog Zerberus" class="Dog">Zerberus</$link>
End sample output
\define rmprefix(tid,pref)
<$list filter="[[$tid$]] +[removeprefix[$pref$ ]]" emptyMessage="$tid$">
<$view field="title"/>
</$list>
\end
\define petLink(tid)
<$set name="prefix" filter="$tid$ +[first[]]">
<$link to="$tid$" class=<<prefix>>>
<$macrocall $name="rmprefix" tid="$tid$" pref=<<prefix>>/>
</$link>
</$set>
\end
<<petLink "Cat Mitzi">>
<<petLink "Dog Zerberus">>