Module:Wikipédia

De Wikivoyage

La documentation pour ce module peut être créée à Module:Wikipédia/doc

--[[
 
@author d:User:Legoktm
 
This template automatically adds the Wikipedia
link to the sidebar if it exists in Wikidata
 
@version 0.1en.voy
If this template is copied to other sites, please try
and copy all edits back to the main one on en.voy
 
]]--
 
 
local p = {}
 
function p.wplink(frame)
    local pframe = frame:getParent()
    local config = frame.args -- the arguments passed BY the template, in the wikitext of the template itself
    local args = pframe.args -- the arguments passed TO the template, in the wikitext that transcludes the template
 
    -- do some exemption checking...
    local text = mw.title.getCurrentTitle():getContent()
    if string.find(text, "{{noexternallinks}}") then
        return "" -- they dont want any wikidata stuff
    end
 
    -- this part is rather hacky, but it works... I think.
    -- note that this doesn't check links like nost or tenwiki
    text = string.lower(text);
    if string.find(text, "%[%[wikipedia:") then
        return ""
    end
    if string.find(text, "%[%[w:") then
        return ""
    end
 
    local entity = mw.wikibase.getEntity()
    if not entity then -- no Wikidata item
        return "" -- we could add a tracking category here if we wanted...
    end
    local sitelinks = entity.sitelinks -- this will always be populated since it's a connected item :P
    local langcode = mw.getContentLanguage():getCode();
    local dbname = langcode.gsub('-', '_') .. "wiki"
    local hasLink = sitelinks[dbname]
    if not hasLink then
        return "" -- no wikipedia link in that language
    end
    local link = hasLink.title
    return "[[wikipedia:" .. link .. "]]"
end
 
return p