پودمان:پیوند ویکیداده: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
بدون خلاصۀ ویرایش |
بدون خلاصۀ ویرایش برچسب: برگرداندهشده |
||
خط ۲: | خط ۲: | ||
-- Get a link to the given Wikidata item's page on the first of the following places: |
-- Get a link to the given Wikidata item's page on the first of the following places: |
||
-- 1. Wikisource |
-- 1. Persian Wikisource |
||
-- 2. Wikipedia |
-- 2. Persian Wikipedia |
||
-- 3. Commons |
-- 3. Commons |
||
-- 4. Reasonator |
-- 4. Reasonator |
||
function p.link(frame) |
function p.link(frame) |
||
-- Check input. |
|||
if frame.args.wikidata == nil or frame.args.wikidata == '' then |
|||
return "<span class='error'>لطفا پارامتر 'wikidata' را مشخص کنید.</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 = {'fawikisource', 'fawiki', 'commonswiki'} |
|||
local interwikis = {'', 'ویکیپدیا', 'commons'} |
|||
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 .. ' ' .. label .. ']</span>' |
|||
end |
end |
||
نسخهٔ ۱۰ مهٔ ۲۰۲۴، ساعت ۲۱:۳۳
توضیحات این پودمان میتواند در پودمان:پیوند ویکیداده/توضیحات قرار گیرد.
local p = {}
-- Get a link to the given Wikidata item's page on the first of the following places:
-- 1. Persian Wikisource
-- 2. Persian 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'>لطفا پارامتر 'wikidata' را مشخص کنید.</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 = {'fawikisource', 'fawiki', 'commonswiki'}
local interwikis = {'', 'ویکیپدیا', 'commons'}
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 .. ' ' .. label .. ']</span>'
end
return p