Для документации этого модуля может быть создана страница Модуль:CategoryList/doc

local p = {}

function p.show(frame)
    local categories = mw.title.getCurrentTitle().categories
    if #categories == 0 then return "" end

    local res = {}
    for _, cat in ipairs(categories) do
        -- Минималистичный тег: светлый фон, без жирных рамок
        local tag = '<span style="display:inline-block; background:#f0f2f5; color:#202122; padding:4px 12px; border-radius:6px; margin:2px 4px 2px 0; font-size:0.9em; border:1px solid #dae0e7; transition: background 0.2s;">' 
                    .. '[[:Категория:' .. cat .. '|' .. cat .. ']]</span>'
        table.insert(res, tag)
    end

    -- Оборачиваем все теги в один контейнер, чтобы они не разлетались
    return '<div style="display:flex; flex-wrap:wrap; align-items:center;">' .. table.concat(res, "") .. '</div>'
end

return p