Aryeh Gregor wrote:
Yes, this might be the equivalent of
"{{<substonly>subst:</substonly>".
That RFE has been around for years, and I was aware of it. The problem is,
interactions between two different kinds of markup parsing (<> and {{}})
are often unpredictable, and have changed.
In the beginning, {{subst:# didn't work. It does now?
Having thought about such issues on more than one occasion, I'm proposing
clean markup that's easier and predictably parsable, and fits well with
current practices and syntax:
{{# function (existing)
{{## substitute-only subst:, otherwise is transclude {{
{{### substitute-only subst: for function, otherwise is {{#
Obviously, a lot easier to document and for editors to type!
And I've given it a cute neologism.
This is also worth considering:
https://bugzilla.wikimedia.org/show_bug.cgi?id=5453
If {{<includeonly>subst:</includeonly>foo}} worked as {{foo}} on
transclusion and {{subst:foo}} on substitution, that would also
accomplish what you want (eliminating the need for the subst=subst:).
But it doesn't (or didn't) and it's already used as a hack, for
example:
{{#ifeq:{{NAMESPACE}}|{{<includeonly>subst:</includeonly>NAMESPACE}}
|
| {{error:not substituted|cfd}}
}}
To be honest, I'm not sure how that even works, but it does....
Obviously, <nosubst> would handle that more elegantly.
Should <substonly> and <nosubst> become standard, we could use them.
NB:I'd prefer <substituteonly> and <nosubstitute>, spelled out like
include.