Module:nyms

Revision as of 11:31, 11 August 2023 by Maria (talk | contribs)

Documentation for this module may be created at Module:nyms/documentation

local export = {}

local m_languages = require("Module:languages")
local m_links = require("Module:links")
local m_parameters = require("Module:parameters")

local params = {
	[1] = {required = true},
	[2] = {list = true},
}

function export.make_nym_list(data)
	local links = {}
	for _, term in ipairs(data.terms) do
		table.insert(links, m_links.full_link{term = term, language = data.language})
	end
	local out = '<span class="nyms-toggle" data-label="' .. mw.ustring.lower(data.label) .. '"></span>'
	out = out .. '<dl><dd><span class="nyms">'
	out = out .. '<span class="nyms-label">' .. data.label .. ':</span>'
	out = out .. table.concat(links, ", ")
	out = out .. '</span></dd></dl>'
	return out
end

function export.show_synonyms(frame)
	local args = m_parameters.process(frame:getParent().args, params)
	return export.make_nym_list{
		label = "Synonyms",
		language = m_languages.get_by_code(args[1]),
		terms = args[2],
	}
end

function export.show_antonyms(frame)
	local args = m_parameters.process(frame:getParent().args, params)
	return export.make_nym_list{
		label = "Antonyms",
		language = m_languages.get_by_code(args[1]),
		terms = args[2],
	}
end

return export