https://de.wikipedia.org/w/index.php?action=history&feed=atom&title=Module%3ARedirect Modul:Redirect - Versionsgeschichte 2025-06-08T19:14:06Z Versionsgeschichte dieser Seite in Wikipedia MediaWiki 1.45.0-wmf.4 https://de.wikipedia.org/w/index.php?title=Modul:Redirect&diff=177401002&oldid=prev Avicenno: AZ: Die Seite wurde neu angelegt: -- This module provides functions for getting the target of a redirect page. local p = {} -- Gets a… 2018-05-13T21:10:51Z <p><a href="/wiki/Hilfe:Zusammenfassung_und_Quellen#Auto-Zusammenfassung" title="Hilfe:Zusammenfassung und Quellen">AZ</a>: Die Seite wurde neu angelegt: -- This module provides functions for getting the target of a redirect page. local p = {} -- Gets a…</p> <p><b>Neue Seite</b></p><div>-- This module provides functions for getting the target of a redirect page.<br /> <br /> local p = {}<br /> <br /> -- Gets a mw.title object, using pcall to avoid generating script errors if we<br /> -- are over the expensive function count limit (among other possible causes).<br /> local function getTitle(...)<br /> local success, titleObj = pcall(mw.title.new, ...)<br /> if success then<br /> return titleObj<br /> else<br /> return nil<br /> end<br /> end<br /> <br /> -- Gets the name of a page that a redirect leads to, or nil if it isn&#039;t a<br /> -- redirect.<br /> function p.getTargetFromText(text)<br /> return string.match(<br /> text,<br /> &quot;^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)%]%]&quot;<br /> ) or string.match(<br /> text,<br /> &quot;^%s*#[Rr][Ee][Dd][Ii][Rr][Ee][Cc][Tt]%s*:?%s*%[%[([^%[%]|]-)|[^%[%]]-%]%]&quot;<br /> )<br /> end<br /> <br /> -- Gets the target of a redirect. If the page specified is not a redirect,<br /> -- returns nil.<br /> function p.getTarget(page, fulltext)<br /> -- Get the title object. Both page names and title objects are allowed<br /> -- as input.<br /> local titleObj<br /> if type(page) == &#039;string&#039; or type(page) == &#039;number&#039; then<br /> titleObj = getTitle(page)<br /> elseif type(page) == &#039;table&#039; and type(page.getContent) == &#039;function&#039; then<br /> titleObj = page<br /> else<br /> error(string.format(<br /> &quot;bad argument #1 to &#039;getTarget&#039;&quot;<br /> .. &quot; (string, number, or title object expected, got %s)&quot;,<br /> type(page)<br /> ), 2)<br /> end<br /> if not titleObj or not titleObj.isRedirect then<br /> return nil<br /> end<br /> <br /> -- Find the target by using string matching on the page content.<br /> local target = p.getTargetFromText(titleObj:getContent() or &quot;&quot;)<br /> if target then<br /> local targetTitle = getTitle(target)<br /> if targetTitle then<br /> if fulltext then<br /> return targetTitle.fullText<br /> else<br /> return targetTitle.prefixedText<br /> end<br /> else<br /> return nil<br /> end<br /> else<br /> -- The page is a redirect, but matching failed. This indicates a bug in<br /> -- the redirect matching pattern, so throw an error.<br /> error(string.format(<br /> &#039;could not parse redirect on page &quot;%s&quot;&#039;,<br /> fulltext and titleObj.fullText or titleObj.prefixedText<br /> ))<br /> end<br /> end<br /> <br /> --[[<br /> -- Given a single page name determines what page it redirects to and returns the<br /> -- target page name, or the passed page name when not a redirect. The passed<br /> -- page name can be given as plain text or as a page link.<br /> -- <br /> -- Returns page name as plain text, or when the bracket parameter is given, as a<br /> -- page link. Returns an error message when page does not exist or the redirect<br /> -- target cannot be determined for some reason.<br /> --]]<br /> function p.luaMain(rname, bracket, fulltext)<br /> if type(rname) ~= &quot;string&quot; or not rname:find(&quot;%S&quot;) then<br /> return nil<br /> end<br /> bracket = bracket and &quot;[[%s]]&quot; or &quot;%s&quot;<br /> rname = rname:match(&quot;%[%[(.+)%]%]&quot;) or rname<br /> local target = p.getTarget(rname, fulltext)<br /> local ret = target or rname<br /> ret = getTitle(ret)<br /> if ret then<br /> if fulltext then<br /> ret = ret.fullText<br /> else<br /> ret = ret.prefixedText<br /> end<br /> return bracket:format(ret)<br /> else<br /> return nil<br /> end<br /> end<br /> <br /> -- Provides access to the luaMain function from wikitext.<br /> function p.main(frame)<br /> local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {frameOnly = true})<br /> return p.luaMain(args[1], args.bracket, args.fulltext) or &#039;&#039;<br /> end<br /> <br /> -- Returns true if the specified page is a redirect, and false otherwise.<br /> function p.luaIsRedirect(page)<br /> local titleObj = getTitle(page)<br /> if not titleObj then<br /> return false<br /> end<br /> if titleObj.isRedirect then<br /> return true<br /> else<br /> return false<br /> end<br /> end<br /> <br /> -- Provides access to the luaIsRedirect function from wikitext, returning &#039;yes&#039;<br /> -- if the specified page is a redirect, and the blank string otherwise.<br /> function p.isRedirect(frame)<br /> local args = require(&#039;Module:Arguments&#039;).getArgs(frame, {frameOnly = true})<br /> if p.luaIsRedirect(args[1]) then<br /> return &#039;yes&#039;<br /> else<br /> return &#039;&#039;<br /> end<br /> end<br /> <br /> return p</div> Avicenno