A documentação para este módulo pode ser criada em Módulo:Interface Wikidata/doc
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