Module:siwa-headword: Difference between revisions
No edit summary |
No edit summary |
||
| (51 intermediate revisions by the same user not shown) | |||
| Line 14: | Line 14: | ||
local NAMESPACE = mw.title.getCurrentTitle().nsText | local NAMESPACE = mw.title.getCurrentTitle().nsText | ||
local SUBPAGENAME = mw.title.getCurrentTitle().subpageText | local SUBPAGENAME = mw.title.getCurrentTitle().subpageText | ||
local gender_key = { | local gender_key = { | ||
["i"] = "in", | ["i"] = "in", | ||
["a"] = "an", | ["a"] = "an", | ||
} | |||
local verb_key = { | |||
["aditr"] = "agentive ditransitive", | |||
["adit"] = "agentive ditransitive", | |||
["ai"] = "agentive intransitive", | |||
["asubj"] = "agentive subjective", | |||
["at"] = "agentive transitive", | |||
["imp"] = "impersonal", | |||
["pass"] = "passive", | |||
["udit"] = "unagentive ditransitive", | |||
["ui"] = "unagentive intransitive", | |||
["usubj"] = "unagentive subjective", | |||
["ut"] = "unagentive transitive", | |||
["utrans"] = "translative", | |||
["?"] = "?", | |||
} | } | ||
| Line 64: | Line 75: | ||
["decl"] = {}, | ["decl"] = {}, | ||
["cat2"] = {}, | ["cat2"] = {}, | ||
["cat3"] = {}, | |||
["sort"] = {}, | |||
["affix"] = {list = true}, | |||
} | } | ||
local args = require("Module:parameters").process(args, params) | local args = require("Module:parameters").process(args, params) | ||
data.heads = {args["head"]} | data.heads = {args["head"]} | ||
data.affix = args["affix"] | |||
table.insert(data.genders, gender_key[args[1]] or args[1]) | table.insert(data.genders, gender_key[args[1]] or args[1]) | ||
| Line 76: | Line 91: | ||
if args.decl then table.insert(data.categories, "Siwa " .. args.decl .. "-declension " .. data.pos_category) end | if args.decl then table.insert(data.categories, "Siwa " .. args.decl .. "-declension " .. data.pos_category) end | ||
table.insert(data.categories, "Siwa " .. args["cat2"]) | if args.cat2 then table.insert(data.categories, "Siwa " .. args["cat2"]) end | ||
if args.cat3 then table.insert(data.categories, "Siwa " .. args["cat3"]) end | |||
data.sort_key = args["sort"] or nil | |||
end | end | ||
pos_functions["proper nouns"] = pos_functions.nouns | pos_functions["proper nouns"] = pos_functions.nouns | ||
pos_functions["proper nouns"] = pos_functions.nouns | pos_functions["proper nouns"] = pos_functions.nouns | ||
pos_functions.verbs = function(class, args, data) | pos_functions.verbs = function(class, args, data) | ||
local params = { | local params = { | ||
[1] = {list = " | [1] = {required = true}, | ||
[ | [2] = {list = "inf", required = true}, | ||
[ | [3] = {list = "p", required = true}, | ||
[4] = {type = "boolean"}, | |||
["head"] = {}, | ["head"] = {}, | ||
["cat2"] = {}, | |||
["sort"] = {}, | |||
["affix"] = {list = true}, | |||
} | } | ||
| Line 132: | Line 116: | ||
data.heads = {args["head"]} | data.heads = {args["head"]} | ||
table.insert(data.categories, " | for n, kind in ipairs(mw.text.split(args[1], "/")) do | ||
if kind ~= "?" then | |||
data.inflections[n] = {nil} | |||
data.inflections[n].label = verb_key[kind] | |||
table.insert(data.categories, "Siwa " .. verb_key[kind] .. " verbs") | |||
end | |||
end | |||
args[2].label = "infinitive" | |||
args[2].label = " | |||
table.insert(data.inflections, args[2]) | table.insert(data.inflections, args[2]) | ||
args[3].label = "past" | |||
table.insert(data.inflections, args[3]) | table.insert(data.inflections, args[3]) | ||
if args[4] then table.insert(data.categories, "Siwa irregular verbs") end | |||
if args.cat2 then table.insert(data.categories, "Siwa " .. args["cat2"]) end | |||
if args[1] == "?" or args[2] == "?" or args[3] == "?" then table.insert(data.categories, "Contionary stubs") end | |||
data.sort_key = args["sort"] or nil | |||
data.affix = args["affix"] | |||
end | end | ||
return export | return export | ||