So, after looking at the backlog of GeSHi's pull requests, I decided that my itch was irritating enough to warrant a click on that nasty little fork button. Let me introduce you to Chechil Highlighter https://github.com/MaxSem/chechil. So far, I've:
- Grabbed all pending GeSHi pull requests and reviewed them, merging into Chechil whenever it made sense. - Thrown out support for pre-antiquated PHP versions - Ditched a couple of small features deprecated by GeSHi developers themselves - Started adding unit tests
My immediate plans are to cover stuff with at least basic unit tests before a major rewrite, which would include:
- Kill the system where every language definition specifies its own styles in favor of a unified CSS file. That would make things more consistent and allow us to significantly reduce the size of our startup module that wouldn't need to contain all those per-language modules. And would allow restyling the highlighted text easily and consistently. - Converting PHP language definitions to JSON for improved security. Especially important since GeSHi allows you to use custom definitions. - Generally improving the code base, bringing it up to modern standards.
So far, this is just a personal pet project, I'm not proposing that we use it for highlighting on WMF or anything, but I feel like that would be a step forward if the rewrite succeeds. Please don't hesitate to throw your boos or suggestions at me!