The below code is a demo of ELSE run ~ filter prefix. It's purpose here is to get a parameter and remove its surrounding single or souble quotes. If the parameter has not any surrounding quotes, then returns itself
\define remove-quotes(term)
<$set name="item" value=<<__term__>> >
<$set name="noquote"
value={{{ [<item>removeprefix["]removesuffix["]] [<item>removeprefix[']removesuffix[']] ~[<item>] }}}
emptyValue="Process failed!"
</$set>
</$set>
\end><<remove-quotes "'single quotes'">>
That renders as:
single quotes
><<remove-quotes '"double quotes"'>>
That renders as:
double quotes
The macro will return the Process failed! if no parameter passed
><<remove-quotes>>
That renders as:
Process failed
Looks like it does the job.
Is the else actualy needed?
Rather than fail you could use the current tiddler if the input is blank.
Good to share!
Tony
\define removequotes(item)
<<__item__>>
\end
<<removequotes 'single quotes'>>
<<removequotes "double quotes">>\define remove-quotes(item)
<$set name="item" value=<<__item__>> emptyValue="""$(currentTiddler)$""" >
<$list filter="""[<item>removeprefix["]removesuffix["]] [<item>removeprefix[']removesuffix[']]"""></$list>
</$set>
\end
<<remove-quotes "'single quotes'">>
<<remove-quotes '"double quotes"'>>
<<remove-quotes>>\define remove-quotes(item) <$set name=string value=$item$><<string>></$set>
<<remove-quotes "'single quotes'">>
<<remove-quotes '"double quotes"'>>
<<remove-quotes 'single quotes'>>
<<remove-quotes "double quotes">>
<<remove-quotes single-quotes>>
<<remove-quotes double quotes>>
<<remove-quotes """double quotes""">><<remove-quotes ""double quotes"">>