<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AInfobox_Var</id>
	<title>Module:Infobox Var - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.runerealm.org/index.php?action=history&amp;feed=atom&amp;title=Module%3AInfobox_Var"/>
	<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Infobox_Var&amp;action=history"/>
	<updated>2026-05-03T18:27:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://wiki.runerealm.org/index.php?title=Module:Infobox_Var&amp;diff=35008&amp;oldid=prev</id>
		<title>Alex: Created page with &quot;-------------------------- -- Module for Template:Infobox Var ------------------------ local p = {}  local onmain = require(&#039;Module:Mainonly&#039;).on_main local commas = require(&#039;Module:Addcommas&#039;)._add local infobox = require(&#039;Module:Infobox&#039;) VariablesLua = mw.ext.VariablesLua  local smwName = &#039;&#039;  function p._main(args) 	local ret = infobox.new(args)  	ret:defineParams{ 		{ name = &#039;type&#039;, func = &#039;has_content&#039; }, 		{ name = &#039;index&#039;, func =  index_arg }, 		{ name = &#039;name...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.runerealm.org/index.php?title=Module:Infobox_Var&amp;diff=35008&amp;oldid=prev"/>
		<updated>2024-10-16T23:12:22Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;-------------------------- -- Module for &lt;a href=&quot;/w/Template:Infobox_Var&quot; title=&quot;Template:Infobox Var&quot;&gt;Template:Infobox Var&lt;/a&gt; ------------------------ local p = {}  local onmain = require(&amp;#039;Module:Mainonly&amp;#039;).on_main local commas = require(&amp;#039;Module:Addcommas&amp;#039;)._add local infobox = require(&amp;#039;Module:Infobox&amp;#039;) VariablesLua = mw.ext.VariablesLua  local smwName = &amp;#039;&amp;#039;  function p._main(args) 	local ret = infobox.new(args)  	ret:defineParams{ 		{ name = &amp;#039;type&amp;#039;, func = &amp;#039;has_content&amp;#039; }, 		{ name = &amp;#039;index&amp;#039;, func =  index_arg }, 		{ name = &amp;#039;name...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--------------------------&lt;br /&gt;
-- Module for [[Template:Infobox Var]]&lt;br /&gt;
------------------------&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local onmain = require(&amp;#039;Module:Mainonly&amp;#039;).on_main&lt;br /&gt;
local commas = require(&amp;#039;Module:Addcommas&amp;#039;)._add&lt;br /&gt;
local infobox = require(&amp;#039;Module:Infobox&amp;#039;)&lt;br /&gt;
VariablesLua = mw.ext.VariablesLua&lt;br /&gt;
&lt;br /&gt;
local smwName = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local ret = infobox.new(args)&lt;br /&gt;
&lt;br /&gt;
	ret:defineParams{&lt;br /&gt;
		{ name = &amp;#039;type&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;index&amp;#039;, func =  index_arg },&lt;br /&gt;
		{ name = &amp;#039;name&amp;#039;, func = { name = name_arg, params = { &amp;#039;name&amp;#039;, &amp;#039;type&amp;#039;, &amp;#039;index&amp;#039; } } },&lt;br /&gt;
		{ name = &amp;#039;content&amp;#039;, func = content_arg },&lt;br /&gt;
		{ name = &amp;#039;raw_content&amp;#039;, func = { name = raw_content_arg, params = { &amp;#039;content&amp;#039; }, flag = { &amp;#039;p&amp;#039; } } },&lt;br /&gt;
		{ name = &amp;#039;class&amp;#039;, func = &amp;#039;has_content&amp;#039; },&lt;br /&gt;
		{ name = &amp;#039;link&amp;#039;, func = { name = create_link, params = { &amp;#039;type&amp;#039;, &amp;#039;index&amp;#039; } } },&lt;br /&gt;
        { name = &amp;#039;usesinfobox&amp;#039;, func = { name = tostring, params = { &amp;#039;Var&amp;#039; }, flag = &amp;#039;r&amp;#039; } },&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	ret:defineLinks({ hide = true })&lt;br /&gt;
&lt;br /&gt;
	ret:create()&lt;br /&gt;
	ret:cleanParams()&lt;br /&gt;
&lt;br /&gt;
	ret:defineName(&amp;#039;Infobox Var&amp;#039;)&lt;br /&gt;
	ret:addClass(&amp;#039;infobox-var&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	ret:addRow{&lt;br /&gt;
		{ tag = &amp;#039;argh&amp;#039;, content = &amp;#039;name&amp;#039;, class=&amp;#039;infobox-header&amp;#039;, colspan = &amp;#039;30&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	:pad(30)&lt;br /&gt;
	&lt;br /&gt;
	:addRow{&lt;br /&gt;
		{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Type&amp;#039;, colspan = &amp;#039;10&amp;#039; },&lt;br /&gt;
		{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;type&amp;#039;, colspan = &amp;#039;20&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	:addRow{&lt;br /&gt;
		{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Index&amp;#039;, colspan = &amp;#039;10&amp;#039; },&lt;br /&gt;
		{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;index&amp;#039;, colspan = &amp;#039;20&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
	:addRow{&lt;br /&gt;
		{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Content&amp;#039;, colspan = &amp;#039;10&amp;#039; },&lt;br /&gt;
		{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;raw_content&amp;#039;, colspan = &amp;#039;20&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
	:addRow{&lt;br /&gt;
		{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Class&amp;#039;, colspan = &amp;#039;10&amp;#039; },&lt;br /&gt;
		{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;class&amp;#039;, colspan = &amp;#039;20&amp;#039; }&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if ret:paramDefined(&amp;#039;type&amp;#039;) and ret:paramDefined(&amp;#039;index&amp;#039;) then&lt;br /&gt;
		ret:addRow{&lt;br /&gt;
			{ tag = &amp;#039;th&amp;#039;, content = &amp;#039;Link&amp;#039;, colspan = &amp;#039;10&amp;#039; },&lt;br /&gt;
			{ tag = &amp;#039;argd&amp;#039;, content = &amp;#039;link&amp;#039;, colspan = &amp;#039;20&amp;#039; }&lt;br /&gt;
		}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	ret:pad(30)&lt;br /&gt;
	&lt;br /&gt;
	local content = ret:param(&amp;#039;content&amp;#039;)&lt;br /&gt;
	local raw_content = ret:param(&amp;#039;raw_content&amp;#039;)&lt;br /&gt;
	VariablesLua.vardefine(&amp;#039;content_var&amp;#039;, content)&lt;br /&gt;
	VariablesLua.vardefine(&amp;#039;raw_content_var&amp;#039;, raw_content)&lt;br /&gt;
	local smw_data = {&lt;br /&gt;
		content = &amp;#039;variable_content&amp;#039;,&lt;br /&gt;
		name = &amp;#039;variable_name&amp;#039;,&lt;br /&gt;
		index = &amp;#039;variable_index&amp;#039;,&lt;br /&gt;
		usesinfobox = &amp;#039;Uses infobox&amp;#039;,&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	ret:useSMWSubobject(smw_data)&lt;br /&gt;
&lt;br /&gt;
	return ret:tostring()..&amp;#039;[[Category:Var]]&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = frame:getParent().args&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function index_arg(ind)&lt;br /&gt;
	if infobox.isDefined(ind) then&lt;br /&gt;
		return ind or -1&lt;br /&gt;
	else&lt;br /&gt;
		return -1&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function raw_content_arg(content)&lt;br /&gt;
	if infobox.isDefined(content) then&lt;br /&gt;
		return content&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;Unknown&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function content_arg(content)&lt;br /&gt;
	if infobox.isDefined(content) then&lt;br /&gt;
		local s, _ = string.gsub(content, &amp;#039;[%[%]]&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		return s&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;Unknown&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Create a name if no name param is provided.&lt;br /&gt;
-- Defaults to &amp;quot;Var[bit/player] X&amp;quot; if type and index are set.&lt;br /&gt;
-- Defaults to pagename minus namespace with /s replaced if either type or index are not set.&lt;br /&gt;
function name_arg(name, typ, ind)&lt;br /&gt;
	newname = name&lt;br /&gt;
	if not infobox.isDefined(name) then&lt;br /&gt;
		if infobox.isDefined(typ) and infobox.isDefined(ind) then&lt;br /&gt;
			newname = typ .. &amp;#039; &amp;#039; .. ind&lt;br /&gt;
		else&lt;br /&gt;
			newname = string.gsub(mw.title.getCurrentTitle().text, &amp;#039;/&amp;#039;, &amp;#039; &amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	smwName = newname&lt;br /&gt;
	return newname&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function create_link(typ, ind)&lt;br /&gt;
	if infobox.isDefined(typ) and infobox.isDefined(ind) then&lt;br /&gt;
		return &amp;#039;[https://chisel.weirdgloop.org/varbs/display?&amp;#039; .. string.lower(typ) .. &amp;#039;=&amp;#039; .. ind .. &amp;#039; Chisel]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- red ERR span with title hover for explanation&lt;br /&gt;
function badarg(argname, argmessage)&lt;br /&gt;
	return &amp;#039;&amp;lt;span &amp;#039;..&lt;br /&gt;
			&amp;#039;title=&amp;quot;The parameter «&amp;#039;..argname..&amp;#039;» &amp;#039;..argmessage..&amp;#039;&amp;quot; &amp;#039;..&lt;br /&gt;
			&amp;#039;style=&amp;quot;color:red; font-weight:bold; cursor:help; border-bottom:1px dotted red;&amp;quot;&amp;gt;&amp;#039;..&lt;br /&gt;
			&amp;#039;ERR&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Alex</name></author>
	</entry>
</feed>