Module:gloss: Difference between revisions

From Laenkea
Jump to navigation Jump to search
No edit summary
No edit summary
Line 17: Line 17:
local l = m_data.labels[m_data.aliases[gloss_code]]
local l = m_data.labels[m_data.aliases[gloss_code]]
local l_gloss = m_data.aliases[gloss_code]
local l_gloss = m_data.aliases[gloss_code]
if l then l_gloss = type(l.glossary) == "string" and l.glossary or l.label end
if l then
glosslet_format = frame:expandTemplate{title = "hover", args = {glosslet_format, l_gloss, noline = args.style == nil, style = args.style}}
l_gloss = type(l.glossary) == "string" and l.glossary or l.label
if args.nolink == nil then glosslet_format = "[[Appendix:Glossary#" .. l_gloss .. "|" .. glosslet_format .. "]]" end
if args.nolink == nil then glosslet_format = "[[Appendix:Glossary#" .. l_gloss .. "|" .. glosslet_format .. "]]" end
end
glosslet_format = frame:expandTemplate{title = "hover", args = {glosslet_format, l_gloss, noline = args.noline or (args.style == nil and l and args.nolink == nil), style = args.style, nolink = args.nolink}}
end
end
gloss_keys[glosslet] = '<span style="font-variant: small-caps">' .. glosslet_format .. '</span>'
gloss_keys[glosslet] = '<span style="font-variant: small-caps">' .. glosslet_format .. '</span>'

Revision as of 19:58, 17 April 2025

Underlies {{gloss}}, as well as Module:gloss grid. Uses Module:form of/data.


local export = {}
local getArgs = require('Module:Arguments').getArgs

local m_data = mw.loadData("Module:form of/data")

local delimiters = "%s%p"

function export.show(frame)
	local args = getArgs(frame)
	local gloss = args[1]
	local gloss_keys = {}
	for glosslet in gloss:gmatch("[^" .. delimiters .. "]+") do
		if glosslet:match("^[%d%u]+$") then
			local gloss_code = glosslet:lower()
			local glosslet_format = gloss_code:gsub("(%d+)", "<small>%1</small>")
			if m_data.aliases[gloss_code] then
				local l = m_data.labels[m_data.aliases[gloss_code]]
				local l_gloss = m_data.aliases[gloss_code]
				if l then
					l_gloss = type(l.glossary) == "string" and l.glossary or l.label
					if args.nolink == nil then glosslet_format = "[[Appendix:Glossary#" .. l_gloss .. "|" .. glosslet_format .. "]]" end
				end
				glosslet_format = frame:expandTemplate{title = "hover", args = {glosslet_format, l_gloss, noline = args.noline or (args.style == nil and l and args.nolink == nil), style = args.style, nolink = args.nolink}}
			end
			gloss_keys[glosslet] = '<span style="font-variant: small-caps">' .. glosslet_format .. '</span>'
		end
	end
	for search, replace in pairs(gloss_keys) do gloss = gloss:gsub(search, replace)	end
	
	return gloss
end

return export

--[[
=p.show(mw.getCurrentFrame():newChild{title="whatever",args={"sheep-NOM.SG 3S.ANIM-DAT;SG wool-GEN.SG NEG.PST-DISJ=SG Radestria.DAT | "}})
]]--