Module:Taxonbar/whitelist
Related pages |
---|
This Lua module is used on a very large number of pages, so changes to it will be widely noticed. Please test any changes in the module's /sandbox or /testcases subpages. Please consider discussing changes on the talk page before implementing them. |
About
This module returns strict
, lax
, or all
acceptable (P31)s as a Lua table for use in a module such as Module:Taxonbar.
For use in documentation, see {{Taxonbar/whitelist}}.
Usage
<syntaxhighlight lang="lua"> local whitelists = require( 'Module:Taxonbar/whitelist' ).whitelist </syntaxhighlight>
Arg | Lua | Output |
---|---|---|
strict
|
<syntaxhighlight lang="lua">local myWhitelist = whitelists{ args = { 'strict' } }</syntaxhighlight> | <syntaxhighlight lang="lua">myWhitelist = {
'Q16521' = 1, 'Q310890' = 2, 'Q47487597' = 3, 'Q2568288' = 4, 'Q23038290' = 5, 'Q59278506' = 6, 'Q98961713' = 7, 'Q58051350' = 8, }</syntaxhighlight> |
lax
|
<syntaxhighlight lang="lua">local myWhitelist = whitelists{ args = { 'lax' } }</syntaxhighlight> | <syntaxhighlight lang="lua">myWhitelist = {
'Q42621' = 1, 'Q235536' = 2, 'Q713623' = 3, 'Q848328' = 4, 'Q857968' = 5, 'Q17487588' = 6, 'Q124477390' = 7, }</syntaxhighlight> |
all
|
<syntaxhighlight lang="lua">local myWhitelist = whitelists{ args = { 'all' } }</syntaxhighlight> | <syntaxhighlight lang="lua">myWhitelist = {
'Q16521' = 1, 'Q310890' = 2, 'Q47487597' = 3, 'Q2568288' = 4, 'Q23038290' = 5, 'Q59278506' = 6, 'Q98961713' = 7, 'Q58051350' = 8, 'Q42621' = 9, 'Q235536' = 10, 'Q713623' = 11, 'Q848328' = 12, 'Q857968' = 13, 'Q17487588' = 14, 'Q124477390' = 15, }</syntaxhighlight> |
See also
- Module:Taxonbar/blacklist
- Category:Taxobox articles missing a taxonbar (0)
- Category:Taxobox articles possibly missing a taxonbar (0)
- Category:Taxonbars on possible non-taxon pages (0)
local p = {} --returns any combination of strict/lax/all acceptable instance-of's, --either as a table for use inside [[Module:Taxonbar]] or another module, --or as an ordered list for use in documentation. 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 'Q124477390', --taxon hypothesis } if listType == 'strict' then outList = acceptableInstanceOf_Strict elseif listType == 'lax' then outList = acceptableInstanceOf_Lax else --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 = {} for k, v in pairs( outList ) do out[v] = k --output Q# as keys for easier searching within Module:Taxonbar end return out elseif (documentation == 'docdoc') then --self-documentation only local selfdocout = 'myWhitelist = {\n' for k, q in pairs( outList ) do selfdocout = selfdocout..'\t\''..q..'\' = '..k..',\n' end selfdocout = selfdocout..'}' local args = { ['lang'] = 'lua', ['code'] = selfdocout } out = frame:expandTemplate{ title = 'Syntaxhighlight', args = args } return out else --normal documentation only local out = '' for _, q in pairs( outList ) do local Q = frame:expandTemplate{ title = 'Q', args = { q } } out = out..'# '..Q..'\n' end out = mw.ustring.gsub(out, '%s+$', '') return out end end return p