Module:links: Difference between revisions

From Laenkea
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
Line 8: Line 8:
local alt = data.alt or data.term
local alt = data.alt or data.term
if mw.ustring.gsub(link, " ", " ") == mw.title.getCurrentTitle().subpageText then
if data.language.proto and "Appendix:" .. data.language.name .. "/" .. data.term == mw.title.getCurrentTitle().prefixedText then
if data.language.proto then
alt = "*" .. alt
alt = "*" .. alt
return "<b>" .. alt .. "</b>"
end
elseif not data.language.proto and mw.ustring.gsub(link, "&nbsp;", " ") == mw.title.getCurrentTitle().subpageText then
return "<b>" .. alt .. "</b>"
return "<b>" .. alt .. "</b>"
else
else

Revision as of 00:37, 25 August 2023

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

local export = {}

function export.language_link(data)
	if not data.term then
		error("language link data must contain term")
	end
	local link = data.term
	local alt = data.alt or data.term
	
	if data.language.proto and "Appendix:" .. data.language.name .. "/" .. data.term == mw.title.getCurrentTitle().prefixedText then
		alt = "*" .. alt
		return "<b>" .. alt .. "</b>"
	elseif not data.language.proto and mw.ustring.gsub(link, "&nbsp;", " ") == mw.title.getCurrentTitle().subpageText then
		return "<b>" .. alt .. "</b>"
	else
		if data.language and data.language.proto then
			alt = "*" .. alt
			link = "Appendix:" .. data.language.name .. "/" .. data.term
		elseif data.language then
			link = link .. "#" .. string.gsub(data.language.name, " ", "_")
		end
		return "[[" .. link .. "|" .. alt .. "]]"
	end
end

function export.link_extras(data)
	if not (data.pos or data.gloss) then return nil end
	local out = {}
	if data.gloss then table.insert(out, '“' .. data.gloss .. '”') end
	if data.pos then table.insert(out, data.pos) end
	return table.concat(out, ", ")
end

function export.full_link(data, face)
	local link = export.language_link(data)
	link = require("Module:formatting").wrap_face(link, data.language, face or "nil")
	local extras = export.link_extras(data)
	if extras then
		extras = " (" .. extras .. ")"
	end
	local prefix
	if data.language and data.showlanguage then
		prefix = "[[" .. data.language.link .. "|" .. data.language.name .. "]] "
	end
	return (prefix or "") .. link .. (extras or "")
end

return export