Ori Livneh wrote:
Over the course of the next two days, a major update to the SyntaxHighlight_GeSHi extension will be rolled out to Wikimedia wikis. The change swaps geshi, the unmaintained PHP library which performs the lexical analysis and output formatting of code, for another library, called Pygments.
The roll-out will remove support for 31 languages while adding support for several hundred languages not previously supported, including Dart, Rust, Julia, APL, Mathematica, SNOBOL, Puppet, Dylan, Racket, Swift, and many others. See https://people.wikimedia.org/~ori/geshi_changes.txt for a full list. The languages that will lose support are mostly obscure, with the notable exception of ALGOL68, Oz, and MMIX.
Thanks for writing this e-mail and putting together an easy-to-read list.
I use the SyntaxHighlight_GeSHi MediaWiki extension on a few non-Wikimedia wikis. If I just run "git pull" in the extension's directory in a few days, is that sufficient? The upgrade path isn't totally clear to me from your e-mail. I'm also curious if the Pygments version of the extension will change the required MediaWiki core version needed.
Lastly, the way the extension handles unfamiliar languages will change. Previously, if the specified language was not supported by the extension, instead of a code block, the extension would print an error message. From now on, it will simply output a plain, unhighlighted block of monospaced code.
Actually, not instead of, but in addition to. In general, your change seems like it will be an improvement. My only feature request would be for a tracking category to be auto-populated. Something similar to "Pages containing invalid syntax highlight languages" which would then allow wiki editors to find and address these pages (by setting lang="text" or by filing Phabricator Maniphest tasks to add support for missing languages).
For what it's worth, I occasionally found the verbose error message helpful if I tried, for example, <syntaxhighlight lang="html"> instead of lang="html4strict" or lang="html5". I'm not sure if Pygments has additional aliases or is a bit more lenient in cases like this?
MZMcBride