<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://hna.wiki/Module:Icon?action=history&amp;feed=atom</id>
	<title>Module:Icon - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://hna.wiki/Module:Icon?action=history&amp;feed=atom"/>
	<link rel="alternate" type="text/html" href="https://hna.wiki/Module:Icon?action=history"/>
	<updated>2026-07-15T02:54:27Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://hna.wiki/Module:Icon?diff=9229&amp;oldid=prev</id>
		<title>Valaerys: testing</title>
		<link rel="alternate" type="text/html" href="https://hna.wiki/Module:Icon?diff=9229&amp;oldid=prev"/>
		<updated>2026-07-14T22:59:44Z</updated>

		<summary type="html">&lt;p&gt;testing&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&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&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 22:59, 14 July 2026&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-l157&quot;&gt;Line 157:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 157:&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 characters = mw.loadData(&amp;#039;Module:Card/items&amp;#039;)&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 characters = mw.loadData(&amp;#039;Module:Card/items&amp;#039;)&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 ALL_DATA = {-- list of {type, data} in the order that untyped items should get checked&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 ALL_DATA = {-- list of {type, data} in the order that untyped items should get checked&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;	{&#039;Character&#039;, mw.loadData(&#039;Module:Card/characters&#039;)},&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;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-- &lt;/ins&gt;{&#039;Character&#039;, mw.loadData(&#039;Module:Card/characters&#039;)},&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;	{&#039;Anima&#039;, mw.loadData(&#039;Module:Card/animas&#039;)},&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;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-- &lt;/ins&gt;{&#039;Anima&#039;, mw.loadData(&#039;Module:Card/animas&#039;)},&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;	{&#039;Relic&#039;, mw.loadData(&#039;Module:Card/relics&#039;)},&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;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-- &lt;/ins&gt;{&#039;Relic&#039;, mw.loadData(&#039;Module:Card/relics&#039;)},&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;	{&#039;Nexus Strand&#039;, mw.loadData(&#039;Module:Card/nexusstrands&#039;)},&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;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-- &lt;/ins&gt;{&#039;Nexus Strand&#039;, mw.loadData(&#039;Module:Card/nexusstrands&#039;)},&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;	{&amp;#039;Item&amp;#039;, mw.loadData(&amp;#039;Module:Card/items&amp;#039;)} -- Always leave this one as the last in this list&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;	{&amp;#039;Item&amp;#039;, mw.loadData(&amp;#039;Module:Card/items&amp;#039;)} -- Always leave this one as the last in this list&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;!-- diff cache key mediawiki:diff:1.41:old-9228:rev-9229:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Valaerys</name></author>
	</entry>
	<entry>
		<id>https://hna.wiki/Module:Icon?diff=9228&amp;oldid=prev</id>
		<title>Valaerys at 22:52, 14 July 2026</title>
		<link rel="alternate" type="text/html" href="https://hna.wiki/Module:Icon?diff=9228&amp;oldid=prev"/>
		<updated>2026-07-14T22:52:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&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&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 22:52, 14 July 2026&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-l33&quot;&gt;Line 33:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 33:&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;		label=&amp;#039;File Prefix&amp;#039;,&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;		label=&amp;#039;File Prefix&amp;#039;,&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;		description=&amp;#039;The file prefix to prepend to {labelPrefix}Name.&amp;#039;,&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;		description=&amp;#039;The file prefix to prepend to {labelPrefix}Name.&amp;#039;,&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;		example={&#039;Item&#039;, &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Light Cone&lt;/del&gt;&#039;, &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Character&lt;/del&gt;&#039;, &#039;Icon&#039;}&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;		example={&#039;Item&#039;, &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nexus Strand&lt;/ins&gt;&#039;, &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Relic&lt;/ins&gt;&#039;, &#039;Icon&#039;}&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;	{name=&amp;#039;suffix&amp;#039;, displayDefault=&amp;#039;determined based on {labelPrefix}Name/{labelPrefix}Type&amp;#039;,&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;	{name=&amp;#039;suffix&amp;#039;, displayDefault=&amp;#039;determined based on {labelPrefix}Name/{labelPrefix}Type&amp;#039;,&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-l158&quot;&gt;Line 158:&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;local ALL_DATA = {-- list of {type, data} in the order that untyped items should get checked&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 ALL_DATA = {-- list of {type, data} in the order that untyped items should get checked&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;	{&amp;#039;Character&amp;#039;, mw.loadData(&amp;#039;Module:Card/characters&amp;#039;)},&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;	{&amp;#039;Character&amp;#039;, mw.loadData(&amp;#039;Module:Card/characters&amp;#039;)},&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	{&#039;Anima&#039;, mw.loadData(&#039;Module:Card/animas&#039;)},&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	{&#039;Relic&#039;, mw.loadData(&#039;Module:Card/relics&#039;)},&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&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;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;	{&#039;Nexus Strand&#039;, mw.loadData(&#039;Module:Card/nexusstrands&#039;)},&lt;/ins&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;	{&amp;#039;Item&amp;#039;, mw.loadData(&amp;#039;Module:Card/items&amp;#039;)} -- Always leave this one as the last in this list&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;	{&amp;#039;Item&amp;#039;, mw.loadData(&amp;#039;Module:Card/items&amp;#039;)} -- Always leave this one as the last in this list&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 colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l302&quot;&gt;Line 302:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 305:&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;     The main entry point for other modules.&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;     The main entry point for other modules.&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;     Creates and returns an Image object with the given arguments.&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;     Creates and returns an Image object with the given arguments.&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;     Infers `args.type` if `args.name` matches a known item/character/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Light Cone&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;     Infers `args.type` if `args.name` matches a known item/character/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;relic&lt;/ins&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;     @param {table} args Table containing the arguments:&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;     @param {table} args Table containing the arguments:&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;     @param[opt] {string} args.name The name of the image.&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;     @param[opt] {string} args.name The name of the image.&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-l352&quot;&gt;Line 352:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 355:&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;     -- set defaults and load data based on type&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;     -- set defaults and load data based on type&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 image_type == &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Character&#039; or image_type == &#039;Currency Wars &lt;/del&gt;Character&#039; then&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 image_type == &#039;Character&#039; 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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		image.prefix = &#039;Character&#039;&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;		image.defaults.suffix = &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Character &lt;/ins&gt;Icon&#039;&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;		image.defaults.suffix = &#039;Icon&#039;&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;     elseif image_type == &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Anima&lt;/ins&gt;&#039; 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;     elseif image_type == &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Element&lt;/del&gt;&#039; then&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;		image.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;defaults.suffix &lt;/ins&gt;= &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Anima Icon&lt;/ins&gt;&#039;&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;		image.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;prefix &lt;/del&gt;= &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Type&lt;/del&gt;&#039;&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;	elseif image_type == &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Item&lt;/ins&gt;&#039; 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;	elseif image_type == &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Consumable&lt;/del&gt;&#039; then&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;		image.prefix = &amp;#039;Item&amp;#039;&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;		image.prefix = &amp;#039;Item&amp;#039;&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;	elseif image_type == &amp;#039;Relic&amp;#039; 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;	elseif image_type == &amp;#039;Relic&amp;#039; 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;		image.prefix = &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Item&lt;/del&gt;&#039;&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;		image.prefix = &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Relic&lt;/ins&gt;&#039;&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;	elseif image_type == &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Profile Picture&lt;/del&gt;&#039; then&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;	elseif image_type == &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nexus Strand&lt;/ins&gt;&#039; 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;		image.prefix = &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Profile Picture&#039;&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;		image.prefix = &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Nexus Strand&lt;/ins&gt;&#039;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		image.link = image.name&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;		image.name = image.name:gsub(&#039; %(Profile Picture%)&#039;, &#039;&#039;)&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;	elseif image_type == &#039;Enemy&#039; or image_type == &#039;Aether Enemy&#039; then&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;		image.prefix = &#039;Icon Enemy&#039;&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;		image.link = (data and data.link) or image.name&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;		image.defaults.suffix = &#039;&lt;/del&gt;&#039;&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;	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;	return image, image_type, data&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 image, image_type, data&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mediawiki:diff:1.41:old-9224:rev-9228:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Valaerys</name></author>
	</entry>
	<entry>
		<id>https://hna.wiki/Module:Icon?diff=9224&amp;oldid=prev</id>
		<title>Valaerys: Created page with &quot;-- Module copied from the Genshin Impact wiki -- Revision as of 4-29-2023  --- A library that other modules can use to create icon images with automatic prefix/suffix settings for items, characters, and weapons. --  (Other icon types must have their types/suffixes specified manually.) -- --  &#039;&#039;&#039;Note:&#039;&#039;&#039; this module is (currently) NOT related to Template:Icon. -- --  @script Icon  local TemplateData = require(&#039;Module:TemplateData&#039;)  local p = {}  -- icon arg defaults...&quot;</title>
		<link rel="alternate" type="text/html" href="https://hna.wiki/Module:Icon?diff=9224&amp;oldid=prev"/>
		<updated>2026-07-14T22:27:00Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-- Module copied from the Genshin Impact wiki -- Revision as of 4-29-2023  --- A library that other modules can use to create icon images with automatic prefix/suffix settings for items, characters, and weapons. --  (Other icon types must have their types/suffixes specified manually.) -- --  &amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; this module is (currently) NOT related to &lt;a href=&quot;/Template:Icon&quot; title=&quot;Template:Icon&quot;&gt;Template:Icon&lt;/a&gt;. -- --  @script Icon  local TemplateData = require(&amp;#039;Module:TemplateData&amp;#039;)  local p = {}  -- icon arg defaults...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Module copied from the Genshin Impact wiki&lt;br /&gt;
-- Revision as of 4-29-2023&lt;br /&gt;
&lt;br /&gt;
--- A library that other modules can use to create icon images with automatic prefix/suffix settings for items, characters, and weapons.&lt;br /&gt;
--  (Other icon types must have their types/suffixes specified manually.)&lt;br /&gt;
--&lt;br /&gt;
--  &amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; this module is (currently) NOT related to [[Template:Icon]].&lt;br /&gt;
--&lt;br /&gt;
--  @script Icon&lt;br /&gt;
&lt;br /&gt;
local TemplateData = require(&amp;#039;Module:TemplateData&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- icon arg defaults for template data&lt;br /&gt;
-- uses list format to ensure that the order is the same when added to another list of args using `p.addIconArgs`&lt;br /&gt;
local ICON_ARGS = {&lt;br /&gt;
	{name=&amp;#039;name&amp;#039;,&lt;br /&gt;
		label=&amp;#039;Name&amp;#039;,&lt;br /&gt;
		description=&amp;#039;The name of the {labelPrefix}image.&amp;#039;,&lt;br /&gt;
		example={&amp;#039;Fire&amp;#039;}&lt;br /&gt;
	},&lt;br /&gt;
	{name=&amp;#039;link&amp;#039;, displayType=&amp;#039;wiki-page-name&amp;#039;, defaultFrom=&amp;#039;name&amp;#039;,&lt;br /&gt;
		label=&amp;#039;Link&amp;#039;,&lt;br /&gt;
		description=&amp;#039;The page that the {labelPrefix}image links to.&amp;#039;&lt;br /&gt;
	},&lt;br /&gt;
	{name=&amp;#039;extension&amp;#039;, alias=&amp;#039;ext&amp;#039;, default=&amp;#039;png&amp;#039;,&lt;br /&gt;
		label=&amp;#039;File Extension&amp;#039;,&lt;br /&gt;
		description=&amp;#039;The file extension for the {labelPrefix}image.&amp;#039;,&lt;br /&gt;
		example={&amp;#039;png&amp;#039;, &amp;#039;jpg&amp;#039;, &amp;#039;jpeg&amp;#039;, &amp;#039;gif&amp;#039;},&lt;br /&gt;
	},&lt;br /&gt;
	{name=&amp;#039;type&amp;#039;, displayDefault=&amp;#039;determined based on {labelPrefix}Name; \&amp;#039;Item\&amp;#039; if unknown&amp;#039;,&lt;br /&gt;
		label=&amp;#039;File Prefix&amp;#039;,&lt;br /&gt;
		description=&amp;#039;The file prefix to prepend to {labelPrefix}Name.&amp;#039;,&lt;br /&gt;
		example={&amp;#039;Item&amp;#039;, &amp;#039;Light Cone&amp;#039;, &amp;#039;Character&amp;#039;, &amp;#039;Icon&amp;#039;}&lt;br /&gt;
	},&lt;br /&gt;
	{name=&amp;#039;suffix&amp;#039;, displayDefault=&amp;#039;determined based on {labelPrefix}Name/{labelPrefix}Type&amp;#039;,&lt;br /&gt;
		label=&amp;#039;File Suffix&amp;#039;,&lt;br /&gt;
		description=&amp;#039;The file suffix to append to {labelPrefix}Name.&amp;#039;,&lt;br /&gt;
		example={&amp;#039;Icon&amp;#039;, &amp;#039;Thumb&amp;#039;, &amp;#039;2nd&amp;#039;, &amp;#039;White&amp;#039;}&lt;br /&gt;
	},&lt;br /&gt;
	{name=&amp;#039;size&amp;#039;, default=&amp;#039;20&amp;#039;,&lt;br /&gt;
		label=&amp;#039;Size&amp;#039;,&lt;br /&gt;
		description=&amp;#039;The height and width of the {labelPrefix}image in pixels. A single number will be used for both height and width; to specify them separately, use &amp;quot;wxh&amp;quot; format.&amp;#039;,&lt;br /&gt;
		example={&amp;#039;20&amp;#039;, &amp;#039;20x10&amp;#039;, &amp;#039;20x&amp;#039;, &amp;#039;x20&amp;#039;}&lt;br /&gt;
	},&lt;br /&gt;
	{name=&amp;#039;alt&amp;#039;, defaultFrom=&amp;#039;name&amp;#039;, displayDefault=&amp;#039;determined based on {labelPrefix}Name&amp;#039;,&lt;br /&gt;
		label=&amp;#039;Alt Text&amp;#039;,&lt;br /&gt;
		description=&amp;#039;The alt text of the {labelPrefix}image.&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
	{name=&amp;#039;class&amp;#039;, default=&amp;#039;&amp;#039;, displayDefault=&amp;#039;N/A&amp;#039;,&lt;br /&gt;
		label=&amp;#039;Additional Classes&amp;#039;,&lt;br /&gt;
		description=&amp;#039;Additional CSS classes to apply to the resulting img element.&amp;#039;,&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--- Returns a table version of the input.&lt;br /&gt;
--  @param v A table or an item that belongs in a table.&lt;br /&gt;
--  @return {table}&lt;br /&gt;
local function ensureTable(v)&lt;br /&gt;
	if type(v) == &amp;#039;table&amp;#039; then return v end&lt;br /&gt;
	return {v}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--- A special constant that can be used as a value in the `overrides` parameter for `addIconArgs`&lt;br /&gt;
--  to disable the given base config or TemplateData key.&lt;br /&gt;
p.EXCLUDE = {};&lt;br /&gt;
&lt;br /&gt;
--- Copy entries from b into a, excluding values that are `p.EXCLUDE`.&lt;br /&gt;
--  @param {table} a Table to insert into.&lt;br /&gt;
--  @param {table} b Table to copy from.&lt;br /&gt;
local function copyTable(a, b)&lt;br /&gt;
	for k, v in pairs(b) do &lt;br /&gt;
		if v == p.EXCLUDE then&lt;br /&gt;
			v = nil&lt;br /&gt;
		end&lt;br /&gt;
		a[k] = v&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--- A function that other modules can use to append Icon arguments to their template data.&lt;br /&gt;
--  @param {TemplateData#ArgumentConfigList} base The template data to append to.&lt;br /&gt;
--         If any configs have a `name` that matches an Icon argument&amp;#039;s (with `namePrefix`)&lt;br /&gt;
--         and a property `placeholderFor` set to `&amp;#039;Module:Icon&amp;#039;`, then the&lt;br /&gt;
--         corresponding Icon argument will replace it instead of being appended.&lt;br /&gt;
--         (This allows argument order to be changed for [[Module:TemplateData]]&amp;#039;s&lt;br /&gt;
--         documentation generation.)&lt;br /&gt;
--  @param {string} namePrefix A string to prepend to all parameter names.&lt;br /&gt;
--  @param {string} labelPrefix A string to prepend to all parameter labels&lt;br /&gt;
--    (the names displayed in documentation).&lt;br /&gt;
--  @param {TemplateData#ArgumentConfigMap} overrides A table of overrides to configure the template data.&lt;br /&gt;
--    Keys should be parameter names, and values are tables of TemplateData&lt;br /&gt;
--    configuration objects to merge with the default configuration.&lt;br /&gt;
--    These configuration objects can use @{Icon.EXCLUDE} as values to disable&lt;br /&gt;
--    the corresponding default configuration key (e.g., to disable a default value&lt;br /&gt;
--    or alias without adding a new one).&lt;br /&gt;
function p.addIconArgs(baseConfigs, namePrefix, labelPrefix, overrides)&lt;br /&gt;
	-- preprocessing: save position of each placeholder config&lt;br /&gt;
	local argLocations = {}&lt;br /&gt;
	for i, config in ipairs(baseConfigs) do&lt;br /&gt;
		if config.placeholderFor == &amp;#039;Module:Icon&amp;#039; then&lt;br /&gt;
			argLocations[config.name] = i&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- main loop: prepend namePrefix and labelPrefix where needed&lt;br /&gt;
	-- and add configs to baseConfigs&lt;br /&gt;
	for _, config in ipairs(ICON_ARGS) do&lt;br /&gt;
		local override = overrides[config.name]&lt;br /&gt;
		if override ~= false and override ~= p.EXCLUDE then&lt;br /&gt;
			local c = {}&lt;br /&gt;
			copyTable(c, config)&lt;br /&gt;
			c.name = namePrefix .. c.name&lt;br /&gt;
			c.label = labelPrefix .. c.label&lt;br /&gt;
			if c.defaultFrom then&lt;br /&gt;
				c.defaultFrom = namePrefix .. c.defaultFrom&lt;br /&gt;
			end&lt;br /&gt;
			if c.alias then&lt;br /&gt;
				local aliases = {}&lt;br /&gt;
				for _, a in ipairs(ensureTable(c.alias)) do&lt;br /&gt;
					table.insert(aliases, namePrefix .. a)&lt;br /&gt;
				end&lt;br /&gt;
				c.alias = aliases&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if override then&lt;br /&gt;
				copyTable(c, override)&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if c.description then&lt;br /&gt;
				c.description = c.description:gsub(&amp;#039;{labelPrefix}&amp;#039;, labelPrefix)&lt;br /&gt;
			end&lt;br /&gt;
			if c.displayDefault then&lt;br /&gt;
				c.displayDefault = c.displayDefault:gsub(&amp;#039;{labelPrefix}&amp;#039;, labelPrefix)&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			local placeholderIndex = argLocations[c.name]&lt;br /&gt;
			if placeholderIndex then&lt;br /&gt;
				baseConfigs[placeholderIndex] = c&lt;br /&gt;
			else&lt;br /&gt;
				table.insert(baseConfigs, c)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function extendTable(base, extra)&lt;br /&gt;
	out = {}&lt;br /&gt;
	setmetatable(out, {&lt;br /&gt;
		__index = function(t, key)&lt;br /&gt;
			local val = base[key]&lt;br /&gt;
			if val ~= nil then return val else return extra[key] end&lt;br /&gt;
		end&lt;br /&gt;
	})&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
--local characters = mw.loadData(&amp;#039;Module:Card/items&amp;#039;)&lt;br /&gt;
local ALL_DATA = {-- list of {type, data} in the order that untyped items should get checked&lt;br /&gt;
	{&amp;#039;Character&amp;#039;, mw.loadData(&amp;#039;Module:Card/characters&amp;#039;)},&lt;br /&gt;
	{&amp;#039;Item&amp;#039;, mw.loadData(&amp;#039;Module:Card/items&amp;#039;)} -- Always leave this one as the last in this list&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--- A basic image type with filename prefix/suffix support.&lt;br /&gt;
--  Extends @{TemplateData#TableWithDefaults} with image-related properties,&lt;br /&gt;
--  allowing default property values to be customized after creation.&lt;br /&gt;
--&lt;br /&gt;
--  Image objects are created by @{Icon.createIcon}.&lt;br /&gt;
--  Use @{Image:buildString} to convert to wikitext.&lt;br /&gt;
--  @type Image&lt;br /&gt;
local IMAGE_ARGS = {&lt;br /&gt;
	size = {default=&amp;#039;&amp;#039;},&lt;br /&gt;
	name = {default=&amp;#039;&amp;#039;, alias=1},&lt;br /&gt;
	prefix = {default=&amp;#039;&amp;#039;},&lt;br /&gt;
	prefixSeparator = {default=&amp;#039; &amp;#039;},&lt;br /&gt;
	suffix = {default=&amp;#039;&amp;#039;},&lt;br /&gt;
	suffixSeparator = {default=&amp;#039; &amp;#039;},&lt;br /&gt;
	extension = {default=&amp;#039;png&amp;#039;, alias=&amp;#039;ext&amp;#039;},&lt;br /&gt;
	link = {defaultFrom=&amp;#039;name&amp;#039;},&lt;br /&gt;
	alt = {defaultFrom=&amp;#039;name&amp;#039;},&lt;br /&gt;
	class = {default=&amp;#039;&amp;#039;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function buildImageFullPrefix(img)&lt;br /&gt;
	local prefix = img.prefix&lt;br /&gt;
	if prefix ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		return prefix .. img.prefixSeparator&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
local function buildImageFullSuffix(img)&lt;br /&gt;
	local suffix = img.suffix&lt;br /&gt;
	if suffix ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		return img.suffixSeparator .. suffix&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
local function buildImageFilename(img)&lt;br /&gt;
	if img.name == &amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;br /&gt;
	return &amp;#039;File:&amp;#039; .. buildImageFullPrefix(img) .. img.name .. buildImageFullSuffix(img) .. &amp;#039;.&amp;#039; .. img.extension&lt;br /&gt;
end&lt;br /&gt;
local function buildImageSizeString(img)&lt;br /&gt;
	local size = img.size&lt;br /&gt;
	if size == nil or size == &amp;#039;&amp;#039; then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	size = tostring(size)&lt;br /&gt;
	if size:find(&amp;#039;x&amp;#039;, 1, true) then&lt;br /&gt;
		return size .. &amp;#039;px&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return size .. &amp;#039;x&amp;#039; .. size .. &amp;#039;px&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
--[[&lt;br /&gt;
Returns wikitext that will display this image.&lt;br /&gt;
@return {string} Wikitext&lt;br /&gt;
@function Image:buildString&lt;br /&gt;
--]]&lt;br /&gt;
local function buildImageString(img)&lt;br /&gt;
	local filename = buildImageFilename(img)&lt;br /&gt;
	if filename == &amp;#039;&amp;#039; then return &amp;#039;&amp;#039; end&lt;br /&gt;
	return &amp;#039;[[&amp;#039; .. filename .. &amp;#039;|&amp;#039; .. buildImageSizeString(img) .. &amp;#039;|link=&amp;#039; .. img.link .. &amp;#039;|alt=&amp;#039; .. img.alt .. &amp;#039;|class=&amp;#039; .. img.class .. &amp;#039;]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
Creates an `Image` object with the given properties.&lt;br /&gt;
@param {table} args A table of `Image` properties that to assign to the new `Image`.&lt;br /&gt;
@see @{Image} for property documentation&lt;br /&gt;
@return {Image} The new `Image` object.&lt;br /&gt;
@constructor&lt;br /&gt;
--]]&lt;br /&gt;
local function createImage(args)&lt;br /&gt;
	local out&lt;br /&gt;
	if type(args) == &amp;#039;table&amp;#039; then&lt;br /&gt;
		out = TemplateData.processArgs(args, IMAGE_ARGS, {preserveDefaults=true})&lt;br /&gt;
	else&lt;br /&gt;
		out = {name = args}&lt;br /&gt;
	end&lt;br /&gt;
	-- add buildString function to image directly, not to image.nonDefaults&lt;br /&gt;
	&lt;br /&gt;
	rawset(out, &amp;#039;buildString&amp;#039;, buildImageString)&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--- The name of the image. Used to determine filename.&lt;br /&gt;
--  @property {string} Image.name&lt;br /&gt;
&lt;br /&gt;
--- Maximum image size using wiki image syntax.&lt;br /&gt;
--  Unlike regular wiki image syntax, a single number specifies both height and width.&lt;br /&gt;
--  @property {string} Image.size&lt;br /&gt;
&lt;br /&gt;
--- Image file prefix.&lt;br /&gt;
--  @property {string} Image.prefix&lt;br /&gt;
&lt;br /&gt;
--- Appended to `prefix` if `prefix` is not empty. Defaults to a single space.&lt;br /&gt;
--  @property[opt] {string} Image.prefixSeparator&lt;br /&gt;
&lt;br /&gt;
--- Image file suffix.&lt;br /&gt;
--  @property {string} Image.suffix&lt;br /&gt;
&lt;br /&gt;
--- Prepended to `suffix` if `suffix` is not empty. Defaults to a single space.&lt;br /&gt;
--  @property {string} Image.suffixSeparator&lt;br /&gt;
&lt;br /&gt;
--- Image file extension. (Alias: `ext`.)&lt;br /&gt;
--  @property {string} Image.extension&lt;br /&gt;
&lt;br /&gt;
--- Image link. Also sets title (hover tooltip). Defaults to `name`.&lt;br /&gt;
--  @property {string} Image.link&lt;br /&gt;
&lt;br /&gt;
--- Image alt text. Defaults to `name`.&lt;br /&gt;
--  @property {string} Image.alt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--- A helper function for other modules to get icon args with a prefix from the given table.&lt;br /&gt;
--  @param {table} args A table containing icon args (and probably other args).&lt;br /&gt;
--  @param {string} prefix Prefix for keys to use when looking up entries from `args`.&lt;br /&gt;
--    If not specified, no prefix is used.&lt;br /&gt;
--  @return {table} A table containing only the extracted args, with the prefix removed from its keys.&lt;br /&gt;
function p.extractIconArgs(args, prefix)&lt;br /&gt;
	prefix = prefix or &amp;#039;&amp;#039;&lt;br /&gt;
	local out = TemplateData.createObjectWithDefaults()&lt;br /&gt;
	for _, config in pairs(ICON_ARGS) do&lt;br /&gt;
		out.defaults[config.name] = args.defaults[prefix .. config.name]&lt;br /&gt;
		out.nonDefaults[config.name] = args.nonDefaults[prefix .. config.name]&lt;br /&gt;
	end&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--- A helper function that removes one of the given prefixes from the given string.&lt;br /&gt;
--  @param {string} str The string from which to strip a prefix&lt;br /&gt;
--  @param {table} prefixes A table whose keys are the possible prefixes to strip from `str`&lt;br /&gt;
--  @return {string} The string with the prefix removed.&lt;br /&gt;
--  @return[opt] {string} The prefix that was removed, or `nil` if no prefix was found.&lt;br /&gt;
function p.stripPrefixes(str, prefixes)&lt;br /&gt;
	for prefix, _ in pairs(prefixes) do&lt;br /&gt;
		if string.sub(str, 1, string.len(prefix)) == prefix then&lt;br /&gt;
			return string.sub(str, string.len(prefix) + 1), prefix&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return str&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
    The main entry point for other modules.&lt;br /&gt;
    Creates and returns an Image object with the given arguments.&lt;br /&gt;
    Infers `args.type` if `args.name` matches a known item/character/Light Cone.&lt;br /&gt;
    @param {table} args Table containing the arguments:&lt;br /&gt;
    @param[opt] {string} args.name The name of the image.&lt;br /&gt;
                         Used to determine file name and set the default link and alt text.&lt;br /&gt;
                         If not specified, the output `Image` will produce empty wikitext.&lt;br /&gt;
    @param[opt] {string} args.link Image link. Also sets title (hover tooltip).&lt;br /&gt;
                         Defaults to `name`.&lt;br /&gt;
    @param[opt] {string} args.extension (alias: `ext`) Image file extension.&lt;br /&gt;
                         Defaults to &amp;#039;png&amp;#039;.&lt;br /&gt;
    @param[opt] {string} args.type Image type. Used to determine file prefix and default file suffix.&lt;br /&gt;
                         If not specified, type will be inferred if `args.name`&lt;br /&gt;
                         is a known item; otherwise, defaults to &amp;#039;Item&amp;#039;.&lt;br /&gt;
    @param[opt] {string} args.suffix File suffix override.&lt;br /&gt;
    @param[opt] {string} args.size Maximum image size using wiki image syntax.&lt;br /&gt;
                         Unlike regular wiki image syntax, specifying a single number will&lt;br /&gt;
                         set both height and width.&lt;br /&gt;
    @param[opt] {string} args.alt Image alt text. Defaults to `args.name`.&lt;br /&gt;
    @param[opt] {string} args.outfit Character outfit. Only applies to character images.&lt;br /&gt;
    @param[opt] {string} prefix Prefix to use when looking up arguments in `args`.&lt;br /&gt;
    @return {Image} The image for given arguments.&lt;br /&gt;
      Use `Image:buildString()` to get the wikitext for the image.&lt;br /&gt;
    @return {string} The image type.&lt;br /&gt;
    @return {TableWithDefaults} Associated data for given item (e.g., rarity, display name).&lt;br /&gt;
--]]&lt;br /&gt;
function p.createIcon(args, prefix)&lt;br /&gt;
	if prefix then&lt;br /&gt;
		args = p.extractIconArgs(args, prefix)&lt;br /&gt;
	end&lt;br /&gt;
	args = TemplateData.processArgs(args, ICON_ARGS, {preserveDefaults=true})&lt;br /&gt;
	--local baseName, prefix = p.stripPrefixes(args.name or &amp;#039;&amp;#039;, FOOD_PREFIXES)&lt;br /&gt;
	-- for now, there are no items that need special prefixes&lt;br /&gt;
	local baseName = args.name or &amp;#039;&amp;#039;&lt;br /&gt;
	local prefix = &amp;#039;&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	-- determine type by checking for data&lt;br /&gt;
	local image_type, data&lt;br /&gt;
	for i, v in ipairs(ALL_DATA) do&lt;br /&gt;
		image_type = v[1]&lt;br /&gt;
		if args.type == nil or args.type == image_type then&lt;br /&gt;
			data = v[2][baseName]&lt;br /&gt;
			if (not data) then data = v[2][baseName .. &amp;#039; (&amp;#039; .. image_type .. &amp;#039;)&amp;#039;] end&lt;br /&gt;
			if data then break end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	image_type = args.type or image_type -- in case args.type isn&amp;#039;t in ALL_DATA (e.g., Enemy, Wildlife)&lt;br /&gt;
	&lt;br /&gt;
	local image = createImage(args)&lt;br /&gt;
	image.prefix = image_type&lt;br /&gt;
    &lt;br /&gt;
    -- set defaults and load data based on type&lt;br /&gt;
    if image_type == &amp;#039;Character&amp;#039; or image_type == &amp;#039;Currency Wars Character&amp;#039; then&lt;br /&gt;
		image.prefix = &amp;#039;Character&amp;#039;&lt;br /&gt;
		image.defaults.suffix = &amp;#039;Icon&amp;#039;&lt;br /&gt;
    elseif image_type == &amp;#039;Element&amp;#039; then&lt;br /&gt;
		image.prefix = &amp;#039;Type&amp;#039;&lt;br /&gt;
	elseif image_type == &amp;#039;Consumable&amp;#039; then&lt;br /&gt;
		image.prefix = &amp;#039;Item&amp;#039;&lt;br /&gt;
	elseif image_type == &amp;#039;Relic&amp;#039; then&lt;br /&gt;
		image.prefix = &amp;#039;Item&amp;#039;&lt;br /&gt;
	elseif image_type == &amp;#039;Profile Picture&amp;#039; then&lt;br /&gt;
		image.prefix = &amp;#039;Profile Picture&amp;#039;&lt;br /&gt;
		image.link = image.name&lt;br /&gt;
		image.name = image.name:gsub(&amp;#039; %(Profile Picture%)&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	elseif image_type == &amp;#039;Enemy&amp;#039; or image_type == &amp;#039;Aether Enemy&amp;#039; then&lt;br /&gt;
		image.prefix = &amp;#039;Icon Enemy&amp;#039;&lt;br /&gt;
		image.link = (data and data.link) or image.name&lt;br /&gt;
		image.defaults.suffix = &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return image, image_type, data&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Valaerys</name></author>
	</entry>
</feed>