Module:Motifs

From The Seven Sages of Rome

Documentation for this module may be created at Module:Motifs/doc

local p = {}

function p.renderBadges(frame)
    local raw = frame.args[1] or ''
    if raw == '' then
        return ''
    end

    local motifs = {}

    for motif in mw.text.gsplit(raw, ';', true) do
        motif = mw.text.trim(motif)

        if motif ~= '' then
            table.insert(motifs, motif)
        end
    end

    table.sort(motifs, function(a, b)
        return mw.ustring.lower(a) < mw.ustring.lower(b)
    end)

    local html = mw.html.create()

    for _, motif in ipairs(motifs) do
        html
            :tag('span')
            :addClass('badge badge-pill badge-motif mr-1')
            :wikitext(frame:preprocess(
                '{{#formredlink:target=' .. motif .. '|form=Content}}'
            ))
    end

    return tostring(html)
end

return p