<?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%3ABiota_infobox%2Fparam</id>
	<title>Module:Biota infobox/param - 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%3ABiota_infobox%2Fparam"/>
	<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Biota_infobox/param&amp;action=history"/>
	<updated>2026-04-04T07:27:31Z</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:Biota_infobox/param&amp;diff=194835&amp;oldid=prev</id>
		<title>Indicwiki: 2 revisions imported from :alpha:Module:Biota_infobox/param</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Biota_infobox/param&amp;diff=194835&amp;oldid=prev"/>
		<updated>2023-06-22T07:06:15Z</updated>

		<summary type="html">&lt;p&gt;2 revisions imported from &lt;a href=&quot;https://alpha.indicwiki.in/index.php?title=Module:Biota_infobox/param&quot; class=&quot;extiw&quot; title=&quot;alpha:Module:Biota infobox/param&quot;&gt;alpha:Module:Biota_infobox/param&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 12:36, 22 June 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:Biota_infobox/param&amp;diff=194834&amp;oldid=prev</id>
		<title>alpha&gt;Sandeep at 10:56, 20 April 2023</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Biota_infobox/param&amp;diff=194834&amp;oldid=prev"/>
		<updated>2023-04-20T10:56:06Z</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 16:26, 20 April 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 colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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 p = {}&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 p = {}&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 templateArgs = {}&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 templateArgs = {}&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-l119&quot;&gt;Line 119:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 117:&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;	    if #tempArgs  then                        -- table  not empty -- if next(tempArgs) ~= nil then&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;	    if #tempArgs  then                        -- table  not empty -- if next(tempArgs) ~= nil then&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;		    templateArgs['debug'] =  mw.dumpObject(tempArgs)  &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;		    templateArgs['debug'] =  mw.dumpObject(tempArgs)  &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;		    info.parameterCategory = info.parameterCategory .. &amp;quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Automatic taxobox with unsupported parameters]]&lt;/del&gt;&amp;quot;&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;		    info.parameterCategory = info.parameterCategory .. &amp;quot;&amp;quot;&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;		end	&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;		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;br/&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;br/&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-l150&quot;&gt;Line 150:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 148:&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;     if info.auto == &amp;quot;speciesbox&amp;quot; then&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;     if info.auto == &amp;quot;speciesbox&amp;quot; then&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;	    if templateArgs['taxon'] and (templateArgs['genus'] or templateArgs['species']) then&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;	    if templateArgs['taxon'] and (templateArgs['genus'] or templateArgs['species']) then&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;	    	categoryString = categoryString .. &amp;quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Speciesboxes using taxon with genus or species parameters]]&lt;/del&gt;&amp;quot;&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;	    	categoryString = categoryString .. &amp;quot;&amp;quot;&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;	    end&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;	    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;     end&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;     end&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-l160&quot;&gt;Line 160:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 158:&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;		&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;		&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;		if tempArgs[v] then -- use tempArgs as these won't have been validated (produces redundant category?)&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;		if tempArgs[v] then -- use tempArgs as these won't have been validated (produces redundant category?)&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;		   	categoryString = categoryString .. &amp;quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Automatic taxoboxes using manual rank parameters]]&lt;/del&gt;&amp;quot;&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;		   	categoryString = categoryString .. &amp;quot;&amp;quot;&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;		end&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;		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;	end&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;	end&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-l178&quot;&gt;Line 178:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 176:&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;	end&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;	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;	if orphan then  &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;	if orphan then  &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;		categoryString = categoryString .. &amp;quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Automatic taxoboxes with orphaned dependent parameters]]&lt;/del&gt;&amp;quot;&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;		categoryString = categoryString .. &amp;quot;&amp;quot;&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;	end&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;	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;	&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;	&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;	-- paraphyletic groups using manual taxonomy&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;	-- paraphyletic groups using manual taxonomy&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;	--categoryString = categoryString .. &amp;quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:&amp;quot; .. mw.getCurrentFrame():getParent():getTitle()  ..&amp;quot;]]&lt;/del&gt;&amp;quot;&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;	--categoryString = categoryString .. &amp;quot;&amp;quot;&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;	if mw.getCurrentFrame():getParent():getTitle() == &amp;quot;Template:Paraphyletic group&amp;quot; then&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;	if mw.getCurrentFrame():getParent():getTitle() == &amp;quot;Template:Paraphyletic group&amp;quot; then&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;		if info.auto ~= &amp;quot;yes&amp;quot; and info.auto ~= &amp;quot;virus&amp;quot; and info.auto ~= &amp;quot;virusbox&amp;quot; and info.auto ~= &amp;quot;hybridbox&amp;quot;&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;		if info.auto ~= &amp;quot;yes&amp;quot; and info.auto ~= &amp;quot;virus&amp;quot; and info.auto ~= &amp;quot;virusbox&amp;quot; and info.auto ~= &amp;quot;hybridbox&amp;quot;&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;		       and info.auto ~= &amp;quot;speciesbox&amp;quot; and info.auto ~= &amp;quot;subspeciesbox&amp;quot; and info.auto ~= &amp;quot;infraspeciesbox&amp;quot; then&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;		       and info.auto ~= &amp;quot;speciesbox&amp;quot; and info.auto ~= &amp;quot;subspeciesbox&amp;quot; and info.auto ~= &amp;quot;infraspeciesbox&amp;quot; then&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;			categoryString = categoryString .. &amp;quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Paraphyletic group infoboxes with manual taxonomy]]&lt;/del&gt;&amp;quot;  &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;			categoryString = categoryString .. &amp;quot;&amp;quot;  &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;		end&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;		end&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;		--categoryString = categoryString .. &amp;quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Category:Paraphyletic group infoboxes]]&lt;/del&gt;&amp;quot;&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;		--categoryString = categoryString .. &amp;quot;&amp;quot;&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;br/&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;br/&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;	end&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;	end&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:Biota_infobox/param&amp;diff=194833&amp;oldid=prev</id>
		<title>alpha&gt;Sandeep: Created page with &quot;require('strict')  local p = {} local templateArgs = {} local info = {}  local paramData = require( 'Module:Biota infobox/data' ) -- contains the taxon ranks in order  -- call...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.vigyanwiki.in/index.php?title=Module:Biota_infobox/param&amp;diff=194833&amp;oldid=prev"/>
		<updated>2023-04-20T10:55:42Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;require(&amp;#039;strict&amp;#039;)  local p = {} local templateArgs = {} local info = {}  local paramData = require( &amp;#039;Module:Biota infobox/data&amp;#039; ) -- contains the taxon ranks in order  -- call...&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;
&lt;br /&gt;
local p = {}&lt;br /&gt;
local templateArgs = {}&lt;br /&gt;
local info = {}&lt;br /&gt;
&lt;br /&gt;
local paramData = require( 'Module:Biota infobox/data' ) -- contains the taxon ranks in order&lt;br /&gt;
&lt;br /&gt;
-- call parameter checking independently of taxobox display&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	p._getArgs(frame)&lt;br /&gt;
	return info.parameterCategory &lt;br /&gt;
end&lt;br /&gt;
-- get parameters for calling function&lt;br /&gt;
function p.getArgs(frame, args, localinfo)&lt;br /&gt;
	templateArgs = args&lt;br /&gt;
	info = localinfo&lt;br /&gt;
	 p._getArgs(frame)&lt;br /&gt;
end&lt;br /&gt;
-- get the arguments and check them in vaious ways&lt;br /&gt;
function p._getArgs(frame)&lt;br /&gt;
	local parents = mw.getCurrentFrame():getParent()&lt;br /&gt;
    local tempArgs={} -- local copy of arguments that will be checked (empty, aliases, invalid)&lt;br /&gt;
    &lt;br /&gt;
    -- get copy of parent arguments, aliasing spaces for underscores&lt;br /&gt;
	for k,v in pairs(parents.args) do&lt;br /&gt;
		if type (k) == 'string' then            -- no positional parameters &lt;br /&gt;
			--v = v:match('^%s*(.-)%s*$')       -- include trimming (only needed for positional parameters)&lt;br /&gt;
			if v and (v ~= &amp;quot;&amp;quot;) then             -- check for content&lt;br /&gt;
				local j = k:gsub( &amp;quot; &amp;quot;, &amp;quot;_&amp;quot;)     -- substitute spaces with underscore (aliases)&lt;br /&gt;
				tempArgs[j]=v                   -- parents.args[k]&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- do we need to check frame args?&lt;br /&gt;
	for k,v in pairs(frame.args) do&lt;br /&gt;
		if v and v ~= &amp;quot;&amp;quot; then                  --check for content&lt;br /&gt;
			tempArgs[k]=v &lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- parameters that can be set without a value, e.g. |extinct= &lt;br /&gt;
	if parents.args['extinct'] and parents.args['extinct'] == &amp;quot;&amp;quot; then templateArgs['extinct'] = &amp;quot;&amp;quot; end&lt;br /&gt;
&lt;br /&gt;
	if parents.args['auto'] or frame.args['auto'] then &lt;br /&gt;
		info.auto = parents.args['auto']  or frame.args['auto']   -- keep template parameters seperate from control flow arguments&lt;br /&gt;
	end&lt;br /&gt;
	if parents.args['db'] or frame.args['db'] then &lt;br /&gt;
		info.db = parents.args['db']  or frame.args['db']   -- keep template parameters seperate from control flow arguments&lt;br /&gt;
	end	&lt;br /&gt;
    p.preprocessArgs(tempArgs) -- check aliases, check valid parameters for calling template&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.preprocessArgs(tempArgs) -- handles aliases ajc validates parameters&lt;br /&gt;
	info.parameterCategory = &amp;quot;&amp;quot;     -- initialise empty string for tracking categories&lt;br /&gt;
	p.aliasParams(tempArgs)         -- check parameters for aliases&lt;br /&gt;
    p.validateParams(tempArgs)      -- check parameters for invalid parameters (from allowed list)&lt;br /&gt;
	p._checkParameters(tempArgs)    -- check manual taxon ranks, orphaned parameters and invalid combinations&lt;br /&gt;
end&lt;br /&gt;
--[[ -------------------------------------------------------------------&lt;br /&gt;
     function p.aliasParams(tempArgs)&lt;br /&gt;
         -- alias of spaces to underscores handled in getArgs()&lt;br /&gt;
         -- uses alias list from the data subpage (param.aliasmap)&lt;br /&gt;
         -- e.g. local aliasMap = {  ['fossil_range'] = 'temporal_range',  &lt;br /&gt;
		                             ['colour_as'] = 'color_as', ... }&lt;br /&gt;
]]&lt;br /&gt;
function p.aliasParams(tempArgs)&lt;br /&gt;
&lt;br /&gt;
    -- change parameters using alias map&lt;br /&gt;
    for k,v in pairs(paramData.aliasMap) do&lt;br /&gt;
		if tempArgs[k] then                 -- if templateArgs has parameter with alias name&lt;br /&gt;
			tempArgs[v] = tempArgs[k];	    -- create new element with alias' value as key&lt;br /&gt;
			tempArgs[k] = nil;			    -- delete the alias&lt;br /&gt;
		end    &lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
    --[[ alias: change parameters using spaces instead of underscores&lt;br /&gt;
	local localArgs = {} -- Note: adding new keys while iterating over a table gives unpredictable results&lt;br /&gt;
    for k,v in pairs(templateArgs) do&lt;br /&gt;
       if type(k)=='string' then&lt;br /&gt;
			local j,n = string.gsub(k, &amp;quot; &amp;quot;, &amp;quot;_&amp;quot;)               -- substitute spaces&lt;br /&gt;
			if n &amp;gt; 0 then --if j ~= k then      -- if substitution made&lt;br /&gt;
				localArgs[j] = v	            -- create new key with underscore&lt;br /&gt;
			    localArgs[k] = nil;			    -- delete old key with space &lt;br /&gt;
	        else &lt;br /&gt;
	        	localArgs[k] = v&lt;br /&gt;
        	end&lt;br /&gt;
		end&lt;br /&gt;
	end	&lt;br /&gt;
    templateArgs = localArgs -- now copy the corrected table&lt;br /&gt;
	--templateArgs['debug'] = mw.dumpObject (templateArgs)&lt;br /&gt;
    --]]&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
--[[ -------------------------------------------------------------------------------------------&lt;br /&gt;
	function p.validateParams(tempArgs)&lt;br /&gt;
	    - uses list of valid parametere accepted by template (from data subpage)&lt;br /&gt;
	        params.validList = {&lt;br /&gt;
						automatictaxobox = params.validAutomatictaxobox,&lt;br /&gt;
						speciesbox       = params.validSpeciesbox,&lt;br /&gt;
						subspeciesbox    = params.validSubspeciesbox,&lt;br /&gt;
					    infraspeciesbox  = params.validInfraspeciesbox,	}&lt;br /&gt;
	    - invalid parameters are retaining in tempArgs&lt;br /&gt;
]]&lt;br /&gt;
function p.validateParams(tempArgs)&lt;br /&gt;
&lt;br /&gt;
	local validParamsList = paramData.validList[info.auto]&lt;br /&gt;
	&lt;br /&gt;
    if type(validParamsList) == 'table' then      -- if checklist for valid parameters&lt;br /&gt;
	    for k,v in pairs(validParamsList) do&lt;br /&gt;
	       if tempArgs[v] then                    -- v contains the name of valid parameter key&lt;br /&gt;
	       	   templateArgs[v] = tempArgs[v]&lt;br /&gt;
	       	   tempArgs[v] = nil                  -- delete so only invalid arguments left in tempArgs&lt;br /&gt;
	       end                                    -- TODO use these for tracking categories (partially done)&lt;br /&gt;
	    end&lt;br /&gt;
	    &lt;br /&gt;
	    tempArgs['auto'] = nil                    -- this if not on tracking list but used internally&lt;br /&gt;
	    if #tempArgs  then                        -- table  not empty -- if next(tempArgs) ~= nil then&lt;br /&gt;
		    templateArgs['debug'] =  mw.dumpObject(tempArgs) &lt;br /&gt;
		    info.parameterCategory = info.parameterCategory .. &amp;quot;[[Category:Automatic taxobox with unsupported parameters]]&amp;quot;&lt;br /&gt;
		end	&lt;br /&gt;
&lt;br /&gt;
   else -- checklist for valid parameters not available for this option&lt;br /&gt;
	    for k,v in pairs(tempArgs) do&lt;br /&gt;
	    	templateArgs[k] = v&lt;br /&gt;
        end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	&lt;br /&gt;
    --DISABLE the parameter checking is currently being call from the template (this is temporary)&lt;br /&gt;
    -- this function checks for bad combinations (e.g. genus without species)&lt;br /&gt;
    --info.parameterCategory = p._checkParameters(frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-------------------------------------- CATEGORY FUNCTIONS --------------------------------&lt;br /&gt;
-- function for external invoke&lt;br /&gt;
function p.checkParameters(frame)&lt;br /&gt;
    p.getArgs(frame) -- populates templateArgs[] with parameters, after alias checking and validation of supported parameters&lt;br /&gt;
                     -- then calls p._checkParameters for addition parameter checking &lt;br /&gt;
    &lt;br /&gt;
    return info.parameterCategory -- return tracking categories&lt;br /&gt;
end&lt;br /&gt;
-- function that checks for extraneous parameters&lt;br /&gt;
function p._checkParameters(tempArgs)&lt;br /&gt;
    &lt;br /&gt;
    local categoryString = &amp;quot;&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
    -- (1) check for speciesbox with taxon and (genus or species)&lt;br /&gt;
    if info.auto == &amp;quot;speciesbox&amp;quot; then&lt;br /&gt;
	    if templateArgs['taxon'] and (templateArgs['genus'] or templateArgs['species']) then&lt;br /&gt;
	    	categoryString = categoryString .. &amp;quot;[[Category:Speciesboxes using taxon with genus or species parameters]]&amp;quot;&lt;br /&gt;
	    end&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- (2) check for manual taxobox parameters&lt;br /&gt;
	for k,v in pairs(paramData.taxonRanks) do --run through manual taxobox parameter list&lt;br /&gt;
		&lt;br /&gt;
		if v == 'genus' then break end -- don't check at genus and below&lt;br /&gt;
		&lt;br /&gt;
		if tempArgs[v] then -- use tempArgs as these won't have been validated (produces redundant category?)&lt;br /&gt;
		   	categoryString = categoryString .. &amp;quot;[[Category:Automatic taxoboxes using manual rank parameters]]&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local orphan = false&lt;br /&gt;
	local dependentParams = { &lt;br /&gt;
		image_caption =  'image',   image_alt = 'image',   image_upright = 'image', image_width = 'image',&lt;br /&gt;
		image2_caption =  'image2', image2_alt = 'image2', image2_upright = 'image2', image2_width = 'image2',&lt;br /&gt;
		range_map_caption = 'range_map', range_map_alt = 'range_map',   range_map_upright = 'range_map', range_map_width = 'range_map',&lt;br /&gt;
		range_map2_caption = 'range_map2', range_map2_alt = 'range_map2',   range_map2_upright = 'range_map2', range_map2_width = 'range_map2',&lt;br /&gt;
		range_map3_caption = 'range_map3', range_map3_alt = 'range_map3',   range_map3_upright = 'range_map3', range_map3_width = 'range_map3',&lt;br /&gt;
		range_map4_caption = 'range_map4', range_map4_alt = 'range_map4',   range_map4_upright = 'range_map4', range_map4_width = 'range_map4',&lt;br /&gt;
	}&lt;br /&gt;
	for k,v in pairs(dependentParams) do&lt;br /&gt;
	    if templateArgs[k] and not templateArgs[v] then orphan = true end&lt;br /&gt;
	    --templateArgs[k] = nil -- delete orphaned variable&lt;br /&gt;
	end&lt;br /&gt;
	if orphan then &lt;br /&gt;
		categoryString = categoryString .. &amp;quot;[[Category:Automatic taxoboxes with orphaned dependent parameters]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- paraphyletic groups using manual taxonomy&lt;br /&gt;
	--categoryString = categoryString .. &amp;quot;[[Category:&amp;quot; .. mw.getCurrentFrame():getParent():getTitle()  ..&amp;quot;]]&amp;quot;&lt;br /&gt;
	if mw.getCurrentFrame():getParent():getTitle() == &amp;quot;Template:Paraphyletic group&amp;quot; then&lt;br /&gt;
		if info.auto ~= &amp;quot;yes&amp;quot; and info.auto ~= &amp;quot;virus&amp;quot; and info.auto ~= &amp;quot;virusbox&amp;quot; and info.auto ~= &amp;quot;hybridbox&amp;quot;&lt;br /&gt;
		       and info.auto ~= &amp;quot;speciesbox&amp;quot; and info.auto ~= &amp;quot;subspeciesbox&amp;quot; and info.auto ~= &amp;quot;infraspeciesbox&amp;quot; then&lt;br /&gt;
			categoryString = categoryString .. &amp;quot;[[Category:Paraphyletic group infoboxes with manual taxonomy]]&amp;quot; &lt;br /&gt;
		end&lt;br /&gt;
		--categoryString = categoryString .. &amp;quot;[[Category:Paraphyletic group infoboxes]]&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- add to category list&lt;br /&gt;
	info.parameterCategory = info.parameterCategory .. categoryString&lt;br /&gt;
	&lt;br /&gt;
	--return  categoryString&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>alpha&gt;Sandeep</name></author>
	</entry>
</feed>