<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FIzno</id>
	<title>Module:Sandbox/Izno - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ASandbox%2FIzno"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Izno&amp;action=history"/>
	<updated>2026-05-27T04:53:32Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:Sandbox/Izno&amp;diff=145566&amp;oldid=prev</id>
		<title>imported&gt;Izno: Undid revision 1111674238 by Izno (talk) rm</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/Izno&amp;diff=145566&amp;oldid=prev"/>
		<updated>2022-09-22T08:20:56Z</updated>

		<summary type="html">&lt;p&gt;Undid revision 1111674238 by &lt;a href=&quot;/research/Special:Contributions/Izno&quot; title=&quot;Special:Contributions/Izno&quot;&gt;Izno&lt;/a&gt; (&lt;a href=&quot;/index.php?title=User_talk:Izno&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:Izno (page does not exist)&quot;&gt;talk&lt;/a&gt;) rm&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;
&lt;br /&gt;
function p.file() --frame&lt;br /&gt;
	&lt;br /&gt;
	local image = &amp;#039;File:US 730.svg&amp;#039;&lt;br /&gt;
	local title = mw.title.new(image)&lt;br /&gt;
	&lt;br /&gt;
	local width = title.file.width&lt;br /&gt;
	local height = title.file.height&lt;br /&gt;
	&lt;br /&gt;
	return string.format(&amp;#039;%s width: %d, height: %d&amp;#039;, image, width, height)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.basic_iteration(frame)&lt;br /&gt;
	&lt;br /&gt;
	local pv = require(&amp;#039;Module:If preview&amp;#039;)&lt;br /&gt;
	local t = { &amp;#039;a&amp;#039;, &amp;#039;b&amp;#039;, &amp;#039;c&amp;#039;, &amp;#039;d&amp;#039;, }&lt;br /&gt;
	local t2 = { a = &amp;#039;a&amp;#039;, b = &amp;#039;b&amp;#039;, c = &amp;#039;c&amp;#039;, d = &amp;#039;d&amp;#039; }&lt;br /&gt;
	local preview = &amp;#039;&amp;#039;&lt;br /&gt;
	for _, v in ipairs(t) do -- guarantees ordering&lt;br /&gt;
		preview = preview .. pv._warning({&lt;br /&gt;
			v&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
	for _, v in pairs(t2) do -- doesn&amp;#039;t guarantee ordering&lt;br /&gt;
		preview = preview .. pv._warning({&lt;br /&gt;
			v&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return preview&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function has_navbar()&lt;br /&gt;
	return true&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.addListStyles()&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	-- TODO?: Should maybe take a table of classes for e.g. hnum, hwrap as above&lt;br /&gt;
	-- I&amp;#039;m going to do the stupid thing first though&lt;br /&gt;
	-- Also not sure hnum and hwrap are going to live in the same TemplateStyles&lt;br /&gt;
	-- as hlist&lt;br /&gt;
	local function _addListStyles(htmlclass, templatestyles)&lt;br /&gt;
		local class_args = { -- rough order of probability of use&lt;br /&gt;
			&amp;#039;bodyclass&amp;#039;, &amp;#039;listclass&amp;#039;, &amp;#039;aboveclass&amp;#039;, &amp;#039;belowclass&amp;#039;, &amp;#039;titleclass&amp;#039;,&lt;br /&gt;
			&amp;#039;navboxclass&amp;#039;, &amp;#039;groupclass&amp;#039;, &amp;#039;titlegroupclass&amp;#039;, &amp;#039;imageclass&amp;#039;&lt;br /&gt;
		}&lt;br /&gt;
		local patterns = {&lt;br /&gt;
			&amp;#039;^&amp;#039; .. htmlclass .. &amp;#039;$&amp;#039;,&lt;br /&gt;
			&amp;#039;%s&amp;#039; .. htmlclass .. &amp;#039;$&amp;#039;,&lt;br /&gt;
			&amp;#039;^&amp;#039; .. htmlclass .. &amp;#039;%s&amp;#039;,&lt;br /&gt;
			&amp;#039;%s&amp;#039; .. htmlclass .. &amp;#039;%s&amp;#039;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		local found = false&lt;br /&gt;
		for _, arg in ipairs(class_args) do&lt;br /&gt;
			for _, pattern in ipairs(patterns) do&lt;br /&gt;
				if mw.ustring.find(frame.args[arg] or &amp;#039;&amp;#039;, pattern) then&lt;br /&gt;
					found = true&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if found then break end&lt;br /&gt;
		end&lt;br /&gt;
		if found then&lt;br /&gt;
			return frame:extensionTag{&lt;br /&gt;
				name = &amp;#039;templatestyles&amp;#039;, args = { src = templatestyles }&lt;br /&gt;
			}&lt;br /&gt;
		else&lt;br /&gt;
			return &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local hlist_styles = &amp;#039;&amp;#039;&lt;br /&gt;
	if not has_navbar() then&lt;br /&gt;
		hlist_styles = _addListStyles(&amp;#039;hlist&amp;#039;, &amp;#039;Flatlist/styles.css&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	local plainlist_styles = _addListStyles(&amp;#039;plainlist&amp;#039;, &amp;#039;Plainlist/styles.css&amp;#039;)&lt;br /&gt;
	&lt;br /&gt;
	return hlist_styles .. plainlist_styles&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local msg = mw.message.newRawMessage&lt;br /&gt;
&lt;br /&gt;
function p.message(frame)&lt;br /&gt;
	local messages = {}&lt;br /&gt;
	table.insert(messages, &amp;#039;This is an inserted message&amp;#039;)&lt;br /&gt;
	local msg1 = msg(&amp;#039;This is a $1 message.&amp;#039;, &amp;#039;raw&amp;#039;)&lt;br /&gt;
	local msg2 = msg(&amp;#039;This is a $1 message of $2 quality.&amp;#039;, &amp;#039;[[raw]]&amp;#039;, &amp;#039;{{icon|fa}}&amp;#039;)&lt;br /&gt;
	local msg3 = msg(&amp;#039;This is a $1 message of $2 quality.&amp;#039;, &amp;#039;[[raw]]&amp;#039;, &amp;#039;{{icon|fa}}&amp;#039;):plain()&lt;br /&gt;
	if frame.args[1] then&lt;br /&gt;
		table.insert(messages, frame.args[1])&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return -- tostring(messages) .. &amp;#039;\n\n&amp;#039; .. -- this prints string &amp;#039;table&amp;#039;&lt;br /&gt;
		 table.concat(messages) .. tostring(msg1) .. &amp;#039;\n\n&amp;#039; .. tostring(msg2) .. &amp;#039;\n\n&amp;#039; .. tostring(msg3)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.output()&lt;br /&gt;
	local obj = mw.html.create()&lt;br /&gt;
	obj:wikitext(p.addListStyles())&lt;br /&gt;
	return obj&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.tostringnil()&lt;br /&gt;
	return tostring(nil)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.remove_disallowed_css(s)&lt;br /&gt;
	&lt;br /&gt;
	local disallowed_css = {&lt;br /&gt;
		&amp;#039;border&amp;#039;, -- border&lt;br /&gt;
		&amp;#039;border%-.+&amp;#039;, -- border subproperties&lt;br /&gt;
		&amp;#039;background&amp;#039;, -- background&lt;br /&gt;
		&amp;#039;background%-.+&amp;#039;, -- background subproperties&lt;br /&gt;
		&amp;#039;box%-shadow&amp;#039;, -- box-shadow&lt;br /&gt;
		&amp;#039;padding&amp;#039;, -- padding&lt;br /&gt;
		&amp;#039;padding%-.+&amp;#039;, -- padding subproperties&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local split_rules = mw.text.split(s, &amp;#039;;&amp;#039;)&lt;br /&gt;
	local super_split = {}&lt;br /&gt;
	for k, v in ipairs(split_rules) do&lt;br /&gt;
		split_rules[k] = mw.text.trim(v)&lt;br /&gt;
		super_split[k] = mw.text.split(v, &amp;#039;:&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	for k, t in ipairs(super_split) do&lt;br /&gt;
		for _, v in ipairs(disallowed_css) do&lt;br /&gt;
			if mw.text.trim(t[1]):lower():match(v) then&lt;br /&gt;
				table.remove(split_rules, k)&lt;br /&gt;
				break -- because we are done with the kth table&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(split_rules, &amp;#039;;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Izno</name></author>
	</entry>
</feed>