Modulu:Wikidata: berrikuspenen arteko aldeak

Ezabatutako edukia Gehitutako edukia
new parameters case0-case9 for tables overriding general case
update, minor fixes and performance improvement
1. lerroa:
-- Master version: [[:ca:Module:Wikidata]]
-- compatible version: 2017071220171012
 
local p = {}
131. lerroa:
end
 
local function printDatavalueString(data, parameterparameters)
if parameter == 'weblink' then
return '[' .. data .. ' ' .. mw.text.split(data, '//' )[2] .. ']'
elseif mw.ustring.find((parameterparameters.formatting or ''), '$1', 1, true) then -- formatting = a pattern
return expandBraces(mw.ustring.gsub(parameterparameters.formatting, '$1', data))
elseif parameters.case then
return case(data, parameters.case)
else
return data
263 ⟶ 265 lerroa:
labelcase = case(labelcase, parameters.case)
end
local ret1, ret2
if parameter == 'raw' then
returnret1 entityId,= entityId
ret2 = entityId
elseif parameter == 'label' then
returnret1 = (labelcase or entityId),
ret2 = (labelcase or entityId)
elseif parameter == 'sitelink' then
returnret1 = (sitelink or 'wikidata:' .. entityId),
ret2 = (sitelink or entityId)
elseif mw.ustring.find((parameter or ''), '$1', 1, true) then -- formatting = a pattern
local retret1 = mw.ustring.gsub(parameter, '$1', labelcase or entityId)
retret1 = expandBraces(retret1)
returnret2 ret,= labelcase or entityId
else
if parameter == "ucfirst" then
labelcase = labelcase and mw.language.getContentLanguage():ucfirst(labelcase)
parameters.formatting = 'internallink' -- only once in a list
end
if sitelink then
returnret1 = '[[' .. sitelink .. '|' .. labelcase .. ']]',
ret2 = labelcase
elseif label and parameter == 'internallink' or parameter == 'ucfirst' then
returnret1 = '[[' .. label .. '|' .. labelcase .. ']]',
ret2 = labelcase
else
returnret1 = '[[wikidata:' .. entityId .. '|' .. (labelcase or entityId) .. ']]',
ret2 = labelcase or entityId
end
end
return linkret1, ret2
end
 
310 ⟶ 326 lerroa:
if not property or not entity or not entity.claims then return end
if not mw.ustring.match(property, "^P%d+$") then
-- if theget property is given by an id (P..) accessfor the claimgiven list by this idlabel
returnproperty entity= mw.wikibase.claims[resolvePropertyId(property])
else
-- otherwise, iterate over all properties, fetch their labels and compare this to the given property name
for k, v in pairs(entity.claims) do
if mw.wikibase.label(k) == property then return v end
end
return
end
return entity.claims[property]
end
 
329 ⟶ 341 lerroa:
return printDatatypeMath(snak.datavalue.value)
elseif snak.datavalue.type == "string" then
return printDatavalueString(snak.datavalue.value, parameterparameters)
elseif snak.datavalue.type == "globecoordinate" then
return printDatavalueCoordinate(snak.datavalue.value, parameter)
505 ⟶ 517 lerroa:
if genderClaims then
local genderId = getValueOfClaim(genderClaims[1], nil, {["formatting"]="raw"})
if genderId == "Q6581072" or genderId == "Q1052281" or genderId == "Q43445" then -- female or, transgender female, female organism
genderCase = (parameters.case == "infoboxlabel") and "labelfeminine" or "feminine"
if parameters.case == "gender" or idgender then
811 ⟶ 823 lerroa:
if labelShow == nil or labelFilter[label] then
result[#result + 1] = {label, link}
labelFilter[label] = nil -- only first label found
end
if label == lastlabel then
841 ⟶ 854 lerroa:
args[k] = v
end
args.list = "falsetrue"
args.formatting = "internallink"
args.separator = "/·/"
local link = p._main(args) -- get internal link of property/qualifier
if items_list == nil then
return
end
local link_table = mw.text.split(link_list, "/·/", true)
args.formatting = "raw"
args.itemlocal items_list = p._main(args) -- get item of property/qualifier
local items_table = mw.text.split(items_list, "/·/", true)
args.property = args.parent
args.qualifier = nil
args.formatting = "label"
args.list = "false"
local link_label = p._main(args) -- get label of parent property
for ki, v in pairsipairs(entity.claimsitems_table) do
if link_label then
args.item = v
link = mw.ustring.gsub(link or '', "%[%[(.*)%|.+%]%]", "[[%1|" .. link_label .. "]]")
local link_label = p._main(args) -- get label of parent property
if link_label then
link link_table[i] = mw.ustring.gsub(linklink_table[1] or '', "%[%[(.*)%|.+%]%]", "[[%1|" .. link_label .. "]]")
end
end
return link
return mw.text.listToText(link_table)
end