Module:tln-headword: Difference between revisions
Tag: Undo |
mNo edit summary |
||
| (5 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
local p = {} | local p = {} | ||
local function get_args(frame) | |||
return frame:getParent().args | |||
end | |||
local function format_rom(rom) | |||
if rom and rom ~= "" then | |||
return " • (" .. rom .. ")" | |||
end | |||
return "" | |||
end | |||
local function format_gender(g) | |||
local gender_map = { | |||
m = "m.", | |||
f = "f.", | |||
n = "n." | |||
} | |||
local label = gender_map[g] or (g and (g .. ".") or "?.") | |||
return " ''" .. label .. "''" | |||
end | |||
-- ========================= | |||
-- NOUN | |||
-- ========================= | |||
function p.noun(frame) | function p.noun(frame) | ||
local args = get_args(frame) | |||
local title = mw.title.getCurrentTitle().text | |||
local rom = args.rom or "" | |||
local g = args.g or "?" | |||
local pl = args.pl or "" | |||
local plrom = args.plrom or "" | |||
local text = "'''" .. title .. "'''" | |||
text = text .. format_rom(rom) | |||
text = text .. format_gender(g) | |||
if pl ~= "" then | |||
text = text .. " plural '''[[" .. pl .. "]]'''" | |||
if plrom ~= "" then | |||
text = text .. " (" .. plrom .. ")" | |||
end | |||
end | |||
return text | |||
end | |||
-- ========================= | |||
-- VERB | |||
-- ========================= | |||
function p.verb(frame) | |||
local args = frame:getParent().args | local args = frame:getParent().args | ||
local title = mw.title.getCurrentTitle().text | local title = mw.title.getCurrentTitle().text | ||
local rom = args.rom or "" | local rom = args.rom or "" | ||
local | local pres1 = args.pres1 or "" | ||
local | local past1 = args.past1 or "" | ||
local part = args.part or "" | |||
local pres1rom = args.pres1rom or "" | |||
local past1rom = args.past1rom or "" | |||
local partrom = args.partrom or "" | |||
local function format_form(form, rom_form) | |||
if form == "" then | |||
return "" | |||
end | |||
local out = "'''[[" .. form .. "]]'''" | |||
if rom_form and rom_form ~= "" then | |||
out = out .. " (" .. rom_form .. ")" | |||
end | |||
return out | |||
end | |||
local text = "'''" .. title .. "'''" | local text = "'''" .. title .. "'''" | ||
| Line 18: | Line 88: | ||
end | end | ||
local parts = {} | |||
if pres1 ~= "" then | |||
table.insert(parts, "first-person singular present " .. format_form(pres1, pres1rom)) | |||
end | |||
if past1 ~= "" then | |||
table.insert(parts, "first-person singular past " .. format_form(past1, past1rom)) | |||
end | |||
if | if part ~= "" then | ||
table.insert(parts, "past participle " .. format_form(part, partrom)) | |||
end | |||
if #parts > 0 then | |||
text = text .. " (" .. table.concat(parts, ", ") .. ")" | |||
end | end | ||
return text | |||
end | |||
-- ========================= | |||
-- ADJECTIVE (basic placeholder) | |||
-- ========================= | |||
function p.adj(frame) | |||
local args = get_args(frame) | |||
local title = mw.title.getCurrentTitle().text | |||
local rom = args.rom or "" | |||
local text = "'''" .. title .. "'''" | |||
text = text .. format_rom(rom) | |||
text = text .. " ''adj.''" | |||
return text | return text | ||