Module:Sports reference explained

local function category(s) if mw.title.getCurrentTitle.namespace ~= 0 then return "" end return ""end

local function linktext(s1,s2,s3) if (s3

nil) or (s3

"") then return ".. s1 .. ".html " .. s2 .. " at Olympics at Sports-Reference.com (archived)" .. category("missing archive parameter") else return ".. s3 .. "/https://www.sports-reference.com/olympics/athletes/" .. s1 .. ".html " .. s2 .. " at Olympics at Sports-Reference.com (archived)" endend

local p =

function p.link(frame)

-- Optional first parameter contains ID portion of Sports-Reference URL. -- Trim any leading or trailing spaces. If it contains ".html", remove it.

local id = string.gsub((mw.text.trim(frame.args[1]) or ""), ".html", "")

-- Optional second parameter contains name for link. Trim leading or trailing spaces. -- If name is not provided, use article name without disambiguation.

local name = mw.text.trim(frame.args[2]) if (name

nil) or (name

"") then name = string.gsub(mw.title.getCurrentTitle.text, "%s+%b$", "", 1) end

-- Optional third parameter contains date/time portion of Archive.org URL.

local archive = mw.text.trim(frame.args[3])

-- For articles without Wikidata property: -- if ID not provided, return error text and tracking category -- if ID is provided, return link and tracking category

local entity = mw.wikibase.getEntityObject or local claims = entity.claims or local hasProp = claims["P1447"] if not hasProp then if (id

nil) or (id

"") then return "

Sports-Reference template missing ID and not present in Wikidata. How do I fix this?" .. category("missing ID and not in Wikidata") else return linktext(id,name,archive) .. category("with ID not in Wikidata") end end

-- For articles with Wikidata property: -- if ID not provided, return link (using Wikidata) and tracking category -- if ID is provided, return link (using ID) and one of two tracking categories

local propValue = hasProp[1].mainsnak.datavalue.value if (id

nil) or (id

"") then return linktext(propValue,name,archive) .. " " -- .. category("using Wikidata") end for i, v in ipairs(hasProp) do propValue = (v.mainsnak.datavalue or).value if id

propValue then return linktext(id,name,archive) -- .. category("with ID same as Wikidata") end end return linktext(id,name,archive) .. category("with ID different from Wikidata")

end

return p