<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://hna.wiki/Module:Card_List?action=history&amp;feed=atom</id>
	<title>Module:Card List - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://hna.wiki/Module:Card_List?action=history&amp;feed=atom"/>
	<link rel="alternate" type="text/html" href="https://hna.wiki/Module:Card_List?action=history"/>
	<updated>2026-07-14T22:52:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://hna.wiki/Module:Card_List?diff=9222&amp;oldid=prev</id>
		<title>Kuhlau: default delim should just be semicolon for safety &amp; consistency</title>
		<link rel="alternate" type="text/html" href="https://hna.wiki/Module:Card_List?diff=9222&amp;oldid=prev"/>
		<updated>2026-07-14T22:23:14Z</updated>

		<summary type="html">&lt;p&gt;default delim should just be semicolon for safety &amp;amp; consistency&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:23, 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-l69&quot;&gt;Line 69:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 69:&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;function p._main(args)&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;function p._main(args)&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 input = args[1] or &amp;#039;&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 input = args[1] or &amp;#039;&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;	local itemDelim = args.delim ~= &#039;&#039; and args.delim or &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;,&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;	local itemDelim = args.delim ~= &#039;&#039; and args.delim or &#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;&lt;/ins&gt;&#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 countDelim = args.amount_delim or &amp;#039;*&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 countDelim = args.amount_delim or &amp;#039;*&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 noteDelim = args.note_delim or &amp;#039;/&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 noteDelim = args.note_delim or &amp;#039;/&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kuhlau</name></author>
	</entry>
	<entry>
		<id>https://hna.wiki/Module:Card_List?diff=902&amp;oldid=prev</id>
		<title>Mattk4355: Protected &quot;Module:Card List&quot;: High-Risk Module ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))</title>
		<link rel="alternate" type="text/html" href="https://hna.wiki/Module:Card_List?diff=902&amp;oldid=prev"/>
		<updated>2025-08-29T20:39:45Z</updated>

		<summary type="html">&lt;p&gt;Protected &amp;quot;&lt;a href=&quot;/Module:Card_List&quot; title=&quot;Module:Card List&quot;&gt;Module:Card List&lt;/a&gt;&amp;quot;: High-Risk Module ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&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 20:39, 29 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;!-- diff cache key mediawiki:diff:1.41:old-900:rev-902 --&gt;
&lt;/table&gt;</summary>
		<author><name>Mattk4355</name></author>
	</entry>
	<entry>
		<id>https://hna.wiki/Module:Card_List?diff=900&amp;oldid=prev</id>
		<title>Raven.Familiar: Created page with &quot;local p = {} local lib = require(&#039;Module:Feature&#039;) local Card = require(&#039;Module:Card&#039;)  function p.main(frame) 	local args = require(&#039;Module:Arguments&#039;).getArgs(frame, { 		parentFirst = true, 		removeBlanks = false, 		wrapper = { &#039;Template:Card List&#039; } 	}) 	return p._main(args) end  function p.splitNote(entry, notePattern) 	if notePattern then 		item, note = entry:match(notePattern) 		if item == nil then -- will be nil if note is not present 			return entry 		end 		retur...&quot;</title>
		<link rel="alternate" type="text/html" href="https://hna.wiki/Module:Card_List?diff=900&amp;oldid=prev"/>
		<updated>2025-08-29T20:38:47Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local p = {} local lib = require(&amp;#039;Module:Feature&amp;#039;) local Card = require(&amp;#039;Module:Card&amp;#039;)  function p.main(frame) 	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, { 		parentFirst = true, 		removeBlanks = false, 		wrapper = { &amp;#039;Template:Card List&amp;#039; } 	}) 	return p._main(args) end  function p.splitNote(entry, notePattern) 	if notePattern then 		item, note = entry:match(notePattern) 		if item == nil then -- will be nil if note is not present 			return entry 		end 		retur...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
local lib = require(&amp;#039;Module:Feature&amp;#039;)&lt;br /&gt;
local Card = require(&amp;#039;Module:Card&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, {&lt;br /&gt;
		parentFirst = true,&lt;br /&gt;
		removeBlanks = false,&lt;br /&gt;
		wrapper = { &amp;#039;Template:Card List&amp;#039; }&lt;br /&gt;
	})&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.splitNote(entry, notePattern)&lt;br /&gt;
	if notePattern then&lt;br /&gt;
		item, note = entry:match(notePattern)&lt;br /&gt;
		if item == nil then -- will be nil if note is not present&lt;br /&gt;
			return entry&lt;br /&gt;
		end&lt;br /&gt;
		return item, note&lt;br /&gt;
	end&lt;br /&gt;
	return entry&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.splitParams(entry, paramDelim)&lt;br /&gt;
	if entry:find(&amp;#039;{.-}&amp;#039;) then&lt;br /&gt;
		local params = string.match(entry, &amp;#039;{(.-)}&amp;#039;)&lt;br /&gt;
		entry = entry:gsub(&amp;#039;{.-}&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		params = lib.split(params, paramDelim)&lt;br /&gt;
		local returns = {}&lt;br /&gt;
		for i, param in ipairs(params) do&lt;br /&gt;
			local name, val = string.match(param, &amp;#039;^%s*(.-)%s*=%s*(.-)%s*$&amp;#039;)&lt;br /&gt;
			if name ~= nil and name ~= &amp;#039;&amp;#039; and val ~= nil then --named params&lt;br /&gt;
				returns[name] = val&lt;br /&gt;
			elseif param ~= nil and param ~= &amp;#039;&amp;#039; then --unnamed params&lt;br /&gt;
				table.insert(returns, param)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		return entry, returns&lt;br /&gt;
	end&lt;br /&gt;
	return entry, {}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.sortPairs(dataPairs)&lt;br /&gt;
	local overrideData = mw.loadData(&amp;#039;Module:Card List/SortOverrides&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	table.sort(dataPairs, function(pair0, pair1)&lt;br /&gt;
		local item0, item1 = pair0[2] or pair0, pair1[2] or pair1&lt;br /&gt;
		&lt;br /&gt;
		local override0, override1 = overrideData[item0.id], overrideData[item1.id]&lt;br /&gt;
		local rarity0 = math.min(tonumber(item0.rarity) or tonumber(pair0[1] and pair0[1].rarity) or 3, 5)&lt;br /&gt;
		local rarity1 = math.min(tonumber(item1.rarity) or tonumber(pair1[1] and pair1[1].rarity) or 3, 5)&lt;br /&gt;
		&lt;br /&gt;
		-- in-game, item lists are sorted based on three criteria:&lt;br /&gt;
		-- 1) ItemDisplaySort position overrides, ascending&lt;br /&gt;
		-- 2) rarity, descending&lt;br /&gt;
		-- 3) item id, ascending&lt;br /&gt;
		-- these variables condense this criteria into a single number for comparison&lt;br /&gt;
		local key0 = override0 or (((6 - rarity0) * 10000000) + (tonumber(item0.id) or 9999999))&lt;br /&gt;
		local key1 = override1 or (((6 - rarity1) * 10000000) + (tonumber(item1.id) or 9999999))&lt;br /&gt;
		&lt;br /&gt;
		return key0 &amp;lt; key1&lt;br /&gt;
	end)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- all the non-boolean params except note_delim&lt;br /&gt;
local PARAMS_NOT_SUPPORTING_BLANKS = {&amp;quot;caption&amp;quot;, &amp;quot;text&amp;quot;, &amp;quot;amount&amp;quot;, &amp;quot;delim&amp;quot;, &amp;quot;amount_delim&amp;quot;, &amp;quot;type&amp;quot;, &amp;quot;caption_width&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local input = args[1] or &amp;#039;&amp;#039;&lt;br /&gt;
	local itemDelim = args.delim ~= &amp;#039;&amp;#039; and args.delim or &amp;#039;,&amp;#039;&lt;br /&gt;
	local countDelim = args.amount_delim or &amp;#039;*&amp;#039;&lt;br /&gt;
	local noteDelim = args.note_delim or &amp;#039;/&amp;#039;&lt;br /&gt;
	local paramDelim = args.param_delim or &amp;#039;$&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	--= handle blanks for non-boolean params&lt;br /&gt;
	for _, paramName in ipairs(PARAMS_NOT_SUPPORTING_BLANKS) do&lt;br /&gt;
		local value = args[paramName]&lt;br /&gt;
		if value == &amp;quot;&amp;quot; then&lt;br /&gt;
			args[paramName] = nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- put all text after the first noteDelim into the second capture&lt;br /&gt;
	local notePattern&lt;br /&gt;
	if lib.isNotEmpty(noteDelim) then&lt;br /&gt;
		notePattern = &amp;quot;^(.-)&amp;quot; .. noteDelim .. &amp;quot;(.*)$&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local containerClass = &amp;quot;card-list-container &amp;quot;&lt;br /&gt;
	if args.mobile_list then&lt;br /&gt;
		containerClass = containerClass .. &amp;quot;card-mobile-list &amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	if lib.isNotEmpty(args.class) then&lt;br /&gt;
		containerClass = containerClass .. args.class&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local result = mw.html.create():tag(&amp;quot;span&amp;quot;):addClass(containerClass)&lt;br /&gt;
	local categories = mw.html.create()&lt;br /&gt;
	local splitSett = {&lt;br /&gt;
		noTrim      = lib.ternary(args.notrim, false, true),&lt;br /&gt;
		removeEmpty = true&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local cardPairs = {}&lt;br /&gt;
	&lt;br /&gt;
	for entry in lib.gsplit(input, itemDelim, splitSett) do&lt;br /&gt;
		local entry, cardArgs = p.splitParams(entry, paramDelim) --check for entry-specific params&lt;br /&gt;
		&lt;br /&gt;
		local item, note = p.splitNote(entry, notePattern) --check for entry-specific note&lt;br /&gt;
		&lt;br /&gt;
		local item_parts = lib.split(item, countDelim) --check for entry-specific amount&lt;br /&gt;
		local name = item_parts[1]&lt;br /&gt;
		local amount = item_parts[2]&lt;br /&gt;
		if args.ts and tonumber(amount) ~= nil then amount = lib.thousandsSeparator(amount) end&lt;br /&gt;
		&lt;br /&gt;
		--set card arguments without replacing those set by entry-specific params&lt;br /&gt;
		cardArgs.name			= cardArgs[1]				or cardArgs.name			 or name&lt;br /&gt;
		cardArgs.text			= cardArgs[2]				or cardArgs.text			 or amount or args.text or args.amount&lt;br /&gt;
		cardArgs.caption		= cardArgs.caption			or args.caption&lt;br /&gt;
		cardArgs.show_caption	= cardArgs.show_caption		or args.show_caption&lt;br /&gt;
		cardArgs.caption_width	= cardArgs.caption_width	or args.caption_width&lt;br /&gt;
		cardArgs.note			= cardArgs.note				or note&lt;br /&gt;
		cardArgs.stars			= cardArgs.stars			or args.stars&lt;br /&gt;
		cardArgs.type			= cardArgs.type				or args.type&lt;br /&gt;
		cardArgs.set			= cardArgs.set				or args.set&lt;br /&gt;
		cardArgs.mini			= cardArgs.mini				or args.mini&lt;br /&gt;
		cardArgs.element		= cardArgs.element			or args.element&lt;br /&gt;
		cardArgs.link	    	= cardArgs.link				or args.link&lt;br /&gt;
		cardArgs.nolink	    	= cardArgs.nolink			or args.nolink&lt;br /&gt;
		cardArgs[&amp;#039;path&amp;#039;]		= cardArgs[&amp;#039;path&amp;#039;]			or args[&amp;#039;path&amp;#039;]&lt;br /&gt;
		cardArgs.mobile_list	= cardArgs.mobile_list		or args.mobile_list&lt;br /&gt;
		cardArgs.icon_type		= cardArgs.icon_type		or args.icon_type&lt;br /&gt;
		cardArgs.icon_size		= cardArgs.icon_size		or args.icon_size&lt;br /&gt;
		cardArgs.icon_suffix	= cardArgs.icon_suffix		or args.icon_suffix&lt;br /&gt;
		cardArgs.multiline_text	= cardArgs.multiline_text	or args.multiline_text&lt;br /&gt;
		cardArgs.suffix			= cardArgs.suffix			or args.suffix&lt;br /&gt;
		cardArgs.notext			= cardArgs.notext			or args.notext&lt;br /&gt;
		cardArgs.minitext		= cardArgs.minitext			or args.minitext&lt;br /&gt;
		cardArgs.rarity			= cardArgs.rarity			or args.rarity&lt;br /&gt;
		-- mw.logObject(cardArgs)&lt;br /&gt;
		&lt;br /&gt;
		if (args.autosort) then&lt;br /&gt;
			local processedArgs, itemData = Card._processArgs(cardArgs)&lt;br /&gt;
			table.insert(cardPairs, {processedArgs, itemData})&lt;br /&gt;
		else&lt;br /&gt;
			result:node(Card._main(cardArgs))&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if (args.category ~= nil) then&lt;br /&gt;
			if type(args.category) ~= &amp;#039;table&amp;#039; then args.category = {args.category} end&lt;br /&gt;
			for _, catForm in ipairs(args.category) do&lt;br /&gt;
				categories:wikitext(&amp;#039;[[Category:&amp;#039;, catForm:gsub(&amp;#039;{item}&amp;#039;, cardArgs.name), &amp;#039;]]&amp;#039;)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if (args.autosort) then&lt;br /&gt;
		p.sortPairs(cardPairs)&lt;br /&gt;
		for _, pair in ipairs(cardPairs) do&lt;br /&gt;
			result:node(Card._createCard(pair[1]))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if (itemDelim == &amp;#039;,&amp;#039; and input:find(&amp;#039;,&amp;#039;)) then&lt;br /&gt;
		result:wikitext(&amp;#039;[[Category:Pages Using Comma as Delimiter]]&amp;#039;)	&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if (args.category ~= nil) then&lt;br /&gt;
		result:node(require(&amp;#039;Module:Namespace detect&amp;#039;)._main({ main = categories }))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.list(args)&lt;br /&gt;
	args = args or {}&lt;br /&gt;
	&lt;br /&gt;
	--= handle blanks for non-boolean params&lt;br /&gt;
	for _, paramName in ipairs(PARAMS_NOT_SUPPORTING_BLANKS) do&lt;br /&gt;
		local value = args[paramName]&lt;br /&gt;
		if value == &amp;quot;&amp;quot; then&lt;br /&gt;
			args[paramName] = nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local containerClass = &amp;quot;card-list-container&amp;quot;&lt;br /&gt;
	if args.mobile_list then&lt;br /&gt;
		containerClass = containerClass .. &amp;quot; card-mobile-list&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local result = mw.html.create():tag(&amp;quot;span&amp;quot;):addClass(containerClass)&lt;br /&gt;
	local categories = mw.html.create()&lt;br /&gt;
	&lt;br /&gt;
	local cardPairs = {}&lt;br /&gt;
	&lt;br /&gt;
	for i, cardArgs in ipairs(args) do&lt;br /&gt;
		if not lib.isEmpty(cardArgs) then&lt;br /&gt;
			if type(cardArgs) == &amp;#039;string&amp;#039; then&lt;br /&gt;
				cardArgs = {&lt;br /&gt;
					name			= cardArgs,&lt;br /&gt;
					text			= args.text				or args.amount,&lt;br /&gt;
					caption			= args.caption,&lt;br /&gt;
					show_caption	= args.show_caption,&lt;br /&gt;
					caption_width	= args.caption_width,&lt;br /&gt;
					note			= args.note,&lt;br /&gt;
					stars			= args.stars,&lt;br /&gt;
					type			= args.type,&lt;br /&gt;
					set				= args.set,&lt;br /&gt;
					mini			= args.mini,&lt;br /&gt;
					mobile_list		= args.mobile_list&lt;br /&gt;
				}&lt;br /&gt;
			elseif type(cardArgs) == &amp;#039;table&amp;#039; then&lt;br /&gt;
				--set card arguments without replacing those set by entry-specific params&lt;br /&gt;
				cardArgs.name			= cardArgs[1]				or cardArgs.name			 or name&lt;br /&gt;
				cardArgs.text			= cardArgs[2]				or cardArgs.text			 or amount or args.text or args.amount&lt;br /&gt;
				cardArgs.caption		= cardArgs.caption			or args.caption&lt;br /&gt;
				cardArgs.show_caption	= cardArgs.show_caption		or args.show_caption&lt;br /&gt;
				cardArgs.caption_width	= cardArgs.caption_width	or args.caption_width&lt;br /&gt;
				cardArgs.note			= cardArgs.note				or note&lt;br /&gt;
				cardArgs.stars			= cardArgs.stars			or args.stars&lt;br /&gt;
				cardArgs.type			= cardArgs.type				or args.type&lt;br /&gt;
				cardArgs.set			= cardArgs.set				or args.set&lt;br /&gt;
				cardArgs.mini			= cardArgs.mini				or args.mini&lt;br /&gt;
				cardArgs.element		= cardArgs.element			or args.element&lt;br /&gt;
				cardArgs.link	    	= cardArgs.link				or args.link&lt;br /&gt;
				cardArgs.nolink	    	= cardArgs.nolink			or args.nolink&lt;br /&gt;
				cardArgs[&amp;#039;path&amp;#039;]		= cardArgs[&amp;#039;path&amp;#039;]			or args[&amp;#039;path&amp;#039;]&lt;br /&gt;
				cardArgs.mobile_list	= cardArgs.mobile_list		or args.mobile_list&lt;br /&gt;
				cardArgs.icon_type		= cardArgs.icon_type		or args.icon_type&lt;br /&gt;
				cardArgs.icon_size		= cardArgs.icon_size		or args.icon_size&lt;br /&gt;
				cardArgs.icon_suffix	= cardArgs.icon_suffix		or args.icon_suffix&lt;br /&gt;
				cardArgs.multiline_text	= cardArgs.multiline_text	or args.multiline_text&lt;br /&gt;
				cardArgs.suffix			= cardArgs.suffix			or args.suffix&lt;br /&gt;
				cardArgs.notext			= cardArgs.notext			or args.notext&lt;br /&gt;
				cardArgs.minitext		= cardArgs.minitext			or args.minitext&lt;br /&gt;
				&lt;br /&gt;
				if (args.category ~= nil) then&lt;br /&gt;
					if type(args.category) ~= &amp;#039;table&amp;#039; then args.category = {args.category} end&lt;br /&gt;
					for _, catForm in ipairs(args.category) do&lt;br /&gt;
						categories:wikitext(&amp;#039;[[Category:&amp;#039;, catForm:gsub(&amp;#039;{item}&amp;#039;, cardArgs.name), &amp;#039;]]&amp;#039;)&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if (args.autosort) then&lt;br /&gt;
				local processedArgs, itemData = Card._processArgs(cardArgs)&lt;br /&gt;
				table.insert(cardPairs, {processedArgs, itemData})&lt;br /&gt;
			else&lt;br /&gt;
				result:node(Card._main(cardArgs))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if (args.autosort) then&lt;br /&gt;
		p.sortPairs(cardPairs)&lt;br /&gt;
		for _, pair in ipairs(cardPairs) do&lt;br /&gt;
			result:node(Card._createCard(pair[1]))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if (args.category ~= nil) then&lt;br /&gt;
		result:node(require(&amp;#039;Module:Namespace detect&amp;#039;)._main({ main = categories }))&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
	&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Raven.Familiar</name></author>
	</entry>
</feed>