Přeskočit na obsah

Modul:AL: Porovnání verzí

Z Wikislovníku
Smazaný obsah Přidaný obsah
Auvajs (diskuse | příspěvky)
opr komentáře
Auvajs (diskuse | příspěvky)
úprava čísel
Řádek 12: Řádek 12:


-- slova odpovídající následujícím výrazům nebudou mít odkaz
-- slova odpovídající následujícím výrazům nebudou mít odkaz
local noLinks = { "^[0-9]+$", "^[(][0-9]+[)]*$", "^[0-9]+[/][0-9]+$" }
local noLinks = { "^[(]*[0-9]+[.-,;)]*$", "^[0-9]+[/][0-9]+$" }
for l in pairs (noLinks) do
for l in pairs (noLinks) do

Verze z 27. 7. 2017, 17:46

Dokumentaci tohoto modulu lze vytvořit na stránce Nápověda:Modul:AL

p = {}

function RemoveSelflink (link)
	if link == "[[" .. pagename .. "]]" then
		return pagename
	else
		return link
	end
end

function link (link)

	-- slova odpovídající následujícím výrazům nebudou mít odkaz
	local noLinks = { "^[(]*[0-9]+[.-,;)]*$", "^[0-9]+[/][0-9]+$" }
	
	for l in pairs (noLinks) do
		if link:find (noLinks[l]) then
			return link
		end
	end
	-- slova začínající na ! nebudou prolinkována, ale ! se nevloží
	
	if link:find ("^[!]") then
		return link:gsub ("^[!]", "")
	end
	
	-- podtržítko (_) se změní na mezeru
	
	local out = link:gsub("_", " ")
	
	-- defaultní linkování slova
	out = out:gsub("^(.*)$","[[%1]]")
	
	-- závorky vždy na konec, resp. začáte	 slova
	out = out:gsub("(.*)[(](.*)", "(%1%2")
	out = out:gsub("(.*)[)](.*)", "%1%2)")
	
	-- interpunkce ignorovaná na konci slova
	
	local ignores = { ";", ".", ",", "!", "?", "/" }
	for i in pairs (ignores) do
		out = out:gsub("[" .. ignores[i] .. "][]][]]", "]]" .. ignores[i])
		out = out:gsub("[" .. ignores[i] .. "][)]", ")" .. ignores[i])
	end
	
	-- výrazy s lomítkem (/)
	if out:find("[^/][/][^/]") then
		out = out:gsub("[]][]]","")
		out = out:gsub("/","]]")
	end
	-- dvě lomítka vloží 1 lomítko
	out = out:gsub("[/][/]","/")
	
	 
	return  out

end



function p.print (frame)
	local out = ""
	local arg = {}
	n = 1
	-- aby šlo pracovat s počtem argumentů
	for a in pairs (frame:getParent().args) do
		table.insert (arg, frame:getParent().args[n])
		n = n + 1
	end
	local page = mw.title.getCurrentTitle()
	pagename = page.text
	
	local text = ""
	n = 1
	for a in pairs (arg) do
		text = text .. arg[n]
		if n ~= #arg then
			text = text .. "|" 
		end
		n = n + 1
	end
	
	local words = {}
	for word in text:gmatch ("[^ ]+") do
		table.insert (words, word)
	end
	n = 1
	for word in pairs (words) do
		out = out .. link (words[word])
		if word ~= #words then
			out = out .. " "
		end
	end
	
	return  out
end

return p