Moduuli:ref
Tämän moduulin ohjeistuksen voi tehdä sivulle Moduuli:ref/ohje
local export = {}
local taulukot = require("Moduuli:ref/taulukot")
function export.Sisalto(frame)
local pframe = frame:getParent()
local nimi = pframe.args[1]
local sisalto = taulukot[nimi]
local sivu = pframe.args.s
local tunnus = pframe.args.nimi or nimi .. (sivu or "") .. (hakusana or "")
local huom = pframe.args.huom
local ryhma = pframe.args.ryhma
local hakusana = pframe.args.sv
local hakusanat = pframe.args.svv
if not sisalto then
error("Viitettä " .. nimi .. " ei löydy")
end
sisalto = mw.ustring.gsub(sisalto, "{{{2|}}}", pframe.args[2] or "")
sisalto = mw.ustring.gsub(sisalto, "{{{2}}}", pframe.args[2] or "{{{2}}}")
sisalto = mw.ustring.gsub(sisalto, "{{{s|}}}", sivu or "")
sisalto = mw.ustring.gsub(sisalto, "{{{s}}}", sivu or "{{{s}}}")
sisalto = mw.ustring.gsub(sisalto, "{{{sv|}}}", hakusana or "")
sisalto = mw.ustring.gsub(sisalto, "{{{sv}}}", hakusana or "{{{sv}}}")
sisalto = mw.ustring.gsub(sisalto, "{{{svv|}}}", hakusanat or "")
sisalto = mw.ustring.gsub(sisalto, "{{{svv}}}", hakusanat or "{{{svv}}}")
sisalto = mw.text.trim( sisalto )
return sisalto
end
function export.Viite(frame)
sisalto = export.Sisalto(frame)
return frame:extensionTag{
name = 'ref',
content = sisalto,
args = {
name = nimi,
group = ryhma
}
}
end
function export.Luettelo(frame)
local list = {}
for k, v in pairs(taulukot) do
table.insert(list, { nimi = k, sisalto = v })
end
table.sort(list, function (a, b) return a.nimi < b.nimi end)
local ul = mw.html.create( 'ul' )
for i, v in ipairs(list) do
ul:node(
mw.html.create( 'li' )
:node(
mw.html.create( 'b' ):wikitext( v.nimi .. ": " )
)
:wikitext( frame:preprocess( v.sisalto ) )
)
end
return tostring(ul)
end
function export.Lahde(frame)
sisalto = export.Sisalto(frame)
return frame:preprocess{
text = sisalto,
}
end
return export