<?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%2FNguoiDungKhongDinhDanh%2FFoobar</id>
	<title>Module:Sandbox/NguoiDungKhongDinhDanh/Foobar - 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%2FNguoiDungKhongDinhDanh%2FFoobar"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/NguoiDungKhongDinhDanh/Foobar&amp;action=history"/>
	<updated>2026-04-21T09:10:12Z</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/NguoiDungKhongDinhDanh/Foobar&amp;diff=145910&amp;oldid=prev</id>
		<title>imported&gt;NguoiDungKhongDinhDanh: +</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Sandbox/NguoiDungKhongDinhDanh/Foobar&amp;diff=145910&amp;oldid=prev"/>
		<updated>2022-04-10T15:58:21Z</updated>

		<summary type="html">&lt;p&gt;+&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--[[&lt;br /&gt;
  __  __             _         _              _     _____  ____        _      _ &lt;br /&gt;
 |  \/  |  ___    __| | _   _ | |  ___  _    / \   |  ___|/ ___|__  __| |__  | |&lt;br /&gt;
 | |\/| | / _ \  / _` || | | || | / _ \(_)  / _ \  | |_   \___ \\ \/ /| &amp;#039;_ \ | |&lt;br /&gt;
 | |  | || (_) || (_| || |_| || ||  __/ _  / ___ \ |  _|   ___) |&amp;gt;  &amp;lt; | | | || |&lt;br /&gt;
 |_|  |_| \___/  \__,_| \__,_||_| \___|(_)/_/   \_\|_|    |____//_/\_\|_| |_||_|&lt;br /&gt;
 -------------------------------------------------------------------------------&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
			 __     __            _         _      _            &lt;br /&gt;
			 \ \   / /__ _  _ __ (_)  __ _ | |__  | |  ___  ___ &lt;br /&gt;
			  \ \ / // _` || &amp;#039;__|| | / _` || &amp;#039;_ \ | | / _ \/ __|&lt;br /&gt;
			   \ V /| (_| || |   | || (_| || |_) || ||  __/\__ \&lt;br /&gt;
			    \_/  \__,_||_|   |_| \__,_||_.__/ |_| \___||___/&lt;br /&gt;
			 ===================================================&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
p.d = {}&lt;br /&gt;
p.d.k = {&lt;br /&gt;
	&amp;#039;lcase&amp;#039;, &amp;#039;ucase&amp;#039;, &amp;#039;length&amp;#039;, &amp;#039;string&amp;#039;,&lt;br /&gt;
	&amp;#039;int&amp;#039;, &amp;#039;float&amp;#039;, &amp;#039;bool&amp;#039;,&lt;br /&gt;
	&amp;#039;norm&amp;#039;, &amp;#039;ccnorm&amp;#039;, &amp;#039;ccnorm_contains_any&amp;#039;, &amp;#039;ccnorm_contains_all&amp;#039;,&lt;br /&gt;
	&amp;#039;specialratio&amp;#039;, &amp;#039;rmspecials&amp;#039;,&lt;br /&gt;
	&amp;#039;rmdoubles&amp;#039;, &amp;#039;rmwhitespace&amp;#039;,&lt;br /&gt;
	&amp;#039;count&amp;#039;, &amp;#039;rcount&amp;#039;, &amp;#039;get_matches&amp;#039;,&lt;br /&gt;
	&amp;#039;ip_in_range&amp;#039;,&lt;br /&gt;
	&amp;#039;contains_any&amp;#039;, &amp;#039;contains_all&amp;#039;, &amp;#039;equals_to_any&amp;#039;,&lt;br /&gt;
	&amp;#039;substr&amp;#039;, &amp;#039;strlen&amp;#039;, &amp;#039;strpos&amp;#039;, &amp;#039;str_replace&amp;#039;, &amp;#039;rescape&amp;#039;,&lt;br /&gt;
	&amp;#039;set&amp;#039;, &amp;#039;set_var&amp;#039;,&lt;br /&gt;
	&lt;br /&gt;
	&amp;#039;like&amp;#039;, &amp;#039;matches&amp;#039;, &amp;#039;in&amp;#039;, &amp;#039;contains&amp;#039;,&lt;br /&gt;
	&amp;#039;rlike&amp;#039;, &amp;#039;irlike&amp;#039;, &amp;#039;regex&amp;#039;,&lt;br /&gt;
	&amp;#039;if&amp;#039;, &amp;#039;then&amp;#039;, &amp;#039;else&amp;#039;, &amp;#039;end&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
p.d.v = {&lt;br /&gt;
	&amp;#039;action&amp;#039;, &amp;#039;timestamp&amp;#039;, &amp;#039;wiki_name&amp;#039;, &amp;#039;wiki_language&amp;#039;,&lt;br /&gt;
	&lt;br /&gt;
	&amp;#039;user_editcount&amp;#039;, &amp;#039;user_name&amp;#039;, &amp;#039;user_emailconfirm&amp;#039;, &amp;#039;user_age&amp;#039;, &amp;#039;user_blocked&amp;#039;, &amp;#039;user_groups&amp;#039;, &amp;#039;user_rights&amp;#039;,&lt;br /&gt;
	&lt;br /&gt;
	&amp;#039;page_id&amp;#039;, &amp;#039;page_namespace&amp;#039;, &amp;#039;page_age&amp;#039;, &amp;#039;page_title&amp;#039;, &amp;#039;page_prefixedtitle&amp;#039;,&lt;br /&gt;
	&amp;#039;page_restrictions_edit&amp;#039;, &amp;#039;page_restrictions_move&amp;#039;, &amp;#039;page_restrictions_upload&amp;#039;, &amp;#039;page_restrictions_create&amp;#039;,&lt;br /&gt;
	&amp;#039;page_recent_contributors&amp;#039;, &amp;#039;page_first_contributor&amp;#039;,&lt;br /&gt;
	&lt;br /&gt;
	&amp;#039;summary&amp;#039;, &amp;#039;old_wikitext&amp;#039;, &amp;#039;new_wikitext&amp;#039;, &amp;#039;new_size&amp;#039;, &amp;#039;old_size&amp;#039;, &amp;#039;added_lines&amp;#039;, &amp;#039;removed_lines&amp;#039;,&lt;br /&gt;
	&amp;#039;old_content_model&amp;#039;, &amp;#039;new_content_model&amp;#039;,&lt;br /&gt;
	&amp;#039;edit_diff&amp;#039;, &amp;#039;edit_diff_pst&amp;#039;, &amp;#039;edit_delta&amp;#039;, &amp;#039;added_lines_pst&amp;#039;,&lt;br /&gt;
	&amp;#039;new_pst&amp;#039;, &amp;#039;new_html&amp;#039;, &amp;#039;new_text&amp;#039;,&lt;br /&gt;
	&lt;br /&gt;
	&amp;#039;all_links&amp;#039;, &amp;#039;old_links&amp;#039;, &amp;#039;added_links&amp;#039;, &amp;#039;removed_links&amp;#039;,&lt;br /&gt;
	&lt;br /&gt;
	&amp;#039;file_sha1&amp;#039;, &amp;#039;file_size&amp;#039;, &amp;#039;file_width&amp;#039;, &amp;#039;file_height&amp;#039;,&amp;#039;file_bits_per_channel&amp;#039;, &amp;#039;file_mime&amp;#039;, &amp;#039;file_mediatype&amp;#039;,&lt;br /&gt;
	&lt;br /&gt;
	&amp;#039;moved_to_id&amp;#039;, &amp;#039;moved_to_title&amp;#039;, &amp;#039;moved_to_prefixedtitle&amp;#039;, &amp;#039;moved_to_namespace&amp;#039;, &amp;#039;moved_to_age&amp;#039;,&lt;br /&gt;
	&amp;#039;moved_to_restrictions_edit&amp;#039;, &amp;#039;moved_to_restrictions_move&amp;#039;, &amp;#039;moved_to_restrictions_upload&amp;#039;, &amp;#039;moved_to_restrictions_create&amp;#039;,&lt;br /&gt;
	&amp;#039;moved_to_recent_contributors&amp;#039;, &amp;#039;moved_to_first_contributor&amp;#039;,&lt;br /&gt;
	&lt;br /&gt;
	&amp;#039;moved_from_namespace&amp;#039;, &amp;#039;moved_from_title&amp;#039;, &amp;#039;moved_from_prefixedtitle&amp;#039;, &amp;#039;moved_from_id&amp;#039;, &amp;#039;moved_from_age&amp;#039;,&lt;br /&gt;
	&amp;#039;moved_from_restrictions_edit&amp;#039;, &amp;#039;moved_from_restrictions_move&amp;#039;, &amp;#039;moved_from_restrictions_upload&amp;#039;, &amp;#039;moved_from_restrictions_create&amp;#039;,&lt;br /&gt;
	&amp;#039;moved_from_recent_contributors&amp;#039;, &amp;#039;moved_from_first_contributor&amp;#039;,&lt;br /&gt;
	&lt;br /&gt;
	&amp;#039;board_id&amp;#039;, &amp;#039;board_namespace&amp;#039;, &amp;#039;board_title&amp;#039;, &amp;#039;board_prefixedtitle&amp;#039;,&lt;br /&gt;
	&lt;br /&gt;
	&amp;#039;accountname&amp;#039;, &amp;#039;global_user_groups&amp;#039;,&lt;br /&gt;
	&amp;#039;translate_source_text&amp;#039;, &amp;#039;translate_target_language&amp;#039;,&lt;br /&gt;
	&lt;br /&gt;
	&amp;#039;tor_exit_node&amp;#039;, &amp;#039;user_mobile&amp;#039;, &amp;#039;user_app&amp;#039;,&lt;br /&gt;
	&lt;br /&gt;
	&amp;#039;page_views&amp;#039;, &amp;#039;moved_from_views&amp;#039;, &amp;#039;moved_to_views&amp;#039;,&lt;br /&gt;
	&lt;br /&gt;
	&amp;#039;sfs_blocked&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
p.d.s = {&lt;br /&gt;
	[[&amp;#039;[^&amp;#039;]-&amp;#039;]],&lt;br /&gt;
	[[&amp;quot;[^&amp;quot;]-&amp;quot;]]&lt;br /&gt;
}&lt;br /&gt;
p.d.o = {&lt;br /&gt;
	&amp;#039;+&amp;#039;, &amp;#039;-&amp;#039;, &amp;#039;*&amp;#039;, &amp;#039;**&amp;#039;, &amp;#039;/&amp;#039;, &amp;#039;%&amp;#039;,&lt;br /&gt;
	&amp;#039;=&amp;#039;, &amp;#039;&amp;lt;&amp;#039;, &amp;#039;&amp;gt;&amp;#039;, &amp;#039;(&amp;#039;, &amp;#039;)&amp;#039;,&lt;br /&gt;
	&amp;#039;|&amp;#039;, &amp;#039;&amp;amp;&amp;#039;, &amp;#039;^&amp;#039;, &amp;#039;!&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
p.d.b = {&lt;br /&gt;
	&amp;#039;true&amp;#039;,&lt;br /&gt;
	&amp;#039;false&amp;#039;,&lt;br /&gt;
	&amp;#039;null&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
p.d.d = {&lt;br /&gt;
	&amp;#039;article_articleid&amp;#039;, &amp;#039;article_namespace&amp;#039;, &amp;#039;article_text&amp;#039;, &amp;#039;article_prefixedtext&amp;#039;,&lt;br /&gt;
	&amp;#039;article_restrictions_edit&amp;#039;, &amp;#039;article_restrictions_move&amp;#039;, &amp;#039;article_restrictions_upload&amp;#039;, &amp;#039;article_restrictions_create&amp;#039;,&lt;br /&gt;
	&amp;#039;article_recent_contributors&amp;#039;, &amp;#039;article_first_contributor&amp;#039;,&lt;br /&gt;
	&amp;#039;moved_to_articleid&amp;#039;, &amp;#039;moved_to_text&amp;#039;, &amp;#039;moved_to_prefixedtext&amp;#039;, &amp;#039;moved_from_text&amp;#039;, &amp;#039;moved_from_prefixedtext&amp;#039;, &amp;#039;moved_from_articleid&amp;#039;,&lt;br /&gt;
	&amp;#039;board_articleid&amp;#039;, &amp;#039;board_text&amp;#039;, &amp;#039;board_prefixedtext&amp;#039;,&lt;br /&gt;
	&amp;#039;article_views&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
p.d.n = {&lt;br /&gt;
	1, 2, 3, 4, 5, 6, 7, 8, 9, 0&lt;br /&gt;
}&lt;br /&gt;
p.d.i = {&lt;br /&gt;
	&amp;#039;minor_edit&amp;#039;,&lt;br /&gt;
	&amp;#039;old_html&amp;#039;, &amp;#039;old_text&amp;#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.a = {}&lt;br /&gt;
for k, v in pairs(p.d) do&lt;br /&gt;
	table.insert(p.a, k)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.s = {}&lt;br /&gt;
p.s.s = {}&lt;br /&gt;
p.s.t = {}&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local content = frame.args[1] or frame.args[&amp;#039;c&amp;#039;] or frame.args[&amp;#039;content&amp;#039;]&lt;br /&gt;
	local sp = p.esc(mw.text.split(content, &amp;#039;\n&amp;#039;))&lt;br /&gt;
	local newcontent = {}&lt;br /&gt;
	&lt;br /&gt;
	for j = 1, 3 do&lt;br /&gt;
		for l = 1, #sp do&lt;br /&gt;
			if j == 1 then&lt;br /&gt;
				p.ins(newcontent, sp[l])&lt;br /&gt;
			elseif j == 2 then&lt;br /&gt;
				for s = 1, #p.d.s do&lt;br /&gt;
					if string.match(sp[l], s) then&lt;br /&gt;
						newcontent[l] = sp[l]:gsub(string.match(sp[l], s), c(&amp;#039;%0&amp;#039;, &amp;#039;s&amp;#039;))&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			else&lt;br /&gt;
				for f = 1, #p.a do&lt;br /&gt;
					for i = 1, #p.d[f] do&lt;br /&gt;
						if string.match(sp[l], p.d[f][i]) then&lt;br /&gt;
							newcontent[l] = sp[l]:gsub(string.match(sp[l], (p.a[f] ~= &amp;#039;n&amp;#039; and &amp;#039;&amp;#039; or &amp;#039;[+-]?&amp;#039;) .. p.d[f][i]), p.c(&amp;#039;%0&amp;#039;, x))&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return mw.text.listToText(newcontent, &amp;#039;&amp;lt;br&amp;gt;&amp;#039;, &amp;#039;&amp;lt;br&amp;gt;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.c(c, t)&lt;br /&gt;
	local span = mw.html.create(&amp;#039;span&amp;#039;)&lt;br /&gt;
			:attr(&amp;#039;class&amp;#039;, t)&lt;br /&gt;
			:wikitext(c)&lt;br /&gt;
	return tostring(span)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.ins(a, e)&lt;br /&gt;
	local i = #a&lt;br /&gt;
	a[i+1] = e&lt;br /&gt;
	return a&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.esc(t)&lt;br /&gt;
	local r = {}&lt;br /&gt;
	for i = 1, #t do&lt;br /&gt;
		r[i] = mw.text.nowiki(r[i])&lt;br /&gt;
	end&lt;br /&gt;
	return r&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- For attribution: //stackoverflow.com/a/832414&lt;br /&gt;
function p.det(s)&lt;br /&gt;
	local t = p.split(s)&lt;br /&gt;
	local r = {}&lt;br /&gt;
	local f = {}&lt;br /&gt;
	local b = {false, false}&lt;br /&gt;
	&lt;br /&gt;
	for i = 1, #t do&lt;br /&gt;
		if t[i] == [[&amp;#039;]] and not b[2] then&lt;br /&gt;
			table.insert(f, {})&lt;br /&gt;
			f[#f].s = i&lt;br /&gt;
		elseif t[i] == [[&amp;quot;]] and not b[1] then&lt;br /&gt;
			table.insert(f, {})&lt;br /&gt;
			f[#f].s = i&lt;br /&gt;
		elseif t[i] == [[&amp;#039;]] and b[1] then&lt;br /&gt;
			&lt;br /&gt;
		elseif t[i] == [[&amp;quot;]] and b[2] then&lt;br /&gt;
		&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if b[1] or b[2] then&lt;br /&gt;
		f[#f] = nil&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.str(s, t)&lt;br /&gt;
	local f&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.uns(s)&lt;br /&gt;
	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.split(s)&lt;br /&gt;
	local r = {}&lt;br /&gt;
	for i in mw.ustring.gmatch(s, &amp;#039;.&amp;#039;) do&lt;br /&gt;
		table.insert(r, i)&lt;br /&gt;
	end&lt;br /&gt;
	return r&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;NguoiDungKhongDinhDanh</name></author>
	</entry>
</feed>