Módulo:If preview

Origem: Wikipédia, a enciclopédia livre.
Documentação do módulo[ver] [editar] [histórico] [purgar]

Este módulo implementa {{If preview}} e {{Preview warning}}. Ele ajuda a(o)s predefinições/módulos a determinar se estão sendo pré-visualizada(o)s.

Prefira implementar as versões de predefinição em outras predefinições.

Em um módulo para usar o main(), você precisa passar uma tabela de quadros ("frame") com uma tabela de argumentos ("args").

Para o aviso de pré-visualização, use _warning().

local p = {}

local cfg = mw.loadData('Módulo:If preview/configuration')

--[[
main

Esta função retorna o primeiro argumento ou o segundo argumento passado para
este módulo, dependendo se a página estiver sendo pré-visualizada.

]]
function p.main(frame)
    if cfg.preview then
        return frame.args[1] or ''
    else
        return frame.args[2] or ''
    end
end

--[[
pmain

Esta função retorna o primeiro argumento ou o segundo argumento passado para a parental deste módulo (ou seja, a predefinição usando este módulo), dependendo se
estiver sendo pré-visualizads.

]]
function p.pmain(frame)
    return p.main(frame:getParent())
end


local function warning_text(warning)
    return mw.ustring.format(
        cfg.warning_infrastructure,
        cfg.templatestyles,
        warning
    )
end

function p._warning(args)
    
    local warning = args[1] and args[1]:match('^%s*(.-)%s*$') or ''
    if warning == '' then
        return warning_text(cfg.missing_warning)
    end
    
    if not cfg.preview then return '' end
    
    return warning_text(warning)
end

--[[
Aviso

Esta função retorna um "aviso de pré-visualização", que é o primeiro argumento marcado
com linguagem de marcação de hipertexto (L.M.Ht., Ht.M.L.) e algum texto de suporte, dependendo se a página estiver sendo pré-visualizada.

Desabilitado, pois implementaremos a versão da predefinição em geral

]]
--function p.warning(frame)
--    return p._warning(frame.args)
--end

--[[
Aviso, mas para predefinições de passagem como a {{Preview warning}}
]]
function p.pwarning(frame)
    return p._warning(frame:getParent().args)
end

return p