Module:Taxonbar/whitelist: Difference between revisions
Appearance
Content deleted Content added
Tom.Reding (talk | contribs) adj args |
Tom.Reding (talk | contribs) Simplify & remove all duplication: make table order == display order |
||
Line 7: | Line 7: | ||
local listType = frame.args[1] |
local listType = frame.args[1] |
||
local documentation = frame.args[2] |
local documentation = frame.args[2] |
||
local |
local outList = {} |
||
local acceptableInstanceOf_Strict = { --table order == display order |
|||
['Q16521'] = 'taxon', |
|||
'Q16521', --taxon |
|||
'Q310890', --monotypic taxon |
|||
⚫ | |||
'Q2568288', --ichnotaxon |
|||
['Q23038290'] = 'fossil taxon', |
|||
'Q23038290', --fossil taxon |
|||
⚫ | |||
⚫ | |||
⚫ | |||
['Q59278506'] = 'ootaxon', |
|||
⚫ | |||
} |
} |
||
local acceptableInstanceOf_Lax = { |
local acceptableInstanceOf_Lax = { --table order == display order |
||
'Q42621', --hybrid |
|||
'Q235536', --incertae sedis |
|||
'Q713623', --clade |
|||
'Q848328', --serotype |
|||
'Q857968', --candidatus |
|||
'Q17487588', --unavailable combination |
|||
} |
} |
||
⚫ | |||
if listType == ' |
if listType == 'strict' then outList = acceptableInstanceOf_Strict |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
end |
end |
||
for |
for _, v in pairs( acceptableInstanceOf_Lax ) do |
||
acceptableInstanceOf_All[ |
i = i + 1 |
||
acceptableInstanceOf_All[i] = v |
|||
end |
end |
||
⚫ | |||
end |
end |
||
if (documentation == nil) or --module |
if (documentation == nil) or --module only |
||
(documentation and documentation == '') then |
(documentation and documentation == '') then |
||
local out = {} --output Q's as keys for easier searching within Module:Taxonbar |
|||
local out = {} |
|||
⚫ | |||
if listType == 'strict' then out = acceptableInstanceOf_Strict |
|||
⚫ | |||
⚫ | |||
⚫ | |||
end |
end |
||
return out |
return out |
||
else |
|||
local displayOrder_Strict = { |
|||
'Q16521', --taxon |
|||
'Q310890', --monotypic taxon |
|||
⚫ | |||
'Q2568288', --ichnotaxon |
|||
'Q23038290', --fossil 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 |
|||
⚫ | |||
for _, v in pairs( displayOrder_Strict ) do |
|||
⚫ | |||
displayOrder_All[i] = v |
|||
end |
|||
⚫ | |||
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 |
|||
⚫ | |||
end |
|||
else --documentation only |
|||
local out = '' |
local out = '' |
||
for _, q in pairs( |
for _, q in pairs( outList ) do |
||
local Q = frame:expandTemplate{ title = 'Q', args = { q } } |
local Q = frame:expandTemplate{ title = 'Q', args = { q } } |
||
out = out..'# '..Q..'\n' |
out = out..'# '..Q..'\n' |
Revision as of 19:13, 20 August 2023
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 outList = {}
local acceptableInstanceOf_Strict = { --table order == display order
'Q16521', --taxon
'Q310890', --monotypic taxon
'Q47487597', --monotypic fossil taxon
'Q2568288', --ichnotaxon
'Q23038290', --fossil taxon
'Q59278506', --ootaxon
'Q98961713', --extinct taxon
'Q58051350', --paraphyletic group (subclass of taxon)
}
local acceptableInstanceOf_Lax = { --table order == display order
'Q42621', --hybrid
'Q235536', --incertae sedis
'Q713623', --clade
'Q848328', --serotype
'Q857968', --candidatus
'Q17487588', --unavailable combination
}
if listType == 'strict' then outList = acceptableInstanceOf_Strict
elseif listType == 'lax' then outList = acceptableInstanceOf_Lax
elseif listType == 'all' then --concatenate strict + lax IIF requested
local acceptableInstanceOf_All = {}
local i = 0
for _, v in pairs( acceptableInstanceOf_Strict ) do
i = i + 1
acceptableInstanceOf_All[i] = v
end
for _, v in pairs( acceptableInstanceOf_Lax ) do
i = i + 1
acceptableInstanceOf_All[i] = v
end
outList = acceptableInstanceOf_All
end
if (documentation == nil) or --module only
(documentation and documentation == '') then
local out = {} --output Q's as keys for easier searching within Module:Taxonbar
for k, v in pairs( outList ) do
out[v] = k
end
return out
else --documentation only
local out = ''
for _, q in pairs( outList ) do
local Q = frame:expandTemplate{ title = 'Q', args = { q } }
out = out..'# '..Q..'\n'
end
return out
end
end
return p