Module:links/templates: Difference between revisions
No edit summary Tag: Reverted |
No edit summary |
||
| (7 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 | ||
--[=[ | --[=[ | ||
| 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 params = { | local params = { | ||
[1] = {required = true, type = "language", default = "und"}, | [1] = {required = true, type = "language", default = "und"}, | ||
[2] = | [2] = true, | ||
[3] = | [3] = true, | ||
[4] = | [4] = true, | ||
["g"] = {list = true}, | ["g"] = {list = true}, | ||
["gloss"] = alias_of_4, | ["gloss"] = alias_of_4, | ||
["id"] = | ["id"] = true, | ||
["lit"] = | ["lit"] = true, | ||
["pos"] = | ["pos"] = true, | ||
["sc"] = {type = "script"}, | ["sc"] = {type = "script"}, | ||
["t"] = alias_of_4, | ["t"] = alias_of_4, | ||
["tr"] = | ["tr"] = true, | ||
["ts"] = | ["ts"] = true, | ||
["accel-form"] = | ["accel-form"] = true, | ||
["accel-translit"] = | ["accel-translit"] = true, | ||
["accel-lemma"] = | ["accel-lemma"] = true, | ||
["accel-lemma-translit"] = | ["accel-lemma-translit"] = true, | ||
["accel-gender"] = | ["accel-gender"] = true, | ||
["accel-nostore"] = boolean, | ["accel-nostore"] = boolean, | ||
} | } | ||
if iargs.compat then | if iargs.compat then | ||
| Line 54: | Line 58: | ||
end | end | ||
if iargs.langname then | if iargs.langname then | ||
params["w"] = | params["w"] = boolean | ||
end | end | ||
return process_params(frame:getParent().args, params), iargs | return process_params(frame:getParent().args, params), iargs | ||
end | end | ||
-- Used in [[Template:l]] and [[Template: | -- Used in [[Template:l]] and [[Template:m]]. | ||
function export.l_term_t(frame) | function export.l_term_t(frame) | ||
local args, iargs = get_args(frame) | local args, iargs = get_args(frame) | ||
| Line 73: | Line 77: | ||
end | end | ||
local langname = | local langname = iargs.langname and ( | ||
args.w and lang:makeWikipediaLink() or | args.w and lang:makeWikipediaLink() or | ||
lang:getCanonicalName() | lang:getCanonicalName() | ||
| Line 82: | Line 86: | ||
end | end | ||
-- Forward the information to full_link | -- Forward the information to full_link | ||
return (langname and langname .. " " or "") .. require( | return (langname and langname .. " " or "") .. require(links_module).full_link( | ||
{ | { | ||
lang = lang, | lang = lang, | ||
| Line 96: | Line 100: | ||
pos = args["pos"], | pos = args["pos"], | ||
lit = args["lit"], | lit = args["lit"], | ||
accel = args["accel-form"] and { | accel = args["accel-form"] and { | ||
form = args["accel-form"], | form = args["accel-form"], | ||
| Line 108: | 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 115: | Line 136: | ||
do | do | ||
local function get_args(frame) | local function get_args(frame) | ||
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] = | [3] = true, | ||
["id"] = | ["id"] = true, | ||
["sc"] = {type = "script"}, | ["sc"] = {type = "script"}, | ||
}) | }) | ||
| Line 132: | Line 152: | ||
term = term ~= "" and term or nil | term = term ~= "" and term or nil | ||
return require( | return require(links_module).language_link{ | ||
lang = lang, | lang = lang, | ||
sc = sc, | sc = sc, | ||
| Line 150: | Line 170: | ||
[1] = {required = true, default = ""}, | [1] = {required = true, default = ""}, | ||
}) | }) | ||
local | local face = frame.args.face or "non-gloss" | ||
local | |||
local ret = require("Module:script utilities").tag_definition(require(links_module).embedded_language_links{ | |||
term = args[1], | term = args[1], | ||
lang = | lang = require("Module:languages").getByCode("en"), | ||
sc = | sc = require("Module:scripts").getByCode("Latn") | ||
}, | }, 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 171: | 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] | ||
end | end | ||
return "[[" .. args[1] .. "]]" | |||
end | end | ||
| Line 179: | 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 184: | Line 208: | ||
local term = args[1] | local term = args[1] | ||
return require( | 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 196: | Line 220: | ||
}) | }) | ||
return require( | return require(links_module).section_link(args[1]) | ||
end | end | ||
return export | return export | ||