<p dir="ltr">io_lib:format <br>
substitutes multiple placeholders, converts to string, does padding.</p>
<p dir="ltr">You could <br>
1) search for named placeholders using re:run</p>
<p dir="ltr">2) replace placeholders with ~s or ~p using re:replace </p>
<p dir="ltr">3) prepare a list with substitutes from a map|dict<br>
 <br>
4) pass this list to io_lib:format.</p>
<p dir="ltr">A bit of work but doable.</p>