Módulo:Teste

De Wiki Gla
Revisão de 22h05min de 5 de junho de 2025 por Gurren1 (discussão | contribs)
Ir para navegação Ir para pesquisar

A documentação para este módulo pode ser criada em Módulo:Teste/doc

local p = {}

function p.render(frame)
    local args = frame:getParent().args or {}
    local nomeImagem = args.imagem or ""
    local pontosStr = args.pontos or ""

    if nomeImagem == "" then
        return mw.html.create("div")
            :css("color", "red")
            :wikitext("Erro: imagem não informado em Módulo:Teste.")
            :allDone()
    end

    local container = mw.html.create("div")

    if pontosStr == "" then
        return ""
    end

    for ponto in mw.text.gsplit(pontosStr, ";", true) do
        ponto = mw.text.trim(ponto)
        if ponto ~= "" then
            local x, y, descricao, alvo = ponto:match("^%s*(%d+)%s*|%s*(%d+)%s*|%s*(.-)%s*|%s*(.-)%s*$")
            if x and y and descricao and alvo then
                local pointSpan = container:tag("span")
                    :addClass("map-point")
                    :css("top", y .. "px")
                    :css("left", x .. "px")

                pointSpan:tag("a")
                    :attr("href", mw.title.makeTitle(0, alvo):getFullText())
                    :wikitext("") 
                    :done()

                pointSpan:tag("span")
                    :addClass("tooltip")
                    :wikitext(descricao)
                    :done()
            else
                container:tag("div")
                    :css("color", "red")
                    :wikitext("Parâmetro de ponto inválido: <code>" .. ponto .. "</code>")
                    :done()
            end
        end
    end

    return tostring(container)
end

return p