<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>http://4strona.duckdns.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Modu%C5%82%3ACapitalize_folder</id>
	<title>Moduł:Capitalize folder - Historia wersji</title>
	<link rel="self" type="application/atom+xml" href="http://4strona.duckdns.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Modu%C5%82%3ACapitalize_folder"/>
	<link rel="alternate" type="text/html" href="http://4strona.duckdns.org/wiki/index.php?title=Modu%C5%82:Capitalize_folder&amp;action=history"/>
	<updated>2026-07-30T14:33:58Z</updated>
	<subtitle>Historia wersji tej strony wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>http://4strona.duckdns.org/wiki/index.php?title=Modu%C5%82:Capitalize_folder&amp;diff=81&amp;oldid=prev</id>
		<title>Fuhrer: 1 wersja</title>
		<link rel="alternate" type="text/html" href="http://4strona.duckdns.org/wiki/index.php?title=Modu%C5%82:Capitalize_folder&amp;diff=81&amp;oldid=prev"/>
		<updated>2026-07-24T10:04:03Z</updated>

		<summary type="html">&lt;p&gt;1 wersja&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&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 10:04, 24 lip 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 3strona_wiki:diff:1.41:old-80:rev-81 --&gt;
&lt;/table&gt;</summary>
		<author><name>Fuhrer</name></author>
	</entry>
	<entry>
		<id>http://4strona.duckdns.org/wiki/index.php?title=Modu%C5%82:Capitalize_folder&amp;diff=80&amp;oldid=prev</id>
		<title>mediawiki&gt;Pppery: +editpage</title>
		<link rel="alternate" type="text/html" href="http://4strona.duckdns.org/wiki/index.php?title=Modu%C5%82:Capitalize_folder&amp;diff=80&amp;oldid=prev"/>
		<updated>2026-01-03T18:38:47Z</updated>

		<summary type="html">&lt;p&gt;+editpage&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nowa strona&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Normalizes folder capitalization under includes/&lt;br /&gt;
-- Only paths starting with &amp;quot;includes/&amp;quot; are processed.&lt;br /&gt;
-- Case-insensitive matches are mapped to canonical names.&lt;br /&gt;
-- Intended to be called from Template:Capitalize folder&lt;br /&gt;
local this = {}&lt;br /&gt;
&lt;br /&gt;
-- canonical mappings (case-insensitive lookup)&lt;br /&gt;
local folders = {&lt;br /&gt;
	----------------------------------------------------------------&lt;br /&gt;
	-- Special rules (kept at top intentionally)&lt;br /&gt;
	----------------------------------------------------------------&lt;br /&gt;
	libs = &amp;#039;libs&amp;#039;,&lt;br /&gt;
	pagers = &amp;#039;Pager&amp;#039;,&lt;br /&gt;
	skins = &amp;#039;Skin&amp;#039;,&lt;br /&gt;
	----------------------------------------------------------------&lt;br /&gt;
	-- Other folders (alphabetically sorted)&lt;br /&gt;
	----------------------------------------------------------------&lt;br /&gt;
	changetags = &amp;#039;ChangeTags&amp;#039;,&lt;br /&gt;
	commentformatter = &amp;#039;CommentFormatter&amp;#039;,&lt;br /&gt;
	commentstore = &amp;#039;CommentStore&amp;#039;,&lt;br /&gt;
	connectionmanager = &amp;#039;ConnectionManager&amp;#039;,&lt;br /&gt;
	db = &amp;#039;DB&amp;#039;,&lt;br /&gt;
	dbal = &amp;#039;DBAL&amp;#039;,&lt;br /&gt;
	dependencystore = &amp;#039;DependencyStore&amp;#039;,&lt;br /&gt;
    editpage = &amp;#039;EditPage&amp;#039;,&lt;br /&gt;
	eventrelayer = &amp;#039;EventRelayer&amp;#039;,&lt;br /&gt;
	externalstore = &amp;#039;ExternalStore&amp;#039;,&lt;br /&gt;
	filebackend = &amp;#039;FileBackend&amp;#039;,&lt;br /&gt;
	fileiteration = &amp;#039;FileIteration&amp;#039;,&lt;br /&gt;
	fileop = &amp;#039;FileOps&amp;#039;,&lt;br /&gt;
	fileophandle = &amp;#039;FileOpHandle&amp;#039;,&lt;br /&gt;
	filerepo = &amp;#039;FileRepo&amp;#039;,&lt;br /&gt;
	formfields = &amp;#039;FormFields&amp;#039;,&lt;br /&gt;
	fsfile = &amp;#039;FSFile&amp;#039;,&lt;br /&gt;
	historyblob = &amp;#039;HistoryBlob&amp;#039;,&lt;br /&gt;
	hookcontainer = &amp;#039;HookContainer&amp;#039;,&lt;br /&gt;
	htmlform = &amp;#039;HTMLForm&amp;#039;,&lt;br /&gt;
	jobqueue = &amp;#039;JobQueue&amp;#039;,&lt;br /&gt;
	lbfactory = &amp;#039;LBFactory&amp;#039;,&lt;br /&gt;
	loadbalancer = &amp;#039;LoadBalancer&amp;#039;,&lt;br /&gt;
	loadmonitor = &amp;#039;LoadMonitor&amp;#039;,&lt;br /&gt;
	lockmanager = &amp;#039;LockManager&amp;#039;,&lt;br /&gt;
	objectcache = &amp;#039;ObjectCache&amp;#039;,&lt;br /&gt;
	paramvalidator = &amp;#039;ParamValidator&amp;#039;,&lt;br /&gt;
	querybuilder = &amp;#039;QueryBuilder&amp;#039;,&lt;br /&gt;
	recentchanges = &amp;#039;RecentChanges&amp;#039;,&lt;br /&gt;
	resourceloader = &amp;#039;ResourceLoader&amp;#039;,&lt;br /&gt;
	resultwrapper = &amp;#039;ResultWrapper&amp;#039;,&lt;br /&gt;
	revisiondelete = &amp;#039;RevisionDelete&amp;#039;,&lt;br /&gt;
	revisionlist = &amp;#039;RevisionList&amp;#039;,&lt;br /&gt;
	searchwidgets = &amp;#039;SearchWidgets&amp;#039;,&lt;br /&gt;
	sitestats = &amp;#039;SiteStats&amp;#039;,&lt;br /&gt;
	specialpage = &amp;#039;SpecialPage&amp;#039;,&lt;br /&gt;
	uuid = &amp;#039;UUID&amp;#039;,&lt;br /&gt;
	wikimap = &amp;#039;WikiMap&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function this.normalize(frame)&lt;br /&gt;
	-- template arguments&lt;br /&gt;
	local args = frame.args or {}&lt;br /&gt;
&lt;br /&gt;
	-- parent arguments (safe lookup)&lt;br /&gt;
	local pargs = {}&lt;br /&gt;
	if frame.getParent then&lt;br /&gt;
		local parent = frame:getParent()&lt;br /&gt;
		if parent and parent.args then&lt;br /&gt;
			pargs = parent.args&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- obtain path parameter&lt;br /&gt;
	local path = args[1] or pargs[1] or &amp;#039;&amp;#039;&lt;br /&gt;
	path = mw.text.trim(path)&lt;br /&gt;
&lt;br /&gt;
	if path == &amp;#039;&amp;#039; then&lt;br /&gt;
		return &amp;#039;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- remember whether the path ends with a slash&lt;br /&gt;
	local hasTrailingSlash = path:sub(-1) == &amp;#039;/&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	-- only normalize under includes/&lt;br /&gt;
	if not path:match(&amp;#039;^includes/&amp;#039;) then&lt;br /&gt;
		-- still restore trailing slash (if present)&lt;br /&gt;
		if hasTrailingSlash and path:sub(-1) ~= &amp;#039;/&amp;#039; then&lt;br /&gt;
			return path .. &amp;#039;/&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		return path&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- split into components&lt;br /&gt;
	local parts = {}&lt;br /&gt;
	for p in path:gmatch(&amp;#039;[^/]+&amp;#039;) do&lt;br /&gt;
		table.insert(parts, p)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- normalize each folder after &amp;quot;includes&amp;quot;&lt;br /&gt;
	for i = 2, #parts do&lt;br /&gt;
		local lowered = mw.ustring.lower(parts[i])&lt;br /&gt;
		if folders[lowered] then&lt;br /&gt;
			parts[i] = folders[lowered]&lt;br /&gt;
		else&lt;br /&gt;
			-- not in table → ucfirst&lt;br /&gt;
			parts[i] = mw.ustring.upper(mw.ustring.sub(parts[i],1,1)) ..&lt;br /&gt;
					   mw.ustring.sub(parts[i],2)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local normalized = table.concat(parts, &amp;#039;/&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- restore trailing slash (if present)&lt;br /&gt;
	if hasTrailingSlash then&lt;br /&gt;
		normalized = normalized .. &amp;#039;/&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return normalized&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return this&lt;/div&gt;</summary>
		<author><name>mediawiki&gt;Pppery</name></author>
	</entry>
</feed>