Modul:glossary
Dokumentacija za tutón modul hodźi so na Modul:glossary/dokumentacija wutworić
local export = {}
local ugsub = mw.ustring.gsub
local umatch = mw.ustring.match
function format_def(term, definition)
local anchor = ugsub(term, "%[%[([^%]]+)%]%]", "%1") -- Remove wikilinks
anchor = ugsub(anchor, "^%w+:", "") -- Remove interwiki prefixes
return "; <span id=\""..anchor.."\">"..term.."</span>\n: "..definition
end
function export.def (frame)
local params = {
[1] = { required = true, default = "", },
[2] = { required = true, default = "", },
}
local args = require("Modul:parameters").process(frame:getParent().args, params)
local term = args[1]
local definition = args[2]
return format_def (term, definition)
end
function export.link(frame)
local args = frame:getParent().args
for k, v in pairs(args) do
if not (k == 1 or k == 2) then
require "Modul:debug".track "glossary/invalid argument"
require "Modul:debug".track("glossary/invalid argument/" .. k)
mw.log("invalid argument in {{glosar}}: " .. k)
end
end
local anchor, text = args[1] or "", args[2]
text = text and not umatch(text, "^%s*$") and text
local data = mw.loadData("Modul:glossary/data")
local formatted_anchor = ugsub(anchor, "[%s_]+", "_")
if data[formatted_anchor] then
return "[[Přidawk:Glosar#" .. formatted_anchor .. "|" .. (text or anchor) .. "]]"
else
local lower_anchor = anchor:ulower()
formatted_anchor = formatted_anchor:ulower()
local link = "[[Přidawk:Glosar#" .. formatted_anchor .. "|" .. (text or anchor) .. "]]"
if data[formatted_anchor] or formatted_anchor:find "^_*$" then
return link
else
mw.log("The anchor " .. lower_anchor
.. (lower_anchor ~= anchor and " or " .. anchor or "")
.. " does not exist in Přidawk:Glosar.")
return link
.. "[[Category:Pages linking to anchors not found in Přidawk:Glosar|"
.. lower_anchor .. "]]"
end
end
end
return export