Módulo:Enlace Wikidata
Esta documentación está transcluida desde Módulo:Enlace Wikidata/doc.
Los editores pueden experimentar en la zona de pruebas de este módulo.
Por favor, añade las categorías e interwikis a la subpágina de documentación. Subpáginas de este módulo.
Los editores pueden experimentar en la zona de pruebas de este módulo.
Por favor, añade las categorías e interwikis a la subpágina de documentación. Subpáginas de este módulo.
local p = {}
-- Entrega un enlace a una página de un elemento de Wikidata de los siguientes sitios:
-- 1. Wikisource
-- 2. Wikipedia
-- 3. Commons
-- 4. Reasonator
function p.link(frame)
-- Chequeo.
if frame.args.wikidata == nil or frame.args.wikidata == '' then
return "<span class='error'>Un parámetro 'wikidata' es necesario.</span>"
end
local itemId = frame.args.wikidata
if not mw.wikibase.isValidEntityId(itemId) then
return "<span class='error'>" .. itemId .. "' no es un elemento de Wikidata válido.</span>"
end
if not mw.wikibase.entityExists(itemId) then
return "<span class='error'>" .. itemId .. "' no existe en Wikidata.</span>"
end
local label = mw.wikibase.getLabel(itemId)
local description = mw.wikibase.getDescription(itemId)
if frame.args.label ~= nil and frame.args.label ~= '' then
label = frame.args.label
end
-- Busca un enlace según la jerarquía indicada.
-- Las dos variables están en el mismo orden.
local sitelinks = {'eswikisource', 'eswiki', 'commonswiki'}
local interwikis = {'', 'w', 'commons'}
local sitios = {'wikisource', 'wikipedia', 'commons'}
for i = 1, #sitelinks do
local sitelink = mw.wikibase.getSitelink(itemId, sitelinks[i])
if sitelink then
return '<span data-enlace-wikidata="https://www.wikidata.org/entity/'..itemId..
'" class="enlace-wikidata enlace-wikidata-'..(sitios[i] or 'wikisource')..
'">[[' .. interwikis[i] .. ':' .. sitelink .. '|<span title="'..(description or '')..
'">' .. label .. '</span>]]</span>';
end
end
-- Si no encuentra .
return '<span data-enlace-wikidata="https://www.wikidata.org/entity/'..itemId..'" class="plainlinks enlace-wikidata enlace-wikidata-reasonator">[https://reasonator.toolforge.org/?q=' .. itemId .. ' ' .. label .. ']</span>'
end
return p