Thank you for the suggestion Hraban. The source comes from Markdown, which is converted to XML, then typeset using ConTeXt. There's no Markdown-specific mechanism to relate images to a particular external figure definition, unfortunately. All images use the same syntax and are treated the same way. The only part that differs is the file name extension (and header within the file). One possibility would be something like: \setupexternalfigure[ width=1em, height=1em, order={svg,pdf,png,jpg}, location={local,default,global}, ] \defineexternalfigure[png][ width=\textwidth, height=\textheight, ] \unprotect \let\old_externalfigure=\externalfigure \tolerant\def\externalfigure[#1]#,[#2]#,[#3]{% \doifelseinstring{.png}{#1}{% \old_externalfigure[#1][png][#2]% }{% \doifelsefileexists{#1.png}{% \old_externalfigure[#1.png][png][#2]% }{% \old_externalfigure[#1][#2][#3]% }% }% }\protect See: https://tex.stackexchange.com/a/650221/2148 I was wondering if there was a simpler or a solution that's more the ConTeXt-way? Thanks again!