Module:Taxonbar/blacklist
Appearance
Related pages |
---|
This Lua module is used on approximately 467,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 all unacceptable instance of (P31)s as a Lua table for use in a module such as Module:Taxonbar/candidate
For use in documentation, see {{Taxonbar/blacklist}}.
Usage
local myBlacklist = require( 'Module:Taxonbar/blacklist' ).blacklist{ args = {} }
produces:
myBlacklist = {
'Q913170' = 1,
'Q55983715' = 2,
'Q937228' = 3,
'Q14712' = 4,
'Q163233' = 5,
'Q747463' = 6,
}
See also
local p = {}
--Returns a blacklist of unacceptable wikidata instance-of's,
--either as a table for use inside a module such as [[Module:Taxonbar]],
--or as an ordered list for use in documentation.
function p.blacklist( frame )
local documentation = frame.args[1]
local unacceptableInstanceOf_All = { --table order == display order
'Q913170', --trivial name
'Q55983715', --group of organisms known by one particular common name
'Q937228', --property
'Q14712', --drupe
'Q163233', --compound drupe
'Q747463', --compound fruit
}
if (documentation == nil) or --module only
(documentation and documentation == '')
then
local out = {}
for k, v in pairs( unacceptableInstanceOf_All ) do
out[v] = k --output Q# as keys for table lookups
end
return out
elseif (documentation == 'docdoc') then --self-documentation only
local selfdocout = 'myBlacklist = {\n'
for k, q in pairs( unacceptableInstanceOf_All ) 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( unacceptableInstanceOf_All ) 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