Módulo:Interface Wikidata
Este módulo está na categoria sujeitos a proteção de página. Ele é um módulo de alta visibilidade em uso por um grande número de páginas, ou é transcluído muito frequentemente. Por causa do vandalismo ou erros que podem afectar muitas páginas, e mesmo edições triviais podem causar cargas substanciais nos servidores, ele está protegido de editar. |
Este módulo é usado em aproximadamente 33 000 páginas. (Ver Wikipedia:Predefinições em alto risco) Para evitar sobrecargas desnecessárias ao servidor e outros transtornos, quaisquer mudanças devem ser previamente testadas, seja na subpágina de testes deste módulo, na subpágina de testes de módulos (ou ainda em sua subpágina de testes). Por favor, sempre considere expor eventuais mudanças na página de discussão, antes de implementá-las. |
Descrição
Este módulo tem funções auxiliares para mostrar dados Wikidata com chamadas dentro de infocaixas e outras predefinições.
Uso
Outra documentação:
local p = {}
local d = require 'Módulo:Infobox/Wikidata'
-- funções que só podem ser chamadas de outro módulo
p.fromLua = {
-- manipulação de uma lista de afirmações
getClaims = d.getClaims,
stringTable = d.stringTable,
tableToText = d.tableToText,
formatStatements = d.formatStatements,
formatQualifiers = d.showQualifier,
formatAndCat = d.formatAndCat,
wikidataDate = d.wikidataDate,
addLinkback = d.addLinkBack,
addtrackingcat = d.addTrackingCat,
-- manipulação de uma afirmação individual
getmainid = d.getMainId,
formatStatement = d.formatStatement,
statementDate = d.getFormattedDate, -- obter a data dos qualificadores
getFormattedQualifiers = d.getFormattedQualifiers,
getQualifiers = d.getQualifiers,
getReferences = d.getReferences,
-- manipulação de snaks
getid = d.getId,
formatSnak = d.formatSnak,
-- utilização de qids
getEntity = d.getEntity,
formatEntity = d.formatEntity,
getLink = d.siteLink,
getLabel = d.getLabel, --getLabel é mais simples que formatEntity
-- uso de propriedades transitivas
isInstance = d.isInstance,
isSubclass = d.isSubclass,
addVals = d.addVals,
transitiveVals = d.transitiveVals,
inTransitiveVals = d.inTransitiveVals,
findVal = d.findVal,
-- gestão de datas
mainDate = d.mainDate,
getDate = d.getTheDate,
keyDate = d.keyDate,
-- Funções diversas
citeItem = d.citeitem,
translate = d.translate,
Dump = d.Dump,
}
-- Funções de quadro para uso do Wikitexto (às vezes com opções para manipular dados menos limpos
local function cleanargs(args)
local newargs = {}
for i, j in pairs(args) do
if j ~= '' then
newargs[i] = j
end
end
return newargs
end
function p.formatStatements( frame ) -- para [[Predefinição:Wikidata]]
local args = {}
if frame == mw.getCurrentFrame() then
args = frame:getParent().args -- chamando parâmetros do modelo (isso é realmente uma boa ideia?)
for k, v in pairs(frame.args) do
args[k] = v
end
else
args = frame
end
return p.fromLua.formatStatements( args )
end
function p.addLinkBack( frame )
local args = cleanargs(frame.args)
if args[1] and args[1]:match"%S" then
return d.addLinkBack( '', args.entity, mw.text.trim( args[1] ) )
end
end
function p.formatEntity(frame)
local args = cleanargs(frame.args)
local entity = args.entity or args[1]
if (not entity) or (entity == '') then
entity = mw.wikibase.getEntityObject()
end
return d.formatEntity(entity, args)
end
function p.formatAndCat(frame)
local args = cleanargs(frame.args)
return d.formatAndCat(args)
end
function p.citeItem(frame)
local args = cleanargs(frame.args)
local item, page = args[1], args['page']
return p.fromLua.citeItem(item, page)
end
function p.getLabel(frame)
local args = cleanargs(frame.args)
local item = args[1]
local lang = args[2] or "pt"
return d.getLabel(item, lang)
end
function p.mainDate(frame)
return d.mainDate(frame.args['entity'])
end
function p.Dump(frame)
return d.Dump(frame.args[1])
end
function p.formatQualifiers(frame)
local args = frame.args
return d.formatQualifiers(args)
end
function p.getDescription(frame) -- função simplista, mas boa, descrições Wikidata, não é super útil
return mw.wikibase.description(frame.args[1])
end
function p.getLink(frame)
local args = frame.args
local link, proj, lang = p.fromLua.getLink(args[1], args[2], args[3])
return link
end
function p.translate(frame)
return d.translate(frame.args[1])
end
function p.findVal(frame)
local args = frame.args
return d.findVal(args.source, args.target, args.property, args.recursion, args.instancedepth)
end
function p.transitiveVals(frame)
local args = frame.args
return d.transitiveVals(args.item, args, args.maxdepth, args.maxnodes, args.stopval, true)
end
return p