মডিউল:Wikidata link
এই মডিউলের জন্য মডিউল:Wikidata link/নথি-এ নথিপত্র তৈরি করা হয়ে থাকতে পারে
local p = {}
-- Get a link to the given Wikidata item's page on the first of the following places:
-- 1. Wikisource
-- 2. Wikipedia
-- 3. Commons
-- 4. Reasonator
function p.link(frame)
-- Check input.
if frame.args.wikidata == nil or frame.args.wikidata == '' then
return "<span class='error'>দয়া করে উইকিউপাত্ত আইডি দিন।</span>"
end
local itemId = frame.args.wikidata
if not mw.wikibase.isValidEntityId(itemId) then
return "<span class='error'>" .. itemId .. "' সঠিক উইকিউপাত্ত আইটেম নয়।</span>"
end
if not mw.wikibase.entityExists(itemId) then
return "<span class='error'>" .. itemId .. "' উইকিউপাত্তে অস্তিত্ব নেই।</span>"
end
local label = mw.wikibase.getLabel(itemId)
if frame.args.label ~= nil and frame.args.label ~= '' then
label = frame.args.label
end
-- Look through the site hierarchy for a matching sitelink.
-- These two variables are in the same order.
local sitelinks = {'bnwikisource', 'bnwiki', 'enwiki', 'enwikisource'}
local interwikis = {'', ':bn:w', ':en:w', ':en:'}
for i = 1, #sitelinks do
local sitelink = mw.wikibase.getSitelink(itemId, sitelinks[i])
if sitelink then
return '<span class="module-wikidata-link">[[' .. interwikis[i] .. ':' .. sitelink .. '|' .. label .. ']]</span>';
end
end
-- Fall back on Reasonator if no sitelink found.
return '<span class="plainlinks module-wikidata-link reasonator-link">[https://reasonator.toolforge.org/?q=' .. itemId .. '&lang=bn ' .. label .. ']</span>'
end
return p