>The Earwig removed <code> formatting, since they seem to be language names instead of codes in any usual sense (the proper code is an integer in the URL, but we don't need to display that to the reader) |
m 1 revision imported |
(No difference)
| |
Latest revision as of 20:22, 25 February 2021
Documentation for this module may be created at Module:Endangered Languages Project/doc
--[[
Module:Endangered Languages Project
--]]
local p = {}
local elpf = "http://www.endangeredlanguages.com/lang/" -- or get P1630
local make_display = function(elpc, elpn, idx)
local pfargs = { "ref", "[" .. elpf .. elpc .. " Endangered Languages Project data for " .. elpn .. "].", name="ELP" .. (idx or "") }
local ref = mw.getCurrentFrame():callParserFunction{ name = "#tag", args = pfargs }
return "[" .. elpf .. elpc .. " " .. elpn .. "]" .. ref
end
local tidy_param = function(param)
if param == "" then param = nil end
return param
end
p.make_entry = function(frame)
local elpname = tidy_param(frame.args.elpname)
local elpcode = tidy_param(frame.args.elpcode)
local qid = tidy_param((frame.args.qid or ""):upper()) or mw.wikibase.getEntityIdForCurrentPage()
local out = {}
if elpcode and elpname then
out[#out+1] = make_display(elpcode, elpname)
else
if qid then
local props = mw.wikibase.getBestStatements(qid, "P2192")
if props[1] then
for i, v in ipairs(props) do
local elpc = elpcode or v.mainsnak.datavalue and v.mainsnak.datavalue.value
local elpn = elpname or v.qualifiers["P1810"][1].datavalue and v.qualifiers["P1810"][1].datavalue.value
if elpc and elpn then
out[#out+1] = make_display(elpc, elpn, i)
end
end
elseif elpcode or elpname then
return (elpcode or "") .. (elpname or "") .. "[[Category:Language articles with missing ELP parameters]]"
end
else
if elpcode or elpname then
return (elpcode or "") .. (elpname or "") .. "[[Category:Language articles with missing ELP parameters]]"
end
end
end
local ret = ""
if #out > 1 then
ret = frame:expandTemplate{title = "ubl", args = out}
else
ret = out[1]
end
return ret
end
return p