<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?action=history&amp;feed=atom&amp;title=Modu%C5%82%3AInfoboksy</id>
	<title>Moduł:Infoboksy - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?action=history&amp;feed=atom&amp;title=Modu%C5%82%3AInfoboksy"/>
	<link rel="alternate" type="text/html" href="https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?title=Modu%C5%82:Infoboksy&amp;action=history"/>
	<updated>2026-07-10T13:21:50Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?title=Modu%C5%82:Infoboksy&amp;diff=3891&amp;oldid=prev</id>
		<title>Żółty Kapłan: 1 wersja</title>
		<link rel="alternate" type="text/html" href="https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?title=Modu%C5%82:Infoboksy&amp;diff=3891&amp;oldid=prev"/>
		<updated>2026-04-08T11:33:57Z</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;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;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Wersja z 13:33, 8 kwi 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&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;!-- diff cache key wiki_droga:diff:1.41:old-3890:rev-3891 --&gt;
&lt;/table&gt;</summary>
		<author><name>Żółty Kapłan</name></author>
	</entry>
	<entry>
		<id>https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?title=Modu%C5%82:Infoboksy&amp;diff=3890&amp;oldid=prev</id>
		<title>wpl&gt;Nux: Zabezpieczono „Moduł:Infoboksy”: Moduł ważny/występujący na wielu stronach ([Edytowanie=Dozwolone tylko dla redaktorów] (na czas nieokreślony) [Przenoszenie=Dozwolone tylko dla redaktorów] (na czas nieokreślony))</title>
		<link rel="alternate" type="text/html" href="https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?title=Modu%C5%82:Infoboksy&amp;diff=3890&amp;oldid=prev"/>
		<updated>2026-04-03T23:32:20Z</updated>

		<summary type="html">&lt;p&gt;Zabezpieczono „&lt;a href=&quot;/index.php?title=Modu%C5%82:Infoboksy&quot; title=&quot;Moduł:Infoboksy&quot;&gt;Moduł:Infoboksy&lt;/a&gt;”: Moduł ważny/występujący na wielu stronach ([Edytowanie=Dozwolone tylko dla redaktorów] (na czas nieokreślony) [Przenoszenie=Dozwolone tylko dla redaktorów] (na czas nieokreślony))&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&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;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Wersja z 01:32, 4 kwi 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&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;!-- diff cache key wiki_droga:diff:1.41:old-381:rev-3890 --&gt;
&lt;/table&gt;</summary>
		<author><name>wpl&gt;Nux</name></author>
	</entry>
	<entry>
		<id>https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?title=Modu%C5%82:Infoboksy&amp;diff=381&amp;oldid=prev</id>
		<title>Żółty Kapłan: 1 wersja</title>
		<link rel="alternate" type="text/html" href="https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?title=Modu%C5%82:Infoboksy&amp;diff=381&amp;oldid=prev"/>
		<updated>2025-12-07T20:56:05Z</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;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;pl&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← poprzednia wersja&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Wersja z 22:56, 7 gru 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;4&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;!-- diff cache key wiki_droga:diff:1.41:old-380:rev-381 --&gt;
&lt;/table&gt;</summary>
		<author><name>Żółty Kapłan</name></author>
	</entry>
	<entry>
		<id>https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?title=Modu%C5%82:Infoboksy&amp;diff=380&amp;oldid=prev</id>
		<title>wpl&gt;Malarz pl: rozmiar grafiki 250x250px - patrz Wikipedia:Kawiarenka/Kwestie techniczne#Zmiana rozmiaru miniaturek</title>
		<link rel="alternate" type="text/html" href="https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?title=Modu%C5%82:Infoboksy&amp;diff=380&amp;oldid=prev"/>
		<updated>2025-04-18T16:51:16Z</updated>

		<summary type="html">&lt;p&gt;rozmiar grafiki 250x250px - patrz &lt;a href=&quot;https://en.wikipedia.org/wiki/Kawiarenka/Kwestie_techniczne#Zmiana_rozmiaru_miniaturek&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Kawiarenka/Kwestie techniczne&quot;&gt;Wikipedia:Kawiarenka/Kwestie techniczne#Zmiana rozmiaru miniaturek&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function p.grafika(wywolanie)&lt;br /&gt;
    local grafika = wywolanie.args[1]&lt;br /&gt;
&lt;br /&gt;
    grafika = mw.ustring.gsub(grafika, &amp;quot;%s*[Pp]lik%s*:%s*&amp;quot;, &amp;quot;Plik:&amp;quot;)&lt;br /&gt;
    grafika = mw.ustring.gsub(grafika, &amp;quot;%s*[Ff]ile%s*:%s*&amp;quot;, &amp;quot;Plik:&amp;quot;)&lt;br /&gt;
    grafika = mw.ustring.gsub(grafika, &amp;quot;%s*[Gg]rafika%s*:%s*&amp;quot;, &amp;quot;Plik:&amp;quot;)&lt;br /&gt;
    grafika = mw.ustring.gsub(grafika, &amp;quot;%s*[Ii]mage%s*:%s*&amp;quot;, &amp;quot;Plik:&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(grafika, &amp;quot;^Plik:(.*)&amp;quot;) then&lt;br /&gt;
        grafika = mw.ustring.match(grafika, &amp;quot;^Plik:(.*)&amp;quot;)&lt;br /&gt;
    elseif mw.ustring.match(grafika, &amp;quot;%[%[Plik:([^%[%]|]+)[|%]]&amp;quot;) then&lt;br /&gt;
        grafika = mw.ustring.match(grafika, &amp;quot;%[%[Plik:([^%[%]|]+)[|%]]&amp;quot;)&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return grafika&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
	Obliczenie domyślnej wartości dla odwracalnych grafik.&lt;br /&gt;
	&lt;br /&gt;
	Założenia:&lt;br /&gt;
	- większość SVG powinna być odwracalna.&lt;br /&gt;
	- większość PNG powinna być odwracalna, ale nie grafiki 3D.&lt;br /&gt;
	&lt;br /&gt;
	Przykład użycia:&lt;br /&gt;
	- Szablon:Związek chemiczny infobox&lt;br /&gt;
&lt;br /&gt;
	-- Testy&lt;br /&gt;
	local function test_grafika_odwracalna(nazwa_grafiki, oczekiwany_wynik)&lt;br /&gt;
		local wynik = p.grafika_odwracalna{args = {nazwa_grafiki}}&lt;br /&gt;
		print(&amp;quot;(TestSpec)&amp;quot;, &amp;quot;Oczekiwany:&amp;quot;, oczekiwany_wynik, &amp;quot;Wynik:&amp;quot;, wynik, &amp;quot;Dla grafiki:&amp;quot;, nazwa_grafiki)&lt;br /&gt;
		assert(wynik == oczekiwany_wynik, &amp;quot;Test nie przeszedł dla &amp;quot; .. nazwa_grafiki)&lt;br /&gt;
	end&lt;br /&gt;
	test_grafika_odwracalna(&amp;quot;example.svg&amp;quot;, &amp;quot;tak&amp;quot;)&lt;br /&gt;
	test_grafika_odwracalna(&amp;quot;example.PNG&amp;quot;, &amp;quot;tak&amp;quot;)&lt;br /&gt;
	test_grafika_odwracalna(&amp;quot;spacje.PNG  &amp;quot;, &amp;quot;tak&amp;quot;)&lt;br /&gt;
	test_grafika_odwracalna(&amp;quot;example-3D-image.png&amp;quot;, &amp;quot;nie&amp;quot;)&lt;br /&gt;
	test_grafika_odwracalna(&amp;quot;example.jpg&amp;quot;, &amp;quot;nie&amp;quot;)&lt;br /&gt;
]]&lt;br /&gt;
function p.grafika_odwracalna(frame)&lt;br /&gt;
	-- Pobieramy nazwę grafiki z argumentu&lt;br /&gt;
	local nazwa_grafiki = frame.args[1]&lt;br /&gt;
	&lt;br /&gt;
	-- Sprawdzamy, czy nazwa grafiki jest zdefiniowana&lt;br /&gt;
	if not nazwa_grafiki then&lt;br /&gt;
		return &amp;quot;nie&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Spr. założeń&lt;br /&gt;
	nazwa_grafiki = nazwa_grafiki:match(&amp;quot;^%s*(.-)%s*$&amp;quot;)&lt;br /&gt;
	nazwa_grafiki = nazwa_grafiki:lower()&lt;br /&gt;
	if nazwa_grafiki:match(&amp;quot;%.svg$&amp;quot;) then&lt;br /&gt;
		return &amp;quot;tak&amp;quot;&lt;br /&gt;
	elseif nazwa_grafiki:match(&amp;quot;%.png$&amp;quot;) and not nazwa_grafiki:match(&amp;quot;%-3d%-&amp;quot;) then&lt;br /&gt;
		return &amp;quot;tak&amp;quot;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;quot;nie&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.grafika_kategoria(wywolanie)&lt;br /&gt;
    local grafika = wywolanie.args[1]&lt;br /&gt;
    local kategoria = &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    grafika = mw.ustring.gsub(grafika, &amp;quot;%s*[Pp]lik%s*:%s*&amp;quot;, &amp;quot;Plik:&amp;quot;)&lt;br /&gt;
    grafika = mw.ustring.gsub(grafika, &amp;quot;%s*[Ff]ile%s*:%s*&amp;quot;, &amp;quot;Plik:&amp;quot;)&lt;br /&gt;
    grafika = mw.ustring.gsub(grafika, &amp;quot;%s*[Gg]rafika%s*:%s*&amp;quot;, &amp;quot;Plik:&amp;quot;)&lt;br /&gt;
    grafika = mw.ustring.gsub(grafika, &amp;quot;%s*[Ii]mage%s*:%s*&amp;quot;, &amp;quot;Plik:&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.match(grafika, &amp;quot;^Plik:(.*)&amp;quot;) then&lt;br /&gt;
        kategoria = &amp;quot;[[Kategoria:Infoboksy – błędne wywołania plików]]&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(grafika, &amp;quot;%[%[Plik:([^%[%]|]+)[|%]]&amp;quot;) then&lt;br /&gt;
        kategoria = &amp;quot;[[Kategoria:Infoboksy – błędne wywołania plików]]&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(grafika, &amp;quot;%[http:%/%/&amp;quot;) then&lt;br /&gt;
        kategoria = &amp;quot;[[Kategoria:Infoboksy – błędne wywołania plików]]&amp;quot;&lt;br /&gt;
    elseif mw.ustring.match(grafika, &amp;quot;%[https:%/%/&amp;quot;) then&lt;br /&gt;
        kategoria = &amp;quot;[[Kategoria:Infoboksy – błędne wywołania plików]]&amp;quot;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return kategoria&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.grafika_rozmiar(wywolanie)&lt;br /&gt;
    local parametr = wywolanie.args[1]&lt;br /&gt;
    local maksymalny = wywolanie.args[2] or &amp;quot;BRAK&amp;quot;&lt;br /&gt;
    local minimalny = wywolanie.args[3] or &amp;quot;BRAK&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    local maxwidth  = tonumber(mw.ustring.match(maksymalny, &amp;quot;^(%d+)x%d+px$&amp;quot;)) or 250&lt;br /&gt;
    local maxheight = tonumber(mw.ustring.match(maksymalny, &amp;quot;^%d+x(%d+)px$&amp;quot;)) or 500&lt;br /&gt;
&lt;br /&gt;
    local minwidth  = tonumber(mw.ustring.match(minimalny, &amp;quot;^(%d+)x%d+px$&amp;quot;)) or 120&lt;br /&gt;
    local minheight = tonumber(mw.ustring.match(minimalny, &amp;quot;^%d+x(%d+)px$&amp;quot;)) or 100&lt;br /&gt;
&lt;br /&gt;
    local width  = tonumber(mw.ustring.match(parametr, &amp;quot;^(%d+)x?%d*px&amp;quot;)) or 250&lt;br /&gt;
    local height = tonumber(mw.ustring.match(parametr, &amp;quot;^%d*x(%d+)px&amp;quot;))  or 250&lt;br /&gt;
&lt;br /&gt;
    if width &amp;gt; maxwidth then&lt;br /&gt;
        width = maxwidth&lt;br /&gt;
    elseif width &amp;lt; minwidth then&lt;br /&gt;
        width = minwidth&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if height &amp;gt; maxheight then&lt;br /&gt;
        height = maxheight&lt;br /&gt;
    elseif height &amp;lt; minheight then&lt;br /&gt;
        height = minheight&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    rozmiar = width .. &amp;quot;x&amp;quot; .. height .. &amp;quot;px&amp;quot;&lt;br /&gt;
&lt;br /&gt;
    return rozmiar&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.tabela(wywolanie)&lt;br /&gt;
    local tabela = &amp;quot;&amp;quot;&lt;br /&gt;
    local wiersznaglowek = wywolanie.args[&amp;#039;wiersz nagłówek&amp;#039;] or &amp;quot;&amp;quot;&lt;br /&gt;
    local wierszpodsumowanie = wywolanie.args[&amp;#039;wiersz podsumowanie&amp;#039;] or &amp;quot;&amp;quot;&lt;br /&gt;
    local wierszcenter = wywolanie.args[&amp;#039;wiersz center&amp;#039;] or &amp;quot;style=\&amp;quot;background:#ddd; border-top:1px solid #aaa; text-align:center;\&amp;quot;&amp;quot;&lt;br /&gt;
    local separator = &amp;quot;*&amp;quot;&lt;br /&gt;
    local linia&lt;br /&gt;
    local element&lt;br /&gt;
    local kolumny = 0&lt;br /&gt;
    local suma = {}&lt;br /&gt;
    local pokazsuma = {}&lt;br /&gt;
    local format = {}&lt;br /&gt;
    local kategoria = &amp;quot;Kategoria:Infoboksy – błędne dane – &amp;quot; .. (wywolanie.args[&amp;#039;kategoria&amp;#039;] or &amp;quot;Moduł:Infoboksy&amp;quot;)&lt;br /&gt;
    local i&lt;br /&gt;
&lt;br /&gt;
    if wywolanie.args[&amp;#039;nagłówek&amp;#039;] then&lt;br /&gt;
        local naglowek = &amp;quot;!&amp;quot; .. wywolanie.args[&amp;#039;nagłówek&amp;#039;]&lt;br /&gt;
        tabela = tabela .. &amp;quot;|- &amp;quot; .. wiersznaglowek .. &amp;quot;\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
        while (mw.ustring.match(naglowek, &amp;quot;![^!]*&amp;quot;)) do&lt;br /&gt;
            kolumny = kolumny + 1&lt;br /&gt;
&lt;br /&gt;
            element = mw.ustring.match(naglowek, &amp;quot;![^!]*&amp;quot;)&lt;br /&gt;
            naglowek = mw.ustring.gsub(naglowek, p._escapePattern(element), &amp;quot;&amp;quot;, 1)&lt;br /&gt;
            element = mw.ustring.gsub(element, &amp;quot;!%s*&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            tabela = tabela .. &amp;quot;| &amp;quot; .. element .. &amp;quot;\n&amp;quot;&lt;br /&gt;
            suma[kolumny] = 0&lt;br /&gt;
            pokazsuma[kolumny] = 1&lt;br /&gt;
            format[kolumny] = &amp;quot;&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if wywolanie.args[&amp;#039;wiersz&amp;#039;] then&lt;br /&gt;
        local wiersz = &amp;quot;!&amp;quot; .. wywolanie.args[&amp;#039;wiersz&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
        i = 0&lt;br /&gt;
        while (mw.ustring.match(wiersz, &amp;quot;![^!]*&amp;quot;)) do&lt;br /&gt;
            element = mw.ustring.match(wiersz, &amp;quot;![^!]*&amp;quot;)&lt;br /&gt;
            wiersz = mw.ustring.gsub(wiersz, p._escapePattern(element), &amp;quot;&amp;quot;, 1)&lt;br /&gt;
            element = mw.ustring.gsub(element, &amp;quot;!%s*&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            i = i+1&lt;br /&gt;
            format[i] = element&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    local wiersze = 0&lt;br /&gt;
    if wywolanie.args[&amp;#039;tabela&amp;#039;] then&lt;br /&gt;
        local zawartosc = wywolanie.args[&amp;#039;tabela&amp;#039;] .. &amp;quot;\n&amp;quot;&lt;br /&gt;
        while (mw.ustring.match(zawartosc, &amp;quot;[^\n]*\n&amp;quot;)) do&lt;br /&gt;
            wiersze = wiersze + 1&lt;br /&gt;
            linia = mw.ustring.match(zawartosc, &amp;quot;[^\n]*\n&amp;quot;)&lt;br /&gt;
            zawartosc = mw.ustring.gsub(zawartosc, p._escapePattern(linia), &amp;quot;&amp;quot;, 1)&lt;br /&gt;
            linia = mw.ustring.gsub(linia, &amp;quot;\n&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            tabela = tabela .. &amp;quot;|-\n&amp;quot;&lt;br /&gt;
&lt;br /&gt;
            i = 0&lt;br /&gt;
            if mw.ustring.match(linia, &amp;quot;!%+&amp;quot;) then&lt;br /&gt;
            	linia = mw.ustring.gsub(linia, &amp;quot;!%+%s&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
            	i = kolumny&lt;br /&gt;
            	tabela = tabela .. &amp;quot;! colspan=\&amp;quot;&amp;quot; .. kolumny .. &amp;quot;\&amp;quot; &amp;quot; .. wierszcenter .. &amp;quot; | &amp;quot; .. linia .. &amp;quot;\n&amp;quot;&lt;br /&gt;
				linia = &amp;quot;&amp;quot;&lt;br /&gt;
            end&lt;br /&gt;
            while (i&amp;lt;kolumny and mw.ustring.match(linia, &amp;quot;![^!]*&amp;quot;)) do&lt;br /&gt;
                element = mw.ustring.match(linia, &amp;quot;![^!]*&amp;quot;)&lt;br /&gt;
                linia = mw.ustring.gsub(linia, p._escapePattern(element), &amp;quot;&amp;quot;, 1)&lt;br /&gt;
                element = mw.ustring.gsub(element, &amp;quot;!%s*&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
                i = i+1&lt;br /&gt;
&lt;br /&gt;
                local liczba&lt;br /&gt;
                liczba = mw.ustring.match(element, &amp;quot;^%d+&amp;quot;) or &amp;quot;&amp;quot;&lt;br /&gt;
                element = mw.ustring.gsub(element, p._escapePattern(liczba), &amp;quot;&amp;quot;, 1)&lt;br /&gt;
&lt;br /&gt;
                if tonumber(liczba) == nil then&lt;br /&gt;
                    pokazsuma[i] = 0&lt;br /&gt;
                else&lt;br /&gt;
	                suma[i] = suma[i] + (tonumber(liczba) or 0)&lt;br /&gt;
                end&lt;br /&gt;
                element = liczba .. element&lt;br /&gt;
&lt;br /&gt;
                if element ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                    if format[i] == &amp;quot;()&amp;quot; then&lt;br /&gt;
                        element = &amp;quot;(&amp;quot; .. element .. &amp;quot;)&amp;quot;&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
&lt;br /&gt;
                if (wywolanie.args[&amp;#039;kol&amp;#039;..i]) then&lt;br /&gt;
                    tabela = tabela .. &amp;quot;| &amp;quot; .. wywolanie.args[&amp;#039;kol&amp;#039;..i] .. &amp;quot; | &amp;quot; .. element .. &amp;quot;\n&amp;quot;&lt;br /&gt;
                else&lt;br /&gt;
                    tabela = tabela .. &amp;quot;| &amp;quot; .. element .. &amp;quot;\n&amp;quot;&lt;br /&gt;
                end&lt;br /&gt;
&lt;br /&gt;
            end&lt;br /&gt;
			while (i&amp;lt;kolumny) do&lt;br /&gt;
                i = i+1&lt;br /&gt;
				pokazsuma[i] = 0&lt;br /&gt;
			end&lt;br /&gt;
            if linia ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                tabela = tabela .. &amp;quot;|-\n! colspan=\&amp;quot;&amp;quot; .. kolumny .. &amp;quot;\&amp;quot; style=\&amp;quot;background:pink;\&amp;quot; | [[&amp;quot; .. kategoria .. &amp;quot;]] BŁĄD: &amp;quot; .. mw.ustring.gsub(linia, &amp;quot;\n&amp;quot;, &amp;quot;&amp;quot;) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        if zawartosc ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            tabela = tabela .. &amp;quot;|-\n! colspan=\&amp;quot;&amp;quot; .. kolumny .. &amp;quot;\&amp;quot; style=\&amp;quot;background:red;\&amp;quot; | [[&amp;quot; .. kategoria .. &amp;quot;]] BŁĄD: &amp;quot; .. mw.ustring.gsub(zawartosc, &amp;quot;\n&amp;quot;, &amp;quot;&amp;quot;) .. &amp;quot;\n&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if wywolanie.args[&amp;#039;podsumowanie&amp;#039;] then&lt;br /&gt;
        i = 0&lt;br /&gt;
        tabela = tabela .. &amp;quot;|- &amp;quot; .. wierszpodsumowanie .. &amp;quot;\n&amp;quot;&lt;br /&gt;
        local podsumowanie = &amp;quot;!&amp;quot; .. wywolanie.args[&amp;#039;podsumowanie&amp;#039;]&lt;br /&gt;
&lt;br /&gt;
        local pokazsumy = 1&lt;br /&gt;
        if wiersze &amp;lt; 2 then&lt;br /&gt;
            pokazsumy = 0&lt;br /&gt;
        end&lt;br /&gt;
        local sumowanekolumny = 0&lt;br /&gt;
        local sumy = &amp;quot;&amp;quot;&lt;br /&gt;
        while (i&amp;lt;kolumny and mw.ustring.match(podsumowanie, &amp;quot;![^!]*&amp;quot;)) do&lt;br /&gt;
            element = mw.ustring.match(podsumowanie, &amp;quot;![^!]*&amp;quot;)&lt;br /&gt;
            podsumowanie = mw.ustring.gsub(podsumowanie, p._escapePattern(element), &amp;quot;&amp;quot;, 1)&lt;br /&gt;
            element = mw.ustring.gsub(element, &amp;quot;!%s*&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
            i = i+1&lt;br /&gt;
            if element == &amp;quot;+&amp;quot; then&lt;br /&gt;
                sumowanekolumny = sumowanekolumny+1&lt;br /&gt;
                if pokazsuma[i]&amp;gt;0 then&lt;br /&gt;
                    if format[i] == &amp;quot;()&amp;quot; then&lt;br /&gt;
                        suma[i] = &amp;quot;(&amp;quot; .. suma[i] .. &amp;quot;)&amp;quot;&lt;br /&gt;
                    end&lt;br /&gt;
                    sumy = sumy .. &amp;quot;| style=\&amp;quot;text-align:right;\&amp;quot; | &amp;quot; .. suma[i] .. &amp;quot;\n&amp;quot;&lt;br /&gt;
                else&lt;br /&gt;
                    sumy = sumy .. &amp;quot;| \n&amp;quot;&lt;br /&gt;
                    pokazsumy = 0;&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                sumy = sumy .. &amp;quot;| style=\&amp;quot;text-align:right;\&amp;quot; | &amp;quot; .. element .. &amp;quot;\n&amp;quot;&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        if sumowanekolumny == 0 then&lt;br /&gt;
            pokazsumy = 0&lt;br /&gt;
        end&lt;br /&gt;
        if pokazsumy&amp;gt;0 then&lt;br /&gt;
            tabela = tabela .. sumy&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    return tabela&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- kopia z [[Moduł:String]]&lt;br /&gt;
function p._escapePattern( pattern_str )&lt;br /&gt;
    return mw.ustring.gsub( pattern_str, &amp;quot;([%(%)%.%%%+%-%*%?%[%^%$%]])&amp;quot;, &amp;quot;%%%1&amp;quot; );&lt;br /&gt;
end &lt;br /&gt;
&lt;br /&gt;
function p.usun_grafiki(frame)&lt;br /&gt;
	local text = frame.args[1]&lt;br /&gt;
	local cat = frame.args[2] or &amp;quot;&amp;quot;&lt;br /&gt;
	local suffix = &amp;quot;&amp;quot;&lt;br /&gt;
	if text then&lt;br /&gt;
		local function fileDetector(input)&lt;br /&gt;
			local file = string.match(input, &amp;quot;%[%[[Pp]lik%s*:%s*.-%]%]&amp;quot;)&lt;br /&gt;
				or string.match(input, &amp;quot;%[%[[Gg]rafika%s*:%s*.-%]%]&amp;quot;)&lt;br /&gt;
				or string.match(input, &amp;quot;%[%[[Ff]ile%s*:%s*.-%]%]&amp;quot;)&lt;br /&gt;
				or string.match(input, &amp;quot;%[%[[Ii]mage%s*:%s*.-%]%]&amp;quot;)&lt;br /&gt;
			if file then&lt;br /&gt;
				suffix = cat&lt;br /&gt;
				return &amp;quot;&amp;quot;&lt;br /&gt;
			else&lt;br /&gt;
				return false&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local result, _ = string.gsub(text, &amp;quot;%&amp;amp;nbsp;%[%b[]%]&amp;quot;, fileDetector)&lt;br /&gt;
		result, _ = string.gsub(result, &amp;quot;%[%b[]%]%&amp;amp;nbsp;&amp;quot;, fileDetector)&lt;br /&gt;
		result, _ = string.gsub(result, &amp;quot;%[%b[]%]%s*&amp;quot;, fileDetector)&lt;br /&gt;
		result = string.gsub(result, &amp;quot;^&amp;lt;br ?%/?&amp;gt;&amp;quot;, &amp;quot; &amp;quot;);&lt;br /&gt;
&lt;br /&gt;
		return result .. suffix&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.usun_wikilinki(frame)&lt;br /&gt;
	local text = frame.args[1]&lt;br /&gt;
	local signalFiles = frame.args.pliki&lt;br /&gt;
	local signalLinks = frame.args.linki&lt;br /&gt;
	&lt;br /&gt;
	local catPrefix = &amp;quot;[[Kategoria:&amp;quot;&lt;br /&gt;
	local catSuffix = &amp;quot;]]&amp;quot;&lt;br /&gt;
	local appendix = {&amp;quot;&amp;quot;}&lt;br /&gt;
	local hasFiles = false&lt;br /&gt;
	local hasLinks = false&lt;br /&gt;
&lt;br /&gt;
	local linkEliminator = function(s)&lt;br /&gt;
		local cat = mw.ustring.match(s, &amp;quot;^[Kk][Aa][Tt][Ee][Gg][Oo][Rr][Ii][Aa] *: *(%S.*)$&amp;quot;)&lt;br /&gt;
			or mw.ustring.match(s, &amp;quot;^[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy] *: *(%S.*)$&amp;quot;)&lt;br /&gt;
		if cat then&lt;br /&gt;
			table.insert(appendix, catPrefix..cat..catSuffix)&lt;br /&gt;
			return &amp;quot;&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		local file = mw.ustring.match(s, &amp;quot;^[Pp][Ll][Ii][Kk] *: *(%S.*)$&amp;quot;)&lt;br /&gt;
			or mw.ustring.match(s, &amp;quot;^[Ff][Ii][Ll][Ee] *: *(%S.*)$&amp;quot;)&lt;br /&gt;
			or mw.ustring.match(s, &amp;quot;^[Ii][Mm][Aa][Gg][Ee] *: *(%S.*)$&amp;quot;)&lt;br /&gt;
			or mw.ustring.match(s, &amp;quot;^[Gg][Rr][Aa][Ff][Ii][Kk][Aa] *: *(%S.*)$&amp;quot;)&lt;br /&gt;
		if file then&lt;br /&gt;
			hasFiles = true&lt;br /&gt;
			return &amp;quot;&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		hasLinks = true&lt;br /&gt;
		return mw.ustring.match(s, &amp;quot;| *(.+)&amp;quot;) or s&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local c = 1&lt;br /&gt;
	while c &amp;gt; 0 do&lt;br /&gt;
		text, c = mw.ustring.gsub(text, &amp;quot;%[%[ *([^%[%]\n\r]-) *%]%]&amp;quot;, linkEliminator)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if hasLinks and signalLinks and (#signalLinks &amp;gt; 0) then&lt;br /&gt;
		table.insert(appendix, signalLinks)&lt;br /&gt;
	end&lt;br /&gt;
	if hasFiles and signalFiles and (#signalFiles &amp;gt; 0) then&lt;br /&gt;
		table.insert(appendix, signalFiles)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return text..table.concat(appendix, &amp;quot;&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wpl&gt;Malarz pl</name></author>
	</entry>
</feed>