Модуль:Disambig

Зьвесткі зь Вікіпэдыі — вольнай энцыкляпэдыі
 
Дакумэнтацыя модулю Дакумэнтацыя модулю[прагляд] [рэдагаваць] [гісторыя] [абнавіць]
local p = {}

local disambigPostfix = " (неадназначнасьць)"

-- Асьцярожна, «дарагая» функцыя
function isDisambig( name )
    local rootTitle = mw.title.new( name )
    local rootTitleContent = rootTitle:getContent()
    
    if rootTitle.isRedirect then -- прозьвішча можа быць перанакіраваньнем на сапраўдную старонку-неадназначнасьць
        return isDisambig( mw.ustring.match( rootTitleContent, "%[%[(.*)%]%]" ) )
    end

    if mw.ustring.match( tostring( rootTitleContent ), "{{[Dd]isambig}}" )
      or mw.ustring.match( tostring( rootTitleContent ), "{{[Нн]еадназначнасьць}}" )
      or mw.ustring.match( tostring( rootTitleContent ), "{{[Нн]еадназначнасьць асобаў}}" ) then
        return true
    else
        return false
    end
end

function p.findDisambig( frame )
    local rootText = mw.ustring.gsub( frame.args[1], "%s%b()$", "" )

    if isDisambig( rootText ) then
        return rootText
    else
        return rootText .. disambigPostfix 
    end
end

function p.findSurnameDisambig( frame )
    local rootText = mw.ustring.gsub( frame.args[1], "%s%b()$", "" )
    rootText = mw.ustring.match( rootText, "%s(%S+)$" )

    if isDisambig( rootText ) then
        return rootText
    else
        return rootText .. disambigPostfix
    end
end

return p