Module:Tb
Appearance
Documentation for this module may be created at Module:Tb/doc
-- تعریف ماژول
local p = {}
-- تابع اصلی برای رندر کردن تب گرافیکی
function p.Tab(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 function getInput(keys, default)
for _, key in ipairs(keys) do -- بررسی تکتک کلیدها
if args[key] and args[key] ~= "" then -- اگر کلید وجود داشت و خالی نبود
return args[key]
end
end
return default -- اگر هیچ کلیدی پیدا نشد، مقدار پیشفرض
end
-- گرفتن مقادیر مورد نیاز (در صورت نیاز به گسترش در آینده)
local styles = getInput({"styles", "استایل"}, "Module:Tb/styles.css") -- مسیر فایل CSS (قابل تغییر)
-- اضافه کردن استایلهای قالب با استفاده از تگ templatestyles
local templatestyles = frame:extensionTag{
name = 'templatestyles', -- نام تگ برای لود استایل
args = { src = styles } -- مسیر فایل CSS از آرگومان یا پیشفرض
}
-- ایجاد ساختار HTML با استفاده از mw.html
local html = mw.html.create('span') -- span اصلی
:addClass('tab-container') -- کلاس CSS برای نگهدارنده تب
-- ساخت بخشهای تب گرافیکی
html:tag('span') -- خط سمت چپ
:addClass('tab-line-left')
local middle = html:tag('span') -- بخش میانی
:addClass('tab-middle')
middle:tag('span') -- دایره اول
:addClass('tab-circle')
middle:tag('span') -- خط وسط
:addClass('tab-line-middle')
middle:tag('span') -- دایره دوم
:addClass('tab-circle')
html:tag('span') -- خط سمت راست
:addClass('tab-line-right')
-- برگرداندن HTML به صورت رشته با استایل
return templatestyles .. tostring(html)
end
-- برگرداندن ماژول
return p
--[[Category:Template:Triple tab Prayer]] -- دستهبندی برای قالب مرتبط
--[[Category:Template:Triple tab Guran]] -- دستهبندی برای قالب مرتبط دیگر