Module:Science redirect
This module is rated as beta, and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected. |
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 ( 0 )
- Category:Redirects from alternative scientific names ( 1 )
- Category:Redirects to scientific names ( 1 )
- Category:Redirects from scientific names ( 1 )
- Category:Redirects to monotypic taxa ( 1 )
- Category:Redirects from monotypic taxa ( 1 )
Virus redirects ( 0 )
- Category:Redirects to scientific names of viruses ( 0 )
- Category:Redirects from monotypic taxa of viruses ( 0 )
- Category:Redirects from alternative scientific names of viruses ( 1 )
- Category:Redirects to monotypic taxa of viruses ( 0 )
- Category:Redirects from scientific names of viruses ( 0 )
Reptile redirects ( 0 )
- Category:Redirects to scientific names of reptiles ( 0 )
- Category:Redirects from monotypic taxa of reptiles ( 0 )
- Category:Redirects from alternative scientific names of reptiles ( 0 )
- Category:Redirects to monotypic taxa of reptiles ( 0 )
- Category:Redirects from scientific names of reptiles ( 0 )
Insect redirects ( 0 )
- Category:Redirects to scientific names of insects ( 0 )
- Category:Redirects from monotypic taxa of insects ( 0 )
- Category:Redirects from alternative scientific names of insects ( 0 )
- Category:Redirects to monotypic taxa of insects ( 0 )
- Category:Redirects from scientific names of insects ( 0 )
Mammal redirects ( 0 )
- Category:Redirects to scientific names of mammals ( 0 )
- Category:Redirects from monotypic taxa of mammals ( 0 )
- Category:Redirects from alternative scientific names of mammals ( 0 )
- Category:Redirects to monotypic taxa of mammals ( 0 )
- Category:Redirects from scientific names of mammals ( 0 )
Arthropod redirects ( 0 )
- Category:Redirects to scientific names of arthropods ( 0 )
- Category:Redirects from monotypic taxa of arthropods ( 0 )
- Category:Redirects from alternative scientific names of arthropods ( 0 )
- Category:Redirects to monotypic taxa of arthropods ( 0 )
- Category:Redirects from scientific names of arthropods ( 0 )
Spider redirects ( 0 )
- Category:Redirects to scientific names of spiders ( 0 )
- Category:Redirects from monotypic taxa of spiders ( 0 )
- Category:Redirects from alternative scientific names of spiders ( 0 )
- Category:Redirects to monotypic taxa of spiders ( 0 )
- Category:Redirects from scientific names of spiders ( 0 )
Plant redirects ( 0 )
- Category:Redirects to scientific names of plants ( 1 )
- Category:Redirects from monotypic taxa of plants ( 0 )
- Category:Redirects from alternative scientific names of plants ( 1 )
- Category:Redirects to monotypic taxa of plants ( 0 )
- Category:Redirects from scientific names of plants ( 1 )
Animal redirects ( 0 )
- Category:Redirects to scientific names of animals ( 0 )
- Category:Redirects from monotypic taxa of animals ( 0 )
- Category:Redirects from alternative scientific names of animals ( 0 )
- Category:Redirects to monotypic taxa of animals ( 0 )
- Category:Redirects from scientific names of animals ( 0 )
Fish redirects ( 0 )
- Category:Redirects to scientific names of fish ( 0 )
- Category:Redirects from monotypic taxa of fish ( 0 )
- Category:Redirects from alternative scientific names of fish ( 1 )
- Category:Redirects to monotypic taxa of fish ( 0 )
- Category:Redirects from scientific names of fish ( 0 )
Bird redirects ( 0 )
- Category:Redirects to scientific names of birds ( 0 )
- Category:Redirects from monotypic taxa of birds ( 0 )
- Category:Redirects from alternative scientific names of birds ( 0 )
- Category:Redirects to monotypic taxa of birds ( 0 )
- Category:Redirects from scientific names of birds ( 0 )
Fungus redirects ( 0 )
- Category:Redirects to scientific names of fungi ( 0 )
- Category:Redirects from monotypic taxa of fungi ( 0 )
- Category:Redirects from alternative scientific names of fungi ( 1 )
- Category:Redirects to monotypic taxa of fungi ( 0 )
- Category:Redirects from scientific names of fungi ( 0 )
Microorganism redirects ( 0 )
- Category:Redirects to scientific names of microorganisms ( 0 )
- Category:Redirects from monotypic taxa of microorganisms ( 0 )
- Category:Redirects from alternative scientific names of microorganisms ( 0 )
- Category:Redirects to monotypic taxa of microorganisms ( 0 )
- Category:Redirects from scientific names of microorganisms ( 0 )
Mollusk redirects ( 0 )
- Category:Redirects to scientific names of mollusks ( 0 )
- Category:Redirects from monotypic taxa of mollusks ( 0 )
- Category:Redirects from alternative scientific names of mollusks ( 0 )
- Category:Redirects to monotypic taxa of mollusks ( 0 )
- Category:Redirects from scientific names of mollusks ( 0 )
Amphibian redirects ( 0 )
- Category:Redirects to scientific names of amphibians ( 0 )
- Category:Redirects from monotypic taxa of amphibians ( 0 )
- Category:Redirects from alternative scientific names of amphibians ( 0 )
- Category:Redirects to monotypic taxa of amphibians ( 0 )
- Category:Redirects from scientific names of amphibians ( 0 )
Alga redirects ( 0 )
- Category:Redirects to scientific names of algae ( 0 )
- Category:Redirects from monotypic taxa of algae ( 0 )
- Category:Redirects from alternative scientific names of algae ( 0 )
- Category:Redirects to monotypic taxa of algae ( 0 )
- Category:Redirects from scientific names of algae ( 0 )
Crustacean redirects ( 0 )
- Category:Redirects to scientific names of crustaceans ( 0 )
- Category:Redirects from monotypic taxa of crustaceans ( 0 )
- Category:Redirects from alternative scientific names of crustaceans ( 0 )
- Category:Redirects to monotypic taxa of crustaceans ( 0 )
- Category:Redirects from scientific names of crustaceans ( 0 )
Invalid parameters
- Category:Redirects from alternative scientific names using unknown values for parameter 1 ( 0 )
- Category:Redirects to scientific names using unknown values for parameter 1 ( 0 )
- Category:Redirects from scientific names using unknown values for parameter 1 ( 0 )
- Category:Redirects to monotypic taxa using unknown values for parameter 1 ( 0 )
- Category:Redirects from monotypic taxa using unknown values for parameter 1 ( 0 )
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