<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mbwiki.stairwaygames.work/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AInfoboxRole</id>
	<title>Module:InfoboxRole - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mbwiki.stairwaygames.work/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AInfoboxRole"/>
	<link rel="alternate" type="text/html" href="https://mbwiki.stairwaygames.work/w/index.php?title=Module:InfoboxRole&amp;action=history"/>
	<updated>2026-04-19T04:09:03Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://mbwiki.stairwaygames.work/w/index.php?title=Module:InfoboxRole&amp;diff=27936&amp;oldid=prev</id>
		<title>Ais: Created page with &quot;local p = {}  -- Define the CSS variables/hex codes as Lua constants for use in inline styles local STYLE_FLOATING = &#039;float: right !important; clear: right !important; max-width: 300px !important; margin: 0 0 16px 16px !important; border: 1px solid #1a6a7a !important; border-radius: 10px !important; background-color: #FFFFFF !important; font-size: .9em !important;&#039; local STYLE_HEADER = &#039;background: #1a6a7a !important; color: white !important; padding: 8px 10px !important...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mbwiki.stairwaygames.work/w/index.php?title=Module:InfoboxRole&amp;diff=27936&amp;oldid=prev"/>
		<updated>2026-01-09T08:49:03Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;local p = {}  -- Define the CSS variables/hex codes as Lua constants for use in inline styles local STYLE_FLOATING = &amp;#039;float: right !important; clear: right !important; max-width: 300px !important; margin: 0 0 16px 16px !important; border: 1px solid #1a6a7a !important; border-radius: 10px !important; background-color: #FFFFFF !important; font-size: .9em !important;&amp;#039; local STYLE_HEADER = &amp;#039;background: #1a6a7a !important; color: white !important; padding: 8px 10px !important...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Define the CSS variables/hex codes as Lua constants for use in inline styles&lt;br /&gt;
local STYLE_FLOATING = &amp;#039;float: right !important; clear: right !important; max-width: 300px !important; margin: 0 0 16px 16px !important; border: 1px solid #1a6a7a !important; border-radius: 10px !important; background-color: #FFFFFF !important; font-size: .9em !important;&amp;#039;&lt;br /&gt;
local STYLE_HEADER = &amp;#039;background: #1a6a7a !important; color: white !important; padding: 8px 10px !important; text-align: center !important; font-weight: bold !important; font-size: 1.5em !important; border-top-left-radius: 10px !important; border-top-right-radius: 10px !important;&amp;#039;&lt;br /&gt;
local STYLE_DATAROW = &amp;#039;display: flex !important; justify-content: space-between !important; padding: 5px 10px !important; border-bottom: 1px dotted #A2A9B1 !important;&amp;#039;&lt;br /&gt;
local STYLE_DATALABEL = &amp;#039;font-weight: 500 !important; color: #4A5568 !important; width: 40% !important; text-align: left !important;&amp;#039;&lt;br /&gt;
local STYLE_DATAVALUE = &amp;#039;color: #4A5568 !important; text-align: right !important; width: 60% !important;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- Function to generate a single data row&lt;br /&gt;
local function make_data_row(label, value)&lt;br /&gt;
    if value and value ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        return string.format(&lt;br /&gt;
            &amp;#039;&amp;lt;div style=&amp;quot;%s&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;%s&amp;quot;&amp;gt;%s:&amp;lt;/span&amp;gt; &amp;lt;span style=&amp;quot;%s&amp;quot;&amp;gt;%s&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&amp;#039;,&lt;br /&gt;
            STYLE_DATAROW,&lt;br /&gt;
            STYLE_DATALABEL,&lt;br /&gt;
            label,&lt;br /&gt;
            STYLE_DATAVALUE,&lt;br /&gt;
            value&lt;br /&gt;
        )&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function to create a section header&lt;br /&gt;
local function make_section_header(title)&lt;br /&gt;
    if title and title ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        return string.format(&lt;br /&gt;
            &amp;#039;&amp;lt;div class=&amp;quot;section-title&amp;quot; style=&amp;quot;padding: 5px 10px; color: #4A5568 !important; font-weight: bold; border-bottom: 1px solid #A2A9B1;&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&amp;#039;,&lt;br /&gt;
            title&lt;br /&gt;
        )&lt;br /&gt;
    end&lt;br /&gt;
    return &amp;#039;&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Main function to create the role infobox HTML&lt;br /&gt;
function p.infobox(frame)&lt;br /&gt;
    local args = frame:getParent().args&lt;br /&gt;
    &lt;br /&gt;
    local name = args.name or &amp;#039;Unknown Role&amp;#039;&lt;br /&gt;
    local image = args.image&lt;br /&gt;
    &lt;br /&gt;
    local html = {}&lt;br /&gt;
    &lt;br /&gt;
    -- Start the main infobox container&lt;br /&gt;
    table.insert(html, string.format(&amp;#039;&amp;lt;div class=&amp;quot;role-infobox&amp;quot; style=&amp;quot;%s&amp;quot;&amp;gt;&amp;#039;, STYLE_FLOATING))&lt;br /&gt;
    &lt;br /&gt;
    -- Header/Title&lt;br /&gt;
    table.insert(html, string.format(&amp;#039;&amp;lt;div class=&amp;quot;role-header&amp;quot; style=&amp;quot;%s&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&amp;#039;, STYLE_HEADER, name))&lt;br /&gt;
    &lt;br /&gt;
    -- Image Section&lt;br /&gt;
    if image and image ~= &amp;#039;&amp;#039; then&lt;br /&gt;
        local image_link = string.format(&amp;#039;[[File:%s|250px|alt=%s]]&amp;#039;, image, name)&lt;br /&gt;
        table.insert(html, string.format(&amp;#039;&amp;lt;div class=&amp;quot;role-image&amp;quot; style=&amp;quot;padding: 10px !important; text-align: center !important;&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&amp;#039;, image_link))&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- Start Role Information Section&lt;br /&gt;
    table.insert(html, &amp;#039;&amp;lt;div class=&amp;quot;role-section&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
    table.insert(html, make_section_header(&amp;#039;Role Information&amp;#039;))&lt;br /&gt;
    &lt;br /&gt;
    -- Data Rows (Using make_data_row function)&lt;br /&gt;
    table.insert(html, make_data_row(&amp;#039;Role Type&amp;#039;, args.role_type))&lt;br /&gt;
    table.insert(html, make_data_row(&amp;#039;Rank&amp;#039;, args.rank))&lt;br /&gt;
    table.insert(html, make_data_row(&amp;#039;Located In&amp;#039;, args.located_in))&lt;br /&gt;
    table.insert(html, make_data_row(&amp;#039;Category&amp;#039;, args.category))&lt;br /&gt;
    table.insert(html, make_data_row(&amp;#039;Reports To&amp;#039;, args.reports_to))&lt;br /&gt;
    table.insert(html, make_data_row(&amp;#039;Supervises&amp;#039;, args.supervises))&lt;br /&gt;
    &lt;br /&gt;
    -- End role section&lt;br /&gt;
    table.insert(html, &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    &lt;br /&gt;
    -- Start Additional Details Section (if any additional fields)&lt;br /&gt;
    local hasAdditional = args.responsibilities or args.prerequisites or args.equipment or args.notes&lt;br /&gt;
    if hasAdditional then&lt;br /&gt;
        table.insert(html, &amp;#039;&amp;lt;div class=&amp;quot;role-section&amp;quot;&amp;gt;&amp;#039;)&lt;br /&gt;
        table.insert(html, make_section_header(&amp;#039;Additional Details&amp;#039;))&lt;br /&gt;
        &lt;br /&gt;
        table.insert(html, make_data_row(&amp;#039;Prerequisites&amp;#039;, args.prerequisites))&lt;br /&gt;
        table.insert(html, make_data_row(&amp;#039;Equipment&amp;#039;, args.equipment))&lt;br /&gt;
        &lt;br /&gt;
        -- End additional section&lt;br /&gt;
        table.insert(html, &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- End container&lt;br /&gt;
    table.insert(html, &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;) -- End role-infobox&lt;br /&gt;
    &lt;br /&gt;
    return table.concat(html, &amp;#039;\n&amp;#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Function for creating simplified infobox for template usage&lt;br /&gt;
function p.create(frame)&lt;br /&gt;
    return p.infobox(frame)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Ais</name></author>
	</entry>
</feed>