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

Z Nonsensopedii, polskiej encyklopedii humoru
M
M (no zobaczmy)
Linia 1: Linia 1:
local p = {}
local p = {}
local tools = require('Moduł:Narzędzia')
local tools = require('Moduł:Narzędzia')

-- żywcem zerżnięte z https://gist.github.com/jaredallard/ddb152179831dd23b230
function string:split(delimiter)
local result = {}
local from = 1
local delim_from, delim_to = string.find(self, delimiter, from)
while delim_from do
table.insert(result, string.sub(self, from, delim_from - 1))
from = delim_to + 1
delim_from, delim_to = string.find(self, delimiter, from)
end
table.insert(result, string.sub(self, from))
return result
end


function p.linkCat(frame)
function p.linkCat(frame)
Linia 23: Linia 37:
cat = args['1']
cat = args['1']
if cat:find '–' then
if cat:find '–' then
local namespace = namespaces[split(cat, '')[0].lower()]
local namespace = namespaces[string:split(cat, "")[0].lower()]
else
else
local namespace = 'główna' end
local namespace = 'główna' end

Wersja z 10:42, 2 gru 2020


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

-- żywcem zerżnięte z https://gist.github.com/jaredallard/ddb152179831dd23b230
function string:split(delimiter)
  local result = {}
  local from = 1
  local delim_from, delim_to = string.find(self, delimiter, from)
  while delim_from do
    table.insert(result, string.sub(self, from, delim_from - 1))
    from  = delim_to + 1
    delim_from, delim_to = string.find(self, delimiter, from)
  end
  table.insert(result, string.sub(self, from))
  return result
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 and namespace ~= nil then 
		return namespace .. ', ' .. '[[:Kategoria:' .. cat .. ']]\n'
	else 
		if args['1'] == nil then return 'arg1 nil' 
		else
		cat = args['1']
		if cat:find '–' then 
			local namespace = namespaces[string:split(cat, " – ")[0].lower()]
		else
			local namespace = 'główna' end
		return namespace .. ', ' .. '[[:Kategoria:' .. cat .. ']]\n' end 
	end
end

return p