<?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%3AWikidane%2Fformat%2Fstring</id>
	<title>Moduł:Wikidane/format/string - 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%3AWikidane%2Fformat%2Fstring"/>
	<link rel="alternate" type="text/html" href="https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?title=Modu%C5%82:Wikidane/format/string&amp;action=history"/>
	<updated>2026-07-12T00:10:43Z</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:Wikidane/format/string&amp;diff=805&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:Wikidane/format/string&amp;diff=805&amp;oldid=prev"/>
		<updated>2025-12-07T22:28:36Z</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 00:28, 8 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-804:rev-805 --&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:Wikidane/format/string&amp;diff=804&amp;oldid=prev</id>
		<title>wpl&gt;WTM: Wycofano edycję użytkownika 2A00:F41:2808:4F6:F918:2273:4F90:6E7F (dyskusja). Autor przywróconej wersji to Paweł Ziemian.</title>
		<link rel="alternate" type="text/html" href="https://wiki.idzie.xn--t-wha.xn--drog-eta.pl/index.php?title=Modu%C5%82:Wikidane/format/string&amp;diff=804&amp;oldid=prev"/>
		<updated>2024-06-25T02:58:58Z</updated>

		<summary type="html">&lt;p&gt;Wycofano edycję użytkownika &lt;a href=&quot;/index.php?title=Specjalna:Wk%C5%82ad/2A00:F41:2808:4F6:F918:2273:4F90:6E7F&quot; title=&quot;Specjalna:Wkład/2A00:F41:2808:4F6:F918:2273:4F90:6E7F&quot;&gt;2A00:F41:2808:4F6:F918:2273:4F90:6E7F&lt;/a&gt; (&lt;a href=&quot;/index.php?title=Dyskusja_u%C5%BCytkownika:2A00:F41:2808:4F6:F918:2273:4F90:6E7F&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Dyskusja użytkownika:2A00:F41:2808:4F6:F918:2273:4F90:6E7F (strona nie istnieje)&quot;&gt;dyskusja&lt;/a&gt;). Autor przywróconej wersji to &lt;a href=&quot;/index.php?title=U%C5%BCytkownik:Pawe%C5%82_Ziemian&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Użytkownik:Paweł Ziemian (strona nie istnieje)&quot;&gt;Paweł Ziemian&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local moduleData = mw.loadData(&amp;quot;Module:Wikidane/data&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
local transformations = {&lt;br /&gt;
	[&amp;quot;lc&amp;quot;] = function(s)&lt;br /&gt;
		return mw.getContentLanguage():lc(s)&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;lcfirst&amp;quot;] = function(s)&lt;br /&gt;
		return mw.getContentLanguage():lcfirst(s)&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;uc&amp;quot;] = function(s)&lt;br /&gt;
		return mw.getContentLanguage():uc(s)&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;ucfirst&amp;quot;] = function(s)&lt;br /&gt;
		return mw.getContentLanguage():ucfirst(s)&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;nospaces&amp;quot;] = function(s)&lt;br /&gt;
		return mw.ustring.gsub(s, &amp;quot;%s&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;0-9&amp;quot;] = function(s)&lt;br /&gt;
		return mw.ustring.gsub(s, &amp;quot;[^0-9]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;0-9X&amp;quot;] = function(s)&lt;br /&gt;
		return mw.ustring.gsub(s, &amp;quot;[^0-9X]&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;query&amp;quot;] = function(s)&lt;br /&gt;
		local t = mw.uri.encode(s, &amp;quot;QUERY&amp;quot;)&lt;br /&gt;
		local q, c = string.gsub(t, &amp;quot;%%2F&amp;quot;, &amp;#039;/&amp;#039; )&lt;br /&gt;
		return q&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;QUERY&amp;quot;] = function(s)&lt;br /&gt;
		return mw.uri.encode(s, &amp;quot;QUERY&amp;quot;)&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;PATH&amp;quot;] = function(s)&lt;br /&gt;
		return mw.uri.encode(s, &amp;quot;PATH&amp;quot;)&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;WIKI&amp;quot;] = function(s)&lt;br /&gt;
		return mw.uri.encode(s, &amp;quot;WIKI&amp;quot;)&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;ANCHOR&amp;quot;] = function(s)&lt;br /&gt;
		return mw.uri.anchorEncode(s)&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;encode&amp;quot;] = function(s)&lt;br /&gt;
		return mw.text.encode(s)&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;nowiki&amp;quot;] = function(s)&lt;br /&gt;
		return mw.text.nowiki(s)&lt;br /&gt;
	end,&lt;br /&gt;
	&lt;br /&gt;
	[&amp;quot;trim&amp;quot;] = function(s)&lt;br /&gt;
		return mw.text.trim(s)&lt;br /&gt;
	end,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function propertyLinkFormat(property)&lt;br /&gt;
	local prop = mw.wikibase.getBestStatements(property, &amp;quot;P1630&amp;quot;)&lt;br /&gt;
	if not prop or (#prop == 0) then&lt;br /&gt;
		prop = mw.wikibase.getBestStatements(property, &amp;quot;P1921&amp;quot;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if prop and (#prop &amp;gt; 0) then&lt;br /&gt;
		local snak = prop[1].mainsnak&lt;br /&gt;
		if (snak.snaktype == &amp;quot;value&amp;quot;) and (snak.datatype == &amp;quot;string&amp;quot;) and (snak.datavalue.type == &amp;quot;string&amp;quot;) then&lt;br /&gt;
			return snak.datavalue.value&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function loadFormat(format, formatLink)&lt;br /&gt;
	if format == moduleData.boolNo then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local url = false&lt;br /&gt;
	if formatLink then&lt;br /&gt;
		local count&lt;br /&gt;
		url, count = string.gsub(formatLink, &amp;quot;$1&amp;quot;, &amp;quot;((query))&amp;quot;)&lt;br /&gt;
		if count &amp;lt;= 0 then&lt;br /&gt;
			url = false&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if format == &amp;quot;url&amp;quot; then&lt;br /&gt;
		return url&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if url and not format then&lt;br /&gt;
		return &amp;quot;[&amp;quot;..url..&amp;quot; ((nowiki))]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if url and format and not string.match(format, &amp;quot;%(%([^%(%)]+%)%)&amp;quot;) then&lt;br /&gt;
		return &amp;quot;[&amp;quot;..url..&amp;quot; &amp;quot;..format..&amp;quot;]&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return format&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function findComplexTransformation(capture)&lt;br /&gt;
	-- próba wywołania funkcji z modułu&lt;br /&gt;
	local m, f = mw.ustring.match(capture, &amp;quot;^([^%|\n]+)%|([^%|\n]+)$&amp;quot;)&lt;br /&gt;
	if m and f then&lt;br /&gt;
		local title = mw.title.new(m)&lt;br /&gt;
		if title and (title.namespace == 828) and title.exists then&lt;br /&gt;
			local transformationFunction = require(m)[f]&lt;br /&gt;
			if type(transformationFunction) == &amp;quot;function&amp;quot; then&lt;br /&gt;
				local succeeded, text = pcall(transformationFunction, {&amp;quot;&amp;quot;}) -- próba wywołania z pustym argumentem&lt;br /&gt;
				if succeeded then&lt;br /&gt;
					return function(value)&lt;br /&gt;
						local t = transformationFunction({value}) or &amp;quot;&amp;quot;&lt;br /&gt;
						return tostring(t)&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- próba wywołania szablonu&lt;br /&gt;
	local s = mw.ustring.match(capture, &amp;quot;^[^%|\n]+$&amp;quot;)&lt;br /&gt;
	if s then&lt;br /&gt;
		local title = mw.title.new(s)&lt;br /&gt;
		if title and (title.namespace == 10) and title.exists then&lt;br /&gt;
			local frame = mw.getCurrentFrame()&lt;br /&gt;
			if frame then&lt;br /&gt;
				return function(value)&lt;br /&gt;
					return frame:expandTemplate{ title=title.text, args={value} }&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	&lt;br /&gt;
scope = &amp;quot;snak&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
format = function(snak, options)&lt;br /&gt;
	local format = loadFormat(options.format, propertyLinkFormat(snak.property))&lt;br /&gt;
	local value = snak.datavalue.value&lt;br /&gt;
	if not format or not value then&lt;br /&gt;
		return value&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- prepare cache with &amp;quot;precomputed&amp;quot; direct value&lt;br /&gt;
	-- the cache allows to compute value once, which is used mostly twice&lt;br /&gt;
	local cache = { value = value }&lt;br /&gt;
	&lt;br /&gt;
	local repl = function(capture)&lt;br /&gt;
		local result = cache[capture]&lt;br /&gt;
		if not result then&lt;br /&gt;
			local transformation = transformations[capture]&lt;br /&gt;
				or findComplexTransformation(capture)&lt;br /&gt;
			result = transformation and transformation(value) or value&lt;br /&gt;
			cache[capture] = result&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return mw.ustring.gsub(format, &amp;quot;%(%(([^%(%)]+)%)%)&amp;quot;, repl)&lt;br /&gt;
end,&lt;br /&gt;
&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>wpl&gt;WTM</name></author>
	</entry>
</feed>