After 14 months of discussion, HTML templating is now live in core MediaWiki. Currently only the server-side implementation has been merged. A client-side implementation has also been submitted, but is stalled in Gerrit (https://gerrit.wikimedia.org/r/#/c/180647/).
You can now use Mustache templates in your extensions and core code by calling TemplateParser->processTemplate(). Full documentation can be found at https://www.mediawiki.org/wiki/Manual:HTML_templates.
There are three main impetuses for this new feature:
1. Improving the sanity and readability of MediaWiki code. Ideally, our PHP code should have little or no HTML in it. We should strive to keep our PHP interfaces high-level and with clear separation of concerns. We are a long way from conforming to anything like an MVC pattern, but this brings us one step closer to being able to achieve that. The work on OOjs and related interfaces is another important component of this.
2. Standardizing our templating implementations. There are currently six different HTML templating implementations in various MediaWiki extensions.[1] Hopefully, we can now reduce that number.
3. Moving MobileFrontend into core. We are also a long way away from achieving this goal, but now one step closer. MobileFrontend relies heavily on HTML templating, so having this feature in core is a pre-requisite to moving more MobileFrontend features over.
I know there is still disagreement about the specific implementation details of this feature (such as the choice of Mustache), but this is just the first iteration of this feature and I hope we can work together to revise and improve it further.
1. https://www.mediawiki.org/wiki/Requests_for_comment/HTML_templating_library#...
Ryan Kaldari
wikitech-l@lists.wikimedia.org