Module:mn-verb-form
Jump to navigation
Jump to search
- The following documentation is located at Module:mn-verb-form/documentation. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
This module implements the {{mn-verb form of}}
and the {{mn-verb form name}}
templates. To add more suffixes, edit Module:mn-verb-form/data.
local export = {}
local m_links = require("Module:links")
local m_utilities = require("Module:utilities")
local lang = require("Module:languages").getByCode("mn")
local data = mw.loadData("Module:mn-verb-form/data")
local function show_categories(data, lang, sort_key)
local categories = {}
for i, cat in ipairs(data.categories or {}) do
table.insert(categories, lang:getCanonicalName() .. " " .. cat)
end
return m_utilities.format_categories(categories, lang, sort_key)
end
function export.mn_verb_form(frame)
local params = {
[1] = {required = true, default = "suffix"}, --suffix
[2] = {required = true, default = "term"}, --verb
[3] = {},
[4] = {alias_of = "gloss"},
["dot"] = {},
["gloss"] = {},
["t"] = {alias_of = "gloss"},
["id"] = {},
["nodot"] = {type = "boolean"},
["nocat"] = {type = "boolean"},
["sc"] = {},
["tr"] = {},
["sort_key"] = {},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local sc = (args["sc"] and (require("Module:scripts").getByCode(args["sc"]) or error("The script code \"" .. args["sc"] .. "\" is not valid.")) or nil)
local suffix = args[1]
local text = ""
local alias = false
if data.aliases[args[1]] then
alias = true
suffix = data.aliases[args[1]]
end
if data.suffix[suffix] then
local suffixinfo = {lang = lang, sc = sc, term = "-"..suffix, alt = alias and "-" .. args[1], id = "verb suffix"}
local suffixlink = m_links.full_link(suffixinfo, "term", false)
text = data.suffix[suffix].name .. " in " .. suffixlink .. " of"
else
error("suffix not found")
end
local lemma_obj = {lang = lang, sc = sc, term = args[2], alt = args[3], id = args["id"], gloss = args["gloss"], tr = args["tr"]}
return require("Module:form of").format_form_of{text = text, lemmas = {lemma_obj}, lemma_face = "term"} .. (args.nocat and "" or show_categories(data.suffix[suffix], lang, args["sort_key"]))
end
function export.mn_suffix_name(frame)
local params = {
[1] = {required = true, default = "suffix"},
}
local args = require("Module:parameters").process(frame:getParent().args, params)
local suffix = args[1]
if data.aliases[suffix] then
suffix = data.aliases[suffix]
end
if data.suffix[suffix] then
return data.suffix[suffix].name
else
error("suffix not found")
end
end
return export