ayg wrote:
As I said in comment 13 more than eighteen months ago, this should be restricted by usergroup. I will now go further and say that this will almost definitely not be implemented without restriction by usergroup, barring some clever way to retroactively reverse the change (unlikely).
There are other issues with this. Currently there should be no way for any article's saved text to contain the text {{subst:templatename}} (there are a couple of obscure ones, but those are bugs). This necessarily creates a way for that situation to arise. This means that if I set Template:Template to subst automatically, and it's already used in some pages, the next person to edit the page will appear to have replaced the template call with a whole bunch of literal wikitext, and it won't be clear whether it was done automatically (without the user's knowledge!) or manually. If the template contained vandalism for whatever reason, the user would appear to be a vandal.
Even if you avoid this by having a dedicated pseudo-user that will insert a revision substituting the template before the edit, say -- if so, this would be the *only* such pseudo-user to edit a large number of pages, which essentially introduces a new concept to most editors and might be confusing -- templates that must be substed but aren't are still in a kind of limbo. What happens to them if the master template changes? Logically their value should be fixed as of the time the subst-only flag is added, but how will that work? What if the revision as of the time the subst-only flag was added later got deleted, or even oversighted?
Do you do all the substitutions immediately when the flag is added? You can't; it needs to be put on the job queue, which means the problem remains. Do you store the text to substitute in the job? Then say the revision needs to be oversighted (possibly due to a rogue admin, or an admin tricked by a clever vandal). You'll have a stream of pages over the course of hours having the oversight-required text being added to them, with no central record of where it's being added, and no way to stop it short of getting someone with database access to manually figure out which jobs are which and delete the appropriate ones.
Substing to the current revision, as of whenever the job gets around to it, is probably the only feasible solution, but it creates issues too. Presumably the interface will indicate that editing the template will not affect existing pages, but that will be false while jobs are pending. You could have a different message displayed while it's still included in some pages, which could be checked using templatelinks. Also, what happens if the entire template is deleted while jobs are pending? Probably then you want to leave the template call alone -- the job would have to check this before substing.
Even if all the above is handled, the previous revisions of the page will still contain calls to the template, which is invalid. This is probably not a problem, since you could just treat them as you would in a preview, showing the current value of the template, which is what they meant to do anyway (since they originally transcluded instead of substing).
There may be other issues as well. Tim is probably the one to ask about this.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4