Modul:he-headword
Bu modul uchun Modul:he-headword/doc nomli hujjat sahifasini yaratishingiz mumkin
local m_headword = require("Module:headword")
local com = require("Module:he-common")
local export = {}
local pos_functions = {}
local tili = require("Module:tili").getByCode("he")
function maybe_get_inflection(args, name, params)
local tbl = {}
if type(params) ~= "table" then
params = {params}
end
for _, param in ipairs(params) do
local paramwv = param .. "wv"
local paramdwv = param .. "dwv"
if args[param] or args[paramwv] or args[paramdwv] then
tbl.label = name
table.insert(tbl, com.gen_link(args[param], args[paramwv], args[paramdwv]))
end
end
return next(tbl) and tbl
end
-- The main entry point.
-- This is the only function that can be invoked from a template.
function export.show(frame)
PAGENAME = mw.title.getCurrentTitle().text
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 = args["bosh"]; if head == "" then head = nil end
if not head then
local wv = args["wv"]
local dwv = args["dwv"]
wv = wv or PAGENAME
if dwv then
head = wv .. " \\ " .. dwv
else
head = wv
end
end
local tr = args["tr"]
local genders = {}
local inflections = {}
local categories = {"Ivritchada " .. poscat}
if pos_functions[poscat] then
pos_functions[poscat](args, genders, inflections, categories)
end
table.insert(inflections, maybe_get_inflection(args, "Biblical Hebrew [[w:Pausa|pausal form]]", "pausal"))
return (m_headword.full_headword(tili, nil, head, tr, genders, inflections, categories))
end
pos_functions["adjectives"] = function(args, genders, inflections, categories)
table.insert(genders, "m")
if args["auto"] == nil or args["auto"] == "" then
-- Use only provided inflections
table.insert(inflections, maybe_get_inflection(args, "feminine", {"f", "f2"}))
table.insert(inflections, maybe_get_inflection(args, "masculine plural", {"mp", "mp2"}))
table.insert(inflections, maybe_get_inflection(args, "feminine plural", "fp"))
else
-- Automatically generate inflections
local stem, stemwv, stemdwv = com.process_wv_triad(args["stem"], args["stemwv"], args["stemdwv"])
if not stem then
stemwv = args["wv"] or args["dwv"]
stemdwv = args["wv"] and args["dwv"]
stem = com.remove_nikud(stemwv) or PAGENAME
end
local f, fwv, fdwv = com.process_wv_triad(args["f"], args["fwv"], args["fdwv"])
local f2, f2wv, f2dwv = com.process_wv_triad(args["f2"], args["f2wv"], args["f2dwv"])
local mp, mpwv, mpdwv = com.process_wv_triad(args["mp"], args["mpwv"], args["mpdwv"])
local mp2, mp2wv, mp2dwv = com.process_wv_triad(args["mp2"], args["mp2wv"], args["mp2dwv"])
local fp, fpwv, fpdwv = com.process_wv_triad(args["fp"], args["fpwv"], args["fpdwv"])
if f ~= "-" then
if not (f or fwv or fdwv) then
f = stem and (stem .. "ה")
fwv = stemwv and (stemwv .. "ָה")
fdwv = stemdwv and (stemdwv .. "ָה")
end
tbl = {label = "feminine", com.gen_link(f, fwv, fdwv)}
if f2 or f2wv or f2dwv then
table.insert(tbl, com.gen_link(f2, f2wv, f2dwv))
end
table.insert(inflections, tbl)
end
if mp ~= "-" then
if not (mp or mpwv or mpdwv) then
mp = stem and (stem .. "ות")
mpwv = stemwv and (stemwv .. "וֹת")
mpdwv = stemdwv and (stemdwv .. "וֹת")
end
tbl = {label = "masculine plural", com.gen_link(mp, mpwv, mpdwv)}
if mp2 or mp2wv or mp2dwv then
table.insert(tbl, com.gen_link(mp2, mp2wv, mp2dwv))
end
table.insert(inflections, tbl)
end
if fp ~= "-" then
if not (fp or fpwv or fpdwv) then
fp = stem and (stem .. "ים")
fpwv = stemwv and (stemwv .. "ִים")
fpdwv = stemdwv and (stemdwv .. "ִים")
end
tbl = {label = "feminine plural", com.gen_link(fp, fpwv, fpdwv)}
table.insert(inflections, tbl)
end
end
end
pos_functions["nouns"] = function(args, genders, inflections, categories)
if args["g"] then
table.insert(genders, args["g"])
end
table.insert(inflections, maybe_get_inflection(args, "dual indefinite", "dual"))
table.insert(inflections, maybe_get_inflection(args, "plural indefinite", "pl"))
table.insert(inflections, maybe_get_inflection(args, "singular construct", "cons"))
table.insert(inflections, maybe_get_inflection(args, "plural construct", "plcons"))
table.insert(inflections, maybe_get_inflection(args, "masculine counterpart", "m"))
table.insert(inflections, maybe_get_inflection(args, "feminine counterpart", "f"))
end
return export