Documentation for this module may be created at Module:Sandbox/Nathan fraignt/Wikidata/doc
local p = {}
p.getPersonDataTable = function(frame)
local getName = function (entityId)
local givenNameId = mw.wikibase.getBestStatements( entityId, "P735" )[1].mainsnak.datavalue.value.id or ""
local givenName = mw.wikibase.getLabel(givenNameId) or ""
local lastNameId = mw.wikibase.getBestStatements( entityId, "P734" )[1].mainsnak.datavalue.value.id or ""
local lastName = mw.wikibase.getLabel(lastNameId) or ""
return givenName .. " " .. lastName
end
local getData = function (entityId, propId)
local dataTable = mw.wikibase.getBestStatements( entityId, propId )
local dataString = ""
for k,v in pairs(dataTable) do
local dataId = mw.wikibase.getSitelink(v.mainsnak.datavalue.value.id) or mw.wikibase.getLabel(v.mainsnak.datavalue.value.id) or ""
dataString = dataString .. "[[" .. dataId .. "]]" .. "<br>"
end
return dataString
end
local createTable = function(entityId)
local tableString = '{| class="wikitable" \n'
local tableStringEnd = "\n|}"
local tableLinePrefix = "\n |- \n"
tableString = tableString .. tableLinePrefix .. "| Name || " .. getName(entityId)
tableString = tableString .. tableLinePrefix .. "| Place of Birth || " .. getData(entityId, "P19")
tableString = tableString .. tableLinePrefix .. "| Occupation || " .. getData(entityId, "P106")
tableString = tableString .. tableLinePrefix .. "| Spouse || " .. getData(entityId, "P26")
return tableString .. tableStringEnd
end
entityId = frame.args[1]
return createTable(entityId)
end
return p