Because the preprocessor doesn't know about language converter markup:
{{echo|-{R|foo}-}}
is parsed incorrectly -- the preprocessor seems this as two arguments, -{R and foo}-.
Because the preprocessor doesn't know about language converter markup:
{{echo|-{R|foo}-}}
is parsed incorrectly -- the preprocessor seems this as two arguments, -{R and foo}-.
Status | Subtype | Assigned | Task | |
---|---|---|---|---|
· · · | ||||
Open | None | T54661 Preprocessor/Parser irregularities with -{...}- variant constructs. | ||
Resolved | cscott | T146304 Preprocessor should handle -{...}- variant constructs in template arguments | ||
Resolved | cscott | T153761 Incorrect parser output if -{{ appears in wikitext | ||
Resolved | Elitre | T165175 Support communications around the preprocessor fixups | ||
· · · |
Change 311849 had a related patch set uploaded (by C. Scott Ananian):
Protect language converter markup in the preprocessor.
Change 311849 merged by jenkins-bot:
Protect language converter markup in the preprocessor.
A patch for this was merged (https://gerrit.wikimedia.org/r/311849), but it was then reverted (turned off, really) due to unexpected interactions with -{{ and similar constructs (see https://gerrit.wikimedia.org/r/330315 and https://gerrit.wikimedia.org/r/330323). This was T153761.
A second version of the patch looks to be more successful: https://gerrit.wikimedia.org/r/333997
However, there are about 2,000 articles on the various big wikis which require some fixup before we can merge this. See https://www.mediawiki.org/wiki/Parsoid/Language_conversion/Preprocessor_fixups for details.
Change 333997 had a related patch set uploaded (by C. Scott Ananian):
[mediawiki/core@master] Protect language converter markup in the preprocessor (take 2).
Sure. As discussed here https://www.mediawiki.org/wiki/Topic:Tq16054ko2jvisgw the process is mostly automated, I just need to download dumps locally and re-run the grep. (The process is described at https://www.mediawiki.org/wiki/Parsoid/Language_conversion/Preprocessor_fixups#How_do_we_tell_how_widespread_this_is.3F if you feel impatient.)
It might also be possible to add a Parsoid linter rule and/or a maintenance category in the PHP parser for "use of language converter markup w/o LanguageConverter enabled", but both of those solutions would require that the relevant patches be merged & deployed first -- and we're trying to fix up as much as possible before that happens.
Change 333997 merged by jenkins-bot:
[mediawiki/core@master] Protect language converter markup in the preprocessor (take 2).