Module:Sandbox/Erutuon/Glossing abbreviations

This is an old revision of this page, as edited by Erutuon (talk | contribs) at 01:54, 15 October 2016 (remove final periods, convert to lowercase; add more). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

local p = {}

local data = {
	["1s"] = "first person singular",
	["2s"] = "second person singular",
	["3s"] = "third person plural",
	["1p"] = "first person plural",
	["2p"] = "second person plural",
	["3p"] = "third person plural",
	["ind"] = "indicative mood",
	["sjv"] = "subjunctive mood",
	["part"] = "participle",
	["imp"] = "imperative",
}

data["sbjv"] = data["sjv"]

function p.abbr(frame)
	local args = frame:getParent().args[1] and frame:getParent().args or frame.args
	local abbreviation = args[1] or error("Provide an abbreviation in parameter 1")
	local key = string.gsub(abbreviation, "%.$", "")
	key = string.lower(key)
	local expanded = data[key] or error("The abbreviation "..(abbreviation or "nil").." is not recognized")
	return '<abbr title="'..expanded..'">'..abbreviation..'</abbr>'
end

return p