Module talk:Redirect
![]() | Redirect Template‑class | ||||||
|
Why am I confused?
At WP:VPT §Is it possible to resolve a redirect in template? you wrote:
- ...
[[{{#invoke:redirect|main|WP:AFC}}]]
gets you Wikipedia:Articles for creation ...
So I visited Module:Redirect and found this:
---- This module accepts the name of a single page. It determines if the page is a redirect; if so it looks up the page, extracts the target, and returns the target name as text.
So, why, he asks, are there two parameters? In the example you gave both main
and WP:AFC
. I tried your module with the redirect page from the WT:VPT conversation:
[[{{#invoke:redirect|RNAS_Kirkwall|WP:AFC}}]]
→ [[Script error: The function "RNAS_Kirkwall" does not exist.]]
[[{{#invoke:redirect|main|RNAS_Kirkwall}}]]
→ Kirkwall Airport
Why are two parameters necessary? And, surely there is a better error message than Script error.
—Trappist the monk (talk) 17:12, 18 March 2013 (UTC)
- It occurred to me to also wonder if the first parameter could be empty:
[[{{#invoke:redirect||RNAS_Kirkwall}}]]
→ [[Script error: The function "" does not exist.]]
- Apparently not. So what about meaningless text?
[[{{#invoke:redirect|sdjadrsgjlk|RNAS_Kirkwall}}]]
→ [[Script error: The function "sdjadrsgjlk" does not exist.]]
- Again, apparently not. So what about the name of a real article?
[[{{#invoke:redirect|UP Aerospace|RNAS_Kirkwall}}]]
→ [[Script error: The function "UP Aerospace" does not exist.]]
- Nope. Is "main" some sort of secret word?
- {{#invoke:}} takes two parameters: the first is the module name (redirect in this case), the second the function to use from that module (main in this case, as specified by the line "
function p.main(frame)
" in the module). So the third parameter given to #invoke is the first parameter given to the function. In that way modules can make more than one functions available. - To get more information on the script error, you have click it. MrBlueSky (talk) 14:40, 19 March 2013 (UTC)
- {{#invoke:}} takes two parameters: the first is the module name (redirect in this case), the second the function to use from that module (main in this case, as specified by the line "
- Thank you. I've learned a bit here.
- Thanks for answering that! I've gotten used to using these module talk pages for anything but talking, and this is the first I noticed the conversation... Wnt (talk) 20:44, 19 March 2013 (UTC)
Redirect types and categories
I am working on building a module to hold the matrix of the {{redr}} codes and associated categories, and also to have logic that automatically detects the correct codes for a redirect. See Wikipedia:Lua_requests#Redirect_categorisation and especially the especially User:John Vandenberg/AutoCategoriseRedirect where I am doing some initial prototyping. The easiest to automatically detect are WP:Shortcuts and Category:Cross-namespace redirects, and those are the ones I am most interested in automatically detecting. @Wnt:, if you think any of the functionality I am working on would benefit this module, and the current uses, some code sharing needs to be organised (the code could be put in this module, or in a separate module that this modules uses), as the automatic redirect type detection should use the 'Redirect' module to extract the redirect target. John Vandenberg (chat) 00:41, 22 January 2014 (UTC)
- Well, actually at the moment I can't edit the module on account of it being protected (Mr. Stradivarius did say I could get template editor status, but I procrastinated about picking out a more secure password). He actually rewrote a lot of the highest-level code in the module anyway, and should be good to ask. Also, I wonder about -- I don't really know -- how much time it takes to require a routine out of another module. I don't understand how you're going to get your module called from uncategorized redirects, but if you end up tagging a very large number of them, even a tiny delay for opening another module could add up. And, if someone ever goes in and edits the required Module:Redirect, it'll affect all those pages. There's also a little bit of optimization that can be done by combining the two modules: right now, you do an #invoke:Page|namespace and an invoke of this module, each of which make an expensive call to mw.title.new(), and both would have to be adapted if they're to share it. So I'm thinking you might want to just copy the code, as inelegant as that may be. Wnt (talk) 07:53, 22 January 2014 (UTC)
- I'll implement the new module slowly using this module, on only a few pages of each type, so that changes dont have a large impact. If there is a performance issue, I'll switch to calling the relevant functions directly. John Vandenberg (chat) 10:32, 26 January 2014 (UTC)
Flag to resolve soft redirects and redirects at RfD
When a redirect is listed at RfD, it looks like User:John Vandenberg/testcases/Redirect/1 (as documented poorly at mw:Help:Redirects), which the mediawiki software determines is not a 'redirect', and this module doesnt parse and extract the redirect target. It would be nice if {{RFDnote}} and other functions could ask for the redirect target using this module, knowing that it is currently not an active redirect. Likewise, it would be nice if this module could extract the target from {{soft redirect}}, {{wiktionary redirect}}, etc. I think one 'soft=yes' flag would be sufficient to support any 'semi'-redirect page. I'm happy to put up a code mod in the sandbox if others think this is appropriate. Otherwise I'll write a SoftRedirect Module ;-) John Vandenberg (chat) 09:51, 26 January 2014 (UTC)
Protected edit request on 15 April 2014
This edit request has been answered. Set the |answered= parameter to no to reactivate your request. |
Please make these changes, so that {{#invoke:redirect|main|{{TALKPAGENAME}}}} works right when the page name contains apostrophes or other characters escaped by {{TALKPAGENAME}}. Jackmcbarn (talk) 21:13, 15 April 2014 (UTC)
- Done — Mr. Stradivarius ♪ talk ♪ 06:25, 16 April 2014 (UTC)
- @Mr. Stradivarius: This change will re-break this if it goes live. See the last test in Module talk:Redirect/sandbox testcases. (Unrelated: Why does this module have a /testcases and a /sandbox testcases?) Jackmcbarn (talk) 16:10, 17 May 2014 (UTC)
- @Jackmcbarn: I've moved the sandbox test cases to Module:Redirect/testcases. I've also switched to doing the canonicalisation purely with title objects. This makes things easier coding-wise, but it does mean that we have one more expensive function call for each call to the module. Is this likely to cause problems anywhere? — Mr. Stradivarius ♪ talk ♪ 04:55, 18 May 2014 (UTC)
- @Mr. Stradivarius: I don't think that will cause problems. Jackmcbarn (talk) 17:30, 18 May 2014 (UTC)
- @Jackmcbarn: I've moved the sandbox test cases to Module:Redirect/testcases. I've also switched to doing the canonicalisation purely with title objects. This makes things easier coding-wise, but it does mean that we have one more expensive function call for each call to the module. Is this likely to cause problems anywhere? — Mr. Stradivarius ♪ talk ♪ 04:55, 18 May 2014 (UTC)
- @Mr. Stradivarius: This change will re-break this if it goes live. See the last test in Module talk:Redirect/sandbox testcases. (Unrelated: Why does this module have a /testcases and a /sandbox testcases?) Jackmcbarn (talk) 16:10, 17 May 2014 (UTC)
Query
@Wnt and Mr. Stradivarius: just wondering if there might be any possibility of a module which would detect a disambiguation page? There is some logic associated with Template:Disambig editintro which will make it display automatically on such a page; I don't know if it can be exploited here. Thanks — Martin (MSGJ · talk) 09:15, 13 January 2016 (UTC)
- @MSGJ: I had this idea back in 2014, but after talking about it on IRC it looks like it wouldn't be feasible. There's a Phabricator ticket about it at phab:T71441. — Mr. Stradivarius ♪ talk ♪ 09:40, 13 January 2016 (UTC)
- Oh well - pity! But paradoxes must be avoided at all costs ;) — Martin (MSGJ · talk) 09:51, 13 January 2016 (UTC)
- I think there's actually a way to do this. I've elaborated on the ticket. Kaldari (talk) 21:18, 31 October 2016 (UTC)
- Oh well - pity! But paradoxes must be avoided at all costs ;) — Martin (MSGJ · talk) 09:51, 13 January 2016 (UTC)
Protected edit request on 30 March 2017
It is requested that an edit be made to the fully protected module at Module:Redirect. (edit · history · last · links · sandbox · edit sandbox · sandbox history · sandbox last edit · sandbox diff · test cases · transclusion count · protection log) This template must be followed by a complete and specific description of the request, so that an editor unfamiliar with the subject matter could complete the requested edit immediately.
Edit requests to fully protected pages should only be used for edits that are either uncontroversial or supported by consensus. If the proposed edit might be controversial, discuss it on the protected page's talk page before using this template. Consider making changes first to the module's sandbox and test them thoroughly here before submitting an edit request. To request that a page be protected or unprotected, make a protection request. When the request has been completed or denied, please add the |
Edits allow for the fragment to be included when requesting the target of a redirect, but only when the |fulltext=
parameter is set, meaning no changes are required to templates that already use the module as-is.
Example:
{{#invoke:Redirect|main|MOS:SEASON}}
: Wikipedia:Manual of Style/Dates and numbers{{#invoke:Redirect/sandbox|main|MOS:SEASON}}
: Wikipedia:Manual of Style/Dates and numbers
{{#invoke:Redirect|main|MOS:SEASON|fulltext=}}
: Wikipedia:Manual of Style/Dates and numbers{{#invoke:Redirect/sandbox|main|MOS:SEASON|fulltext=}}
: Wikipedia:Manual of Style/Dates and numbers
{{#invoke:Redirect|main|MOS:SEASON|fulltext=y}}
: Wikipedia:Manual of Style/Dates and numbers#Seasons{{#invoke:Redirect/sandbox|main|MOS:SEASON|fulltext=y}}
: Wikipedia:Manual of Style/Dates and numbers#Seasons
-- AlexTW 10:03, 30 March 2017 (UTC)
- URL 1 is the "old" part of your sandbox diffs link, and URL 2 is the "new". Do I understand rightly that URL 1 is the current version of the module page, and that you're asking that we copy the content of URL 2 to the module? Nyttend (talk) 00:54, 3 April 2017 (UTC)
- PS, AlexTheWhovian, I meant to ping you in the first edit but forgot. Nyttend (talk) 00:55, 3 April 2017 (UTC)