Moduuli:takso
Ulkoasu
Moduulin takso käyttöohje [näytä tämä käyttöohje omalla sivullaan] [muokkaa tätä käyttöohjetta] [päivitä] [testit] [hiekkalaatikko]
Tätä moduulia käytetään takso-mallineesta käsin.
local m = {}
function m.kursiivi(str)
local tags = { "( sp%.)", "( subsp%.)", "( spp%.)",
"( var%.)", "( subvar%.)",
"( f%.)", "( subf%.)",
"( sect%.)", "( subsect%.)",
"( coll%.)", "( cv%.)", "( mf%.)", "(×)" }
for i,v in ipairs(tags) do
str = str:gsub(v, "''%1''")
end
return ("''" .. str .. "''"):gsub("''''", "")
end
function m.muotoile(args)
local n = #args
args[1] = args[1]:gsub(" x ", " × "):gsub("^x ", "× ")
if n == 1 and string.find(args[1], " ") then
args[1], args[2] = string.match(args[1], "([^ ]*) (.*)")
n = 2
end
ryhma = ""
lajike = ""
auktori = ""
if args.ryhma then
ryhma = " " .. args.ryhma .. "-Ryhmä"
end
if args.lajike then
lajike = " ’" .. args.lajike .. "’"
end
if args.auktori then
auktori = " " .. args.auktori
end
if n == 0 then
return ""
elseif n == 1 then
return "[[species:" .. args[1] .. "|" .. args[1] .. "]]" .. auktori
elseif n == 2 then
if args[2] == "*" then
return "''[[species:" .. args[1] .. "|" .. args[1] .. "]]''" .. ryhma .. lajike .. auktori
else
return "[[species:" .. args[1] .. " " .. args[2] .. "|"
.. m.kursiivi(args[1] .. " " .. args[2]) .. "]]" .. ryhma .. lajike .. auktori
end
elseif n == 3 then
return "[[species:" .. args[1] .. args[2] .. " " ..args[3] .. "|"
.. m.kursiivi(args[1] .. ". " .. args[3]) .."]]" .. ryhma .. lajike .. auktori
elseif n == 5 then
return "[[species:" .. args[1] .. args[2] .. " "
..args[3] .. args[4] .. " " ..args[5] .. "|"
.. m.kursiivi(args[1] .. ". " .. args[3] .. ". " .. args[5]) .."]]" .. ryhma .. lajike .. auktori
end
error("Virheelliset parametrit")
end
function m.Muotoile(frame)
local pframe = frame:getParent()
local args = {}
for i,v in ipairs(pframe.args) do
table.insert(args, v)
end
args.ryhma = pframe.args.ryhma
args.lajike = pframe.args.lajike
args.auktori = pframe.args.auktori
return m.muotoile(args)
end
return m