Moduł:Drzewa link

Z Nonsensopedii, polskiej encyklopedii humoru

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

function p._linkCat(namespace, category)
	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 catlink = '[[:Kategoria:' .. category .. ']]'
	return {
		title='Ambox', 
		args={
			grafika='[[Plik:Dwa drzewa kategorii.svg|x40px]]', 
			tekst='Ta kategoria ma swój odpowiednik w drzewie kategorii ' .. 
			comms[namespace] .. ': \'\'\'' .. catlink .. '\'\'\'.'
		}
	} end

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 cat
	local namespace
	for name, space in pairs(namespaces) do
		if args[space] ~= nil then 
			cat = args[space] 
			namespace = space
		end
	end
	if cat == nil or namespace == nil then 
		if args['1'] == nil then return '' else 
			cat = args['1']
			if cat:find(' – ') then
				namespace = namespaces[cat:match("(.+) – "):lower()]
			else namespace = 'główna' end
		end
	end
	return frame:expandTemplate{p._linkCat(namespace, cat)}
end

return p