Jump to content
Wikipedia The Free Encyclopedia

Module:Redirect template

From Wikipedia, the free encyclopedia
Module documentation[view] [edit] [history] [purge]
Warning This Lua module is used on approximately 7,440,000 pages, or roughly 12% of all pages .
To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages, or in your own module sandbox. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them.
This module depends on the following other modules:
This module is rated as ready for general use. It has reached a mature state, is considered relatively stable and bug-free, and may be used wherever appropriate. It can be mentioned on help pages and other Wikipedia resources as an option for new users. To minimise server load and avoid disruptive output, improvements should be developed through sandbox testing rather than repeated trial-and-error editing.
Page protected This module is currently protected from editing.
See the protection policy and protection log for more details. Please discuss any changes on the talk page; you may submit an edit request to ask an administrator to make an edit if it is uncontroversial or supported by consensus. You may also request that this page be unprotected.

This module implements {{redirect template }}. Please see the template page for documentation.

The above documentation is transcluded from Module:Redirect template/doc. (edit | history)
Editors can experiment in this module's sandbox (edit | diff) and testcases (create) pages.
Subpages of this module.

 require('strict')

 localp={}

 -- key is beginning of arg name. value is table with namespace number and link
 -- alternatively, a function taking the namespace number and returning a validity
 -- can be used
 localnamespaceCategories={
 all={function()returntrueend},
 main={0,'[[WP:Mainspace|main]]'},
 help={12,'[[WP:Help namespace|help]]'},
 portal={100,'[[WP:Portal|portal]]'},
 mos={126,'[[WP:MOS namespace|MOS]]'},
 talk={function(n)returnn>0andn%2==1end,'[[Help:Talk pages|talk]]'},
 template={10,'[[WP:Template namespace|template]]'},
 wikipedia={4,'[[WP:Project namespace|Wikipedia project]]'},
 category={14,'[[WP:Categorization|category]]'},
 user={2,'[[WP:User pages|user]]'},
 draft={118,'[[WP:Drafts|draft]]'},
 }

 -- remove whitespaces from beginning and end of args
 localfunctionvalueFunc(key,val)
 iftype(val)=='string'then
 val=val:match('^%s*(.-)%s*$')
 ifval==''then
 returnnil
 end
 end
 returnval
 end

 localfunctiongetPrettyName(args)
 forkinpairs(namespaceCategories)do
 ifargs[k..' category']then
 returnstring.format("'''[[:Category:%s|%s]]''': ",args[k..' category'],args.name)
 end
 end
 returnstring.format("'''%s''': ",args.name)
 end

 functionp.main(frame)
 localargs=require('Module:Arguments').getArgs(frame,{wrappers='Template:Redirect template',valueFunc=valueFunc})
 localnamespace=mw.title.getCurrentTitle().namespace

 --- XXX: this is a HORRIBLE HACK. kill it with fire as soon as https://phabricator.wikimedia.org/T14974 is fixed
 --- [[phab:T14974]] was previously known as [[bugzilla:12974]] https://bugzilla.wikimedia.org/show_bug.cgi?id=12974
 localbeCompatibleWithBug14974=args.infoand(args.info:find('^[:;#*]',1)==1orargs.info:find('{|',1,true)==1)and'\n'or' '

 localcontent=string.format('\n<div class="rcat %s">\n*%sThis is a redirect%s%s.%s%s\n</div>',
 args.idand('rcat-'..string.gsub(args.id,' ','_'))or'',
 args.nameandgetPrettyName(args)or'',
 args.fromand(' from '..args.from)or'',
 args.toand(' to '..args.to)or'',
 args.infoandbeCompatibleWithBug14974or'',
 args.infoor''
 )

 fork,vinpairs(namespaceCategories)do
 ifargs[k..' category']then
 iftype(v[1])=='function'andv[1](namespace)orv[1]==namespacethen
 ifargs.sortkeythen
 content=content..string.format('[[Category:%s|%s]]',args[k..' category'],args.sortkey)
 else
 content=content..string.format('[[Category:%s]]',args[k..' category'])
 end
 elseifargs['other category']then
 ifargs.sortkeythen
 content=content..string.format('[[Category:%s|%s]]',args['other category'],args.sortkey)
 else
 content=content..string.format('[[Category:%s]]',args['other category'])
 end
 else
 content=content..frame:expandTemplate{title='Incorrect redirect template',args={v[2]}}
 end
 end
 end

 ifnamespace==0then
 localyesno=require('Module:Yesno')
 ifyesno(args.printworthy)==truethen
 returncontent..'[[Category:Printworthy redirects]]'
 elseifyesno(args.printworthy)==falsethen
 returncontent..'[[Category:Unprintworthy redirects]]'
 end
 end
 returncontent
 end

 returnp

AltStyle によって変換されたページ (->オリジナル) /