<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://bajkowscy.pl/mw22/index.php?action=history&amp;feed=atom&amp;title=Modu%C5%82%3A%C5%81atki</id>
	<title>Moduł:Łatki - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://bajkowscy.pl/mw22/index.php?action=history&amp;feed=atom&amp;title=Modu%C5%82%3A%C5%81atki"/>
	<link rel="alternate" type="text/html" href="https://bajkowscy.pl/mw22/index.php?title=Modu%C5%82:%C5%81atki&amp;action=history"/>
	<updated>2026-04-21T02:25:16Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://bajkowscy.pl/mw22/index.php?title=Modu%C5%82:%C5%81atki&amp;diff=2106&amp;oldid=prev</id>
		<title>Admin: 1 wersja</title>
		<link rel="alternate" type="text/html" href="https://bajkowscy.pl/mw22/index.php?title=Modu%C5%82:%C5%81atki&amp;diff=2106&amp;oldid=prev"/>
		<updated>2022-04-08T11:13:54Z</updated>

		<summary type="html">&lt;p&gt;1 wersja&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;pl&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Wersja z 11:13, 8 kwi 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;pl&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Brak różnic)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://bajkowscy.pl/mw22/index.php?title=Modu%C5%82:%C5%81atki&amp;diff=2105&amp;oldid=prev</id>
		<title>pl&gt;Malarz pl: zmiana nazwy kategorii</title>
		<link rel="alternate" type="text/html" href="https://bajkowscy.pl/mw22/index.php?title=Modu%C5%82:%C5%81atki&amp;diff=2105&amp;oldid=prev"/>
		<updated>2022-01-13T14:58:16Z</updated>

		<summary type="html">&lt;p&gt;zmiana nazwy kategorii&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local m = {}&lt;br /&gt;
&lt;br /&gt;
function m.Plik(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/Plik&amp;quot;).id&lt;br /&gt;
	if not frame then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	local args = frame.args&lt;br /&gt;
	if not args then&lt;br /&gt;
		mw.log(&amp;quot;brak argumentów&amp;quot;)&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	local file = args[1]&lt;br /&gt;
	if not file then&lt;br /&gt;
		mw.log(&amp;quot;brak pliku&amp;quot;)&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local multipleFiles = &amp;quot;&amp;quot;&lt;br /&gt;
	if string.match(file, &amp;quot;%]%s*%[&amp;quot;) then&lt;br /&gt;
		multipleFiles = &amp;quot;[[Kategoria:Łatki - Kilka plików]]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	if string.match(file, &amp;quot;^%s*%[%[&amp;quot;) then&lt;br /&gt;
		mw.log(&amp;quot;to jest link: &amp;quot;..file)&lt;br /&gt;
		return file .. &amp;quot;[[Kategoria:Infoboksy – błedne wywołania plików]]&amp;quot;..multipleFiles&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	if string.match(file, &amp;quot;^%s*%[&amp;quot;) then&lt;br /&gt;
		mw.log(&amp;quot;to jest link zewnętrzny: &amp;quot;..file)&lt;br /&gt;
		return file .. &amp;quot;[[Kategoria:Łatki - Plik zewnętrzny]]&amp;quot;..multipleFiles&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	local builder = {}&lt;br /&gt;
	table.insert(builder, &amp;quot;[[Plik:&amp;quot;)&lt;br /&gt;
	for i, v in ipairs(args) do&lt;br /&gt;
		if i &amp;gt; 1 then&lt;br /&gt;
			table.insert(builder,&amp;quot;|&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
 &lt;br /&gt;
		table.insert(builder,v)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	table.insert(builder, &amp;quot;]]&amp;quot;)&lt;br /&gt;
	local result = table.concat(builder, &amp;quot;&amp;quot;)&lt;br /&gt;
	mw.log(&amp;quot;wynik: &amp;quot;..result)	&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
m.PoliczLinki = function(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/PoliczLinki&amp;quot;).id&lt;br /&gt;
	local pf = frame:getParent()&lt;br /&gt;
	local text = frame.args[1] or pf.args[1]&lt;br /&gt;
	local threshold = tonumber(frame.args[&amp;quot;próg&amp;quot;] or pf.args[&amp;quot;próg&amp;quot;]) or 1&lt;br /&gt;
	if text then&lt;br /&gt;
		text = mw.text.trim(text)&lt;br /&gt;
		local _, count = mw.ustring.gsub(text, &amp;quot;(%[%[[^%[%]]-%]%])&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
		if count &amp;gt;= threshold then&lt;br /&gt;
			local lang = mw.getContentLanguage()&lt;br /&gt;
			local number = lang:formatNum(count)&lt;br /&gt;
			local articles = lang:convertPlural(count, { &amp;quot;artykuł&amp;quot;, &amp;quot;artykuły&amp;quot;, &amp;quot;artykułów&amp;quot; })&lt;br /&gt;
			return text .. &amp;quot;&amp;lt;small&amp;gt; (&amp;quot;..number..&amp;quot;&amp;amp;nbsp;&amp;quot;..articles..&amp;quot;)&amp;lt;/small&amp;gt;&amp;quot;&lt;br /&gt;
		else&lt;br /&gt;
			return text&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;Liczba artykułów między&amp;quot;] = function(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/Liczba artykułów między&amp;quot;).id&lt;br /&gt;
	local pf = frame:getParent()&lt;br /&gt;
	local start = frame.args[1] or pf.args[1]&lt;br /&gt;
	if not start then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local stop =  frame.args[2] or pf.args[2]&lt;br /&gt;
	if not stop then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local content = mw.title.getCurrentTitle():getContent()&lt;br /&gt;
	if not content then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local startPattern = &amp;quot;&amp;lt;!--&amp;quot;..start..&amp;quot;--&amp;gt;&amp;quot;&lt;br /&gt;
	local startPosition = string.find(content, startPattern, 1, true)&lt;br /&gt;
	if not startPosition then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	startPosition = startPosition + #startPattern&lt;br /&gt;
	&lt;br /&gt;
	local stopPattern = &amp;quot;&amp;lt;!--&amp;quot;..stop..&amp;quot;--&amp;gt;&amp;quot;&lt;br /&gt;
	local stopPosition = string.find(content, stopPattern, startPosition, true)&lt;br /&gt;
	if not stopPosition then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	stopPosition = stopPosition - 1&lt;br /&gt;
	if startPosition &amp;gt;= stopPosition then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local text = string.sub(content, startPosition, stopPosition)&lt;br /&gt;
	local _, count = mw.ustring.gsub(text, &amp;quot;(%[%[[^%[%]]-%]%])&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
	local _, files = mw.ustring.gsub(text, &amp;quot;(%[%[Plik:[^%[%]]-%]%])&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
	count = count - files&lt;br /&gt;
	&lt;br /&gt;
	local threshold = tonumber(frame.args[&amp;quot;próg&amp;quot;] or pf.args[&amp;quot;próg&amp;quot;]) or 1&lt;br /&gt;
	if count &amp;lt; threshold then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local lang = mw.getContentLanguage()&lt;br /&gt;
	local number = lang:formatNum(count)&lt;br /&gt;
	local articles = lang:convertPlural(count, { frame.args[4] or pf.args[4] or &amp;quot;artykuł&amp;quot;, frame.args[5] or pf.args[6] or &amp;quot;artykuły&amp;quot;, frame.args[6] or pf.args[6] or &amp;quot;artykułów&amp;quot; })&lt;br /&gt;
&lt;br /&gt;
	local result, _ = string.gsub(frame.args[3] or pf.args[3] or &amp;quot;&amp;lt;small&amp;gt;($1)&amp;lt;/small&amp;gt;&amp;quot;, &amp;quot;$1&amp;quot;, number..&amp;quot;&amp;amp;nbsp;&amp;quot;..articles)&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;Numerowanie w tabeli&amp;quot;] = function(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/Numerowanie w tabeli&amp;quot;).id&lt;br /&gt;
	local counter = 0&lt;br /&gt;
	local result = {}&lt;br /&gt;
	local pf = frame:getParent()&lt;br /&gt;
	local i = 1&lt;br /&gt;
 &lt;br /&gt;
	table.insert(result, &amp;quot;{&amp;quot;) &lt;br /&gt;
	while true do&lt;br /&gt;
		local object = pf:getArgument(i)&lt;br /&gt;
		if object then&lt;br /&gt;
			object = object:expand()&lt;br /&gt;
		else&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
 &lt;br /&gt;
		if object then&lt;br /&gt;
			table.insert(result, &amp;quot;|&amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
			local length = #object&lt;br /&gt;
			if length &amp;gt; 0 then&lt;br /&gt;
				if string.byte(object,1) == 35 then&lt;br /&gt;
	 				counter = counter + 1&lt;br /&gt;
					local counterText = counter..&amp;quot;. &amp;quot;&lt;br /&gt;
					local userText = length &amp;gt; 1 and string.sub(object, 2, length) or &amp;quot;&amp;quot;&lt;br /&gt;
					object = counterText..userText&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
 &lt;br /&gt;
			table.insert(result, object)&lt;br /&gt;
			i = i + 1&lt;br /&gt;
		else&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	table.insert(result, &amp;quot;|}&amp;quot;)&lt;br /&gt;
	return table.concat(result, &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
m[&amp;quot;są interwiki&amp;quot;] = function(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/są interwiki&amp;quot;).id&lt;br /&gt;
	local count = 0&lt;br /&gt;
	local entity = mw.wikibase.getEntity()&lt;br /&gt;
	if entity and entity.sitelinks then&lt;br /&gt;
		for k, v in pairs(entity.sitelinks) do&lt;br /&gt;
			if k ~= &amp;quot;plwiki&amp;quot; then&lt;br /&gt;
				count = count + 1&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	return count &amp;gt; 0 and count or &amp;quot;&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m.contentMatch(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/contentMatch&amp;quot;).id&lt;br /&gt;
	mw.logObject(frame.args.pagename, &amp;quot;frame.args.pagename&amp;quot;)&lt;br /&gt;
	mw.logObject(frame.args.namespace, &amp;quot;frame.args.namespace&amp;quot;)&lt;br /&gt;
	local pagename = frame.args.pagename&lt;br /&gt;
	local namespace = tonumber(frame.args.namespace or 0) or 0&lt;br /&gt;
	mw.logObject(pagename, &amp;quot;pagename&amp;quot;)&lt;br /&gt;
	mw.logObject(namespace, &amp;quot;namespace&amp;quot;)&lt;br /&gt;
	local title = (pagename and (#pagename &amp;gt; 0)) and mw.title.makeTitle(namespace, pagename) or mw.title.getCurrentTitle()&lt;br /&gt;
	mw.logObject(title, &amp;quot;title&amp;quot;)&lt;br /&gt;
	local content = title and title:getContent() or false&lt;br /&gt;
	if not content then&lt;br /&gt;
		mw.log(&amp;quot;no content&amp;quot;)&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local i = 1&lt;br /&gt;
	while true do&lt;br /&gt;
		local p = frame.args[i]&lt;br /&gt;
		if not p or (#p==0) then&lt;br /&gt;
			mw.log(&amp;quot;no pattern &amp;quot;..i)&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local result = mw.ustring.match(content, p)&lt;br /&gt;
		if result then&lt;br /&gt;
			mw.log(&amp;quot;match &amp;quot;..result)&lt;br /&gt;
			return result&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		mw.log(&amp;quot;no match &amp;quot;..p)&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m.contentPureTextSize(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/contentPureTextSize&amp;quot;).id&lt;br /&gt;
	local content = mw.title.getCurrentTitle():getContent()&lt;br /&gt;
	if not content then&lt;br /&gt;
		mw.log(&amp;quot;no content&amp;quot;)&lt;br /&gt;
		return 0&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- wyrzucamy szablony (i szablony w szablonach)&lt;br /&gt;
	content = mw.ustring.gsub(content, &amp;quot;%{%{[^%{%}]+%}%}&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
	content = mw.ustring.gsub(content, &amp;quot;%{%{[^%{%}]+%}%}&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
	content = mw.ustring.gsub(content, &amp;quot;%{%{[^%{%}]+%}%}&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
	content = mw.ustring.gsub(content, &amp;quot;%{%{[^%{%}]+%}%}&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	-- ciąg pusty na jedną spację&lt;br /&gt;
	content = mw.ustring.gsub(content, &amp;quot;%s+&amp;quot;, &amp;quot; &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	-- refy bez treści&lt;br /&gt;
	content = mw.ustring.gsub(content, &amp;quot;&amp;lt;ref[^&amp;lt;&amp;gt;]*%/&amp;gt;&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
	-- większość refów z treścią&lt;br /&gt;
	content = mw.ustring.gsub(content, &amp;quot;&amp;lt;ref[^&amp;lt;&amp;gt;]*&amp;gt;[^&amp;lt;&amp;gt;]&amp;lt;%/ref&amp;gt;&amp;quot;, &amp;quot;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	return mw.ustring.len(content);&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m.Interwiki(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/Interwiki&amp;quot;).id&lt;br /&gt;
	local qid = frame.args.id&lt;br /&gt;
	local data = mw.wikibase.getEntity(qid)&lt;br /&gt;
	if not data then&lt;br /&gt;
		return -- brak danych -&amp;gt; kategoria?&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local links = {}&lt;br /&gt;
	local appendLink = function(lang, title)&lt;br /&gt;
		if not links[lang] then&lt;br /&gt;
			links[lang] = { title }&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(links[lang], title)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local knownLanguages = mw.loadData(&amp;quot;Module:Lang/data&amp;quot;)&lt;br /&gt;
	local extractLinks = function(data)&lt;br /&gt;
		if data.sitelinks then&lt;br /&gt;
			for k, v in pairs(data.sitelinks) do&lt;br /&gt;
				local lang = string.sub(k, 1, -5)&lt;br /&gt;
				local project = string.sub(k, -4)&lt;br /&gt;
				if (project == &amp;quot;wiki&amp;quot;) and knownLanguages[lang] then&lt;br /&gt;
					appendLink(lang, v.title)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	extractLinks(data)&lt;br /&gt;
	if data.claims and data.claims.P460 then&lt;br /&gt;
		for _, v in ipairs(data.claims.P460) do&lt;br /&gt;
			if v.mainsnak.snaktype == &amp;quot;value&amp;quot; then&lt;br /&gt;
				local seeid = &amp;quot;Q&amp;quot;..tostring(v.mainsnak.datavalue.value[&amp;quot;numeric-id&amp;quot;])&lt;br /&gt;
				local seedata = mw.wikibase.getEntity(seeid)&lt;br /&gt;
				if seedata then&lt;br /&gt;
					extractLinks(seedata)&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result = {}&lt;br /&gt;
	local content = mw.title.getCurrentTitle():getContent()&lt;br /&gt;
	for k, v in pairs(links) do&lt;br /&gt;
		local pattern = &amp;quot;%[%[&amp;quot;..mw.ustring.gsub( k, &amp;quot;([%(%)%.%%%+%-%*%?%[%^%$%]])&amp;quot;, &amp;quot;%%%1&amp;quot; )..&amp;quot;:[^%[%]|]+%]%]&amp;quot;&lt;br /&gt;
		local interwiki = mw.ustring.match(content, pattern)&lt;br /&gt;
		if not interwiki and (not data.sitelinks or not data.sitelinks[k..&amp;quot;wiki&amp;quot;]) then&lt;br /&gt;
			table.insert(result, &amp;quot;[[&amp;quot;)&lt;br /&gt;
			table.insert(result, k)&lt;br /&gt;
			table.insert(result, &amp;quot;:&amp;quot;)&lt;br /&gt;
			table.insert(result, v[1])&lt;br /&gt;
			table.insert(result, &amp;quot;]]&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return table.concat(result, &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m.Z(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/Z&amp;quot;).id&lt;br /&gt;
	local ze = {&lt;br /&gt;
		&amp;quot;^%s*[Mm][Nn][Ii][Ee]$&amp;quot;,&lt;br /&gt;
		&amp;quot;^%s*[Mm][Nn][Ii][Ee]%s&amp;quot;,&lt;br /&gt;
		&amp;quot;^%s*[Mm][Nn][Ąą]$&amp;quot;,&lt;br /&gt;
		&amp;quot;^%s*[Mm][Nn][Ąą]%s&amp;quot;,&lt;br /&gt;
		&amp;quot;^%s*[Ss][Oo][Bb][Ąą]$&amp;quot;,&lt;br /&gt;
		&amp;quot;^%s*[Ss][Oo][Bb][Ąą]%s&amp;quot;,&lt;br /&gt;
		&amp;quot;^%s*[Ss][Zz][BbCcĆćDdFfGgHhJjKkLlŁłMmNnŃńPpRrSsŚśTtWwZzŹźŻż]&amp;quot;,&lt;br /&gt;
		&amp;quot;^%s*[Ss][BbCcĆćDdFfGgHhJjKkLlŁłMmNnŃńPpRrSsŚśTtWwŹźŻż]&amp;quot;,&lt;br /&gt;
		&amp;quot;^%s*[ŹźZz][BbCcĆćDdFfGgHhJjKkLlŁłMmNnŃńPpRrSsŚśTtWwZzŹźŻż]&amp;quot;,&lt;br /&gt;
		&amp;quot;^%s*%[%[[Ss][Zz][BbCcĆćDdFfGgHhJjKkLlŁłMmNnŃńPpRrSsŚśTtWwZzŹźŻż]&amp;quot;,&lt;br /&gt;
		&amp;quot;^%s*%[%[[Ss][BbCcĆćDdFfGgHhJjKkLlŁłMmNnŃńPpRrSsŚśTtWwŹźŻż]&amp;quot;,&lt;br /&gt;
		&amp;quot;^%s*%[%[[ŹźZz][BbCcĆćDdFfGgHhJjKkLlŁłMmNnŃńPpRrSsŚśTtWwZzŹźŻż]&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	local text = frame.args[1]&lt;br /&gt;
	if text then&lt;br /&gt;
		for _, regex in ipairs(ze) do&lt;br /&gt;
			if mw.ustring.match(text, regex) then&lt;br /&gt;
				_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/ze&amp;quot;).id&lt;br /&gt;
				return &amp;quot;ze&amp;quot;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return &amp;quot;z&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m.TEMPLATENAME(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/TEMPLATENAME&amp;quot;).id&lt;br /&gt;
	local templateTitle = mw.title.new(frame:getParent():getTitle())&lt;br /&gt;
	return (templateTitle and (templateTitle.namespace == 10)) and templateTitle.text or nil&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m.SUBST(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/SUBST&amp;quot;).id&lt;br /&gt;
	local title = mw.title.getCurrentTitle()&lt;br /&gt;
	mw.logObject(title.text, &amp;quot;title.text&amp;quot;)&lt;br /&gt;
	local prefixedTitleName = mw.ustring.match(title.prefixedText, &amp;quot;^(.-)/opis&amp;quot;)&lt;br /&gt;
		or mw.ustring.match(title.prefixedText, &amp;quot;^(.-)/test&amp;quot;)&lt;br /&gt;
		or mw.ustring.match(title.prefixedText, &amp;quot;^(.-)/brudnopis&amp;quot;)&lt;br /&gt;
		or title.prefixedText&lt;br /&gt;
	if mw.isSubsting() or (prefixedTitleName == frame:getParent():getTitle()) or (frame:getParent().args[&amp;quot;usprawiedliwienie na brak &amp;#039;subst:&amp;#039;&amp;quot;] == &amp;quot;przykład wywołania szablonu przez transkluzję poza stronami testowymi&amp;quot;) then&lt;br /&gt;
		return frame.args[1]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	mw.log(&amp;quot;Brak &amp;#039;subst:&amp;#039; w wywołaniu &amp;#039;&amp;quot;..frame:getParent():getTitle()..&amp;quot;&amp;#039;&amp;quot;)&lt;br /&gt;
	return &amp;quot;[[Kategoria:Brak &amp;#039;subst:&amp;#039; w wywołaniu szablonu]]&amp;quot;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m.Format(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/Format&amp;quot;).id&lt;br /&gt;
	local templateTitle = mw.title.new(frame:getParent():getTitle())&lt;br /&gt;
	&lt;br /&gt;
	local params = {}&lt;br /&gt;
	local i = 1&lt;br /&gt;
	while i do&lt;br /&gt;
		local arg = frame.args[i]&lt;br /&gt;
		if arg then&lt;br /&gt;
			table.insert(params, arg)&lt;br /&gt;
			i = i + 1&lt;br /&gt;
		else&lt;br /&gt;
			i = false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if #params &amp;gt; 0  then&lt;br /&gt;
		return mw.ustring.format(unpack(params))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m.SimpleDuplicates(frame)&lt;br /&gt;
	local result = {}&lt;br /&gt;
	local wikitext = mw.title.getCurrentTitle():getContent()&lt;br /&gt;
	if not wikitext then&lt;br /&gt;
		-- no page&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	while true do&lt;br /&gt;
		local templateIterator = mw.ustring.gmatch(wikitext, &amp;quot;{{[^{}]+}}&amp;quot;)&lt;br /&gt;
		while true do&lt;br /&gt;
			local template = templateIterator()&lt;br /&gt;
			if not template then&lt;br /&gt;
				-- no more templates&lt;br /&gt;
				break&lt;br /&gt;
			end&lt;br /&gt;
	&lt;br /&gt;
			mw.log(template)&lt;br /&gt;
			local parameters = {}&lt;br /&gt;
			local patch, _ = mw.ustring.gsub(template, &amp;quot;(%[%[[^%[%]|]+)|([^%[%]|]-%]%])&amp;quot;, &amp;quot;%1&amp;lt;nowiki&amp;gt;&amp;amp;x7C;&amp;lt;/nowiki&amp;gt;%2&amp;quot;)&lt;br /&gt;
			local chunks = mw.text.split(patch, &amp;quot;|&amp;quot;)&lt;br /&gt;
			local i = 2 -- skip first item which is template name&lt;br /&gt;
			local auto = 0&lt;br /&gt;
			local emited = false&lt;br /&gt;
			while i &amp;lt;= #chunks do&lt;br /&gt;
				local chunk = chunks[i]&lt;br /&gt;
				local name, value = mw.ustring.match(chunk, &amp;quot;%s*(.-)%s*=(.*)&amp;quot;)&lt;br /&gt;
				if not name then&lt;br /&gt;
					auto = auto + 1&lt;br /&gt;
					name = tostring(auto)&lt;br /&gt;
					value = chunk&lt;br /&gt;
				end&lt;br /&gt;
				&lt;br /&gt;
				value = mw.ustring.gsub(value, &amp;quot;&amp;lt;nowiki&amp;gt;&amp;amp;x7C;&amp;lt;/nowiki&amp;gt;&amp;quot;, &amp;quot;|&amp;quot;)&lt;br /&gt;
				&lt;br /&gt;
				if not parameters[name] then&lt;br /&gt;
					parameters[name] = { value }&lt;br /&gt;
				else&lt;br /&gt;
					-- duplicated parameter&lt;br /&gt;
					if not emited then&lt;br /&gt;
						emited = {}&lt;br /&gt;
						table.insert(emited, &amp;quot;&amp;lt;tt&amp;gt;&amp;quot;..mw.text.nowiki(template)..&amp;quot;&amp;lt;/tt&amp;gt;&amp;quot;)&lt;br /&gt;
					end&lt;br /&gt;
					&lt;br /&gt;
					if #parameters[name] == 1 then&lt;br /&gt;
						table.insert(emited, name..&amp;quot;: &amp;quot;..mw.text.nowiki(parameters[name][1]))&lt;br /&gt;
					end&lt;br /&gt;
						&lt;br /&gt;
					table.insert(parameters[name], value)&lt;br /&gt;
					table.insert(emited, name..&amp;quot;: &amp;quot;..mw.text.nowiki(value))&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				i = i + 1&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if emited then&lt;br /&gt;
				table.insert(result, table.concat(emited, &amp;quot;&amp;lt;br /&amp;gt; → &amp;quot;))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	&lt;br /&gt;
		local count = false&lt;br /&gt;
		wikitext, count = mw.ustring.gsub(wikitext, &amp;quot;{{[^{}]+}}&amp;quot;, &amp;quot;€&amp;quot;)&lt;br /&gt;
		if count == 0 then&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if #result &amp;gt; 0 then&lt;br /&gt;
		return &amp;quot;&amp;lt;ul&amp;gt;&amp;lt;li&amp;gt;&amp;quot;..table.concat(result, &amp;quot;&amp;lt;/li&amp;gt;&amp;lt;li&amp;gt;&amp;quot;)..&amp;quot;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m.NavboxWidth(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/NavboxWidth&amp;quot;).id&lt;br /&gt;
	local style = frame.args[1]&lt;br /&gt;
	if string.match(style, &amp;quot;;%s*float%s*:%s*right%s*;&amp;quot;) then&lt;br /&gt;
		return string.match(style, &amp;quot;;%s*width%s*:%s*([0-9]+px)%s*;&amp;quot;)&lt;br /&gt;
			or string.match(style, &amp;quot;;%s*width%s*:%s*([0-9]+em)%s*;&amp;quot;)&lt;br /&gt;
			or string.match(style, &amp;quot;;%s*width%s*:%s*(auto)%s*;&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m.NoWrapDates(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/NoWrapDates&amp;quot;).id&lt;br /&gt;
	local yes = &amp;quot;tak&amp;quot;&lt;br /&gt;
	local fixedDates = {}&lt;br /&gt;
	local fixedMarkerFormat = &amp;quot;\127_FixedDate%d_\127&amp;quot;&lt;br /&gt;
	local fixedMarkerPattern = &amp;quot;\127_FixedDate(%d+)_\127&amp;quot;&lt;br /&gt;
	local patterns = {&lt;br /&gt;
		&amp;quot;%[%[(%d%d?)%s+(%l+)%]%]%s+%[%[(%d%d%d%d) p%.n%.e%.%]%]&amp;quot;,&lt;br /&gt;
		&amp;quot;(%d%d?)%s+(%l+)%s+(%d%d%d%d) p%.n%.e%.&amp;quot;,&lt;br /&gt;
		&amp;quot;%[%[(%d%d?)%s+(%l+)%]%]%s+%[%[(%d%d%d%d)%]%]&amp;quot;,&lt;br /&gt;
		&amp;quot;(%d%d?)%s+(%l+)%s+(%d%d%d%d)&amp;quot;,&lt;br /&gt;
	}&lt;br /&gt;
	local months = require(&amp;quot;Moduł:Cytuj/dane&amp;quot;).monthparser&lt;br /&gt;
	&lt;br /&gt;
	function customPattern(variant, plain)&lt;br /&gt;
		if not variant then&lt;br /&gt;
			return &amp;quot;&amp;quot;&lt;br /&gt;
		elseif #variant == 0 then&lt;br /&gt;
			return &amp;quot;%s*&amp;quot;&lt;br /&gt;
		elseif plain then&lt;br /&gt;
			return mw.ustring.gsub( variant, &amp;quot;([%(%)%.%%%+%-%*%?%[%^%$%]])&amp;quot;, &amp;quot;%%%1&amp;quot; )&lt;br /&gt;
		else&lt;br /&gt;
			return variant&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local text = frame.args[1]&lt;br /&gt;
	local plain = (frame.args.plain == yes) or (frame.args.plain == 1)&lt;br /&gt;
	local attachLeft = &amp;quot;(&amp;quot;..customPattern(frame.args.left, plain)&lt;br /&gt;
	local attachRight = customPattern(frame.args.right, plain)..&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	function NoWrapDate(full, day, month, year)&lt;br /&gt;
		local d = tonumber(day)&lt;br /&gt;
		local m = months[month]&lt;br /&gt;
		local y = tonumber(year)&lt;br /&gt;
		&lt;br /&gt;
		if not months[month] or (d &amp;lt;= 0) or (d &amp;gt; 31) then&lt;br /&gt;
			return null&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local result = mw.html.create(&amp;quot;span&amp;quot;)&lt;br /&gt;
			:css(&amp;quot;white-space&amp;quot;, &amp;quot;nowrap&amp;quot;)&lt;br /&gt;
			:wikitext(full)&lt;br /&gt;
		table.insert(fixedDates, tostring(result))&lt;br /&gt;
		local fixedIndex = #fixedDates&lt;br /&gt;
		return string.format(fixedMarkerFormat, fixedIndex)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for i, v in ipairs(patterns) do&lt;br /&gt;
		text, _ = mw.ustring.gsub(text, attachLeft..v..attachRight, NoWrapDate)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	text = string.gsub(text, fixedMarkerPattern, function(n) return fixedDates[tonumber(n)] end)&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m.Encode(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/Encode&amp;quot;).id&lt;br /&gt;
	local html = frame.args.html&lt;br /&gt;
	return html and mw.text.encode(html) or html&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m.FormatPluralNum(frame)&lt;br /&gt;
	mw.logObject(frame:getParent():getTitle(), &amp;quot;parent:title&amp;quot;)&lt;br /&gt;
	_ = mw.title.new(&amp;quot;Module:Łatki/Wywołanie funkcji/FormatPluralNum&amp;quot;).id&lt;br /&gt;
	local t = frame.args[1]&lt;br /&gt;
	local p = {}&lt;br /&gt;
	for i = 2, 5 do&lt;br /&gt;
		if not frame.args[i] then&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		table.insert(p, frame.args[i])&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local s, e = mw.ustring.find(t, frame.args.pattern or &amp;quot;[0-9][0-9 ]*&amp;quot;)&lt;br /&gt;
	local prefix = &amp;#039;&amp;#039;&lt;br /&gt;
	local number = t&lt;br /&gt;
	local suffix = &amp;#039;&amp;#039;&lt;br /&gt;
	local extra = &amp;#039;&amp;#039;&lt;br /&gt;
	if s then&lt;br /&gt;
		while mw.ustring.sub(t, e, e) == &amp;#039; &amp;#039; do&lt;br /&gt;
			e = e - 1&lt;br /&gt;
		end&lt;br /&gt;
		prefix = s &amp;gt; 1 and mw.ustring.sub(t, 1, s-1) or &amp;#039;&amp;#039;&lt;br /&gt;
		number = mw.ustring.gsub(mw.ustring.sub(t, s, e), &amp;#039; &amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		suffix = e &amp;lt; mw.ustring.len(t) and mw.ustring.sub(t, e + 1) or &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local lang = mw.language.getContentLanguage()&lt;br /&gt;
	local count = lang:parseFormattedNumber(number)&lt;br /&gt;
	if count then&lt;br /&gt;
		local r0 = mw.ustring.match(number, &amp;quot;[%.,]([0-9]-0+)$&amp;quot;)&lt;br /&gt;
		number = lang:formatNum(count)&lt;br /&gt;
		if r0 then&lt;br /&gt;
			local l, r = mw.ustring.match(number, &amp;quot;(.-),([0-9]+)$&amp;quot;)&lt;br /&gt;
			if not r then&lt;br /&gt;
				number = number..&amp;#039;,&amp;#039;..r0&lt;br /&gt;
			elseif #r &amp;lt; #r0 then&lt;br /&gt;
				number = l..&amp;#039;,&amp;#039;..r0&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if #p &amp;gt; 0 then&lt;br /&gt;
		extra = count and lang:convertPlural(count, p) or p[#p]&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local result = {prefix, number, suffix, extra}&lt;br /&gt;
	return table.concat(result,&amp;#039;&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function m.Wrap(frame)&lt;br /&gt;
	&lt;br /&gt;
	local blockPatterns = {&lt;br /&gt;
		&amp;quot;\n[*:;#]&amp;quot;, -- wikilista&lt;br /&gt;
		&amp;quot;\n\n&amp;quot;, -- wikiakapit&lt;br /&gt;
		&amp;quot;\n{|&amp;quot;, -- wikitabela&lt;br /&gt;
		&amp;quot;&amp;lt;[Pp][ &amp;gt;]&amp;quot;, -- &amp;lt;p&amp;gt;&lt;br /&gt;
		&amp;quot;&amp;lt;[Hh][Rr1-6][ &amp;gt;]&amp;quot;, -- &amp;lt;hr&amp;gt;, &amp;lt;h1&amp;gt;..&amp;lt;h6&amp;gt;&lt;br /&gt;
		&amp;quot;&amp;lt;[UuOoDd][Ll][ &amp;gt;]&amp;quot;, -- &amp;lt;ul&amp;gt;&amp;lt;ol&amp;gt;&amp;lt;dl&amp;gt;&lt;br /&gt;
		&amp;quot;&amp;lt;[Ll][Ii][ &amp;gt;]&amp;quot;, -- &amp;lt;li&amp;gt;&lt;br /&gt;
		&amp;quot;&amp;lt;[Dd][DdTt][ &amp;gt;]&amp;quot;, -- &amp;lt;dd&amp;gt;&amp;lt;dt&amp;gt;&lt;br /&gt;
		&amp;quot;&amp;lt;[Dd][Ii][Vv][ &amp;gt;]&amp;quot;, -- &amp;lt;div&amp;gt;&lt;br /&gt;
		&amp;quot;&amp;lt;[Tt][Aa][Bb][Ll][Ee][ &amp;gt;]&amp;quot;, -- &amp;lt;table&amp;gt;&lt;br /&gt;
		&amp;quot;&amp;lt;[Bb][Ll][Oo][Cc][Kk][Qq][uu][Oo][Tt][Ee][ &amp;gt;]&amp;quot;, -- &amp;lt;blockquote&amp;gt;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	local text = frame.args[1]&lt;br /&gt;
	if not text or (#text == 0) then&lt;br /&gt;
		mw.logObject(pattern, &amp;quot;WRAP: empty&amp;quot;)&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local lead = frame.args.leadInline or &amp;quot;&amp;quot;&lt;br /&gt;
	local tail = frame.args.tailInline or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	for i, pattern in ipairs(blockPatterns) do&lt;br /&gt;
		local catch = mw.ustring.match(text, pattern)&lt;br /&gt;
		if catch then&lt;br /&gt;
			mw.logObject(pattern, &amp;quot;WRAP: pattern&amp;quot;)&lt;br /&gt;
			mw.logObject(catch, &amp;quot;WRAP: catch&amp;quot;)&lt;br /&gt;
			lead = frame.args.leadBlock or &amp;quot;&amp;quot;&lt;br /&gt;
			tail = frame.args.tailBlock or &amp;quot;&amp;quot;&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	mw.logObject(lead,&amp;quot;WRAP: lead&amp;quot;)&lt;br /&gt;
	mw.logObject(tail,&amp;quot;WRAP: tail&amp;quot;)&lt;br /&gt;
	return lead..text..tail&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return m&lt;/div&gt;</summary>
		<author><name>pl&gt;Malarz pl</name></author>
	</entry>
</feed>