Module:Test: Difference between revisions

From roblox chads wiki
Jump to navigationJump to search
No edit summary
No edit summary
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
local capiunto = require 'capiunto'
local capiunto = require 'capiunto'


local p = {}
local p = {}
function split(string,seperate)
local arg = {}
for i in string.gmatch(string,"([^"..seperate.."]+)") do
    arg[#arg+1] = i
end
return arg
end


function p.main(frame)
function p.main(frame)
    local args = frame:getParent().args
local args = frame:getParent().args
 
local headerStyle
    local headerStyle
if args.headerstyle and args.headerstyle ~= '' then
    if args.headerstyle and args.headerstyle ~= '' then
headerStyle = string.format('background-color:%s;', args.headerstyle)
        headerStyle = string.format('background-color:%s;', args.headerstyle)
else
    else
headerStyle = 'background-color:#9accff;'
        headerStyle = 'background-color:#a1dbff;'
end
    end
local retval = capiunto.create( {
 
title = args.title,
    local retval = capiunto.create({
headerStyle = headerStyle,
        title = args.title,
} )
        headerStyle = headerStyle,
:addImage( args.image, args.caption )
    }):addImage(args.image, args.caption)
local entries = {}
 
     for i,v in pairs(args) do
    local entries = {}
         if string.sub(tostring(i),1,6) == "header" then
 
             entries[tonumber(string.sub(tostring(i),7,#i))] = {
     for i, v in pairs(args) do
["type"] = "header",
         local key = tostring(i)
["content"] = v,
 
}
        if key:sub(-6) == "header" then
         elseif string.sub(tostring(i),1,3) == "row" then
             table.insert(entries, {
entries[tonumber(string.sub(tostring(i),4,#split(i,"-")[1]))] = {
                key = key,
["type"] = "row",
                value = v,
["content"] = v,
                type = "header"
["context"] = string.sub(i,#split(i,"-")[1]+2,#i),
            })
}
         elseif key:sub(-3) == "row" then
            table.insert(entries, {
                key = key,
                value = v,
                type = "row"
            })
        end
    end
 
    table.sort(entries, function(a, b)
        local anum = tonumber(a.key:match("^(%d+)")) or math.huge
        local bnum = tonumber(b.key:match("^(%d+)")) or math.huge
 
        if anum ~= bnum then
            return anum < bnum
        end
 
        return a.key < b.key
    end)
 
    for _, entry in ipairs(entries) do
        if entry.type == "header" then
            retval:addHeader(entry.value)
        else
            local label = entry.key:sub(1,-4)
            retval:addRow(label, entry.value)
         end
         end
     end
     end
 
    for i,v in pairs(entries) do
    return retval
if v.type == "header" then
retval:addHeader(v.content)
elseif v.type == "row" then
retval:addRow(v.context,v.content)
end
end
return retval
end
end


return p
return p

Latest revision as of 16:39, 2 November 2026

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

local capiunto = require 'capiunto'

local p = {}

function split(string,seperate)
local arg = {}
for i in string.gmatch(string,"([^"..seperate.."]+)") do
    arg[#arg+1] = i
end
return arg
end

function p.main(frame)
	local args = frame:getParent().args
	local headerStyle
	if args.headerstyle and args.headerstyle ~= '' then
		headerStyle = string.format('background-color:%s;', args.headerstyle)
	else
		headerStyle = 'background-color:#9accff;'
	end
	local retval = capiunto.create( {
		title = args.title,
		headerStyle = headerStyle,
	} )
	:addImage( args.image, args.caption )
	local entries = {}
    for i,v in pairs(args) do
        if string.sub(tostring(i),1,6) == "header" then
            entries[tonumber(string.sub(tostring(i),7,#i))] = {
				["type"] = "header",
				["content"] = v,
			}
        elseif string.sub(tostring(i),1,3)  == "row" then
			entries[tonumber(string.sub(tostring(i),4,#split(i,"-")[1]))] = {
				["type"] = "row",
				["content"] = v,
				["context"] = string.sub(i,#split(i,"-")[1]+2,#i),
			}
        end
    end
    for i,v in pairs(entries) do
		if v.type == "header" then
			retval:addHeader(v.content)
		elseif v.type == "row" then
			retval:addRow(v.context,v.content)
		end
	end
	return retval
end

return p