Module:pa-headword

local export = {} local m_scripts = require("Module:scripts") local m_hi_pa_headword = require("Module:hi-pa-headword")

local lang = require("Module:languages").getByCode("pa") local langname = "Punjabi"

local function track(page) require("Module:debug").track("pa-headword/" .. page) end

local function process_other_script(forms, script_code) local inflection = {} local script_object = m_scripts.getByCode(script_code) for _, form in ipairs(forms) do		table.insert(inflection, {term = form, lang = lang, sc = script_object}) end inflection.label = script_object:getCanonicalName .. " spelling" return inflection end

function export.show(frame) local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local params = { ["head"] = {list = true}, ["tr"] = {list = true, allow_holes = true}, ["sort"] = {}, ["gur"] = { list = true }, ["sha"] = { list = true }, ["splithyphen"] = {type = "boolean"}, }

local PAGENAME = mw.loadData("Module:headword/data").pagename

if PAGENAME:find(" ") then track("space") end

if m_hi_pa_headword.pos_functions[poscat] then for key, val in pairs(m_hi_pa_headword.pos_functions[poscat].params) do			params[key] = val end end

local parargs = frame:getParent.args local args = require("Module:parameters").process(parargs, params)

local data = { lang = lang, langname = langname, pos_category = poscat, sccat = true, heads = args["head"], translits = args["tr"], categories = {}, genders = {}, inflections = {}, sort_key = args["sort"], }

if #data.translits > 0 then track("manual-translit/" .. poscat) end

local heads = data.heads local auto_linked_head = require("Module:headword utilities").add_lemma_links(PAGENAME, args["splithyphen"]) if #heads == 0 then data.heads = {auto_linked_head} data.no_redundant_head_cat = true else for _, head in ipairs(heads) do			if head == auto_linked_head then track("redundant-head") end end end

if m_hi_pa_headword.pos_functions[poscat] then m_hi_pa_headword.pos_functions[poscat].func(args, data) end

if #args["gur"] > 0 then table.insert(data.inflections, process_other_script(args["gur"], "Guru")) end if #args["sha"] > 0 then table.insert(data.inflections, process_other_script(args["sha"], "pa-Arab")) end

return require("Module:headword").full_headword(data) end

return export