<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://www.vigyanwiki.in/index.php?action=history&amp;feed=atom&amp;title=Module%3AAutomated_taxobox</id>
	<title>Module:Automated taxobox - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.vigyanwiki.in/index.php?action=history&amp;feed=atom&amp;title=Module%3AAutomated_taxobox"/>
	<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Automated_taxobox&amp;action=history"/>
	<updated>2026-05-11T18:20:20Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:Automated_taxobox&amp;diff=215033&amp;oldid=prev</id>
		<title>Indicwiki: 2 revisions imported from :alpha:Module:Automated_taxobox</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Automated_taxobox&amp;diff=215033&amp;oldid=prev"/>
		<updated>2023-07-13T10:55:56Z</updated>

		<summary type="html">&lt;p&gt;2 revisions imported from &lt;a href=&quot;https://alpha.indicwiki.in/index.php?title=Module:Automated_taxobox&quot; class=&quot;extiw&quot; title=&quot;alpha:Module:Automated taxobox&quot;&gt;alpha:Module:Automated_taxobox&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:25, 13 July 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en-GB&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Indicwiki</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:Automated_taxobox&amp;diff=215032&amp;oldid=prev</id>
		<title>alpha&gt;Sandeep at 03:35, 29 June 2023</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Automated_taxobox&amp;diff=215032&amp;oldid=prev"/>
		<updated>2023-06-29T03:35:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 09:05, 29 June 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;require('strict')&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local TaxonItalics = require('Module:TaxonItalics')&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local TaxonItalics = require('Module:TaxonItalics')&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local Autotaxobox = require('Module:Autotaxobox')&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;local Autotaxobox = require('Module:Autotaxobox')&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l281&quot;&gt;Line 281:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 281:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- put page in error-tracking categories if required&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	-- put page in error-tracking categories if required&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local errCat1 = ''&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local errCat1 = ''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if genusManual ~= '' or speciesManual ~= '' or binomial ~= '' then errCat1 = '&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Automatic taxoboxes using manual parameters]]&lt;/del&gt;' end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if genusManual ~= '' or speciesManual ~= '' or binomial ~= '' then errCat1 = '' end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local errCat2 = ''&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	local errCat2 = ''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if taxonParaMissingError then errCat2 = '&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Automatic taxoboxes relying on page title]]&lt;/del&gt;' end&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	if taxonParaMissingError then errCat2 = '' end&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	res = res .. frame:expandTemplate{ title = 'Main other', args = {errCat1..errCat2} }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	res = res .. frame:expandTemplate{ title = 'Main other', args = {errCat1..errCat2} }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	return res&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	return res&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>alpha&gt;Sandeep</name></author>
	</entry>
	<entry>
		<id>https://www.vigyanwiki.in/index.php?title=Module:Automated_taxobox&amp;diff=215031&amp;oldid=prev</id>
		<title>alpha&gt;Indicwiki: Created page with &quot;require('strict') local TaxonItalics = require('Module:TaxonItalics') local Autotaxobox = require('Module:Autotaxobox') local ItalicTitle = require('Module:Italic title') loca...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Automated_taxobox&amp;diff=215031&amp;oldid=prev"/>
		<updated>2023-01-27T13:49:59Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;require(&amp;#039;strict&amp;#039;) local TaxonItalics = require(&amp;#039;Module:TaxonItalics&amp;#039;) local Autotaxobox = require(&amp;#039;Module:Autotaxobox&amp;#039;) local ItalicTitle = require(&amp;#039;Module:Italic title&amp;#039;) loca...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;require('strict')&lt;br /&gt;
local TaxonItalics = require('Module:TaxonItalics')&lt;br /&gt;
local Autotaxobox = require('Module:Autotaxobox')&lt;br /&gt;
local ItalicTitle = require('Module:Italic title')&lt;br /&gt;
local p = {} -- functions made public&lt;br /&gt;
local l = {} -- nonpublic internal functions and variables global to the module&lt;br /&gt;
l.system = '' -- '' for normal scientific classification (default)&lt;br /&gt;
              -- 'ichnos' for trace fossil classification&lt;br /&gt;
              -- 'veterovata' for egg fossil classification&lt;br /&gt;
&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
-- ichnobox implements Template:Ichnobox; see the documentation of that&lt;br /&gt;
-- template for details.&lt;br /&gt;
-- The only difference from Template:Automatic taxobox is in the taxobox colour&lt;br /&gt;
-- and classification link and the parameters for type species and genera.&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
&lt;br /&gt;
function p.ichnobox(frame)&lt;br /&gt;
	l.system = 'ichnos'&lt;br /&gt;
	return p.automaticTaxobox(frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
-- oobox implements Template:Oobox; see the documentation of that&lt;br /&gt;
-- template for details.&lt;br /&gt;
-- The only difference from Template:Automatic taxobox is in the taxobox colour&lt;br /&gt;
-- and classification link and the parameters for type species and genera.&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
&lt;br /&gt;
function p.oobox(frame)&lt;br /&gt;
	l.system = 'veterovata'&lt;br /&gt;
	return p.automaticTaxobox(frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
-- automaticTaxobox implements Template:Automatic taxobox; see the documentation&lt;br /&gt;
-- of that template for details.&lt;br /&gt;
-- It also implements Template:Ichnobox and Template:Oobox. The small&lt;br /&gt;
-- differences are signalled by the module-wide variable l.system.&lt;br /&gt;
-- The following parameters present in the old template code version of&lt;br /&gt;
-- Template:Automatic taxobox were not used and have not been implemented:&lt;br /&gt;
--   image_caption_align&lt;br /&gt;
--   image2_caption_align&lt;br /&gt;
--   binomial2&lt;br /&gt;
--   binomial2_authority&lt;br /&gt;
--   binomial3&lt;br /&gt;
--   binomial3_authority&lt;br /&gt;
--   binomial4&lt;br /&gt;
--   binomial4_authority&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
&lt;br /&gt;
function p.automaticTaxobox(frame)&lt;br /&gt;
	local args&lt;br /&gt;
	if frame.args['direct'] == 'yes' then args = frame.args&lt;br /&gt;
	else args = frame:getParent().args end&lt;br /&gt;
	local res = ''&lt;br /&gt;
	-- ---------------------------------------------------------------------&lt;br /&gt;
	-- pick up taxobox parameters from the caller that need to be processed;&lt;br /&gt;
	-- most will be passed on unchanged&lt;br /&gt;
	-- ---------------------------------------------------------------------&lt;br /&gt;
	local pagename = args['pagename'] or '' -- for testing and debugging only&lt;br /&gt;
	local italicTitle = args['italic_title'] or args['italic title'] or ''&lt;br /&gt;
	local ichnos = ''&lt;br /&gt;
	if l.system == 'ichnos' then ichnos = 'true' end&lt;br /&gt;
	local veterovata = ''&lt;br /&gt;
	if l.system == 'veterovata' then veterovata = 'true' end&lt;br /&gt;
	local fossilRange = args['fossil_range'] or args['fossil range'] or args['temporal_range'] or args['temporal range'] or ''&lt;br /&gt;
    local oldestFossil = args['oldest_fossil'] or args['oldest fossil'] or ''&lt;br /&gt;
    local youngestFossil =  args['youngest_fossil'] or args['youngest fossil'] or ''&lt;br /&gt;
	local name = args['name'] or ''&lt;br /&gt;
	local colourAs = args['color_as'] or args['color as'] or args['colour_as']  or args['colour as'] or ''&lt;br /&gt;
	local taxon = args['taxon'] or ''&lt;br /&gt;
	local authority = args['authority'] or ''&lt;br /&gt;
    local parentAuthority = args['parent_authority'] or args['parent authority'] or ''&lt;br /&gt;
	local subdivision = args['subdivision'] or ''&lt;br /&gt;
	local subdivisionRef = args['subdivision_ref'] or args['subdivision ref'] or ''&lt;br /&gt;
	local subdivisionRanks = args['subdivision_ranks'] or args['subdivision ranks'] or ''&lt;br /&gt;
	local manualFlag = 'text' -- marks manually specified ranks&lt;br /&gt;
	local binomial = args['binomial'] or args['binomial_'..manualFlag] or args['binomial '..manualFlag] or ''&lt;br /&gt;
	local binomialAuthority = args['binomial_authority'] or args['binomial authority'] or ''&lt;br /&gt;
	local genusManual = args['genus_'..manualFlag] or args['genus '..manualFlag] or''&lt;br /&gt;
	local speciesManual = args['species_'..manualFlag] or args['species '..manualFlag] or''&lt;br /&gt;
	-- ------------------------------------------------------&lt;br /&gt;
	-- set the taxobox parameters determined by this function&lt;br /&gt;
	-- ------------------------------------------------------&lt;br /&gt;
    fossilRange = l.setfossilRange(frame, fossilRange, oldestFossil, youngestFossil)&lt;br /&gt;
	-- use the base page name as the taxon if the taxon parameter is missing&lt;br /&gt;
	local currentPagename = mw.title.getCurrentTitle()&lt;br /&gt;
	if pagename == '' then pagename = currentPagename.text end -- pagename para only used in testing and &lt;br /&gt;
	local basePagename = pagename&lt;br /&gt;
	if italicTitle ~= 'taxon' then basePagename = mw.ustring.gsub(basePagename, '%s+%b()$', '', 1) end&lt;br /&gt;
	local taxonParaMissingError = false&lt;br /&gt;
	if taxon == '' then&lt;br /&gt;
		taxonParaMissingError = true&lt;br /&gt;
		taxon = basePagename&lt;br /&gt;
	end&lt;br /&gt;
	-- decide if the page name and taxobox name need to be italicized;&lt;br /&gt;
	-- if italic_title is not set, then if the names are the taxon, use its rank to decide&lt;br /&gt;
	local ok, taxonRank = Autotaxobox.getTaxonInfoItem(frame, taxon, 'rank') -- taxonRank needed later if not here&lt;br /&gt;
	if italicTitle == '' then&lt;br /&gt;
		if not (ok and taxonRank ~= '' and&lt;br /&gt;
			    frame:expandTemplate{ title = 'Is italic taxon', args = {taxonRank} } == 'yes') then&lt;br /&gt;
			italicTitle = 'no'&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	--   remove any &amp;quot; (DISAMBIG)&amp;quot; or &amp;quot;/MODIFIER&amp;quot; from the taxon's name;&lt;br /&gt;
	--   if the base page name is the same as the base taxon name, then italicization can be applied&lt;br /&gt;
	local baseTaxon = taxon&lt;br /&gt;
	if italicTitle ~= 'taxon' then baseTaxon = mw.ustring.gsub(baseTaxon, '%s+%b()$', '', 1) end&lt;br /&gt;
	baseTaxon = mw.ustring.gsub(baseTaxon, '/.*$', '', 1)&lt;br /&gt;
	if italicTitle == '' and basePagename == baseTaxon then&lt;br /&gt;
		italicTitle = 'yes'&lt;br /&gt;
	end&lt;br /&gt;
	-- italicize the page name (page title) if required&lt;br /&gt;
	if currentPagename.namespace == 0 and (italicTitle == 'yes' or italicTitle == 'taxon') then&lt;br /&gt;
		if italicTitle == 'taxon' or TaxonItalics.hasConnectingTerm(baseTaxon) then&lt;br /&gt;
			res =  res .. frame:expandTemplate{ title = 'Italic taxon title', args = {} }&lt;br /&gt;
			italicTitle = 'yes'&lt;br /&gt;
		else ItalicTitle._main({})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- set the taxobox name if not supplied, italicizing it if appropriate.&lt;br /&gt;
	if name == '' then&lt;br /&gt;
		name = basePagename&lt;br /&gt;
		if italicTitle == 'yes' then&lt;br /&gt;
			name = TaxonItalics.italicizeTaxonName(name, false, false)&lt;br /&gt;
		end&lt;br /&gt;
		-- name = name ..  '/' .. baseTaxon .. '/' .. nameRank&lt;br /&gt;
	end&lt;br /&gt;
	-- determine taxobox colour&lt;br /&gt;
	local colour = ''&lt;br /&gt;
	if colourAs ~= '' then&lt;br /&gt;
		colour = frame:expandTemplate{ title = 'Taxobox colour', args = {colourAs} }&lt;br /&gt;
	elseif l.system == 'ichnos' then&lt;br /&gt;
		colour = frame:expandTemplate{ title = 'Taxobox colour', args = {'Ichnos'} }&lt;br /&gt;
	elseif l.system == 'veterovata' then&lt;br /&gt;
		colour = frame:expandTemplate{ title = 'Taxobox colour', args = {'Veterovata'} }&lt;br /&gt;
	else&lt;br /&gt;
		colour = Autotaxobox.getTaxoboxColour(frame, taxon)&lt;br /&gt;
	end&lt;br /&gt;
	-- fill in a missing subdivision_ranks parameter&lt;br /&gt;
	if subdivision ~= '' and subdivisionRanks == '' and ok and taxonRank ~= '' then&lt;br /&gt;
		subdivisionRanks =  frame:expandTemplate{ title = 'Children rank', args = {taxonRank} }&lt;br /&gt;
	end&lt;br /&gt;
	-- set binomial parameters if the target taxon is (unusually) a species&lt;br /&gt;
	local genusAuthority = ''&lt;br /&gt;
	if binomial == '' then&lt;br /&gt;
		if ok and taxonRank == 'species' then&lt;br /&gt;
			binomial = TaxonItalics.italicizeTaxonName(taxon, false, false)&lt;br /&gt;
			binomialAuthority = authority&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- handle any manually set ranks&lt;br /&gt;
	local boldFirst = ''&lt;br /&gt;
	local offset = 0&lt;br /&gt;
	if speciesManual ~= '' then&lt;br /&gt;
		offset = offset + 1&lt;br /&gt;
		binomialAuthority = authority&lt;br /&gt;
		if binomial == '' then binomial = '&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;Error: binomial parameter value is missing&amp;lt;/span&amp;gt;' end&lt;br /&gt;
	end&lt;br /&gt;
	if genusManual ~= '' then&lt;br /&gt;
		boldFirst = 'link'&lt;br /&gt;
		offset = offset + 1&lt;br /&gt;
		if offset == 1 then&lt;br /&gt;
			genusAuthority = authority&lt;br /&gt;
		else&lt;br /&gt;
			genusAuthority = parentAuthority&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- process type genus and type species if present; italicize if they seem not to have an authority attached&lt;br /&gt;
	local typeGenus = ''&lt;br /&gt;
	local typeGenusAuthority = ''&lt;br /&gt;
	local typeSpecies = ''&lt;br /&gt;
	local typeSpeciesAuthority = ''&lt;br /&gt;
	local typeIchnogenus = ''&lt;br /&gt;
	local typeIchnogenusAuthority = ''&lt;br /&gt;
	local typeIchnospecies = ''&lt;br /&gt;
	local typeIchnospeciesAuthority = ''&lt;br /&gt;
	local typeOogenus = ''&lt;br /&gt;
	local typeOogenusAuthority = ''&lt;br /&gt;
	local typeOospecies = ''&lt;br /&gt;
	local typeOospeciesAuthority = ''&lt;br /&gt;
	if l.system == '' then&lt;br /&gt;
		typeGenus = l.italicizeTypeName(args['type_genus'] or args['type genus'] or '')&lt;br /&gt;
		typeGenusAuthority = args['type_genus_authority'] or args['type genus authority'] or ''&lt;br /&gt;
		typeSpecies = l.italicizeTypeName(args['type_species'] or args['type species'] or '')&lt;br /&gt;
		typeSpeciesAuthority = args['type_species_authority'] or args['type species authority'] or ''&lt;br /&gt;
	elseif l.system == 'ichnos' then&lt;br /&gt;
		typeIchnogenus = l.italicizeTypeName(args['type_ichnogenus'] or args['type ichnogenus'] or '')&lt;br /&gt;
		typeIchnogenusAuthority = args['type_ichnogenus_authority'] or args['type ichnogenus authority'] or ''&lt;br /&gt;
		typeIchnospecies = l.italicizeTypeName(args['type_ichnospecies'] or args['type ichnospecies'] or '')&lt;br /&gt;
		typeIchnospeciesAuthority = args['type_ichnospecies_authority'] or args['type ichnospecies authority'] or ''&lt;br /&gt;
	elseif l.system == 'veterovata' then&lt;br /&gt;
		typeOogenus = l.italicizeTypeName(args['type_oogenus'] or args['type oogenus'] or '')&lt;br /&gt;
		typeOogenusAuthority = args['type_oogenus_authority'] or args['type oogenus authority'] or ''&lt;br /&gt;
		typeOospecies = l.italicizeTypeName(args['type_oospecies'] or args['type oospecies'] or '')&lt;br /&gt;
		typeOospeciesAuthority = args['type_oospecies_authority'] or args['type oospecies authority'] or ''&lt;br /&gt;
	end&lt;br /&gt;
	-- ------------------------------------------------&lt;br /&gt;
	-- now call Taxobox/core with all of its parameters&lt;br /&gt;
	-- ------------------------------------------------&lt;br /&gt;
	res = res .. frame:expandTemplate{ title = 'Taxobox/core', args =&lt;br /&gt;
		{ ichnos = ichnos,&lt;br /&gt;
		  veterovata = veterovata,&lt;br /&gt;
		  ['edit link'] = 'e',&lt;br /&gt;
		  temporal_range = fossilRange,&lt;br /&gt;
		  display_taxa = args['display_parents'] or args['display parents'] or '1',&lt;br /&gt;
		  parent = taxon,&lt;br /&gt;
		  authority = authority,&lt;br /&gt;
          parent_authority = parentAuthority,&lt;br /&gt;
		  grandparent_authority = args['grandparent_authority'] or args['grandparent authority'] or '',&lt;br /&gt;
		  greatgrandparent_authority = args['greatgrandparent_authority'] or args['greatgrandparent authority'] or '',&lt;br /&gt;
		  greatgreatgrandparent_authority = args['greatgreatgrandparent_authority'] or args['greatgreatgrandparent authority'] or '',&lt;br /&gt;
		  name = name,&lt;br /&gt;
		  colour = colour,&lt;br /&gt;
		  status = args['status'] or '',&lt;br /&gt;
		  status_system = args['status_system'] or args['status system'] or '',&lt;br /&gt;
		  status_ref = args['status_ref'] or args['status ref'] or '',&lt;br /&gt;
		  status2 = args['status2'] or '',&lt;br /&gt;
		  status2_system = args['status2_system'] or args['status2 system'] or '',&lt;br /&gt;
		  status2_ref = args['status2_ref'] or args['status2 ref'] or '',&lt;br /&gt;
		  trend = args['trend'] or '',&lt;br /&gt;
		  extinct = args['extinct'] or '',&lt;br /&gt;
		  image = args['image'] or '',&lt;br /&gt;
		  upright = args['image_upright'] or args['image upright'] or '',&lt;br /&gt;
		  image_alt = args['image_alt'] or args['image alt'] or '',&lt;br /&gt;
		  image_caption = args['image_caption'] or args['image caption'] or '',&lt;br /&gt;
		  image2 = args['image2'] or '',&lt;br /&gt;
		  upright2 = args['image2_upright'] or args['image2 upright'] or '',&lt;br /&gt;
		  image2_alt = args['image2_alt'] or args['image2 alt'] or '',&lt;br /&gt;
		  image2_caption = args['image2_caption'] or args['image2 caption'] or '',&lt;br /&gt;
		  classification_status = args['classification_status'] or args['classification status'] or '',&lt;br /&gt;
		  diversity = args['diversity'] or '',&lt;br /&gt;
		  diversity_ref = args['diversity_ref'] or args['diversity ref'] or '',&lt;br /&gt;
		  diversity_link = args['diversity_link'] or args['diversity link'] or '',&lt;br /&gt;
		  bold_first = boldFirst,&lt;br /&gt;
		  offset = offset,&lt;br /&gt;
		  genus = genusManual,&lt;br /&gt;
		  genus_authority = genusAuthority,&lt;br /&gt;
		  species = speciesManual,&lt;br /&gt;
		  binomial = binomial,&lt;br /&gt;
		  binomial_authority = binomialAuthority,&lt;br /&gt;
		  trinomial = args['trinomial'] or '',&lt;br /&gt;
		  trinomial_authority = args['trinomial_authority'] or args['trinomial authority'] or '',&lt;br /&gt;
		  type_genus = typeGenus,&lt;br /&gt;
		  type_genus_authority = typeGenusAuthority,&lt;br /&gt;
		  type_species = typeSpecies,&lt;br /&gt;
		  type_species_authority = typeSpeciesAuthority,&lt;br /&gt;
		  type_ichnogenus = typeIchnogenus,&lt;br /&gt;
		  type_ichnogenus_authority = typeIchnogenusAuthority,&lt;br /&gt;
		  type_ichnospecies = typeIchnospecies,&lt;br /&gt;
		  type_ichnospecies_authority = typeIchnospeciesAuthority,&lt;br /&gt;
		  type_oogenus = typeOogenus,&lt;br /&gt;
		  type_oogenus_authority = typeOogenusAuthority,&lt;br /&gt;
		  type_oospecies = typeOospecies,&lt;br /&gt;
		  type_oospecies_authority = typeOospeciesAuthority,&lt;br /&gt;
		  subdivision = subdivision,&lt;br /&gt;
		  subdivision_ref = subdivisionRef,&lt;br /&gt;
		  subdivision_ranks = subdivisionRanks,		  &lt;br /&gt;
		  type_strain = args['type_strain'] or args['type strain'] or '',&lt;br /&gt;
		  type_strain_ref = args['type_strain_ref'] or args['type strain ref'] or '',&lt;br /&gt;
		  range_map = args['range_map'] or args['range map'] or '',&lt;br /&gt;
		  range_map_upright = args['range_map_upright'] or args['range map upright'] or '',&lt;br /&gt;
		  range_map_alt = args['range_map_alt'] or args['range map alt'] or '',&lt;br /&gt;
		  range_map_caption = args['range_map_caption'] or args['range map caption'] or '',&lt;br /&gt;
		  range_map2 = args['range_map2'] or args['range map2'] or '',&lt;br /&gt;
		  range_map2_upright = args['range_map2_upright'] or args['range map2 upright'] or '',&lt;br /&gt;
		  range_map2_alt = args['range_map2_alt'] or args['range map2 alt'] or '',&lt;br /&gt;
		  range_map2_caption = args['range_map2_caption'] or args['range map2 caption'] or '',&lt;br /&gt;
		  range_map3 = args['range_map3'] or args['range map3'] or '',&lt;br /&gt;
		  range_map3_upright = args['range_map3_upright'] or args['range map3 upright'] or '',&lt;br /&gt;
		  range_map3_alt = args['range_map3_alt'] or args['range map3 alt'] or '',&lt;br /&gt;
		  range_map3_caption = args['range_map3_caption'] or args['range map3 caption'] or '',&lt;br /&gt;
		  range_map4 = args['range_map4'] or args['range map4'] or '',&lt;br /&gt;
		  range_map4_upright = args['range_map4_upright'] or args['range map4 upright'] or '',&lt;br /&gt;
		  range_map4_alt = args['range_map4_alt'] or args['range map4 alt'] or '',&lt;br /&gt;
		  range_map4_caption = args['range_map4_caption'] or args['range map4 caption'] or '',&lt;br /&gt;
		  synonyms_ref = args['synonyms_ref'] or args['synonyms ref'] or '',&lt;br /&gt;
		  synonyms = args['synonyms'] or ''&lt;br /&gt;
		} }&lt;br /&gt;
	-- put page in error-tracking categories if required&lt;br /&gt;
	local errCat1 = ''&lt;br /&gt;
	if genusManual ~= '' or speciesManual ~= '' or binomial ~= '' then errCat1 = '[[Category:Automatic taxoboxes using manual parameters]]' end&lt;br /&gt;
	local errCat2 = ''&lt;br /&gt;
	if taxonParaMissingError then errCat2 = '[[Category:Automatic taxoboxes relying on page title]]' end&lt;br /&gt;
	res = res .. frame:expandTemplate{ title = 'Main other', args = {errCat1..errCat2} }&lt;br /&gt;
	return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
-- l.setfossilRange(frame, fossilRange, oldestFossil, youngestFossil) checks&lt;br /&gt;
-- the parameters that determine the fossil range, returning an appropriate&lt;br /&gt;
-- range.&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
-- temporary public function for debugging&lt;br /&gt;
function p.chkFossilRange(frame)&lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	local fossilRange = args['temporal_range'] or args['temporal range'] or args['fossil_range'] or args['fossil range'] or ''&lt;br /&gt;
    local oldestFossil = args['oldest_fossil'] or args['oldest fossil'] or ''&lt;br /&gt;
    local youngestFossil =  args['youngest_fossil'] or args['youngest fossil'] or ''&lt;br /&gt;
    local fossilRange = l.setfossilRange(frame, fossilRange, oldestFossil, youngestFossil)&lt;br /&gt;
	return fossilRange&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function l.setfossilRange(frame, fossilRange, oldestFossil, youngestFossil)&lt;br /&gt;
	local res = ''&lt;br /&gt;
	if fossilRange ~= '' then&lt;br /&gt;
		if mw.ustring.find(frame:expandTemplate{ title = 'Period start', args = { fossilRange } }, '[Ee]rror') then&lt;br /&gt;
			res = fossilRange&lt;br /&gt;
		else &lt;br /&gt;
			res = frame:expandTemplate{ title = 'Geological range', args = { fossilRange } }&lt;br /&gt;
		end&lt;br /&gt;
	elseif oldestFossil ~= '' then&lt;br /&gt;
		if youngestFossil == '' then youngestFossil = 'Recent' end&lt;br /&gt;
		if mw.ustring.find(frame:expandTemplate{ title = 'Period start', args = { oldestFossil } }, '[Ee]rror') or&lt;br /&gt;
		   mw.ustring.find(frame:expandTemplate{ title = 'Period start', args = { youngestFossil } }, '[Ee]rror') then&lt;br /&gt;
			res = oldestFossil..'–'..youngestFossil&lt;br /&gt;
		else&lt;br /&gt;
		res = frame:expandTemplate{ title = 'Geological range', args = { oldestFossil, youngestFossil } }&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
-- l.italicizeTypeName(typeName) checks whether the name of a type genus or&lt;br /&gt;
-- species should be italicized, because it appears to be a bare name.&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
&lt;br /&gt;
function l.italicizeTypeName(typeName)&lt;br /&gt;
	if typeName and not (string.find(typeName, &amp;quot;&amp;lt;&amp;quot;, 1, true) or string.find(typeName, &amp;quot;&amp;gt;&amp;quot;, 1, true)) then&lt;br /&gt;
		typeName = TaxonItalics.italicizeTaxonName(typeName, false, false)&lt;br /&gt;
	end&lt;br /&gt;
	return typeName&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- **************************** Speciesbox support *****************************&lt;br /&gt;
&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
-- l.genusOf(str) extracts the genus from a string. Normally this will be the&lt;br /&gt;
-- first word of the string (e.g. given 'Bellis perennis' it returns 'Bellis').&lt;br /&gt;
-- It also handles a string containing a nothogenus with a spaced × (e.g. given&lt;br /&gt;
-- '× Heucherella tiarelloides' it returns '× Heucherella').&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
&lt;br /&gt;
function l.genusOf(str)&lt;br /&gt;
	local res = mw.ustring.match(str, '^[^%s]*', 1)&lt;br /&gt;
	if res == mw.ustring.char(215) then&lt;br /&gt;
		res = res .. ' ' .. mw.ustring.match(str, '^[^%s]*', 3)&lt;br /&gt;
	end&lt;br /&gt;
	return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
-- l.doSpeciesboxName(name, taxon, genus, species, basePageTitle, italicTitle)&lt;br /&gt;
-- returns a name for a taxobox created by Template:Speciesbox. The name will be&lt;br /&gt;
-- italicized if appropriate. It also generates code to italicize the page title&lt;br /&gt;
-- if appropropriate. In both cases the test for italicization is that the base&lt;br /&gt;
-- taxon name (stripped of any disambiguation or qualifier) is the same as the&lt;br /&gt;
-- base page title.&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
&lt;br /&gt;
function p.speciesboxName(frame)&lt;br /&gt;
	local name = frame.args[1] or ''&lt;br /&gt;
	local taxon = frame.args[2] or ''&lt;br /&gt;
	local genus = frame.args[3] or ''&lt;br /&gt;
	local species = frame.args[4] or ''&lt;br /&gt;
	local basePageTitle = frame.args[5] or ''&lt;br /&gt;
	local italicTitle = frame.args[6] or ''&lt;br /&gt;
	return l.doSpeciesboxName(name, taxon, genus, species, basePageTitle, italicTitle)&lt;br /&gt;
end&lt;br /&gt;
	&lt;br /&gt;
function l.doSpeciesboxName(name, taxon, genus, species, basePageTitle, italicTitle)&lt;br /&gt;
	if taxon ~= '' then&lt;br /&gt;
		genus = mw.ustring.gsub(l.genusOf(taxon), '/.*$', '', 1) -- strip any qualifier&lt;br /&gt;
	else&lt;br /&gt;
		genus = mw.ustring.gsub(mw.ustring.gsub(genus, '%s+%b()$', '', 1), '/.*$', '', 1) -- strip any disambig and qualifier&lt;br /&gt;
		if species == '' then taxon = genus&lt;br /&gt;
		else taxon = genus .. ' ' .. species&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local italicizeP = italicTitle ~= 'no' and (basePageTitle == taxon or basePageTitle == genus) -- use basePageTitle to match taxon/genus&lt;br /&gt;
	-- deal with taxobox name (i.e. its caption)&lt;br /&gt;
	if name == '' then&lt;br /&gt;
		name = basePageTitle&lt;br /&gt;
		if italicizeP then name = TaxonItalics.italicizeTaxonName(name, false, false) end&lt;br /&gt;
	end&lt;br /&gt;
	-- deal with page title&lt;br /&gt;
	if italicizeP then&lt;br /&gt;
		local pageTitle = mw.title.getCurrentTitle().text -- formatting the page title with DISPLAYTITLE needs the full page title&lt;br /&gt;
		if italicTitle ~= 'test' then &lt;br /&gt;
			pageTitle  = TaxonItalics.italicizeTaxonName(pageTitle, false, false, true) -- format pageTitle, not italicizing any parenthesized term&lt;br /&gt;
			local nsText = mw.title.getCurrentTitle().nsText -- for drafts and other pages not in mainspace&lt;br /&gt;
			if nsText ~= '' then&lt;br /&gt;
				pageTitle = nsText .. ':' .. pageTitle&lt;br /&gt;
			end&lt;br /&gt;
			mw.getCurrentFrame():callParserFunction('DISPLAYTITLE', pageTitle)&lt;br /&gt;
		else&lt;br /&gt;
			name = name .. ' \\Italic title\\ ' .. pageTitle -- for testing and debugging&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return name&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
-- =============================================================================&lt;br /&gt;
function p.infraspeciesboxName(frame)&lt;br /&gt;
	local name = frame.args[1] or ''&lt;br /&gt;
	local genus = frame.args[2] or ''&lt;br /&gt;
	local species = frame.args[3] or ''&lt;br /&gt;
	local ct = frame.args[4] or ''&lt;br /&gt;
    local infraspecies = frame.args[5] or ''&lt;br /&gt;
	local basePageTitle = frame.args[6] or ''&lt;br /&gt;
	local italicTitle = frame.args[7] or ''&lt;br /&gt;
	return l.doinfraspeciesboxName(name, genus, species, ct, infraspecies, basePageTitle, italicTitle)&lt;br /&gt;
end&lt;br /&gt;
	&lt;br /&gt;
function l.doinfraspeciesboxName(name, genus, species, ct, infraspecies, basePageTitle, italicTitle)&lt;br /&gt;
	genus = mw.ustring.gsub(mw.ustring.gsub(genus, '%s+%b()$', '', 1), '/.*$', '', 1) -- strip any disambig and qualifier&lt;br /&gt;
	local taxon = genus .. ' ' .. species&lt;br /&gt;
	if ct == '' then taxon = taxon .. ' ' .. infraspecies&lt;br /&gt;
	else taxon = taxon .. ' ' .. ct .. ' ' .. infraspecies&lt;br /&gt;
	end&lt;br /&gt;
	local italicizeP = italicTitle ~= 'no' and (basePageTitle == taxon) -- use basePageTitle to match taxon&lt;br /&gt;
	-- deal with taxobox name (i.e. its caption)&lt;br /&gt;
	if name == '' then&lt;br /&gt;
		name = basePageTitle&lt;br /&gt;
		if italicizeP then name = TaxonItalics.italicizeTaxonName(name, false, false) end&lt;br /&gt;
	end&lt;br /&gt;
	-- deal with page title&lt;br /&gt;
	if italicizeP then&lt;br /&gt;
		local pageTitle = mw.title.getCurrentTitle().text -- formatting the page title with DISPLAYTITLE needs the full page title&lt;br /&gt;
		pageTitle  = TaxonItalics.italicizeTaxonName(pageTitle, false, false, true) -- format pageTitle, not italicizing any parenthesized term&lt;br /&gt;
		if italicTitle ~= 'test' then &lt;br /&gt;
			mw.getCurrentFrame():callParserFunction('DISPLAYTITLE', pageTitle)&lt;br /&gt;
		else&lt;br /&gt;
			name = name .. ' \\Italic title\\ ' .. pageTitle -- for testing and debugging&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return name&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>alpha&gt;Indicwiki</name></author>
	</entry>
</feed>