Module talk:Unsubst
Edit request on 25 November 2013
I get this error: Lua error in Module:Unsubst at line 18: attempt to call field 'isSubsting' (a nil value). Shouldn't that be isSubstring? ☠MarkAHershberger☢(talk)☣ 16:27, 25 November 2013 (UTC)
You can avoid using |
![]() | This edit request has been answered. Set the |answered= or |ans= parameter to no to reactivate your request. |
Please make these changes. Jackmcbarn (talk) 15:04, 22 August 2014 (UTC)
template invocation name override
Using this module imposes a time penalty. Not surprising, that. I have been experimenting with a module to translate {{Literatur}}
(a template that attempts to translate de.wiki's Vorlage:Literatur to a {{citation}}
template). In its current form, {{Literatur}}
is always subst'd so I tweaked {{citation/new}}
(the sandbox) to use this module. At Help talk:Citation Style 1 § non-English translator templates and substing I was queried about the time penalty. My simple experiments show that there is a significant time penalty for no benefit.
In that discussion, I wondered if the translator module might call a special substable version of {{citation}}
so I created {{citation/subst}}
which uses this module and then modified the translator module to call that template. The substitution worked as it should except that the substituted template name was {{citation/subst}}
. In that discussion at WT:CS1, I also wondered if this module might be tweaked to support a template invocation name override parameter. I have tweaked the sandbox to support |$template-name=
. {{citation/subst}}
uses this parameter to set the template name to citation/new
and when a {{Literatur/sandbox}}
template is subst'd, the result is an invocation of {{citation/new}}
.
If there are no objections, I will update the live module from the sandbox. Comments, of course, are welcome.
—Trappist the monk (talk) 18:06, 20 August 2021 (UTC)
- Trappist the monk, I was just about to ask the same question. it looks like there are no objections, so I would suggest you go ahead and make the change. thank you. Frietjes (talk) 14:58, 8 October 2021 (UTC)
Question about sigs in this template
I'm looking to add a signature option to {{Dashboard.wikiedu.org assignment}} using this template so that if someone adds the template, a bot can subst the call and return the original template call plus the user's signature (or maybe even just a timestamp). However, I am concerned that adding in something dynamic like a timestamp will cause issues if the template is substed. Basically, I'm not sure how to code it so that it gives accurate information that stays static after substing. Example:
{{dashboard.wikiedu.org assignment | course = Wikipedia:Example | assignments = [[User:Primefac]] | start_date = 2022-01-24 | end_date = 2022-05-13 }}
This article was the subject of a Wiki Education Foundation-supported course assignment, between 24 January 2022 and 13 May 2022. Further details are available on the course page. Student editor(s): User:Primefac (article contribs).
Substing the template call would ideally give something like
This article was the subject of a Wiki Education Foundation-supported course assignment, between 24 January 2022 and 13 May 2022. Further details are available on the course page. Student editor(s): User:Primefac (article contribs). 08:16, 16 March 2022 (UTC)
This is primarily to allow for archiving when the course is over (because at current, sections like this won't ever be archived). Please let me know how far off the mark I am. Thanks! Primefac (talk) 08:17, 16 March 2022 (UTC)
- The module already has a magic value
__DATE__
that is replaced with the current month and year when adding the parameter while substing. This is used in maintenance templates. Anomie⚔ 11:44, 16 March 2022 (UTC)- Right, I guess it's just a question of how I can best use that to include a timestamp for archival purposes... Primefac (talk) 14:08, 16 March 2022 (UTC)
Square brackets
When I read the documentation I incorrectly assumed that the square brackets were a required part of the syntax, i.e. |$aliases=[œuf>egg,melt>cheese]
but actually it should be |$aliases=œuf>egg,melt>cheese
Perhaps the wording can be made clearer? — Martin (MSGJ · talk) 11:53, 17 July 2024 (UTC)
Substituted wrapper templates
A common way this module is used with wrapper templates which are supposed to be replaced, e.g.
{{SAFESUBST:<noinclude />#invoke:Unsubst|main
|Senegal=yes|subst=
|$template-name=WikiProject Africa
|$flags=override,remove-empty
|$aliases=importance>Senegal-importance
|$B={{WikiProject Africa
|class={{{class|}}}
|Senegal=yes
|Senegal-importance={{{importance|}}}
|category={{{category|}}}
}}
}}
It seems to me there could be a simpler way to do this, rather than (a) having to pass all known parameters to the target template, and (b) specifying the target template twice effectively. Could we consider an additional flag for wrapper
which could do this? — Martin (MSGJ · talk) 12:02, 17 July 2024 (UTC)
- That doesn't seem like a common use for this module to me. Or if it is, people have been doing some weird stuff with it. Seems like you'd do better with a different module that requires
$template-name
but doesn't take a$B
option. Anomie⚔ 02:29, 18 July 2024 (UTC)
Page protections and code architecture
This module seems really poorly architected. I do not mean to slight anyone that has worked on this as it is a very useful concept and I realize it was sort of organically developed but this lack of architectural foresight now has significant implications that I want to point out. This module is heavily used to prevent template substitutions but in its 12 million plus transclusions it is basically doing nothing except getting out of the way (i.e., yielding its |$B=
), however, the majority of the logic in this module comes into play during substitutions (which by definition go away at page save time) and yet the entire module is fully protected from any changes by anyone but administrators.
It seems to me it would be much more useful to develop a module that does the unsubst'ing and another module that checks for substitution and either gets out of the way or loads (on demand) the unsubst'ing module to generate a template invocation that us not subst:
ed. The "get out of the way under normal transclusion" module can be a fully protected stub module transcluded upon millions of pages while the unsubst'ing module can be (mostly) unprotected because it is transcluded nowhere (because that is what substitution means).
In any event, I wanted to record my thoughts on the subject until someone comes up with a better solution (which might be me if I get the time since I am thinking about this). —Uzume (talk) 16:04, 12 October 2024 (UTC)
Portal di Ensiklopedia Dunia