Moduł:Brudnopis/Paweł Ziemian/Wikidane/formatQualifiers
Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:Brudnopis/Paweł Ziemian/Wikidane/formatQualifiers/opis
local format = require("Moduł:Wikidane/format/snak").format
local function SELECT(prop, options, name, separator, lastSeparator)
if prop.qualifiers and prop.qualifiers[name] then
local items = {}
for _, v in ipairs(prop.qualifiers[name]) do
if v.snaktype == "value" then
table.insert(items, format(v, options))
end
end
if #items > 0 then
return mw.text.listToText(items, separator, lastSeparator)
end
end
end
local function wikiUL(prop, options, name)
return SELECT(prop, options, name, "\n*", "\n*")
end
local function wikiOL(prop, options, name)
return SELECT(prop, options, name, "\n#", "\n#")
end
local function BR(prop, options, name)
return SELECT(prop, options, name, "<br />", "<br />")
end
local function AND(prop, options, name)
return SELECT(prop, options, name, ", ", " i\194\160")
end
local function OR(prop, options, name)
return SELECT(prop, options, name, ", ", " lub\194\160")
end
local function MINTIME(prop, options, name)
if prop.qualifiers and prop.qualifiers[name] then
-- select minimum date
local time = false
for _, v in ipairs(prop.qualifiers[name]) do
if v.snaktype == "value" then
if not time or (v.datavalue.value.time < time.datavalue.value.time) then
time = v
end
end
end
if time then
return format(time, options)
end
end
end
local function MAXTIME(prop, options, name)
if prop.qualifiers and prop.qualifiers[name] then
-- select maximum date
local time = false
for _, v in ipairs(prop.qualifiers[name]) do
if v.snaktype == "value" then
if not time or (time.datavalue.value.time < v.datavalue.value.time) then
time = v
end
end
end
if time then
return format(time, options)
end
end
end
return {
P585 = function(prop, options)
return MAXTIME(prop, options, "P585")
end,
P518 = function(prop, options)
return AND(prop, options, "P518")
end,
P1319 = function(prop, options)
return MINTIME(prop, options, "P1319")
end,
P1326 = function(prop, options)
return MAXTIME(prop, options, "P1326")
end,
}