Module:jugs-noun-cell: Difference between revisions
No edit summary |
No edit summary Tag: Reverted |
||
| Line 41: | Line 41: | ||
} | } | ||
function export. | function export.show(frame) | ||
local args = frame | local args = frame.args | ||
local | local root = args[1] or error("No root provided.") | ||
local decltype = args["type"] or error("No declension type provided.") | |||
local decl = decls[decltype] | |||
if not decl then | |||
error("Unknown declension type: " .. decltype) | |||
end | end | ||
local data = { forms = {} } | |||
decl({ root }, data) | |||
local function showForm(case, number) | |||
local key = cases[case].short_form .. "-" .. number | |||
return data.forms[key] or "—" | |||
end | |||
local function small(text) | |||
return frame:preprocess("{{small|" .. text .. "}}") | |||
end | |||
local out = {} | |||
table.insert(out, '{| class="wikitable" style="text-align:center;"') | |||
table.insert(out, '|-') | |||
table.insert(out, '! Number !! Case !! Declension') | |||
-- Singular rows | |||
table.insert(out, '|-') | |||
table.insert(out, '! rowspan=4 | Singular') | |||
table.insert(out, '! ' .. small("nom.")) | |||
table.insert(out, '| ' .. showForm("nominative", "sg")) | |||
table.insert(out, '|-') | |||
table.insert(out, '! ' .. small("acc.")) | |||
table.insert(out, '| ' .. showForm("accusative", "sg")) | |||
table.insert(out, '|-') | |||
table.insert(out, '! ' .. small("dat.")) | |||
table.insert(out, '| ' .. showForm("dative", "sg")) | |||
table.insert(out, '|-') | |||
table.insert(out, '! ' .. small("gen.")) | |||
table.insert(out, '| ' .. showForm("genitive", "sg")) | |||
-- Plural rows | |||
table.insert(out, '|-') | |||
table.insert(out, '! rowspan=4 | Plural') | |||
table.insert(out, '! ' .. small("nom.")) | |||
table.insert(out, '| ' .. showForm("nominative", "pl")) | |||
table.insert(out, '|-') | |||
table.insert(out, '! ' .. small("acc.")) | |||
table.insert(out, '| ' .. showForm("accusative", "pl")) | |||
table.insert(out, '|-') | |||
table.insert(out, '! ' .. small("dat.")) | |||
table.insert(out, '| ' .. showForm("dative", "pl")) | |||
table.insert(out, '|-') | |||
table.insert(out, '! ' .. small("gen.")) | |||
table.insert(out, '| ' .. showForm("genitive", "pl")) | |||
table.insert(out, '|}') | |||
return table.concat(out, '\n') | return table.concat(out, '\n') | ||
end | end | ||
return export | return export | ||