Module:links: Difference between revisions

From Laenkea
Jump to navigation Jump to search
mNo edit summary
m (Changed “” to ‘’ for glosses)
Tag: Reverted
Line 29: Line 29:
if not (data.pos or data.gloss) then return nil end
if not (data.pos or data.gloss) then return nil end
local out = {}
local out = {}
if data.gloss then table.insert(out, '' .. data.gloss .. '') end
if data.gloss then table.insert(out, '' .. data.gloss .. '') end
if data.pos then table.insert(out, data.pos) end
if data.pos then table.insert(out, data.pos) end
return table.concat(out, ", ")
return table.concat(out, ", ")

Revision as of 17:53, 9 February 2024

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 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
	
	local term = mw.ustring.match(mw.ustring.gsub(link, " ", " "),"([^%#]+)")
	
	if term == mw.title.getCurrentTitle().prefixedText and not data.nobold then
		return "<b>" .. alt .. "</b>"
	elseif mw.ustring.match(term, "^[%?%-–—]+$") or mw.ustring.match(term, ":[%?%-–—]+$") then
		return alt
	else	
		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