Module:mrw-headword
Appearance
- The following documentation is located at Module:mrw-headword/documentation. [edit] Categories were auto-generated by Module:module categorization. [edit]
- Useful links: subpage list • links • transclusions • testcases • sandbox
This powers Maranao headword-line templates.
local export = {}
local pos_functions = {}
local lang = require("Module:languages").getByCode("mrw")
local PAGENAME = mw.title.getCurrentTitle().text
local script = lang:findBestScript(PAGENAME) -- Latn or Arab
function export.show(frame)
local tracking_categories = {}
local args = frame:getParent().args
local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.")
local head = {} -- supports multiple headword
if args["head"] or args[1] then table.insert(head, args["head"] or args[1]) end
if args["head2"] or args[2] then table.insert(head, args["head2"] or args[2]) end
if args["head3"] or args[3] then table.insert(head, args["head3"] or args[3]) end
local data = {lang = lang, sc = script, pos_category = poscat, categories = {}, heads = head, translits = {"-"}, inflections = {}}
local b_arab = {label = "batang Arab spelling"}
local sc_Arab = require("Module:scripts").getByCode("Arab")
if args["b"] then table.insert(b_arab, { term = args["b"], sc = sc_Arab }) end
if args["b2"] then table.insert(b_arab, { term = args["b2"], sc = sc_Arab }) end
if args["b3"] then table.insert(b_arab, { term = args["b3"], sc = sc_Arab }) end
if #b_arab> 0 then table.insert(data.inflections, b_arab) end
local latin = {label = "Latin spelling"}
local sc_Latn = require("Module:scripts").getByCode("Latn")
if args["r"] then table.insert(latin, {term = args["r"], sc = sc_Latn}) end
if args["r2"] then table.insert(latin, {term = args["r2"], sc = sc_Latn}) end
if args["r3"] then table.insert(latin, {term = args["r3"], sc = sc_Latn}) end
if #latin > 0 then table.insert(data.inflections, latin) end
if script:getCode() == "Arab" then
table.insert(data.categories, "Maranao terms in Arabic script")
end
if pos_functions[poscat] then
pos_functions[poscat](args, data)
end
local content = mw.title.new(PAGENAME):getContent()
return require("Module:headword").full_headword(data) .. require("Module:utilities").format_categories(tracking_categories, lang)
end
pos_functions["adjectives"] = function(args, data)
params = {
[1] = {alias_of = 'head'},
[2] = {alias_of = 'comp_sup'},
[3] = {alias_of = 'abs_sup'},
[4] = {alias_of = 'plural'}, -- See notes.
head = {list = true},
head2= {},
head3= {},
plural = {list = true}, -- Some adjectives only
comp_sup = {list = true},
abs_sup = {list = true},
b= {},
b2= {},
b3= {}
}
local args = require("Module:parameters").process(args,params)
data.heads = args.head
data.id = args.id
local pattern = args.pattern
args.comp_sup.label = "comp_sup"
args.abs_sup.label = "abs_sup"
args.plural.label = "plural"
args.comp_sup.accel = {form = "comparative|superlative"}
args.abs_sup.accel = {form = "absolutive|superlative"}
args.plural.accel = {form = "plural"}
if #args.comp_sup > 0 then table.insert(data.inflections, args.comp_sup) end
if #args.abs_sup > 0 then table.insert(data.inflections, args.abs_sup) end
if #args.plural > 0 then table.insert(data.inflections, args.plural) end
end
pos_functions["nouns"] = function(args, data)
params = {
[1] = {alias_of = 'head'},
[2] = {alias_of = 'plural'}, -- Special plural cases only
head = {list = true},
head2= {},
head3= {},
plural = {list = true},
b= {},
b2= {},
b3= {}
}
local args = require("Module:parameters").process(args,params)
data.heads = args.head
data.id = args.id
local pattern = args.pattern
args.plural.label = "plural"
args.plural.accel = {form = "plural"}
if #args.plural > 0 then table.insert(data.inflections, args.plural) end
end
return export