I'm aware of this theoretical conflict. But I see the risk as very low compared to the value of not having to make a lot of customizations for export and internal link handling. It should just work out of the box.

If you deem necessary there would still be the possibility to define a global switch for this. This could then still have the 100% save default, while still being easy to "configure".

If you want to go so far you could mitigate the risk of a conflict by "escaping" the macro brackets. {{{{{{not-a-macro}}}}}} would be treated as {{{not-a-marco}}} without expansion. Or any other escape sequence to bring the conflict probability to 0.0000001.

Am Di., 27. Dez. 2022 um 16:51 Uhr schrieb Ihor Radchenko <yantar92@posteo.net>:
Michael Dauer <mick.dauer@gmail.com> writes:

> I mean something like:
> * Heading
> [[http:abc{{{input-file}}}]
>
> When exporting it to html then the link is not replaced.

This is to be expected, and I do think that Org is doing it right by not
replacing macros in links.

You cannot exactly control what is inside link path - if an actual
website link happens to contain {{{...}}} pattern, you will have no
options left how to prevent Org from replacing that pattern.

If you want to generate link paths programmatically, you can instead
define custom links types or link abbreviations. See
https://orgmode.org/manual/Link-Abbreviations.html and
https://orgmode.org/manual/Adding-Hyperlink-Types.html

You can control custom link export as well.

--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>