Modul:AL: Porovnání verzí
Vzhled
Smazaný obsah Přidaný obsah
opr komentáře |
ú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 = { |
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