پودمان:Other articles

توضیحات این پودمان می‌تواند در پودمان:Other articles/توضیحات قرار گیرد.

local p = {}
local converter = require("Module:Numeral converter")

function createItem(colorModifier, iconModifier, catName, subText)
    local s1 = '<div class="content-improvement-item ' .. colorModifier .. ' ' .. iconModifier .. '">'
    local s2 = '[[:رده:' .. catName .. '|<span class="content-improvement-item__subtext-big">'
    local s3 = subText .. '</span>'
    local s4 = converter.convert("fa", mw.site.stats.pagesInCategory(catName, pages))
    local s5 = '</span></small></span>]]</div>'
    return s1 .. s2 .. s3 .. s4 .. s5
end




local data = {
    createItem('-color-golden', '-icon-editUndo', 'کتاب های حقوقی', 'کتاب‌های حقوقی'),
    createItem('-color-golden', '-icon-tableMergeCells', 'رشته های حقوقی', 'رشته‌های حقوقی'),
    createItem('-color-golden', '-icon-searchCaseSensitive', 'مقالات', 'مقالات منتشره در نشریات'),
}

function p.main(frame)
    local result = ""
    local dataShuffled = FYShuffle(data)
    for i = 1, 3, 1 do
        result = result .. dataShuffled[i]
    end
    return result
end

-- Source: https://stackoverflow.com/questions/35572435/how-do-you-do-the-fisher-yates-shuffle-in-lua
function FYShuffle(tInput)
    math.randomseed(os.time())
    local tReturn = {}
    for i = #tInput, 1, -1 do
        local j = math.random(i)
        tInput[i], tInput[j] = tInput[j], tInput[i]
        table.insert(tReturn, tInput[i])
    end
    return tReturn
end

return p