Module:Taxonbar/whitelist
Appearance
Related pages |
---|
![]() | This Lua module is used on approximately 473,000 pages, or roughly 1% 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. |
About
This module returns strict
, lax
, or all
acceptable instance of (P31)s as a Lua table for use in a module such as Module:Taxonbar.
For use in documentation, see {{Taxonbar/whitelist}}.
Usage
local whitelists = require( 'Module:Taxonbar/whitelist' ).whitelist
Arg | Lua | Output |
---|---|---|
strict
|
local myWhitelist = whitelists{ args = { 'strict' } }
|
|
lax
|
local myWhitelist = whitelists{ args = { 'lax' } }
|
|
all
|
local myWhitelist = whitelists{ args = { 'all' } }
|
|
See also
local p = {}
-- returns any combination of strict/lax/all acceptable instance-of's,
-- either for use inside [[Module:Taxonbar]] or another module,
-- or for use in documentation as an ordered list
function p.whitelist( frame )
local listType = frame.args[1]
local documentation = frame.args[2]
local acceptableInstanceOf_Strict = {
['Q16521'] = 'taxon',
['Q310890'] = 'monotypic taxon',
['Q98961713'] = 'extinct taxon',
['Q2568288'] = 'ichnotaxon',
['Q23038290'] = 'fossil taxon',
['Q47487597'] = 'monotypic fossil taxon',
['Q58051350'] = 'paraphyletic group', --subclass of taxon
['Q59278506'] = 'ootaxon',
}
local acceptableInstanceOf_Lax = {
['Q42621'] = 'hybrid',
['Q235536'] = 'incertae sedis',
['Q713623'] = 'clade',
['Q848328'] = 'serotype',
['Q857968'] = 'candidatus',
['Q17487588'] = 'unavailable combination',
}
local acceptableInstanceOf_All = {} --create IFF requested
if listType == 'all' then
for k, v in pairs( acceptableInstanceOf_Strict ) do
acceptableInstanceOf_All[k] = v
end
for k, v in pairs( acceptableInstanceOf_Lax ) do
acceptableInstanceOf_All[k] = v
end
end
if (documentation == nil) or --module-use only; order & format irrelevant
(documentation and documentation == '') then
local out = {}
if listType == 'strict' then out = acceptableInstanceOf_Strict
elseif listType == 'lax' then out = acceptableInstanceOf_Lax
elseif listType == 'all' then out = acceptableInstanceOf_All
end
return out
else
local displayOrder_Strict = {
'Q16521', --taxon
'Q310890', --monotypic taxon
'Q47487597', --monotypic fossil taxon
'Q2568288', --ichnotaxon
'Q23038290', --fossil taxon
'Q59278506', --ootaxon
'Q98961713', --extinct taxon
'Q58051350', --paraphyletic group
}
local displayOrder_Lax = {
'Q42621', --hybrid
'Q235536', --incertae sedis
'Q713623', --clade
'Q848328', --serotype
'Q857968', --candidatus
'Q17487588', --unavailable combination
}
local displayOrder_All = {} --create IFF requested
if listType == 'all' then
--concatenate strict + lax display order tables
local i = 0
for _, v in pairs( displayOrder_Strict ) do
i = i + 1
displayOrder_All[i] = v
end
for _, v in pairs( displayOrder_Lax ) do
i = i + 1
displayOrder_All[i] = v
end
end
local outOrder = {}
if listType == 'strict' then outOrder = displayOrder_Strict
elseif listType == 'lax' then outOrder = displayOrder_Lax
elseif listType == 'all' then outOrder = displayOrder_All
end
local out = ''
for _, q in pairs( outOrder ) do
local Q = frame:expandTemplate{ title = 'Q', args = { q } }
out = out..'# '..Q..'\n'
end
return out
end
end
return p