モジュール:SportsReference
表示
モジュールの解説[作成]
-- This is the code to insert a template to indicate that the link is in English:
-- frame:expandTemplate{ title = "LANGUAGETEMPLATENAME", args = { "en" } }
-- It is obviously not used in the English Wikipedia itself.
local function linktext(s, name)
entity = mw.wikibase.getEntityObject()
if name then
label = name
elseif not entity then
label = mw.title.getCurrentTitle().text
else
label = mw.wikibase.label(entity.id) or mw.title.getCurrentTitle().text
end
if (s == nil) or (s == "") then
-- This text returns an error that says that the Sports Reference ID is neither
-- present on Wikidata nor in the article, and categorises the page as missing
-- the Wikidata property.
return "<span class='error'>記事で指定されているSports Reference IDがウィキデータにありません。</span> \
[[Template:SportsReference#ウィキデータにIDを追加|修正方法]]\
[[Category:ウィキデータにないSports Reference]]"
else
-- This is the text that is returned if there is a Sports Reference ID on Wikidata or in the article.
return "[https://www.sports-reference.com/olympics/athletes/" .. s .. ".html " .. label .. "] - バイオグラフィーとオリンピックでの成績([[Sports Reference]])"
end
end
local p = {}
function p.link(frame)
-- This is a check to see if the optional first parameter contains ".html". If it does, remove it.
id = string.gsub((frame.args[1] or ""), ".html", "")
-- このモジュールを利用したテンプレートを呼び出す際の NAME 引数の値を name に取得
local name = frame:getParent().args["NAME"]
if not mw.wikibase then
return linktext(id, name)
end
local entity = mw.wikibase.getEntityObject()
if not entity then
-- This is the place to insert a category for articles that don't have items in Wikidata.
-- enwiki doesn't seem to have such a category, so in this case it is empty.
-- For other wikis, just remove the two comment dashes and insert the correct category name.
return linktext(id, name) -- .. ""
end
local claims = entity.claims or {}
local hasProp = claims["P1447"]
if not hasProp then
-- Category for articles that don't have the Sports Reference property on Wikidata.
return linktext(id, name) .. "[[Category:ウィキデータにないSports Reference]]"
end
local propValue = hasProp[1].mainsnak.datavalue.value
return linktext(propValue, name)
end
return p