Module:Science redirect
This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
This Lua module is used on approximately 290,000 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 designed to serve as a back end for {{R from alternative scientific name}}
, {{R to scientific name}}
, {{R from scientific name}}
, {{R to monotypic taxon}}
and {{R from monotypic taxon}}
.
The template parameters and recognized categories are set in Module:Science redirect/conf.
Usage
{{#invoke:Science redirect|R|template name excluding 'R'}}
For example, for {{R to scientific name}}, you would use {{#invoke:Science redirect|R|to scientific name}}
to produce:
- To scientific name of an organism: This is a redirect from a vernacular ("common") name to the scientific name of an organism (or group of organisms).
Adding or modifying supported templates
The template parameters and recognized categories are set in Module:Science redirect/conf. Instructions on how to add data are in the comments of that file.
For debugging, add parameter |debug=true
, e.g. {{#invoke:Science redirect|R|to scientific name|debug=true}}
produces:
{{Redirect template
| name = To scientific name of an organism
| from = a vernacular ("common") name
| id = R_to_scientific_name
| printworthy = yes
| main category = Redirects to scientific names
| to = the scientific name of an organism (or group of organisms)
}}
Tracking categories
Science redirects ( 13 )
- Category:Redirects from alternative scientific names ( 8,791 )
- Category:Redirects to scientific names ( 20,010 )
- Category:Redirects from scientific names ( 888 )
- Category:Redirects to monotypic taxa ( 3,599 )
- Category:Redirects from monotypic taxa ( 3,598 )
Virus redirects ( 5 )
- Category:Redirects to scientific names of viruses ( 22 )
- Category:Redirects from monotypic taxa of viruses ( 69 )
- Category:Redirects from alternative scientific names of viruses ( 254 )
- Category:Redirects to monotypic taxa of viruses ( 54 )
- Category:Redirects from scientific names of viruses ( 106 )
Arthropod redirects ( 8 )
- Category:Redirects to scientific names of arthropods ( 107 )
- Category:Redirects from monotypic taxa of arthropods ( 70 )
- Category:Redirects from alternative scientific names of arthropods ( 169 )
- Category:Redirects to monotypic taxa of arthropods ( 197 )
- Category:Redirects from scientific names of arthropods ( 35 )
Mammal redirects ( 5 )
- Category:Redirects to scientific names of mammals ( 620 )
- Category:Redirects from monotypic taxa of mammals ( 148 )
- Category:Redirects from alternative scientific names of mammals ( 362 )
- Category:Redirects to monotypic taxa of mammals ( 104 )
- Category:Redirects from scientific names of mammals ( 6,761 )
Plant redirects ( 6 )
- Category:Redirects to scientific names of plants ( 56,816 )
- Category:Redirects from monotypic taxa of plants ( 1,035 )
- Category:Redirects from alternative scientific names of plants ( 45,899 )
- Category:Redirects to monotypic taxa of plants ( 3,371 )
- Category:Redirects from scientific names of plants ( 627 )
Fish redirects ( 5 )
- Category:Redirects to scientific names of fish ( 4,736 )
- Category:Redirects from monotypic taxa of fish ( 606 )
- Category:Redirects from alternative scientific names of fish ( 2,832 )
- Category:Redirects to monotypic taxa of fish ( 414 )
- Category:Redirects from scientific names of fish ( 6,283 )
Bird redirects ( 5 )
- Category:Redirects to scientific names of birds ( 150 )
- Category:Redirects from monotypic taxa of birds ( 201 )
- Category:Redirects from alternative scientific names of birds ( 703 )
- Category:Redirects to monotypic taxa of birds ( 32 )
- Category:Redirects from scientific names of birds ( 12,268 )
Fungus redirects ( 5 )
- Category:Redirects to scientific names of fungi ( 1,586 )
- Category:Redirects from monotypic taxa of fungi ( 181 )
- Category:Redirects from alternative scientific names of fungi ( 4,719 )
- Category:Redirects to monotypic taxa of fungi ( 672 )
- Category:Redirects from scientific names of fungi ( 64 )
Insect redirects ( 6 )
- Category:Redirects to scientific names of insects ( 7,062 )
- Category:Redirects from monotypic taxa of insects ( 698 )
- Category:Redirects from alternative scientific names of insects ( 67,304 )
- Category:Redirects to monotypic taxa of insects ( 3,512 )
- Category:Redirects from scientific names of insects ( 1,879 )
Mollusc redirects ( 5 )
- Category:Redirects to scientific names of molluscs ( 1,001 )
- Category:Redirects from monotypic taxa of molluscs ( 145 )
- Category:Redirects from alternative scientific names of molluscs ( 1,405 )
- Category:Redirects to monotypic taxa of molluscs ( 84 )
- Category:Redirects from scientific names of molluscs ( 531 )
Bacterium redirects ( 0 )
- Category:Redirects to scientific names of bacteria ( 31 )
- Category:Redirects from monotypic taxa of bacteria ( 131 )
- Category:Redirects from alternative scientific names of bacteria ( 217 )
- Category:Redirects to monotypic taxa of bacteria ( 37 )
- Category:Redirects from scientific names of bacteria ( 28 )
Alga redirects ( 5 )
- Category:Redirects to scientific names of algae ( 92 )
- Category:Redirects from monotypic taxa of algae ( 63 )
- Category:Redirects from alternative scientific names of algae ( 87 )
- Category:Redirects to monotypic taxa of algae ( 62 )
- Category:Redirects from scientific names of algae ( 26 )
Reptile redirects ( 5 )
- Category:Redirects to scientific names of reptiles ( 3,800 )
- Category:Redirects from monotypic taxa of reptiles ( 134 )
- Category:Redirects from alternative scientific names of reptiles ( 3,146 )
- Category:Redirects to monotypic taxa of reptiles ( 255 )
- Category:Redirects from scientific names of reptiles ( 2,090 )
Microorganism redirects ( 9 )
- Category:Redirects to scientific names of microorganisms ( 7 )
- Category:Redirects from monotypic taxa of microorganisms ( 27 )
- Category:Redirects from alternative scientific names of microorganisms ( 13 )
- Category:Redirects to monotypic taxa of microorganisms ( 8 )
- Category:Redirects from scientific names of microorganisms ( 13 )
Amphibian redirects ( 5 )
- Category:Redirects to scientific names of amphibians ( 918 )
- Category:Redirects from monotypic taxa of amphibians ( 28 )
- Category:Redirects from alternative scientific names of amphibians ( 784 )
- Category:Redirects to monotypic taxa of amphibians ( 36 )
- Category:Redirects from scientific names of amphibians ( 1,183 )
Spider redirects ( 5 )
- Category:Redirects to scientific names of spiders ( 467 )
- Category:Redirects from monotypic taxa of spiders ( 251 )
- Category:Redirects from alternative scientific names of spiders ( 1,857 )
- Category:Redirects to monotypic taxa of spiders ( 804 )
- Category:Redirects from scientific names of spiders ( 150 )
Animal redirects ( 11 )
- Category:Redirects to scientific names of animals ( 376 )
- Category:Redirects from monotypic taxa of animals ( 164 )
- Category:Redirects from alternative scientific names of animals ( 1,248 )
- Category:Redirects to monotypic taxa of animals ( 337 )
- Category:Redirects from scientific names of animals ( 229 )
Crustacean redirects ( 5 )
- Category:Redirects to scientific names of crustaceans ( 306 )
- Category:Redirects from monotypic taxa of crustaceans ( 204 )
- Category:Redirects from alternative scientific names of crustaceans ( 1,035 )
- Category:Redirects to monotypic taxa of crustaceans ( 243 )
- Category:Redirects from scientific names of crustaceans ( 145 )
Invalid parameters
- Category:Redirects from alternative scientific names using unknown values for parameter 1 ( 22 )
- Category:Redirects to scientific names using unknown values for parameter 1 ( 2 )
- Category:Redirects from scientific names using unknown values for parameter 1 ( 0 )
- Category:Redirects to monotypic taxa using unknown values for parameter 1 ( 11 )
- Category:Redirects from monotypic taxa using unknown values for parameter 1 ( 1 )
local conf = require( "Module:Science redirect/conf" )
local p = {}
function p.R(frame)
local template = mw.ustring.gsub(frame.args[1], ' ', '_')
if conf.templates[template] then
return p._main(frame, 'R_' .. template, conf.templates[template].name, conf.templates[template].from, conf.templates[template].to, conf.templates[template].category, conf.templates[template].info, conf.templates[template].removeA)
elseif template then
return '<span class="error">The template '..template..'is not valid.</span>\n'
else
return '<span class="error">No template specified</span>\n'
end
end
function p.list(frame)
local outstr = ""
local ocats={}
for k, v in pairs(conf.cats) do
if(v[2]) then
ocats[v[2]] = v[1]
end
end
for k, v in pairs(ocats) do
local h = mw.ustring.match(v, ".*%s(.*)")
outstr = outstr .. "\n=== " .. frame:expandTemplate{ title = 'cl', args = { (h .. " redirects"), (mw.language.getContentLanguage():ucfirst(h) .. " redirects"), count = "yes" } } .. " ===\n"
for kk, vv in pairs (conf.templates) do
outstr = outstr .. "*" .. frame:expandTemplate{ title = 'cl', args = { ("Redirects " .. vv.category .. " of " .. k), count = "yes" } } .. "\n"
end
end
return outstr
end
function p._main(frame, id, name, from, to, category, info, removeA)
--initialize variables
local args = frame:getParent().args
local singleNoun, pluralNoun = '', ''
local outStr = ''
--Check for known parameter 1
local cat = mw.ustring.match(mw.ustring.lower(args[1] or 'none'), '^(.-)s?$')
if conf.cats[cat] then singleNoun, pluralNoun = conf.cats[cat][1], conf.cats[cat][2] else
singleNoun, pluralNoun = 'an organism'
outStr = '[[Category:Redirects '..category..' using unknown values for parameter 1]]'
end
--strip article from singleNoun if removeA is true
if removeA == true then
if singleNoun == 'an organism' then singleNoun = '' else singleNoun = (mw.ustring.match(singleNoun, '^an? (.*)$') or singleNoun) end
end
--support alternative indications for printworthy
if args[2] == 'unprintworthy' or args['unprintworthy'] == 'true' then args['printworthy'] = 'no' end
--build template arguments
local main_category = 'Redirects '..category
if pluralNoun then main_category = main_category..' of '..pluralNoun end
local outArgs = {
id = id,
name = mw.ustring.gsub(name, '$1', singleNoun),
from = mw.ustring.gsub(mw.ustring.gsub(from, '$1', singleNoun), '$2', (pluralNoun or 'organisms')),
to = mw.ustring.gsub(mw.ustring.gsub(to, '$1', singleNoun), '$2', (pluralNoun or 'organisms')),
['main category'] = main_category,
printworthy = (args['printworthy'] or 'yes'),
info = info,
}
--build output string
if frame.args['debug'] == 'true' then
local debugStr = '{{Redirect template<br />\n'
for k,v in pairs( outArgs ) do
debugStr = debugStr..'| '..k..' = '..v..'<br />\n'
end
outStr = debugStr..'}}'..frame:extensionTag{ name = 'nowiki', content = outStr}
else
outStr = frame:expandTemplate{ title = 'Redirect template', args = outArgs }..outStr
end
return outStr
end
return p