<?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%3ANoWrap</id>
	<title>Moduł:NoWrap - 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%3ANoWrap"/>
	<link rel="alternate" type="text/html" href="https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?title=Modu%C5%82:NoWrap&amp;action=history"/>
	<updated>2026-07-10T13:22:18Z</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:NoWrap&amp;diff=3893&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:NoWrap&amp;diff=3893&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-3892:rev-3893 --&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:NoWrap&amp;diff=3892&amp;oldid=prev</id>
		<title>wpl&gt;Nux: Zabezpieczono „Moduł:NoWrap”: 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:NoWrap&amp;diff=3892&amp;oldid=prev"/>
		<updated>2026-04-03T23:32:24Z</updated>

		<summary type="html">&lt;p&gt;Zabezpieczono „&lt;a href=&quot;/index.php?title=Modu%C5%82:NoWrap&quot; title=&quot;Moduł:NoWrap&quot;&gt;Moduł:NoWrap&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-393:rev-3892 --&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:NoWrap&amp;diff=393&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:NoWrap&amp;diff=393&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-392:rev-393 --&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:NoWrap&amp;diff=392&amp;oldid=prev</id>
		<title>wpl&gt;Paweł Ziemian: upraszczam</title>
		<link rel="alternate" type="text/html" href="https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?title=Modu%C5%82:NoWrap&amp;diff=392&amp;oldid=prev"/>
		<updated>2019-01-12T22:24:50Z</updated>

		<summary type="html">&lt;p&gt;upraszczam&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local resources = require(&amp;quot;Moduł:NoWrap/resources&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
function CloneTable(value)&lt;br /&gt;
	local result = {}&lt;br /&gt;
	for i, v in ipairs(value) do&lt;br /&gt;
		result[i] = v&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local Scanner = {}&lt;br /&gt;
local ScannerMetatable = { __index = Scanner }&lt;br /&gt;
&lt;br /&gt;
function Scanner.new()&lt;br /&gt;
	local object = {&lt;br /&gt;
		patterns = {},&lt;br /&gt;
		prefixes = {},&lt;br /&gt;
		suffixes = {},&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	return setmetatable( object, ScannerMetatable )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Scanner:addPrefixes(prefixes)&lt;br /&gt;
	for s in mw.ustring.gmatch((prefixes or &amp;quot;&amp;quot;)..&amp;quot; &amp;quot;, resources.prefix.word) do&lt;br /&gt;
		self.prefixes[s] = true&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Scanner:addSuffixes(suffixes)&lt;br /&gt;
	for s in mw.ustring.gmatch(&amp;quot; &amp;quot;..(suffixes or &amp;quot;&amp;quot;), resources.suffix.word) do&lt;br /&gt;
		self.suffixes[s] = true&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Scanner:addPattern(pattern)&lt;br /&gt;
	if not pattern or (#pattern == 0) then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	table.insert(self.patterns, { pattern = pattern, groups = {} })&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Scanner:addDatePatterns(prefixPattern, suffixPattern)&lt;br /&gt;
	&lt;br /&gt;
	local prefixGroup = string.match(prefixPattern, &amp;quot;%(.+%)&amp;quot;) and &amp;quot;prefix&amp;quot; or nil&lt;br /&gt;
	local suffixGroup = string.match(suffixPattern, &amp;quot;%(.+%)&amp;quot;) and &amp;quot;suffix&amp;quot; or nil&lt;br /&gt;
	&lt;br /&gt;
	for i, v in ipairs(resources.dates) do&lt;br /&gt;
		local g = CloneTable(v.groups)&lt;br /&gt;
		if prefixGroup then table.insert(g, 1, prefixGroup) end&lt;br /&gt;
		if suffixGroup then table.insert(g, suffixGroup) end&lt;br /&gt;
		&lt;br /&gt;
		local p = table.concat({&amp;quot;(&amp;quot;, prefixPattern, v.pattern, suffixPattern, &amp;quot;)&amp;quot;, }, &amp;quot;&amp;quot;)&lt;br /&gt;
		table.insert(self.patterns, { pattern = p, groups = g })&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Scanner:acceptPrefix(value)&lt;br /&gt;
	return self.prefixes[value]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Scanner:acceptSuffix(value)&lt;br /&gt;
	return self.suffixes[value]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Scanner:acceptDay(value)&lt;br /&gt;
	local d = tonumber(value) or 0&lt;br /&gt;
	return (d &amp;gt;= 1) and (d &amp;lt;= 31)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Scanner:acceptMonth(value)&lt;br /&gt;
	return resources.months[value]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Scanner:acceptYear(value)&lt;br /&gt;
	local y = tonumber(value) or 0&lt;br /&gt;
	return y &amp;gt; 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
Scanner.validators = {&lt;br /&gt;
	[&amp;quot;prefix&amp;quot;] = Scanner.acceptPrefix,&lt;br /&gt;
	[&amp;quot;day&amp;quot;] = Scanner.acceptDay,&lt;br /&gt;
	[&amp;quot;month&amp;quot;] = Scanner.acceptMonth,&lt;br /&gt;
	[&amp;quot;year&amp;quot;] = Scanner.acceptYear,&lt;br /&gt;
	[&amp;quot;suffix&amp;quot;] = Scanner.acceptSuffix,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function Scanner:noWrapItem(case, full, ...)&lt;br /&gt;
	local p = { ... }&lt;br /&gt;
	for i, v in ipairs(self.patterns[case].groups) do&lt;br /&gt;
		local validator = self.validators[v]&lt;br /&gt;
		if validator and not validator(self, p[i]) then&lt;br /&gt;
			return false&lt;br /&gt;
		end&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(self.fixed, tostring(result))&lt;br /&gt;
	return string.format(resources.marker.format, #self.fixed)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Scanner:NoWrap(text)&lt;br /&gt;
	self.fixed = {}&lt;br /&gt;
	&lt;br /&gt;
	for i, v in ipairs(self.patterns) do&lt;br /&gt;
		local s, m&lt;br /&gt;
		s, m, _ = pcall(mw.ustring.gsub, text, v.pattern, function(...) return self:noWrapItem(i, ...) or nil end)&lt;br /&gt;
		if s then&lt;br /&gt;
			text = m&lt;br /&gt;
		else&lt;br /&gt;
			mw.logObject(text, &amp;quot;Scanner:NoWrap ERROR&amp;quot;)&lt;br /&gt;
			mw.logObject(v, &amp;quot;FAILED pattern&amp;quot;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	text = string.gsub(text, resources.marker.pattern, function(n) return self.fixed[tonumber(n)] end)&lt;br /&gt;
	return text&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	&lt;br /&gt;
[&amp;quot;Wzór&amp;quot;] = function(frame)&lt;br /&gt;
	local text = frame.args[1]&lt;br /&gt;
	if not text then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local scanner = Scanner.new()&lt;br /&gt;
	local i = 2&lt;br /&gt;
	while scanner:addPattern(frame.args[i]) do&lt;br /&gt;
		i = i + 1&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return scanner:NoWrap(text)&lt;br /&gt;
end,&lt;br /&gt;
&lt;br /&gt;
Daty = function(frame)&lt;br /&gt;
	local text = frame.args[1]&lt;br /&gt;
	if not text then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local scanner = Scanner.new()&lt;br /&gt;
	scanner:addDatePatterns(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	return scanner:NoWrap(text)&lt;br /&gt;
end,&lt;br /&gt;
&lt;br /&gt;
DatyOdDo = function(frame)&lt;br /&gt;
	local text = frame.args[1]&lt;br /&gt;
	if not text then&lt;br /&gt;
		return&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local scanner = Scanner.new()&lt;br /&gt;
	scanner:addPrefixes(&amp;quot;od do&amp;quot;)&lt;br /&gt;
	scanner:addDatePatterns(resources.prefix.word, &amp;quot;&amp;quot;)&lt;br /&gt;
	scanner:addDatePatterns(&amp;quot;&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	return scanner:NoWrap(text)&lt;br /&gt;
end,&lt;br /&gt;
&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>wpl&gt;Paweł Ziemian</name></author>
	</entry>
</feed>