Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 10:00, 7 April 2025 by Wlft (talk | contribs)

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

local p = {}

local config = require('Module:Difficulties/config')

local function ucfirst(str)
    return str:sub(1,1):upper() .. str:sub(2)
end

function p.main(frame)
    local args = frame:getParent().args
    local difficulties = config.difficulties
    local output = mw.html.create('table')
    output:addClass()

    for i, v in pairs(difficulties) do
        local difficulty_param_name = mw.text.trim(i)
        local enabled_param = args[ucfirst(difficulty_param_name)] or args[difficulty_param_name]

        if enabled_param and mw.text.trim(enabled_param):lower() == 'true' then
            local row = output:tag('tr')

            local icon_cell = row:tag('td')
            -- if v.file then
            icon_cell:tag('div')
                :attr('style', 'width: 20px; height: 20px; background-color: ' .. v.color .. '; vertical-align: middle;')

            local name_cell = row:tag('td')
            local page_link = config.meta.page_prefix .. v.display
            if not v.display then
                page_link = config.meta.page_prefix .. ucfirst(i)
            end

            -- name_cell:tag('a')
            name_cell:wikitext('[[' .. v.display .. ']]') -- maybe thats how this works
                -- :wikitext('[[' .. v.display .. ']]')
                -- :attr('href', mw.title.makeTitle('',page_link):fullUrl())
                -- :wikitext(v.display or ucfirst(i))

            local badge_cell = row:tag('td')
            local badge_param_name = difficulty_param_name .. '_badge'
            local badge_value = args[badge_param_name]
            if badge_value then
                badge_cell:tag('a')
                    :attr('href', 'https://roblox.com/badges' .. badge_value)
                    :attr('target', '_blank')
                    :tag('img')
                        :attr('src', mw.file.makeUrl('Icons Badge Small White.png'))
                        :attr('alt', 'Badge')
                        :attr('style', 'width: 20px; height: 20px; vertical-align: middle;')
            else
                badge_cell:wikitext(' ')
            end
        end
    end

    return tostring(output)
end

return p