Modul:affix
Dokumentation för denna modul finns på /dok (redigera), /test
Obs. Denna modul har inte uppdaterats till nya standarder. Konsensus för införande saknas, diskussion dog år 2017. Kräver språkkod för "delar" (används ej), men språknamn för "prefix" och "suffix" (används ca 20 gånger). Inte ansluten till Modul:lang. Bör undvikas innan detta är löst.
local tabell = mw.loadData("Modul:affix/data")
local export = {}
function export.capitalize(str)
return mw.ustring.gsub(str, "^%l", mw.ustring.upper)
end
function export.delar(frame)
local uppslag = mw.getCurrentFrame():getParent().args["uppslag"] or mw.title.getCurrentTitle().text
local kod = mw.getCurrentFrame():getParent().args[1] or ""
local del1 = mw.getCurrentFrame():getParent().args[2] or ""
local del2 = mw.getCurrentFrame():getParent().args[3] or ""
local del3 = mw.getCurrentFrame():getParent().args[4] or ""
local lang = export.capitalize(tabell[kod] or "Okänt språk")
local len1 = mw.ustring.len(mw.ustring.gsub(del1, "-", ""))
local len2 = mw.ustring.len(mw.ustring.gsub(del2, "-", ""))
local len3 = mw.ustring.len(mw.ustring.gsub(del3, "-", ""))
local kat = ""
local klammer1 = "[[" .. del1 .. "#" .. lang .. "|" .. mw.ustring.sub(uppslag, 1, -len3-len2-1) .. "]]"
local klammer2 = "[[" .. del2 .. "#" .. lang .. "|" .. mw.ustring.sub(uppslag, -len3-len2, -len3-1) .. "]]"
local klammer3 = "[[" .. del3 .. "#" .. lang .. "|" .. mw.ustring.sub(uppslag, -len3) .. "]]"
if mw.ustring.len(del1) > len1 then
kat = kat .. "[[Kategori:" .. lang .. "/Ord med prefixet " .. del1 .. "]]\n"
else
kat = kat .. "[[Kategori:" .. lang .. "/Ord med förledet " .. del1 .. "]]\n"
end
if del3 == "" then
klammer3 = ""
if mw.ustring.len(del2) > len2 then
kat = kat .. "[[Kategori:" .. lang .. "/Ord med suffixet " .. del2 .. "]]\n"
else
kat = kat .. "[[Kategori:" .. lang .. "/Ord med efterledet " .. del2 .. "]]\n"
end
else
if mw.ustring.len(del2) > len2 then
kat = kat .. "[[Kategori:" .. lang .. "/Ord med interfixet " .. del2 .. "]]\n"
else
kat = kat .. "[[Kategori:" .. lang .. "/Ord med mellanledet " .. del2 .. "]]\n"
end
if mw.ustring.len(del3) > len3 then
kat = kat .. "[[Kategori:" .. lang .. "/Ord med suffixet " .. del3 .. "]]\n"
else
kat = kat .. "[[Kategori:" .. lang .. "/Ord med efterledet " .. del3 .. "]]\n"
end
end
kat = mw.getCurrentFrame():getParent().args["uppslag"] and "" or kat
return kat .. klammer1 .. klammer2 .. klammer3 .. "\n"
end
function export.prefix(frame)
local uppslag = mw.getCurrentFrame():getParent().args["uppslag"] or mw.title.getCurrentTitle().text
local sprak = export.capitalize(mw.getCurrentFrame():getParent().args["språk"] or "Svenska")
local affix = mw.getCurrentFrame():getParent().args[1] or ""
local harledning = mw.getCurrentFrame():getParent().args[2]
return "'''[[" .. affix .. "-#" .. sprak .. "|" .. affix .. "]][[" .. (harledning or mw.ustring.sub(uppslag, #affix+1)) .. "#" .. sprak .. "|" .. mw.ustring.sub(uppslag, #affix+1) .. "]]'''[[Kategori:" .. sprak .. "/Ord som börjar på " .. affix .. "-]]"
end
function export.suffix(frame)
local uppslag = mw.getCurrentFrame():getParent().args["uppslag"] or mw.title.getCurrentTitle().text
local sprak = export.capitalize(mw.getCurrentFrame():getParent().args["språk"] or "Svenska")
local affix = mw.getCurrentFrame():getParent().args[1] or ""
local harledning = mw.getCurrentFrame():getParent().args[2]
return "'''[[" .. (harledning or mw.ustring.sub(uppslag, 1, -#affix-1)) .. "#" .. sprak .. "|" .. mw.ustring.sub(uppslag, 1, -#affix-1) .. "]][[-" .. affix .. "#" .. sprak .. "|" .. affix .. "]]'''[[Kategori:" .. sprak .. "/Ord som slutar på -" .. affix .. "]]"
end
return export