<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ATaxobox</id>
	<title>Module:Taxobox - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ATaxobox"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Taxobox&amp;action=history"/>
	<updated>2026-04-22T05:52:30Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Taxobox&amp;diff=147152&amp;oldid=prev</id>
		<title>imported&gt;SWinxy: Range maps, synonyms, text-align: left;, trinomial no longer tries to filter, misspelling</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Taxobox&amp;diff=147152&amp;oldid=prev"/>
		<updated>2022-09-12T20:51:25Z</updated>

		<summary type="html">&lt;p&gt;Range maps, synonyms, text-align: left;, trinomial no longer tries to filter, misspelling&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local infobox = require(&amp;quot;Module:Infobox&amp;quot;)&lt;br /&gt;
local infoboxImage = require(&amp;quot;Module:InfoboxImage&amp;quot;)&lt;br /&gt;
local arguments = require(&amp;quot;Module:Arguments&amp;quot;)&lt;br /&gt;
local ifPreview = require(&amp;quot;Module:If preview&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local colors = {&lt;br /&gt;
	animalia = &amp;quot;ebebd2&amp;quot;,&lt;br /&gt;
	archaea = &amp;quot;c3f5fa&amp;quot;,&lt;br /&gt;
	archaeplastida = &amp;quot;b4fab4&amp;quot;,&lt;br /&gt;
	bacteria = &amp;quot;dcebf5&amp;quot;,&lt;br /&gt;
	eukaryota = &amp;quot;f5d7ff&amp;quot;,&lt;br /&gt;
	fungi = &amp;quot;91fafa&amp;quot;,&lt;br /&gt;
	incertae_sedis = &amp;quot;faf0e6&amp;quot;,&lt;br /&gt;
	sar = &amp;quot;c8fa50&amp;quot;,&lt;br /&gt;
	veterovata = &amp;quot;fafadc&amp;quot;,&lt;br /&gt;
	virus = &amp;quot;fafabe&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- aliases that use the same color&lt;br /&gt;
-- TODO: combine the tables?&lt;br /&gt;
local colorAliases = {&lt;br /&gt;
	animal = &amp;quot;animalia&amp;quot;,&lt;br /&gt;
	&lt;br /&gt;
	nanoarchaeota = &amp;quot;archaea&amp;quot;,&lt;br /&gt;
	nanarchaeota = &amp;quot;archaea&amp;quot;,&lt;br /&gt;
	korarchaeota = &amp;quot;archaea&amp;quot;,&lt;br /&gt;
	thaumarchaeota = &amp;quot;archaea&amp;quot;,&lt;br /&gt;
	crenarchaeota = &amp;quot;archaea&amp;quot;,&lt;br /&gt;
	euryarchaeota = &amp;quot;archaea&amp;quot;,&lt;br /&gt;
	&lt;br /&gt;
	plantae = &amp;quot;archaeplastida&amp;quot;,&lt;br /&gt;
	plant = &amp;quot;archaeplastida&amp;quot;,&lt;br /&gt;
	viridiplantae = &amp;quot;archaeplastida&amp;quot;,&lt;br /&gt;
	&lt;br /&gt;
	firmicutes = &amp;quot;bacteria&amp;quot;,&lt;br /&gt;
	eubacteria = &amp;quot;bacteria&amp;quot;,&lt;br /&gt;
	&lt;br /&gt;
	eukaryote = &amp;quot;eukaryota&amp;quot;,&lt;br /&gt;
	eukarya = &amp;quot;eukaryota&amp;quot;,&lt;br /&gt;
	excavata = &amp;quot;eukaryota&amp;quot;,&lt;br /&gt;
	excavates = &amp;quot;eukaryota&amp;quot;,&lt;br /&gt;
	protista = &amp;quot;eukaryota&amp;quot;,&lt;br /&gt;
	protists = &amp;quot;eukaryota&amp;quot;,&lt;br /&gt;
	amoebozoa = &amp;quot;eukaryota&amp;quot;,&lt;br /&gt;
	opisthokonta = &amp;quot;eukaryota&amp;quot;,&lt;br /&gt;
	choanozoa = &amp;quot;eukaryota&amp;quot;,&lt;br /&gt;
	&lt;br /&gt;
	acritarcha = &amp;quot;incertae_sedis&amp;quot;,&lt;br /&gt;
	&lt;br /&gt;
	chromalveolata = &amp;quot;sar&amp;quot;,&lt;br /&gt;
	&lt;br /&gt;
	viroid = &amp;quot;virus&amp;quot;,&lt;br /&gt;
	viroids = &amp;quot;virus&amp;quot;,&lt;br /&gt;
	viruses = &amp;quot;virus&amp;quot;,&lt;br /&gt;
	i = &amp;quot;virus&amp;quot;,&lt;br /&gt;
	ii = &amp;quot;virus&amp;quot;,&lt;br /&gt;
	iii = &amp;quot;virus&amp;quot;,&lt;br /&gt;
	iv = &amp;quot;virus&amp;quot;,&lt;br /&gt;
	v = &amp;quot;virus&amp;quot;,&lt;br /&gt;
	vi = &amp;quot;virus&amp;quot;,&lt;br /&gt;
	vii = &amp;quot;virus&amp;quot;,&lt;br /&gt;
	vii = &amp;quot;virus&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- This table shows which order the color search should go&lt;br /&gt;
local taxonOrder = {&lt;br /&gt;
	&amp;quot;phylum&amp;quot;, &amp;quot;unranked_phylum&amp;quot;, &amp;quot;divisio&amp;quot;, &amp;quot;unranked_superdivisio&amp;quot;, &amp;quot;superphylum&amp;quot;, &amp;quot;unranked_superphylum&amp;quot;, &amp;quot;superdivision&amp;quot;, &amp;quot;unranked_superdivisio&amp;quot;,&lt;br /&gt;
	&amp;quot;subregnum&amp;quot;, &amp;quot;unranked_subregnum&amp;quot;, &amp;quot;regnum&amp;quot;, &amp;quot;unranked_regnum&amp;quot;, &amp;quot;superregnum&amp;quot;, &amp;quot;unranked_superregnum&amp;quot;, &amp;quot;domain&amp;quot;, &amp;quot;unranked_domain&amp;quot;, &amp;quot;virus_group&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Gets the background color as a hex code, if possible&lt;br /&gt;
--&lt;br /&gt;
-- @param args the arguments passed in to the template&lt;br /&gt;
--&lt;br /&gt;
-- @return a hex color, or nil if no color should be shown&lt;br /&gt;
local function getColor(args)&lt;br /&gt;
	for _, taxon in ipairs(taxonOrder) do&lt;br /&gt;
		local v = args[taxon]&lt;br /&gt;
		if v then&lt;br /&gt;
			local delinked = mw.ustring.gsub(mw.ustring.lower(v), &amp;quot;[\]\[&amp;#039;]&amp;quot;, &amp;quot;&amp;quot;) -- delink, converting &amp;quot;[[&amp;#039;&amp;#039;name&amp;#039;&amp;#039;]]&amp;quot; to &amp;quot;name&amp;quot;&lt;br /&gt;
			local i = mw.ustring.find(delinked, &amp;quot;|&amp;quot;)&lt;br /&gt;
			local sanitized = i and mw.ustring.sub(delinked, 0, i - 1) or delinked -- get &amp;quot;abx&amp;quot; from &amp;quot;abc|xyz&amp;quot;&lt;br /&gt;
			local hex = colors[sanitized] or colors[colorAliases[sanitized]]&lt;br /&gt;
			if hex then&lt;br /&gt;
				return hex&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local classification = {&lt;br /&gt;
	{ arg_name = &amp;quot;superdomain&amp;quot;, label = &amp;quot;Superdomain&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;domain&amp;quot;, label = &amp;quot;Domain&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;superregnum&amp;quot;, label = &amp;quot;Superkingdom&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;regnum&amp;quot;, label = &amp;quot;Kingdom&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;subregnum&amp;quot;, label = &amp;quot;Subkingdom&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;superdivisio&amp;quot;, label = &amp;quot;Superdivision&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;superphylum&amp;quot;, label = &amp;quot;Superphylum&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;divisio&amp;quot;, label = &amp;quot;Division&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;phylum&amp;quot;, label = &amp;quot;Phylum&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;subdivisio&amp;quot;, label = &amp;quot;Subdivision&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;subphylum&amp;quot;, label = &amp;quot;Subphylum&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;infraphylum&amp;quot;, label = &amp;quot;Infraphylum&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;microphylum&amp;quot;, label = &amp;quot;Microphylum&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;nanophylum&amp;quot;, label = &amp;quot;Nanophylum&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;superclassis&amp;quot;, label = &amp;quot;Superclass&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;classis&amp;quot;, label = &amp;quot;Class&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;subclassis&amp;quot;, label = &amp;quot;Subclass&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;infraclassis&amp;quot;, &amp;quot;Infraclass&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;magnordo&amp;quot;, label = &amp;quot;Magnorder&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;superordo&amp;quot;, label = &amp;quot;Superorder&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;ordo&amp;quot;, label = &amp;quot;Order&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;subordo&amp;quot;, label = &amp;quot;Suborder&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;infraordo&amp;quot;, label = &amp;quot;Infraorder&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;parvordo&amp;quot;, label = &amp;quot;Parvorder&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;zoodivisio&amp;quot;, label = &amp;quot;Division&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;zoosectio&amp;quot;, label = &amp;quot;Section&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;zoosubsectio&amp;quot;, label = &amp;quot;Subsection&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;superfamilia&amp;quot;, label = &amp;quot;Superfamily&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;familia&amp;quot;, label = &amp;quot;Family&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;subfamilia&amp;quot;, label = &amp;quot;Subfamily&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;supertribus&amp;quot;, label = &amp;quot;Supertribe&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;tribus&amp;quot;, label = &amp;quot;Tribe&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;subtribus&amp;quot;, label = &amp;quot;Subtribe&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;alliance&amp;quot;, label = &amp;quot;&amp;#039;&amp;#039;Alliance&amp;#039;&amp;#039;&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;genus&amp;quot;, label = &amp;quot;Genus&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;subgenus&amp;quot;, label = &amp;quot;Subgenus&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;sectio&amp;quot;, label = &amp;quot;Section&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;subsectio&amp;quot;, label = &amp;quot;Subsection&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;series&amp;quot;, label = &amp;quot;Series&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;subseries&amp;quot;, label = &amp;quot;Subseries&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;species_group&amp;quot;, label = &amp;quot;&amp;#039;&amp;#039;Species group&amp;#039;&amp;#039;&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;species_subgroup&amp;quot;, label = &amp;quot;&amp;#039;&amp;#039;Species subgroup&amp;#039;&amp;#039;&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;species_complex&amp;quot;, label = &amp;quot;&amp;#039;&amp;#039;Species complex&amp;#039;&amp;#039;&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;species&amp;quot;, label = &amp;quot;Species&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;subspecies&amp;quot;, label = &amp;quot;Subspecies&amp;quot; },&lt;br /&gt;
	{ arg_name = &amp;quot;variety&amp;quot;, label = &amp;quot;Variety&amp;quot; }, -- no unranked&lt;br /&gt;
	{ arg_name = &amp;quot;varias&amp;quot;, label = &amp;quot;Variety&amp;quot; }, -- no unranked; alias of variety&lt;br /&gt;
	{ arg_name = &amp;quot;forma&amp;quot;, label = &amp;quot;Form&amp;quot; }, -- no unranked&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- InfoboxImage: [[File:Status &amp;lt;status_system&amp;gt; &amp;lt;file&amp;gt;.svg|link=|alt=&amp;lt;category&amp;gt;]]&lt;br /&gt;
-- AddCaption: &amp;lt;label&amp;gt;&lt;br /&gt;
-- AddCategory: [[Category:&amp;lt;category&amp;gt;]]&lt;br /&gt;
local statusSystems = {&lt;br /&gt;
	[&amp;quot;iucn2.3&amp;quot;] = {&lt;br /&gt;
		link = &amp;quot;IUCN Red List&amp;quot;,&lt;br /&gt;
		EX = { file = &amp;quot;EX&amp;quot;, label = &amp;quot;[[Extinct]]&amp;quot;, category = &amp;quot;IUCN Red List extinct species&amp;quot; },&lt;br /&gt;
		EW = { file = &amp;quot;EW&amp;quot;, label = &amp;quot;[[Extinct in the wild]]&amp;quot;, category = &amp;quot;IUCN Red List extinct in the wild species&amp;quot; },&lt;br /&gt;
		CR = { file = &amp;quot;CR&amp;quot;, label = &amp;quot;[[Critically endangered]]&amp;quot;, category = &amp;quot;IUCN Red List critically endangered species&amp;quot; },&lt;br /&gt;
		EN = { file = &amp;quot;EN&amp;quot;, label = &amp;quot;[[Endangered species|Endangered]]&amp;quot;, category = &amp;quot;IUCN Red List endangered species&amp;quot; },&lt;br /&gt;
		VU = { file = &amp;quot;VU&amp;quot;, label = &amp;quot;[[Vulnerable species|Vulnerable]]&amp;quot;, category = &amp;quot;IUCN Red List vulnerable species&amp;quot; },&lt;br /&gt;
		LR = {file = &amp;quot;blank&amp;quot;, label = &amp;quot;Lower risk&amp;quot;, category = &amp;quot;Invalid conservation status&amp;quot; },&lt;br /&gt;
		CD = { file = &amp;quot;CD&amp;quot;, label = &amp;quot;[[Conservation dependent]]&amp;quot;, category = &amp;quot;IUCN Red List conservation dependent species&amp;quot; },&lt;br /&gt;
		[&amp;quot;LR/CD&amp;quot;] = { file = &amp;quot;CD&amp;quot;, label = &amp;quot;[[Conservation dependent]]&amp;quot;, category = &amp;quot;IUCN Red List conservation dependent species&amp;quot; }, -- duplicate&lt;br /&gt;
		NT = { file = &amp;quot;NT&amp;quot;, label = &amp;quot;[[Near threatened]]&amp;quot;, category = &amp;quot;IUCN Red List near threatened species&amp;quot; },&lt;br /&gt;
		[&amp;quot;LR/NT&amp;quot;] = { file = &amp;quot;NT&amp;quot;, label = &amp;quot;[[Near threatened]]&amp;quot;, category = &amp;quot;IUCN Red List near threatened species&amp;quot; }, -- duplicate&lt;br /&gt;
		LC = { file = &amp;quot;LC&amp;quot;, label = &amp;quot;[[Least concern]]&amp;quot;, category = &amp;quot;IUCN Red List near threatened species&amp;quot; },&lt;br /&gt;
		[&amp;quot;LR/LC&amp;quot;] = { file = &amp;quot;LC&amp;quot;, label = &amp;quot;[[Least concern]]&amp;quot;, category = &amp;quot;IUCN Red List near threatened species&amp;quot; },&lt;br /&gt;
		DD = { file = &amp;quot;blank&amp;quot;, label = &amp;quot;[[Least deficient]]&amp;quot;, category = &amp;quot;IUCN Red List data deficient species&amp;quot; },&lt;br /&gt;
		NE = { label = &amp;quot;&amp;#039;&amp;#039;Not evaluated&amp;#039;&amp;#039;&amp;quot; },&lt;br /&gt;
		NR = { label = &amp;quot;&amp;#039;&amp;#039;Not recognized&amp;#039;&amp;#039;&amp;quot; },&lt;br /&gt;
		PE = { file = &amp;quot;CR&amp;quot;, label = &amp;quot;[[Critically endangered]], possibly extinct&amp;quot;, category = &amp;quot;IUCN Red List critically endangered species&amp;quot; },&lt;br /&gt;
		PEW = { file = &amp;quot;CR&amp;quot;, label = &amp;quot;[[Critically endangered]], possibly extinct in the wild&amp;quot;, category = &amp;quot;IUCN Red List critically endangered species&amp;quot; },&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;iucn3.1&amp;quot;] = {&lt;br /&gt;
		link = &amp;quot;IUCN Red List&amp;quot;,&lt;br /&gt;
		EX = { file = &amp;quot;EX&amp;quot;, label = &amp;quot;[[Extinct]]&amp;quot;, category = &amp;quot;IUCN Red List extinct species&amp;quot; },&lt;br /&gt;
		EW = { file = &amp;quot;EW&amp;quot;, label = &amp;quot;[[Extinct in the wild]]&amp;quot;, category = &amp;quot;IUCN Red List extinct in the wild species&amp;quot; },&lt;br /&gt;
		CR = { file = &amp;quot;CR&amp;quot;, label = &amp;quot;[[Critically endangered species|Critically endangered]]&amp;quot;, category = &amp;quot;IUCN Red List critically endangered species&amp;quot; },&lt;br /&gt;
		EN = { file = &amp;quot;EN&amp;quot;, label = &amp;quot;[[Endangered species (IUCN status)|Endangered]]&amp;quot;, category = &amp;quot;IUCN Red List endangered species&amp;quot; },&lt;br /&gt;
		VU = { file = &amp;quot;VU&amp;quot;, label = &amp;quot;[[Vulnerable species|Vulnerable]]&amp;quot;, category = &amp;quot;IUCN Red List vulnerable species&amp;quot; },&lt;br /&gt;
		NT = { file = &amp;quot;NT&amp;quot;, label = &amp;quot;[[Near threatened]]&amp;quot;, category = &amp;quot;IUCN Red List near threatened species&amp;quot; },&lt;br /&gt;
		LC = { file = &amp;quot;LC&amp;quot;, label = &amp;quot;[[Least concern]]&amp;quot;, category = &amp;quot;IUCN Red List least concern species&amp;quot; },&lt;br /&gt;
		DD = { file = &amp;quot;blank&amp;quot;, label = &amp;quot;[[Data deficient]]&amp;quot;, category = &amp;quot;IUCN Red List data deficient species&amp;quot; },&lt;br /&gt;
		NE = { label = &amp;quot;&amp;#039;&amp;#039;Not evaluated&amp;#039;&amp;#039;&amp;quot; },&lt;br /&gt;
		NR = { label = &amp;quot;&amp;#039;&amp;#039;Not recognized&amp;#039;&amp;#039;&amp;quot; },&lt;br /&gt;
		PE = { file = &amp;quot;CR&amp;quot;, label = &amp;quot;[[Critically endangered]]&amp;quot;, category = &amp;quot;IUCN Red List critically endangered species&amp;quot; },&lt;br /&gt;
		PEW = { file = &amp;quot;CR&amp;quot;, label = &amp;quot;[[Critically endangered]]&amp;quot;, category = &amp;quot;IUCN Red List critically endangered species&amp;quot; },&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;epbc&amp;quot;] = {&lt;br /&gt;
		link = &amp;quot;EPBC Act&amp;quot;,&lt;br /&gt;
		EX = { file = &amp;quot;EX&amp;quot;, label = &amp;quot;[[Extinct]]&amp;quot;, category = &amp;quot;EPBC Act extinct biota&amp;quot; },&lt;br /&gt;
		EW = { file = &amp;quot;EW&amp;quot;, label = &amp;quot;[[Extinct in the wild]]&amp;quot;, category = &amp;quot;EPBC Act extinct in the wild biota&amp;quot; },&lt;br /&gt;
		CR = { file = &amp;quot;CR&amp;quot;, label = &amp;quot;[[Critically endangered]]&amp;quot;, category = &amp;quot;EPBC Act critically endangered biota&amp;quot; },&lt;br /&gt;
		EN = { file = &amp;quot;EN&amp;quot;, label = &amp;quot;[[Endangered]]&amp;quot;, category = &amp;quot;EPBC Act endangered biota&amp;quot; },&lt;br /&gt;
		VU = { file = &amp;quot;VU&amp;quot;, label = &amp;quot;[[Vulnerable species|Vulnerable]]&amp;quot;, category = &amp;quot;EPBC Act vulnerable biota&amp;quot; },&lt;br /&gt;
		CD = { file = &amp;quot;CD&amp;quot;, label = &amp;quot;[[Conservation dependent]]&amp;quot;, category = &amp;quot;EPBC Act conservation dependent biota&amp;quot; },&lt;br /&gt;
		DL = { file = &amp;quot;DL&amp;quot;, label = &amp;quot;Delisted&amp;quot; },&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = arguments.getArgs(frame)&lt;br /&gt;
	return p._main(args, frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Helper function to dynamically retrieve the taxon &amp;quot;authority&amp;quot;&lt;br /&gt;
-- and present it in paretheses&lt;br /&gt;
--&lt;br /&gt;
-- @param args the table of arguments passed into the template&lt;br /&gt;
-- @param taxon the taxon to check&lt;br /&gt;
--&lt;br /&gt;
-- @return nil or text to serve as the taxon name and its authority&lt;br /&gt;
local function authorityHelp(args, taxon)&lt;br /&gt;
	if args[taxon] then&lt;br /&gt;
		local authority = args[taxon .. &amp;quot;_authority&amp;quot;]&lt;br /&gt;
		return args[taxon] .. (authority and &amp;quot; (&amp;quot; .. authority .. &amp;quot;)&amp;quot; or &amp;quot;&amp;quot;) -- when authority is nil no parentheses appear&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args, frame)&lt;br /&gt;
	&lt;br /&gt;
	local warnings = {} -- warnings to display on preview&lt;br /&gt;
	local passing = {} -- arguments passed to Module:Infobox&lt;br /&gt;
	&lt;br /&gt;
	-- Safely replace spaces in parameters with underscores, removing the original parameter and sending a warning&lt;br /&gt;
	for k, _ in pairs(args) do&lt;br /&gt;
		if mw.ustring.find(k, &amp;quot; &amp;quot;) then&lt;br /&gt;
			local k1 = mw.ustring.gsub(s, &amp;quot; &amp;quot;, &amp;quot;_&amp;quot;)&lt;br /&gt;
			if not args[k1] then&lt;br /&gt;
				table.insert(warnings, &amp;quot;deprecated parameter \&amp;quot;&amp;quot; .. k .. &amp;quot;\&amp;quot;. Please use \&amp;quot;&amp;quot; .. k1 .. &amp;quot;\&amp;quot; instead.&amp;quot;)&lt;br /&gt;
				args[k1] = args[k] -- copy value&lt;br /&gt;
				args[k] = nil -- empty&lt;br /&gt;
			else&lt;br /&gt;
				table.insert(warnings, &amp;quot;found \&amp;quot;&amp;quot; .. k .. &amp;quot;\&amp;quot; and \&amp;quot;&amp;quot; .. k1 .. &amp;quot;\&amp;quot;. Using \&amp;quot;&amp;quot; .. k1 .. &amp;quot;\&amp;quot; instead.&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.name then&lt;br /&gt;
		passing.above = args.name&lt;br /&gt;
	elseif args.genus or args.species or args.binomial then&lt;br /&gt;
		local title = mw.title.getCurrentTitle().baseText&lt;br /&gt;
		local g = mw.ustring.gsub(args.genus or args.species or args.binomial, &amp;quot;&amp;#039;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
		if title == g or &amp;quot;&amp;lt;abbr title=\&amp;quot;Extinct\&amp;quot; aria-label=\&amp;quot;Extinct\&amp;quot; style=\&amp;quot;border: none; text-decoration: none; cursor: inherit; font-weight: normal; font-style: normal;\&amp;quot;&amp;gt;†&amp;lt;/abbr&amp;gt;&amp;quot; .. title == g or &amp;quot;†&amp;quot; .. title == g then&lt;br /&gt;
			passing.above = &amp;quot;&amp;#039;&amp;#039;&amp;quot; .. g .. &amp;quot;&amp;#039;&amp;#039;&amp;quot;&lt;br /&gt;
			-- TODO: add {{Italic title}}&lt;br /&gt;
		else&lt;br /&gt;
			passing.above = title&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		passing.above = mw.title.getCurrentTitle().baseText&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.fossil_range then&lt;br /&gt;
		passing.subheader = &amp;quot;Temporal range: &amp;quot; .. args.fossil_range&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- apply header styles&lt;br /&gt;
	local hex = args.color_as or args.colour_as or getColor(args)&lt;br /&gt;
	if hex then&lt;br /&gt;
		local style = &amp;quot;background-color: #&amp;quot; .. hex .. &amp;quot;;&amp;quot;&lt;br /&gt;
		passing.abovestyle = style&lt;br /&gt;
		passing.subheaderstyle = style&lt;br /&gt;
		passing.headerstyle = style&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.image then&lt;br /&gt;
		passing.image = infoboxImage.InfoboxImage({args = {image = args.image, upright = args.upright or args.image_upright, alt = args.alt or args.image_alt}})&lt;br /&gt;
		passing.caption = args.caption or args.image_caption&lt;br /&gt;
	end&lt;br /&gt;
	if args.image2 then&lt;br /&gt;
		passing.image2 = infoboxImage.InfoboxImage({args = {image = args.image2, upright = args.upright2 or args.image2_upright, alt = args.alt2 or args.image2_alt}})&lt;br /&gt;
		passing.caption2 = args.caption2 or args.image2_caption&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	local i = 1&lt;br /&gt;
	&lt;br /&gt;
	-- Embed photos into the infobox via frame:expandTemplate&lt;br /&gt;
	-- Trying to call Module:Infobox keeps the previous state&lt;br /&gt;
	if args.status or args.status2 then&lt;br /&gt;
		local subbox = {&lt;br /&gt;
			child = &amp;quot;yes&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		if args.status and args.status_system then&lt;br /&gt;
			args.status = mw.ustring.upper(args.status)&lt;br /&gt;
			if args.status_system == &amp;quot;IUCN2.3&amp;quot; or args.status_system == &amp;quot;IUCN3.1&amp;quot; then&lt;br /&gt;
				args.status_system = mw.ustring.lower(args.status_system)&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if statusSystems[args.status_system] and statusSystems[args.status_system][args.status] then&lt;br /&gt;
				local x = statusSystems[args.status_system][args.status]&lt;br /&gt;
				subbox.image1 = infoboxImage.InfoboxImage({args = { image = &amp;quot;Status &amp;quot; .. args.status_system .. &amp;quot; &amp;quot; .. args.status .. &amp;quot;.svg&amp;quot;, alt = (x.category or nil)}})&lt;br /&gt;
				subbox.caption1 = x.label .. &amp;quot; ([[&amp;quot; .. statusSystems[args.status_system].link .. &amp;quot;|&amp;quot; .. args.status_system .. &amp;quot;]])&amp;quot; .. (args.status_ref or &amp;quot;&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if args.status2 and args.status2_system then&lt;br /&gt;
			args.status2 = mw.ustring.upper(args.status2)&lt;br /&gt;
			if args.status2_system == &amp;quot;IUCN2.3&amp;quot; or args.status2_system == &amp;quot;IUCN3.1&amp;quot; then&lt;br /&gt;
				args.status2_system = mw.ustring.lower(args.status2_system)&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if statusSystems[args.status2_system] and statusSystems[args.status2_system][args.status2] then&lt;br /&gt;
				local x = statusSystems[args.status2_system][args.status2]&lt;br /&gt;
				subbox.image2 = infoboxImage.InfoboxImage({args = { image = &amp;quot;Status &amp;quot; .. args.status2_system .. &amp;quot; &amp;quot; .. args.status .. &amp;quot;.svg&amp;quot;, alt = (x.category or nil)}})&lt;br /&gt;
				subbox.caption2 = x.label .. &amp;quot; ([[&amp;quot; .. statusSystems[args.status2_system].link .. &amp;quot;|&amp;quot; .. args.status2_system .. &amp;quot;]])&amp;quot; .. (args.status2_ref or &amp;quot;&amp;quot;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = &amp;quot;[[Conservation status]]&amp;quot;&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i + 1] = frame:expandTemplate({title = &amp;quot;infobox&amp;quot;, args = subbox})&lt;br /&gt;
		&lt;br /&gt;
		i = i + 2&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.virus or args.virus_group then&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = &amp;quot;[[Virus classification]]&amp;quot;&lt;br /&gt;
	elseif args.ichnos then&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = &amp;quot;[[Trace fossil classification]]&amp;quot;&lt;br /&gt;
	elseif args.veterovata then&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = &amp;quot;[[Egg fossil classification]]&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = &amp;quot;[[Scientific classification]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	i = i + 1&lt;br /&gt;
	&lt;br /&gt;
	if args.virus_group then&lt;br /&gt;
		local g = {&lt;br /&gt;
			i = &amp;quot;Group I ([[dsDNA]])&amp;quot;,&lt;br /&gt;
			ii = &amp;quot;Group II ([[ssDNA]])&amp;quot;,&lt;br /&gt;
			iii = &amp;quot;Group III ([[dsRDNA]])&amp;quot;,&lt;br /&gt;
			iv = &amp;quot;Group IV ([[(+)ssRNA]])&amp;quot;,&lt;br /&gt;
			v = &amp;quot;Group V ([[(-)ssRNA]])&amp;quot;,&lt;br /&gt;
			vi = &amp;quot;Group VI ([[ssRNA-RT]])&amp;quot;,&lt;br /&gt;
			[&amp;quot;vi/vii&amp;quot;] = &amp;quot;Groups VI and VII&amp;quot;,&lt;br /&gt;
			vii = &amp;quot;Group VII ([[dsDNA-RT]])&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		passing[&amp;quot;label&amp;quot; .. i] = &amp;quot;Virus group&amp;quot;&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i] = g[args.virus_group] or args.virus_group&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for _, t in ipairs(classification) do&lt;br /&gt;
		local k = t.arg_name&lt;br /&gt;
		local v = t.label&lt;br /&gt;
		if args[&amp;quot;unranked_&amp;quot; .. k] then&lt;br /&gt;
			passing[&amp;quot;label&amp;quot; .. i] = &amp;quot;(unranked)&amp;quot;&lt;br /&gt;
			passing[&amp;quot;data&amp;quot; .. i] = authorityHelp(args, &amp;quot;unranked_&amp;quot; .. k)&lt;br /&gt;
			i = i + 1&lt;br /&gt;
		end&lt;br /&gt;
		if args[k] then&lt;br /&gt;
			passing[&amp;quot;label&amp;quot; .. i] = v&lt;br /&gt;
			passing[&amp;quot;data&amp;quot; .. i] = authorityHelp(args, k)&lt;br /&gt;
			i = i + 1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.virus_infrasp and not args.virus_infrasp_rank then&lt;br /&gt;
		table.insert(warnings, &amp;quot;\&amp;quot;virus_infrasp_rank\&amp;quot; missing&amp;quot;)&lt;br /&gt;
	elseif args.virus_infrasp then&lt;br /&gt;
		passing[&amp;quot;label&amp;quot; .. i] = args.virus_infrasp_rank&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if args.binomial then&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = &amp;quot;[[Binomial name]]&amp;quot;&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i + 1] = authorityHelp(args, &amp;quot;binomial&amp;quot;)&lt;br /&gt;
		i = i + 2&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if args.trinomial then&lt;br /&gt;
		local g = {&lt;br /&gt;
			animalia = &amp;quot;Trinomen&amp;quot;,&lt;br /&gt;
			plantae = &amp;quot;Infraspecific name (botany)&amp;quot;,&lt;br /&gt;
			fungi = &amp;quot;Infraspecific name (botany)&amp;quot;,&lt;br /&gt;
			[&amp;quot;fungus|fungi&amp;quot;] = &amp;quot;Infraspecific name (botany)&amp;quot;,&lt;br /&gt;
			archaeplastida = &amp;quot;Infraspecific name (botany)&amp;quot;&lt;br /&gt;
		}&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = &amp;quot;[[&amp;quot; .. (g[args.trinomial] or &amp;quot;Trinomial nomenclature&amp;quot;) .. &amp;quot;|Trinomial name]]&amp;quot;&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i + 1] = authorityHelp(args, &amp;quot;trinomial&amp;quot;)&lt;br /&gt;
		i = i + 2&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if args.range_map then&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i] = frame:expandTemplate({title = &amp;quot;Infobox&amp;quot;, args = { child = &amp;quot;yes&amp;quot;, image = infoboxImage.InfoboxImage({args = {image = args.range_map, alt = args.range_map_alt, upright = args.range_map_upright}}), caption = args.range_map_caption}})&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if args.range_map2 then&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i] = frame:expandTemplate({title = &amp;quot;Infobox&amp;quot;, args = { child = &amp;quot;yes&amp;quot;, image = infoboxImage.InfoboxImage({args = {image = args.range_map2, alt = args.range_map2_alt, upright = args.range_map2_upright}}), caption = args.range_map2_caption}})&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if args.range_map3 then&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i] = frame:expandTemplate({title = &amp;quot;Infobox&amp;quot;, args = { child = &amp;quot;yes&amp;quot;, image = infoboxImage.InfoboxImage({args = {image = args.range_map3, alt = args.range_map3_alt, upright = args.range_map3_upright}}), caption = args.range_map3_caption}})&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if args.range_map4 then&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i] = frame:expandTemplate({title = &amp;quot;Infobox&amp;quot;, args = { child = &amp;quot;yes&amp;quot;, image = infoboxImage.InfoboxImage({args = {image = args.range_map4, alt = args.range_map4_alt, upright = args.range_map4_upright}}), caption = args.range_map4_caption}})&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if args.type_genus then&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = &amp;quot;[[Type ichnogenus]]&amp;quot;&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i + 1] = authorityHelp(args, &amp;quot;type_genus&amp;quot;)&lt;br /&gt;
		i = i + 2&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if args.type_oogenus then&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = &amp;quot;[[Type oogenus]]&amp;quot;&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i + 1] = authorityHelp(args, &amp;quot;type_oogenus&amp;quot;)&lt;br /&gt;
		i = i + 2&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if args.type_species then&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = &amp;quot;[[Type species]]&amp;quot;&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i + 1] = authorityHelp(args, &amp;quot;type_species&amp;quot;)&lt;br /&gt;
		i = i + 2&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if args.type_oospecies then&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = &amp;quot;[[Type oospecies]]&amp;quot;&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i + 1] = authorityHelp(args, &amp;quot;type_oospecies&amp;quot;)&lt;br /&gt;
		i = i + 2&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if args.type_strain then&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = &amp;quot;[[Type strain]]&amp;quot;&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i + 1] = authorityHelp(args, &amp;quot;type_strain&amp;quot;) .. (args.type_strain_ref or &amp;quot;&amp;quot;)&lt;br /&gt;
		i = i + 2&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if args.subdivision then&lt;br /&gt;
		mw.log(args.subdivision)&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = args.subdivision_ranks or &amp;quot;Species&amp;quot; .. (args.subdivision_ref or &amp;quot;&amp;quot;)&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i + 1] = &amp;quot;&amp;lt;div style=\&amp;quot;text-align: left;\&amp;quot;&amp;gt;\n&amp;quot; .. args.subdivision .. &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
		i = i + 2&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
	if args.possible_subdivision then&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = args.possible_subdivision_ranks or &amp;quot;Possible species&amp;quot; .. (args.possible_subdividion_ref or &amp;quot;&amp;quot;)&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i + 1] = args.possible_subdivision&lt;br /&gt;
		i = i + 2&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if args.synonyms then&lt;br /&gt;
		passing[&amp;quot;header&amp;quot; .. i] = &amp;quot;[[Synonym (taxonomy)|Synonyms]]&amp;quot; .. ( args.synonyms_ref or &amp;quot;&amp;quot;)&lt;br /&gt;
		passing[&amp;quot;data&amp;quot; .. i + 1] = &amp;quot;&amp;lt;div style=\&amp;quot;text-align: left;\&amp;quot;&amp;gt;\n&amp;quot; .. args.synonyms .. &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local out = infobox.infobox(passing)&lt;br /&gt;
	&lt;br /&gt;
	table.insert(warnings, &amp;quot;Help!&amp;quot;)&lt;br /&gt;
	&lt;br /&gt;
	for _, warning in ipairs(warnings) do&lt;br /&gt;
		local w = ifPreview._warning({warning})&lt;br /&gt;
		if w and not w == &amp;#039;&amp;#039; then&lt;br /&gt;
			out = out .. w&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;SWinxy</name></author>
	</entry>
</feed>