Module:jugs-noun-cell: Difference between revisions

Wfeozawra (talk | contribs)
No edit summary
Wfeozawra (talk | contribs)
No edit summary
Tag: Reverted
Line 41: Line 41:
}
}
function export.create(frame)
function export.show(frame)
local args = frame:getParent().args
local args = frame.args
local links = {}
local root = args[1] or error("No root provided.")
if not args[1] or args[1] == "" then
local decltype = args["type"] or error("No declension type provided.")
return "―"
 
else
local decl = decls[decltype]
local accel_form = args[2]
if not decl then
local accel
error("Unknown declension type: " .. decltype)
if accel_form then
local mode = args[3]
if mode and mode_prefix[mode] then
accel_form = mode_prefix[mode] .. accel_form
end
if accel_forms[accel_form] then
if mode and mode_prepend[mode] then
accel_form = mode_prepend[mode] .. accel_forms[accel_form]
else
accel_form = accel_forms[accel_form]
end
end
accel = {form = accel_form}
end
local words = mw.text.split(args[1], "%s*,%s*")
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