Moduuli:tavutus
Tämän moduulin ohjeistuksen voi tehdä sivulle Moduuli:tavutus/ohje
--- Muotoilee annetut tavut siten, että jokaiseen väliin tulee rivinkeskinen piste.
-- Jos parametri k on annettu, lisää sivun luokkan "X:n kielen n-tavuiset sanat".
local luokat = require("Moduuli:luokittelu")
local export = {}
local category_names = {
[1] = "yksitavuiset",
[2] = "kaksitavuiset",
[3] = "kolmitavuiset",
[4] = "nelitavuiset",
[5] = "viisitavuiset",
[6] = "kuusitavuiset",
[7] = "seitsentavuiset",
[8] = "kahdeksantavuiset",
[9] = "yhdeksäntavuiset",
[10] = "kymmentavuiset"
}
local function category_name_for_n_syllables(n_syllables)
if category_names[n_syllables] then
return category_names[n_syllables] .. " sanat"
end
return n_syllables .. "-tavuiset sanat"
end
local function add_category(langcode, n_syllables)
local category_name = luokat.kielenLuokka(langcode, category_name_for_n_syllables(n_syllables))
if category_name then
luokat.asetaAakkostajalla(langcode, category_name)
end
end
function export.Tavutus(frame)
local pframe = frame:getParent()
local syllables = {}
for i, v in ipairs(pframe.args) do
syllables[i] = v
end
if pframe.args.k then
add_category(pframe.args.k, #syllables)
end
return table.concat(syllables, "‧"), luokat
end
return export