Ligulem wrote:
I do have some related (possibly silly) questions/thoughts:
What is (was?) the main intention of the *subst* feature of MediaWiki templates?
When I introduced subst, I imagined it as a shortcut for the various items on [[Wikipedia:Boilerplate text]]. I introduced templates at the same time for completeness, although not under that name, but I couldn't imagine that anyone would want to use them for anything. I was wrong, transclusion proved to be the more popular model. People moved all of the boilerplate text into templates, and thought of brand new applications, such as navigation boxes. I changed the syntax for transclusion from {{msg:foo}} to simply {{foo}} to reflect its growing predominance. I added features such as template parameters, both for subst and transclusion.
Is subst meant to help reduce parse time or is subst intended as an editorial tool?
It does both. As I was hinting above, my intention when I introduced this feature is nothing but a historical footnote. Nobody had any idea what editors would do with templates, at the time they were introduced.
Currently, the user input containing the subst keyword is lost when the user saves a page. Are there any plans/intentions/ideas to store this input somewhere?
No.
Would it be feasible to have a compilation like model for some templates (something like an expanded subst mechanism)? Could/should we store pages (revisions?) at the "templates expanded" level?
As an observation, the current template system in some aspects violates the revertability paradigm of MediaWiki, as all article revisions (not only the newest) are affected by changes in an included template.
As it happens, I was working on such a feature on my way home from Wikimania yesterday. The application would mostly be stable version tagging. You can't revert a change to a template by reverting an article that uses the template, I think that would be very counterintuitive. If we did that, then reverting a bad change in an article could inadvertently revert a good change in an included template. What we can do is preserve the appearance of past revisions in the face of subsequent template changes. One of the reasons this makes sense is that diffs are presented without the templates expanded, so the user should be reviewing changes made to the article text, not to any templates.
-- Tim Starling