Module:pollasena-roots/templates: Difference between revisions

No edit summary
Melinoë (talk | contribs)
No edit summary
 
(9 intermediate revisions by one other user not shown)
Line 6: Line 6:


local function concat_etymologies(args, etymologies)
local function concat_etymologies(args, etymologies)
local str = "From " .. table.concat(etymologies, ", from ") .. "."
local str = table.concat(etymologies, ", ") .. "."
if args.nocap then
if not args.nocap then
str = str:gsub("^.", mw.ustring.lower)
str = str:gsub("^.", mw.ustring.upper)
end
end
str = str:gsub("[fF]rom ([Cc])alque", "%1alqued from")
str = str:gsub("[fF]rom ([Bb])orrowing", "%1orrowed from")
return str
return str
Line 36: Line 33:
local ancestor_codes = {
local ancestor_codes = {
{code = "lyti-mid", options = {}},
{code = "lyti-mid", options = {}},
{code = "lyti-old", options = {}},
{code = "lyti-old", options = {optional = true}},
{code = "cel-pro", options = {annotated = true}},
{code = "cel-pro", options = {annotated = true, optional = true}},
{code = "ine-pro", options = {roots = true}},
{code = "ine-pro", options = {roots = true, optional = true}},
}
}
Line 50: Line 47:
parent_args.borrowing = true
parent_args.borrowing = true
local source_code = parent_args[1] or "und"
local source_code = parent_args[1] or "und"
local extra_params = {
mid = {type = "boolean"},
old = {type = "boolean"},
}
local ancestor_codes = {
local ancestor_codes = {
{code = "lyti-mid", options = {optional = not parent_args.mid}},
{code = "lyti-old", options = {optional = not parent_args.old}},
{code = source_code, options = {borrowed = true}},
{code = source_code, options = {borrowed = true}},
}
}
local extra_params = {
if parent_args.mid or parent_args.old then
mid = {type = "boolean"},
table.insert(ancestor_codes, 1, {code = "lyti-mid", options = {optional = not parent_args.mid}})
old = {type = "boolean"},
if parent_args.old then
}
table.insert(ancestor_codes, parent_args.mid and 2 or 1, {code = "lyti-old", options = {optional = not parent_args.old}})
end
end
local evolution, args, categories = m_pr.parse_args(parent_args, "lyti", ancestor_codes, extra_params)
local evolution, args, categories = m_pr.parse_args(parent_args, "lyti", ancestor_codes, extra_params)
Line 153: Line 155:
local evolution, args, categories = m_pr.parse_args(parent_args, "azms", ancestor_codes)
local evolution, args, categories = m_pr.parse_args(parent_args, "azms", ancestor_codes)
return concat_etymologies(args, evolution) .. categories
end
function export.snon(frame)
local parent_args = frame:getParent().args
local ancestor_codes = {
{code = "sdno", options = {optional = true}},
{code = "non", options = {}},
{code = "gem-pro", options = {optional = true}},
}
local evolution, args, categories = m_pr.parse_args(parent_args, "snon", ancestor_codes)
return concat_etymologies(args, evolution) .. categories
return concat_etymologies(args, evolution) .. categories