Moduł:Drzewa link: Różnice pomiędzy wersjami

Z Nonsensopedii, polskiej encyklopedii humoru
M (let's check)
M (wszem)
 
(Nie pokazano 21 wersji utworzonych przez 2 użytkowników)
Linia 2: Linia 2:
local tools = require('Moduł:Narzędzia')
local tools = require('Moduł:Narzędzia')


local prefixMap = {
['(główna)'] = 'artykułów',
['grafiki'] = 'grafik',
['nonnews'] = 'NonNewsów',
['słownik'] = 'haseł słownikowych',
['cytaty'] = 'cytatów',
['poradniki'] = 'poradników',
['nonźródła'] = 'nonźródeł'
}


function p._linkCat(namespaces, categories)
function p._linkCats(args)
local links = {}
local comms = {['główna'] = 'artykułów', ['grafiki'] = 'grafik',
['nonnews'] = 'NonNewsów', ['słownik'] = 'haseł słownikowych',
['cytaty'] = 'cytatów', ['poradniki'] = 'poradników',
['nonźródła'] = 'nonźródeł'}
local catlinks = {}
if #categories < 2 then
local use_plural = false else local use_plural = true end
if use_plural then
trp = 'ie' else trp = 'ach' end
for i=1, #namespaces do
local namespace = namespaces[i]
local category = categories[i]
local link = comms[namespace] .. ': \'\'\'' ..
'[[:Kategoria:' .. category .. ']]' .. '\'\'\''
table.insert(catlinks, link) end
for _, cat in pairs(args) do
return {title='Ambox', args={
cat = mw.text.trim(cat or '')
grafika='[[Plik:Dwa drzewa kategorii.svg|x40px]]',
if cat ~= '' then
tekst='Ta kategoria ma swój odpowiednik w drzew' .. trp
local prefix = mw.ustring.lower(mw.ustring.match(cat, "(.+) – ") or '(główna)')
.. 'kategorii ' .. table.concat(catlinks, ', ') .. '.'}}
local treeName = prefixMap[prefix] or 'artykułów'
table.insert(links, '<b>[[:Kategoria:' .. cat .. '|' .. treeName .. ']]</b>')
end
end
local text = ''
if #links == 0 then
text = 'Błąd – nie podano żadnych linków do innych kategorii.'
elseif #links == 1 then
text = 'Ta kategoria ma swój odpowiednik w drzewie kategorii ' .. links[1] .. '.'
else
text = 'Ta kategoria ma swoje odpowiedniki w drzewach kategorii ' .. tools.concatListPl(links) .. '.'
end
return {
title = 'Ambox',
args = {
grafika = '[[Plik:Dwa drzewa kategorii.svg|x40px]]',
tekst = text
}
}
end
end


function p.linkCats(frame)

function p.linkCat(frame)
local namespaces_ =
{['główna']='główna', ['grafiki']='grafiki', ['nonnews']='nonnews',
['słownik']='słownik', ['cytaty']='cytaty', ['poradniki']='poradniki',
['nonźródła']='nonźródła'}
local args = tools.getArgs(frame)
local args = tools.getArgs(frame)
return frame:expandTemplate(p._linkCats(args))
local cats
local namespaces
for cat in args do
if cat == nil then return '' else
if cat:find(' ') then
local namespace = namespaces_[cat:match("(.+) – "):lower()]
else local namespace = 'główna' end
table.insert(cats, arg)
table.insert(namespaces, namespace)
end
end
return frame:expandTemplate(p._linkCat(namespaces, cats))
end
end



Aktualna wersja na dzień 14:58, 1 kwi 2022


local p = {}
local tools = require('Moduł:Narzędzia')

local prefixMap = {
	['(główna)'] = 'artykułów', 
	['grafiki'] = 'grafik',
	['nonnews'] = 'NonNewsów', 
	['słownik'] = 'haseł słownikowych',
	['cytaty'] = 'cytatów', 
	['poradniki'] = 'poradników',
	['nonźródła'] = 'nonźródeł'
}

function p._linkCats(args)
	local links = {}
	
	for _, cat in pairs(args) do
		cat = mw.text.trim(cat or '')
		if cat ~= '' then
			local prefix = mw.ustring.lower(mw.ustring.match(cat, "(.+) – ") or '(główna)')
			local treeName = prefixMap[prefix] or 'artykułów'
			table.insert(links, '<b>[[:Kategoria:' .. cat .. '|' .. treeName .. ']]</b>')
		end
	end
	
	local text = ''
	if #links == 0 then
		text = 'Błąd – nie podano żadnych linków do innych kategorii.'
	elseif #links == 1 then 
		text = 'Ta kategoria ma swój odpowiednik w drzewie kategorii ' .. links[1] .. '.'
	else
		text = 'Ta kategoria ma swoje odpowiedniki w drzewach kategorii ' .. tools.concatListPl(links) .. '.'
	end
	
	return {
		title = 'Ambox',
		args = {
			grafika = '[[Plik:Dwa drzewa kategorii.svg|x40px]]', 
			tekst = text
		}
	} 
end

function p.linkCats(frame)
	local args = tools.getArgs(frame)
	return frame:expandTemplate(p._linkCats(args))
end


return p