<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://telupedia.w.kmwc.org/index.php?action=history&amp;feed=atom&amp;title=Module%3ATaxobox_ranks</id>
	<title>Module:Taxobox ranks - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://telupedia.w.kmwc.org/index.php?action=history&amp;feed=atom&amp;title=Module%3ATaxobox_ranks"/>
	<link rel="alternate" type="text/html" href="https://telupedia.w.kmwc.org/index.php?title=Module:Taxobox_ranks&amp;action=history"/>
	<updated>2026-04-05T22:32:05Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://telupedia.w.kmwc.org/index.php?title=Module:Taxobox_ranks&amp;diff=4879&amp;oldid=prev</id>
		<title>Maxisnt: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://telupedia.w.kmwc.org/index.php?title=Module:Taxobox_ranks&amp;diff=4879&amp;oldid=prev"/>
		<updated>2025-10-15T22:58:02Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&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&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 22:58, 15 October 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&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>Maxisnt</name></author>
	</entry>
	<entry>
		<id>https://telupedia.w.kmwc.org/index.php?title=Module:Taxobox_ranks&amp;diff=4878&amp;oldid=prev</id>
		<title>Wikipedia&gt;Peter coxhead: updated to tested sandbox version</title>
		<link rel="alternate" type="text/html" href="https://telupedia.w.kmwc.org/index.php?title=Module:Taxobox_ranks&amp;diff=4878&amp;oldid=prev"/>
		<updated>2025-05-15T20:57:28Z</updated>

		<summary type="html">&lt;p&gt;updated to tested sandbox version&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[*************************************************************************&lt;br /&gt;
This module provides support to the automated taxobox system – the templates&lt;br /&gt;
Automatic taxobox, Speciesbox, Subspeciesbox, Infraspeciesbox, etc.&lt;br /&gt;
&lt;br /&gt;
In particular it is part of the configuration of the system, defining the&lt;br /&gt;
rank names that are recognized and the way they are displayed in English in&lt;br /&gt;
taxoboxes and viewed taxonomy templates.&lt;br /&gt;
*****************************************************************************]]&lt;br /&gt;
require(&amp;#039;strict&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local TableRow = &amp;#039;|-\n&amp;#039;&lt;br /&gt;
local TableEnd = &amp;#039;|}\n&amp;#039;&lt;br /&gt;
local p = {} -- functions made public&lt;br /&gt;
local l = {} -- internal functions, kept separate&lt;br /&gt;
&lt;br /&gt;
--*************************** CONFIGURATION *********************************&lt;br /&gt;
&lt;br /&gt;
--[[============================ ranks ======================================&lt;br /&gt;
Set up a constant to hold the rank names and their English equivalents.&lt;br /&gt;
If adding to this list, note that rank names containing spaces or - must be&lt;br /&gt;
enclosed in [&amp;#039; &amp;#039;].&lt;br /&gt;
=============================================================================]]&lt;br /&gt;
local ranks =&lt;br /&gt;
	{&lt;br /&gt;
		--Special cases, alphabetic order&lt;br /&gt;
		alliance = &amp;#039;&amp;lt;i&amp;gt;Alliance&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;#039;basic shell type&amp;#039;] = &amp;#039;&amp;lt;i&amp;gt;Basic shell type&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		branch = &amp;#039;&amp;lt;i&amp;gt;Branch&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		clade = &amp;#039;&amp;lt;i&amp;gt;Clade&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		cladus= &amp;#039;&amp;lt;i&amp;gt;Clade&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;#039;form taxon&amp;#039;] = &amp;#039;&amp;lt;i&amp;gt;Form taxon&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		grade = &amp;#039;&amp;lt;i&amp;gt;Grade&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		gradus = &amp;#039;&amp;lt;i&amp;gt;Grade&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		informal = &amp;#039;&amp;lt;i&amp;gt;Informal group&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;#039;informal group&amp;#039;] = &amp;#039;&amp;lt;i&amp;gt;Informal group&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		morphotype = &amp;#039;&amp;lt;i&amp;gt;Morphotype&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		node = &amp;#039;&amp;lt;i&amp;gt;Node&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		plesion = &amp;#039;&amp;lt;i&amp;gt;Plesion&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;#039;plesion-group&amp;#039;] = &amp;#039;&amp;lt;i&amp;gt;Plesion-group&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;#039;possible clade&amp;#039;] = &amp;#039;&amp;lt;i&amp;gt;Clade?&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;#039;species complex&amp;#039;] = &amp;#039;&amp;lt;i&amp;gt;Species complex&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;#039;species group&amp;#039;] = &amp;#039;&amp;lt;i&amp;gt;Species group&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;#039;species subgroup&amp;#039;] = &amp;#039;&amp;lt;i&amp;gt;Species subgroup&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;#039;stem group&amp;#039;] = &amp;#039;&amp;lt;i&amp;gt;Stem group&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		[&amp;#039;total group&amp;#039;] = &amp;#039;&amp;lt;i&amp;gt;Total group&amp;lt;/i&amp;gt;&amp;#039;,&lt;br /&gt;
		--Special virus ranks&lt;br /&gt;
		realm = &amp;#039;Realm&amp;#039;,&lt;br /&gt;
		serotype = &amp;#039;Serotype&amp;#039;,&lt;br /&gt;
		strain = &amp;#039;Strain&amp;#039;,&lt;br /&gt;
		virus = &amp;#039;Virus&amp;#039;,&lt;br /&gt;
		[&amp;#039;virus group&amp;#039;] = &amp;#039;Group&amp;#039;,&lt;br /&gt;
		--Linnaean taxonomy, alphabetic order&lt;br /&gt;
		classis = &amp;#039;Class&amp;#039;,&lt;br /&gt;
		cohort = &amp;#039;Cohort&amp;#039;,&lt;br /&gt;
		divisio = &amp;#039;Division&amp;#039;,&lt;br /&gt;
		domain = &amp;#039;Domain&amp;#039;,&lt;br /&gt;
		epifamilia = &amp;#039;Epifamily&amp;#039;,&lt;br /&gt;
		familia = &amp;#039;Family&amp;#039;,&lt;br /&gt;
		forma = &amp;#039;Form&amp;#039;,&lt;br /&gt;
		genus = &amp;#039;Genus&amp;#039;,&lt;br /&gt;
		grandordo = &amp;#039;Grandorder&amp;#039;,&lt;br /&gt;
		[&amp;#039;grandordo-mb&amp;#039;] = &amp;#039;Grandorder&amp;#039;, --McKenna &amp;amp; Bell version&lt;br /&gt;
		hyperfamilia = &amp;#039;Hyperfamily&amp;#039;,&lt;br /&gt;
		infraclassis = &amp;#039;Infraclass&amp;#039;,&lt;br /&gt;
		infralegio = &amp;#039;Infralegion&amp;#039;,&lt;br /&gt;
		infralegion = &amp;#039;Infralegion&amp;#039;,&lt;br /&gt;
		infraordo = &amp;#039;Infraorder&amp;#039;,&lt;br /&gt;
		infraphylum = &amp;#039;Infraphylum&amp;#039;,&lt;br /&gt;
		infraregnum = &amp;#039;Infrakingdom&amp;#039;,&lt;br /&gt;
		infratribus = &amp;#039;Infratribe&amp;#039;,&lt;br /&gt;
		legio = &amp;#039;Legion&amp;#039;,&lt;br /&gt;
		legion = &amp;#039;Legion&amp;#039;,&lt;br /&gt;
		magnordo = &amp;#039;Magnorder&amp;#039;,&lt;br /&gt;
		micrordo = &amp;#039;Microrder&amp;#039;,&lt;br /&gt;
		microphylum = &amp;#039;Microphylum&amp;#039;,&lt;br /&gt;
		mirordo = &amp;#039;Mirorder&amp;#039;,&lt;br /&gt;
		[&amp;#039;mirordo-mb&amp;#039;] = &amp;#039;Mirorder&amp;#039;, --McKenna &amp;amp; Bell version&lt;br /&gt;
		nanordo = &amp;#039;Nanorder&amp;#039;,&lt;br /&gt;
		nanophylum = &amp;#039;Nanophylum&amp;#039;,&lt;br /&gt;
		ordo = &amp;#039;Order&amp;#039;,&lt;br /&gt;
		parafamilia = &amp;#039;Parafamily&amp;#039;,&lt;br /&gt;
		parvclassis = &amp;#039;Parvclass&amp;#039;,&lt;br /&gt;
		parvordo = &amp;#039;Parvorder&amp;#039;,&lt;br /&gt;
		phylum = &amp;#039;Phylum&amp;#039;,&lt;br /&gt;
		regnum = &amp;#039;Kingdom&amp;#039;,&lt;br /&gt;
		sectio = &amp;#039;Section&amp;#039;,&lt;br /&gt;
		series = &amp;#039;Series&amp;#039;,&lt;br /&gt;
		species = &amp;#039;Species&amp;#039;,&lt;br /&gt;
		subclassis = &amp;#039;Subclass&amp;#039;,&lt;br /&gt;
		subcohort = &amp;#039;Subcohort&amp;#039;,&lt;br /&gt;
		subdivisio = &amp;#039;Subdivision&amp;#039;,&lt;br /&gt;
		subfamilia = &amp;#039;Subfamily&amp;#039;,&lt;br /&gt;
		subgenus = &amp;#039;Subgenus&amp;#039;,&lt;br /&gt;
		sublegio = &amp;#039;Sublegion&amp;#039;,&lt;br /&gt;
		sublegion = &amp;#039;Sublegion&amp;#039;,&lt;br /&gt;
		subordo = &amp;#039;Suborder&amp;#039;,&lt;br /&gt;
		subphylum = &amp;#039;Subphylum&amp;#039;,&lt;br /&gt;
		subregnum = &amp;#039;Subkingdom&amp;#039;,&lt;br /&gt;
		subsectio = &amp;#039;Subsection&amp;#039;,&lt;br /&gt;
		subseries = &amp;#039;Subseries&amp;#039;,&lt;br /&gt;
		subspecies = &amp;#039;Subspecies&amp;#039;,&lt;br /&gt;
		subterclassis = &amp;#039;Subterclass&amp;#039;, --used in WoRMS&lt;br /&gt;
		subtribus = &amp;#039;Subtribe&amp;#039;,&lt;br /&gt;
		superclassis = &amp;#039;Superclass&amp;#039;,&lt;br /&gt;
		supercohort = &amp;#039;Supercohort&amp;#039;,&lt;br /&gt;
		superdivisio = &amp;#039;Superdivision&amp;#039;,&lt;br /&gt;
		superdomain = &amp;#039;Superdomain&amp;#039;,&lt;br /&gt;
		superfamilia = &amp;#039;Superfamily&amp;#039;,&lt;br /&gt;
		superlegio = &amp;#039;Superlegion&amp;#039;,&lt;br /&gt;
		superlegion = &amp;#039;Superlegion&amp;#039;,&lt;br /&gt;
		superordo = &amp;#039;Superorder&amp;#039;,&lt;br /&gt;
		superphylum = &amp;#039;Superphylum&amp;#039;,&lt;br /&gt;
		superregnum = &amp;#039;Superkingdom&amp;#039;,&lt;br /&gt;
		supersectio = &amp;#039;Supersection&amp;#039;,&lt;br /&gt;
		supertribus = &amp;#039;Supertribe&amp;#039;,&lt;br /&gt;
		tribus = &amp;#039;Tribe&amp;#039;,&lt;br /&gt;
		varietas = &amp;#039;Variety&amp;#039;,&lt;br /&gt;
		zoodivisio = &amp;#039;Division&amp;#039;,&lt;br /&gt;
		zoosectio = &amp;#039;Section&amp;#039;,&lt;br /&gt;
		zooseries = &amp;#039;Series&amp;#039;,&lt;br /&gt;
		zoosubdivisio = &amp;#039;Subdivision&amp;#039;,&lt;br /&gt;
		zoosubsectio = &amp;#039;Subsection&amp;#039;,&lt;br /&gt;
		--trace fossil taxonomy, alphabetic order--&amp;gt;&amp;#039;,&lt;br /&gt;
		ichnoclassis = &amp;#039;Ichnoclass&amp;#039;,&lt;br /&gt;
		ichnocohort = &amp;#039;Ichnocohort&amp;#039;,&lt;br /&gt;
		ichnodivisio = &amp;#039;Ichnodivision&amp;#039;,&lt;br /&gt;
		ichnofamilia = &amp;#039;Ichnofamily&amp;#039;,&lt;br /&gt;
		ichnogenus = &amp;#039;Ichnogenus&amp;#039;,&lt;br /&gt;
		ichnograndordo = &amp;#039;Ichnograndorder&amp;#039;,&lt;br /&gt;
		[&amp;#039;ichnograndordo-mb&amp;#039;] = &amp;#039;Ichnograndorder&amp;#039;, --McKenna &amp;amp; Bell version&lt;br /&gt;
		ichnoinfraclassis = &amp;#039;Ichnoinfraclass&amp;#039;,&lt;br /&gt;
		ichnoinfradivisio = &amp;#039;Ichnoinfradivision&amp;#039;,&lt;br /&gt;
		ichnoinfraordo = &amp;#039;Ichnoinfraorder&amp;#039;,&lt;br /&gt;
		ichnolegio = &amp;#039;Ichnolegion&amp;#039;,&lt;br /&gt;
		ichnolegion = &amp;#039;Ichnolegion&amp;#039;,&lt;br /&gt;
		ichnomagnordo = &amp;#039;Ichnomagnorder&amp;#039;,&lt;br /&gt;
		ichnomicrordo = &amp;#039;Ichnomicrorder&amp;#039;,&lt;br /&gt;
		ichnoordo = &amp;#039;Ichnoorder&amp;#039;,&lt;br /&gt;
		ichnoparvordo = &amp;#039;Ichnoparvorder&amp;#039;,&lt;br /&gt;
		ichnospecies = &amp;#039;Ichnospecies&amp;#039;,&lt;br /&gt;
		[&amp;#039;ichnostem-group&amp;#039;] = &amp;#039;Ichnostem-Group&amp;#039;,&lt;br /&gt;
		ichnosubclassis = &amp;#039;Ichnosubclass&amp;#039;,&lt;br /&gt;
		ichnosubdivisio = &amp;#039;Ichnosubdivision&amp;#039;,&lt;br /&gt;
		ichnosubfamilia = &amp;#039;Ichnosubfamily&amp;#039;,&lt;br /&gt;
		ichnosublegio = &amp;#039;Ichnosublegion&amp;#039;,&lt;br /&gt;
		ichnosublegion = &amp;#039;Ichnosublegion&amp;#039;,&lt;br /&gt;
		ichnosubordo = &amp;#039;Ichnosuborder&amp;#039;,&lt;br /&gt;
		ichnosuperclassis = &amp;#039;Ichnosuperclass&amp;#039;,&lt;br /&gt;
		ichnosupercohort = &amp;#039;Ichnosupercohort&amp;#039;,&lt;br /&gt;
		ichnosuperfamilia = &amp;#039;Ichnosuperfamily&amp;#039;,&lt;br /&gt;
		ichnosuperordo = &amp;#039;Ichnosuperorder&amp;#039;,&lt;br /&gt;
		--fossilized egg taxonomy, alphabetic order&lt;br /&gt;
		ooclassis = &amp;#039;Ooclass&amp;#039;,&lt;br /&gt;
		oocohort = &amp;#039;Oocohort&amp;#039;,&lt;br /&gt;
		oofamilia = &amp;#039;Oofamily&amp;#039;,&lt;br /&gt;
		oogenus = &amp;#039;Oogenus&amp;#039;,&lt;br /&gt;
		oomagnordo = &amp;#039;Oomagnorder&amp;#039;,&lt;br /&gt;
		oordo = &amp;#039;Oorder&amp;#039;,&lt;br /&gt;
		oospecies = &amp;#039;Oospecies&amp;#039;,&lt;br /&gt;
		oosubclassis = &amp;#039;Oosubclass&amp;#039;,&lt;br /&gt;
		oosubgenus = &amp;#039;Oosubgenus&amp;#039;,&lt;br /&gt;
		oosubspecies = &amp;#039;Oosubspecies&amp;#039;,&lt;br /&gt;
		oosupercohort = &amp;#039;Oosupercohort&amp;#039;,&lt;br /&gt;
		oosuperordo = &amp;#039;Oosuperorder&amp;#039;,&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
--[[========================== rank values===================================&lt;br /&gt;
Constant to set up a table of numerical values corresponding&lt;br /&gt;
to &amp;#039;Linnaean&amp;#039; ranks, with upper ranks having higher values. In a valid&lt;br /&gt;
taxonomic hierarchy, a lower rank should never have a higher value than a&lt;br /&gt;
higher rank. The actual numerical values are arbitrary so long as they are&lt;br /&gt;
ordered.&lt;br /&gt;
The ranks should be a subset of those in Template:Anglicise ranks.&lt;br /&gt;
=============================================================================]]&lt;br /&gt;
local rankValTable =&lt;br /&gt;
	{&lt;br /&gt;
		classis = 1400,&lt;br /&gt;
		cohort = 1100,&lt;br /&gt;
		divisio = 1500,&lt;br /&gt;
		domain = 1700,&lt;br /&gt;
		epifamilia =  802,&lt;br /&gt;
		familia = 800,&lt;br /&gt;
		forma = 100,&lt;br /&gt;
		genus = 600,&lt;br /&gt;
		grandordo = 1005,&lt;br /&gt;
		[&amp;#039;grandordo-mb&amp;#039;] = 1002,&lt;br /&gt;
		hyperfamilia = 805;&lt;br /&gt;
		infraclassis = 1397,&lt;br /&gt;
		infralegio = 1197,&lt;br /&gt;
		infralegion = 1197,&lt;br /&gt;
		infraordo = 997,&lt;br /&gt;
		infraphylum = 1497,&lt;br /&gt;
		infraregnum = 1597,&lt;br /&gt;
		infratribus = 697,&lt;br /&gt;
		legio = 1200,&lt;br /&gt;
		legion = 1200,&lt;br /&gt;
		magnordo = 1006,&lt;br /&gt;
		microphylum = 1495,&lt;br /&gt;
		micrordo = 995,&lt;br /&gt;
		mirordo = 1004,&lt;br /&gt;
		[&amp;#039;mirordo-mb&amp;#039;] = 1001,&lt;br /&gt;
		nanophylum = 1494,&lt;br /&gt;
		nanordo = 994,&lt;br /&gt;
		ordo = 1000,&lt;br /&gt;
		parafamilia = 800,&lt;br /&gt;
		parvclassis = 1396; -- same as subterclassis&lt;br /&gt;
		parvordo = 996,&lt;br /&gt;
		phylum = 1500,&lt;br /&gt;
		regnum = 1600,&lt;br /&gt;
		sectio = 500,&lt;br /&gt;
		--series = 400, used too inconsistently to check&lt;br /&gt;
		species = 300,&lt;br /&gt;
		subclassis = 1398,&lt;br /&gt;
		subcohort = 1098,&lt;br /&gt;
		subdivisio = 1498,&lt;br /&gt;
		subfamilia = 798,&lt;br /&gt;
		subgenus = 598,&lt;br /&gt;
		sublegio = 1198,&lt;br /&gt;
		sublegion = 1198,&lt;br /&gt;
		subordo = 998,&lt;br /&gt;
		subphylum = 1498,&lt;br /&gt;
		subregnum = 1598,&lt;br /&gt;
		subsectio = 498,&lt;br /&gt;
		subspecies = 298,&lt;br /&gt;
		subterclassis = 1396; -- same as parvclassis&lt;br /&gt;
		subtribus = 698,&lt;br /&gt;
		superclassis = 1403,&lt;br /&gt;
		supercohort = 1103,&lt;br /&gt;
		superdivisio = 1503,&lt;br /&gt;
		superdomain = 1703,&lt;br /&gt;
		superfamilia = 803,&lt;br /&gt;
		superlegio = 1203,&lt;br /&gt;
		superlegion = 1203,&lt;br /&gt;
		superordo = 1003,&lt;br /&gt;
		superphylum = 1503,&lt;br /&gt;
		superregnum = 1603,&lt;br /&gt;
		supersectio = 503,&lt;br /&gt;
		supertribus = 703,&lt;br /&gt;
		tribus = 700,&lt;br /&gt;
		varietas = 200,&lt;br /&gt;
		zoodivisio = 1300,&lt;br /&gt;
		zoosectio = 900,&lt;br /&gt;
		zoosubdivisio = 1298,&lt;br /&gt;
		zoosubsectio = 898,&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
--***************** Process ranks + English equivalents *********************&lt;br /&gt;
&lt;br /&gt;
--[[======================== angliciseRank ==================================&lt;br /&gt;
Returns the English language equivalent of a rank name used in a taxonomy&lt;br /&gt;
template.&lt;br /&gt;
If the rank name is not in the table of ranks, then the first letter&lt;br /&gt;
of the rank name is capitalized and used as the English name.&lt;br /&gt;
If checked=yes, then the generated English name is highlighted in red. If&lt;br /&gt;
called from a taxonomy template, the page is put in&lt;br /&gt;
Category:Taxonomy templates using capitalized rank parameters&lt;br /&gt;
=============================================================================]]&lt;br /&gt;
function p.doAngliciseRank(rankName, check)&lt;br /&gt;
	rankName = string.gsub(rankName, &amp;#039;_&amp;#039;, &amp;#039; &amp;#039;) -- replace all underscores by spaces&lt;br /&gt;
	-- is rankName capitalized?&lt;br /&gt;
	local testName = string.lower(string.sub(rankName,1,1)) .. string.sub(rankName,2)&lt;br /&gt;
	local wasCapitalized = testName ~= rankName&lt;br /&gt;
	if wasCapitalized then rankName = testName end -- try uncapitalized version&lt;br /&gt;
	if string.sub(rankName, 1,8) == &amp;#039;unranked&amp;#039; then return &amp;#039;(unranked)&amp;#039; end&lt;br /&gt;
	-- now look for an English version of the rank name&lt;br /&gt;
	local res = ranks[rankName]&lt;br /&gt;
	local notFound = not res&lt;br /&gt;
	if notFound then&lt;br /&gt;
		--rankName is not in the table of recognized ranks; just capitalize rankName&lt;br /&gt;
		res = string.upper(string.sub(rankName,1,1)) .. string.sub(rankName,2)&lt;br /&gt;
	end&lt;br /&gt;
	if check == &amp;#039;no&amp;#039; then&lt;br /&gt;
		return res&lt;br /&gt;
	elseif notFound then&lt;br /&gt;
		res = &amp;#039;&amp;lt;span style=&amp;quot;background-color:#F99&amp;quot;&amp;gt;&amp;#039; .. res .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039; -- highlight returned English name&lt;br /&gt;
	end&lt;br /&gt;
	-- tracking caegories required only if called from a taxonomy template&lt;br /&gt;
	local pageTitle =  mw.title.getCurrentTitle()&lt;br /&gt;
	if pageTitle.nsText == &amp;#039;Template&amp;#039; and pageTitle.rootText == &amp;#039;Taxonomy&amp;#039; then&lt;br /&gt;
		if notFound then res = res .. &amp;#039;[[Category:Taxonomy templates using unrecognized rank parameters]]&amp;#039;&lt;br /&gt;
		elseif wasCapitalized then res = res .. &amp;#039;[[Category:Taxonomy templates using capitalized rank parameters]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.angliciseRank(frame)&lt;br /&gt;
	local rankName = frame.args[1]&lt;br /&gt;
	local check = frame.args[&amp;#039;check&amp;#039;] or &amp;#039;no&amp;#039;&lt;br /&gt;
	return p.doAngliciseRank(rankName, check)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[========================== showRanks ====================================&lt;br /&gt;
Returns a wikitable showing all the recognized ranks, how they are shown in&lt;br /&gt;
taxoboxes, whether they are automatically italicized, and whether they are&lt;br /&gt;
checked for consistency of rank order.&lt;br /&gt;
Usage: {{#invoke:Taxobox ranks|showRanks}}&lt;br /&gt;
=============================================================================]]&lt;br /&gt;
function p.showRanks(frame)&lt;br /&gt;
	local res = &amp;#039;{| class=&amp;quot;wikitable sortable&amp;quot;\n&amp;#039;&lt;br /&gt;
	res = res ..&amp;#039;|+ Ranks recognized in taxonomy templates\n&amp;#039;&lt;br /&gt;
	res = res .. &amp;#039;!style=&amp;quot;text-align: left;&amp;quot;|Rank name in&amp;lt;br/&amp;gt;taxonomy&amp;lt;br/&amp;gt;template&amp;#039;&lt;br /&gt;
	res = res .. &amp;#039;!!style=&amp;quot;text-align: left;&amp;quot;|Shown in&amp;lt;br/&amp;gt;taxobox as&amp;#039;&lt;br /&gt;
	res = res .. &amp;#039;!! style=&amp;quot;text-align: left;&amp;quot; |Taxon name&amp;lt;br/&amp;gt;automatically&amp;lt;br/&amp;gt;italicized?&amp;#039;&lt;br /&gt;
	res = res .. &amp;#039;!! style=&amp;quot;text-align: left;&amp;quot; |Rank checked&amp;lt;br/&amp;gt;for consistent&amp;lt;br/&amp;gt;order?&amp;#039;&lt;br /&gt;
	res = res .. &amp;#039;\n&amp;#039;&lt;br /&gt;
	for k, t in pairs(ranks) do&lt;br /&gt;
		res = res .. TableRow .. &amp;#039;|&amp;#039; .. k .. &amp;#039;||&amp;#039; .. t .. &amp;#039;||&amp;#039; .. frame:expandTemplate{ title = &amp;#039;Is italic taxon&amp;#039;, args = { k } } .. &amp;#039;||&amp;#039; .. l.hasRankVal(k) .. &amp;#039;\n&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return res .. TableEnd&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--************************* Process rank values *****************************&lt;br /&gt;
&lt;br /&gt;
--[[========================= lookupRankVal =================================&lt;br /&gt;
Function to look up the arbitrary numerical value of a rank in a rank value&lt;br /&gt;
table. &amp;quot;Ichno&amp;quot; and &amp;quot;oo&amp;quot; ranks are not stored separately, so if present the&lt;br /&gt;
prefix is removed.&lt;br /&gt;
=============================================================================]]&lt;br /&gt;
function p.lookupRankVal(rank)&lt;br /&gt;
	local rankVal = rankValTable[rank]&lt;br /&gt;
	if not rankVal then&lt;br /&gt;
		-- may be an &amp;quot;ichno&amp;quot; or &amp;quot;oo&amp;quot; rank; try removing &amp;quot;ichno-&amp;quot; or &amp;quot;oo-&amp;quot;&lt;br /&gt;
		local baseRank = mw.ustring.gsub(mw.ustring.gsub(rank, &amp;#039;^ichno&amp;#039;, &amp;#039;&amp;#039;), &amp;#039;^oo&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		if baseRank == &amp;#039;rdo&amp;#039; then baseRank = &amp;#039;ordo&amp;#039; end&lt;br /&gt;
		-- if an &amp;quot;ichno&amp;quot; or &amp;quot;oo&amp;quot; rank, lower rank value slightly so it is ok below the base rank&lt;br /&gt;
		rankVal = rankValTable[baseRank]&lt;br /&gt;
		if rankVal then&lt;br /&gt;
			rankVal = rankVal - 0.1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return rankVal&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[=========================== hasRankVal =================================&lt;br /&gt;
Utility function to determine whether the rank has a value in rank value&lt;br /&gt;
table. Returns &amp;#039;yes&amp;#039; or &amp;#039;no&amp;#039;.&lt;br /&gt;
=============================================================================]]&lt;br /&gt;
function l.hasRankVal(rank)&lt;br /&gt;
	if rank == &amp;#039;&amp;#039; then return &amp;#039;no&amp;#039; end&lt;br /&gt;
	local rankVal = p.lookupRankVal(rank)&lt;br /&gt;
	if not rankVal then rankVal = &amp;#039;no&amp;#039; else rankVal = &amp;#039;yes&amp;#039; end&lt;br /&gt;
	return rankVal&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[========================== showRankTable ================================&lt;br /&gt;
Returns a wikitable showing the ranks and their values as set up in the&lt;br /&gt;
constant rankValTable.&lt;br /&gt;
Usage: {{#invoke:Taxobox ranks|showRankTable}}&lt;br /&gt;
=============================================================================]]&lt;br /&gt;
function p.showRankTable(frame)&lt;br /&gt;
	local res = &amp;#039;{| class=&amp;quot;wikitable sortable&amp;quot;\n|+ Ranks checked in taxonomy templates\n! Rank !! Shown as !! Value\n&amp;#039;&lt;br /&gt;
	for k, v in pairs(rankValTable) do&lt;br /&gt;
		local rankShown = p.doAngliciseRank(k, &amp;#039;no&amp;#039;)&lt;br /&gt;
		res = res .. TableRow .. &amp;#039;|&amp;#039; .. k .. &amp;#039;||&amp;#039; .. rankShown .. &amp;#039;||&amp;#039; .. v .. &amp;#039;\n&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return res .. TableEnd&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Wikipedia&gt;Peter coxhead</name></author>
	</entry>
</feed>