Module:links: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
local export = {} | local export = {} | ||
local function make_list(frame, | local function make_list(frame, link_type) | ||
if link_type ~= "mention" and link_type ~= "list" then | if link_type ~= "mention" and link_type ~= "list" then | ||
error("Link type must be specified") | error("Link type must be specified") |
Revision as of 17:10, 5 August 2023
Documentation for this module may be created at Module:links/documentation
local export = {}
local function make_list(frame, link_type)
if link_type ~= "mention" and link_type ~= "list" then
error("Link type must be specified")
end
local language_code = frame.args[1]
local word = frame.args[2]
local display = frame.args[3] or frame.args["display"] or frame.args["d"]
local text = frame.args[4] or frame.args["text"] or frame.args["t"]
local pos = frame.args["pos"]
local language = require("Module:languages").get_by_code(language_code)
local link = ""
if type(language.link) == "string" then
link = link .. "[[" .. language.link .. "|" .. language.name .. "]] "
else
link = link .. language.name .. " "
end
local link_format = (link_type == "mention" and "''") or ""
local link_display = display or word
link = link .. link_format .. "[[" .. word .. "#" .. string.gsub(language.name, " ", "_") .. "|" .. link_display .. "]]" .. link_format
if type(text) == "string" or type(pos) == "string" then
link = link .. " ("
if type(text) == "string" then
link = link .. "“" .. text .. "”" .. ((type(pos) == "string" and ", ") or "")
end
if type(pos) == "string" then
link = link .. pos
end
link = link .. ")"
end
return link
end
function export.list(frame)
return make_list(frame, "list")
end
function export.mention(frame)
return make_list(frame, "mention")
end
return export