Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:Taxonbar/blacklist

Permanently protected module
From Wikipedia, the free encyclopedia

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