Module:links/templates: Difference between revisions

No edit summary
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
-- Prevent substitution.
if mw.isSubsting() then
return require("Module:unsubst")
end
local export = {}
local links_module = "Module:links"
local process_params = require("Module:parameters").process
local process_params = require("Module:parameters").process
local remove = table.remove
local remove = table.remove
local upper = require("Module:string utilities").upper
local upper = require("Module:string utilities").upper
local export = {}


--[=[
--[=[
Line 11: Line 17:
[[Module:scripts]]
[[Module:scripts]]
[[Module:parameters]]
[[Module:parameters]]
[[Module:debug]]
]=]
]=]


Line 24: Line 31:
local alias_of_4 = {alias_of = 4}
local alias_of_4 = {alias_of = 4}
local boolean = {type = "boolean"}
local boolean = {type = "boolean"}
local plain = {}
local params = {
local params = {
[1] = {required = true, type = "language", default = "und"},
[1] = {required = true, type = "language", default = "und"},
[2] = plain,
[2] = true,
[3] = plain,
[3] = true,
[4] = plain,
[4] = true,
["g"] = {list = true},
["g"] = {list = true},
["gloss"] = alias_of_4,
["gloss"] = alias_of_4,
["id"] = plain,
["id"] = true,
["lit"] = plain,
["lit"] = true,
["pos"] = plain,
["pos"] = true,
["sc"] = {type = "script"},
["sc"] = {type = "script"},
["t"] = alias_of_4,
["t"] = alias_of_4,
["tr"] = plain,
["tr"] = true,
["ts"] = plain,
["ts"] = true,
["accel-form"] = plain,
["accel-form"] = true,
["accel-translit"] = plain,
["accel-translit"] = true,
["accel-lemma"] = plain,
["accel-lemma"] = true,
["accel-lemma-translit"] = plain,
["accel-lemma-translit"] = true,
["accel-gender"] = plain,
["accel-gender"] = true,
["accel-nostore"] = boolean,
["accel-nostore"] = boolean,
}
}
Line 52: Line 58:
end
end
if iargs.langname then
if iargs.langname then
params["w"] = {type = "boolean", default = true}
params["w"] = boolean
end
end
return process_params(frame:getParent().args, params), iargs
return process_params(frame:getParent().args, params), iargs
Line 80: Line 86:
end
end
-- Forward the information to full_link
-- Forward the information to full_link
return (langname and langname .. " " or "") .. require("Module:links").full_link(
return (langname and langname .. " " or "") .. require(links_module).full_link(
{
{
lang = lang,
lang = lang,
Line 94: Line 100:
pos = args["pos"],
pos = args["pos"],
lit = args["lit"],
lit = args["lit"],
to_wikt = iargs["to_wikt"],
accel = args["accel-form"] and {
accel = args["accel-form"] and {
form = args["accel-form"],
form = args["accel-form"],
Line 106: Line 111:
iargs.face,
iargs.face,
not iargs.notself
not iargs.notself
)
end
-- Used in [[Template:link-annotations]].
function export.l_annotations_t(frame)
local args, iargs = get_args(frame)
-- Forward the information to format_link_annotations
return require(links_module).format_link_annotations(
{
lang = args[1],
tr = { args["tr"] },
ts = { args["ts"] },
genders = args["g"],
pos = args["pos"],
lit = args["lit"]
},
iargs.face
)
)
end
end
Line 113: Line 136:
do
do
local function get_args(frame)
local function get_args(frame)
local plain = {}
return process_params(frame:getParent().args, {
return process_params(frame:getParent().args, {
[1] = {required = true, type = "language", default = "und"},
[1] = {required = true, type = "language", default = "und"},
[2] = {allow_empty = true},
[2] = {allow_empty = true},
[3] = plain,
[3] = true,
["id"] = plain,
["id"] = true,
["sc"] = {type = "script"},
["sc"] = {type = "script"},
})
})
Line 130: Line 152:
term = term ~= "" and term or nil
term = term ~= "" and term or nil
return require("Module:links").language_link{
return require(links_module).language_link{
lang = lang,
lang = lang,
sc = sc,
sc = sc,
Line 148: Line 170:
[1] = {required = true, default = ""},
[1] = {required = true, default = ""},
})
})
 
local lang = require("Module:languages").getByCode("en")
local face = frame.args.face or "non-gloss"
local sc = require("Module:scripts").getByCode("Latn")
 
local ret = require("Module:script utilities").tag_definition(require(links_module).embedded_language_links{
return require("Module:script utilities").tag_text(require("Module:links").embedded_language_links{
term = args[1],
term = args[1],
lang = lang,
lang = require("Module:languages").getByCode("en"),
sc = sc
sc = require("Module:scripts").getByCode("Latn")
}, lang, sc)
}, face)
 
if face == "non-gloss" then
return ret
end
return '<span class="mention-gloss-paren">(</span>' .. ret .. '<span class="mention-gloss-paren">)</span>'
end
end


Line 169: Line 195:
if args[1] == "" or args[1]:find("[[", nil, true) then
if args[1] == "" or args[1]:find("[[", nil, true) then
return args[1]
return args[1]
else
return "[[" .. args[1] .. "]]"
end
end
return "[[" .. args[1] .. "]]"
end
end


Line 177: Line 202:
local args = process_params(frame:getParent().args, {
local args = process_params(frame:getParent().args, {
[1] = {required = true},
[1] = {required = true},
[2] = true,
["lang"] = {type = "language", default = "en"},
["lang"] = {type = "language", default = "en"},
})
})
Line 182: Line 208:
local term = args[1]
local term = args[1]
return require("Module:links").full_link{
return require(links_module).full_link{
lang = args.lang,
lang = args.lang,
term = term,
term = term,
alt = term:gsub("^.[\128-\191]*", upper)
alt = term:gsub("^.[\128-\191]*", upper) .. (args[2] or "")
}
}
end
end
Line 194: Line 220:
})
})
return require("Module:links").section_link(args[1])
return require(links_module).section_link(args[1])
end
end


return export
return export