Module:tln-headword: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
| Line 55: | Line 55: | ||
-- ========================= | -- ========================= | ||
function p.verb(frame) | function p.verb(frame) | ||
local 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 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 .. "'''" | ||
text = text .. " | if rom ~= "" then | ||
text = text .. " • (" .. rom .. ")" | |||
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 part ~= "" then | |||
table.insert(parts, "past participle " .. format_form(part, partrom)) | |||
end | |||
if | if #parts > 0 then | ||
text = text .. " | text = text .. " (" .. table.concat(parts, ", ") .. ")" | ||
end | end | ||
Revision as of 19:46, 18 June 2026
- This module lacks a documentation subpage. Please create it.
- Useful links: subpage list • links • transclusions • testcases • sandbox
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)
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 title = mw.title.getCurrentTitle().text
local rom = args.rom or ""
local pres1 = args.pres1 or ""
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 .. "'''"
if rom ~= "" then
text = text .. " • (" .. rom .. ")"
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 part ~= "" then
table.insert(parts, "past participle " .. format_form(part, partrom))
end
if #parts > 0 then
text = text .. " (" .. table.concat(parts, ", ") .. ")"
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
end
return p