پرش به محتوا

پودمان:Triple tab Quran/Text

از ویکی شیعه
توضیحات پودمان[نمایش] [ویرایش] [تاریخچه] [پاکسازی]

-- تعریف ماژول
local q1 = {}

-- تابع اصلی برای نمایش متن‌ها در پاراگراف‌های قابل تغییر اندازه
function q1.text(frame)
    -- گرفتن آرگومان‌ها از فراخوانی قالب والد یا مستقیم
    local parentArgs = frame:getParent() and frame:getParent().args or {} -- آرگومان‌های قالب والد
    local directArgs = frame.args or {} -- آرگومان‌های مستقیم
    local args = {} -- جدول نهایی آرگومان‌ها

    -- ترکیب آرگومان‌ها: اولویت با parentArgs
    for k, v in pairs(directArgs) do args[k] = v end
    for k, v in pairs(parentArgs) do args[k] = v end

    -- جمع‌آوری آرگومان‌ها در یک جدول
    local result = {}
    for i, param in ipairs(args) do -- گرفتن آرگومان‌های عددی
        if param and param ~= "" then
            table.insert(result, param)
        end
    end
    for key, param in pairs(args) do -- گرفتن آرگومان‌های اسمی (غیرعددی)
        if type(key) == "string" and param and param ~= "" then
            table.insert(result, param)
        end
    end

    -- اگه هیچ آرگومانی نبود، یه پیام پیش‌فرض برگردون
    if #result == 0 then
        return '<p class="quran-resizable-text">هیچ متنی وارد نشده است.</p>'
    end

    -- ساخت HTML با mw.html
    local html = mw.html.create('div') -- div اصلی برای نگه‌داشتن پاراگراف‌ها
    for _, text in ipairs(result) do
        html:tag('p') -- پاراگراف برای هر متن
            :addClass('quran-resizable-text') -- کلاس CSS
            :wikitext(text) -- متن واردشده
    end

    -- برگرداندن HTML به صورت رشته
    return tostring(html)
end

-- برگرداندن ماژول
return q1

--[[Category:Template:Triple tab Quran]] -- دسته‌بندی مرتبط