<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.brunswickmdhistory.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ACollapsible_list</id>
	<title>Module:Collapsible list - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.brunswickmdhistory.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ACollapsible_list"/>
	<link rel="alternate" type="text/html" href="https://www.brunswickmdhistory.com/index.php?title=Module:Collapsible_list&amp;action=history"/>
	<updated>2026-06-04T13:39:58Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://www.brunswickmdhistory.com/index.php?title=Module:Collapsible_list&amp;diff=29599&amp;oldid=prev</id>
		<title>Dhuscha: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://www.brunswickmdhistory.com/index.php?title=Module:Collapsible_list&amp;diff=29599&amp;oldid=prev"/>
		<updated>2018-10-16T02:20:20Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:20, 15 October 2018&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Dhuscha</name></author>
	</entry>
	<entry>
		<id>https://www.brunswickmdhistory.com/index.php?title=Module:Collapsible_list&amp;diff=29598&amp;oldid=prev</id>
		<title>w&gt;TheDJ: we need to get back to this. since module loading depends on parsercache, these pages are missing modules now and it takes long for all pages to be invalidate. Will return later.</title>
		<link rel="alternate" type="text/html" href="https://www.brunswickmdhistory.com/index.php?title=Module:Collapsible_list&amp;diff=29598&amp;oldid=prev"/>
		<updated>2018-06-07T06:46:21Z</updated>

		<summary type="html">&lt;p&gt;we need to get back to this. since module loading depends on parsercache, these pages are missing modules now and it takes long for all pages to be invalidate. Will return later.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module implements {{collapsible list}}.&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local function getListItem( data )&lt;br /&gt;
    if not type( data ) == &amp;#039;string&amp;#039; then&lt;br /&gt;
        return &amp;#039;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    return mw.ustring.format( &amp;#039;&amp;lt;li style=&amp;quot;line-height: inherit; margin: 0&amp;quot;&amp;gt;%s&amp;lt;/li&amp;gt;&amp;#039;, data )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Returns an array containing the keys of all positional arguments&lt;br /&gt;
-- that contain data (i.e. non-whitespace values).&lt;br /&gt;
local function getArgNums( args )&lt;br /&gt;
    local nums = {}&lt;br /&gt;
    for k, v in pairs( args ) do&lt;br /&gt;
        if type( k ) == &amp;#039;number&amp;#039; and&lt;br /&gt;
            k &amp;gt;= 1 and&lt;br /&gt;
            math.floor( k ) == k and&lt;br /&gt;
            type( v ) == &amp;#039;string&amp;#039; and&lt;br /&gt;
            mw.ustring.match( v, &amp;#039;%S&amp;#039; ) then&lt;br /&gt;
                table.insert( nums, k )&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    table.sort( nums )&lt;br /&gt;
    return nums&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Formats a list of classes, styles or other attributes.&lt;br /&gt;
local function formatAttributes( attrType, ... )&lt;br /&gt;
    local attributes = { ... }&lt;br /&gt;
    local nums = getArgNums( attributes )&lt;br /&gt;
    local t = {}&lt;br /&gt;
    for i, num in ipairs( nums ) do&lt;br /&gt;
        table.insert( t, attributes[ num ] )&lt;br /&gt;
    end&lt;br /&gt;
    if #t == 0 then&lt;br /&gt;
        return &amp;#039;&amp;#039; -- Return the blank string so concatenation will work.&lt;br /&gt;
    end&lt;br /&gt;
    return mw.ustring.format( &amp;#039; %s=&amp;quot;%s&amp;quot;&amp;#039;, attrType, table.concat( t, &amp;#039; &amp;#039; ) )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function buildList( args )&lt;br /&gt;
    -- Get the list items.&lt;br /&gt;
    local listItems = {}&lt;br /&gt;
    local argNums = getArgNums( args )&lt;br /&gt;
    for i, num in ipairs( argNums ) do&lt;br /&gt;
        table.insert( listItems, getListItem( args[ num ] ) )&lt;br /&gt;
    end&lt;br /&gt;
    if #listItems == 0 then&lt;br /&gt;
        return &amp;#039;&amp;#039;&lt;br /&gt;
    end&lt;br /&gt;
    listItems = table.concat( listItems )&lt;br /&gt;
    &lt;br /&gt;
    -- Get class, style and title data.&lt;br /&gt;
    local div1class = formatAttributes( &amp;#039;class&amp;#039;, &amp;#039;NavFrame&amp;#039;, not args.expand and &amp;#039;collapsed&amp;#039; )&lt;br /&gt;
    local div1style = formatAttributes(&lt;br /&gt;
        &amp;#039;style&amp;#039;,&lt;br /&gt;
        args.frame_style,&lt;br /&gt;
        args.framestyle,&lt;br /&gt;
        not ( args.frame_style or args.framestyle ) and &amp;#039;border: none; padding: 0;&amp;#039;&lt;br /&gt;
    )&lt;br /&gt;
    local div2class = formatAttributes( &amp;#039;class&amp;#039;, &amp;#039;NavHead&amp;#039; )&lt;br /&gt;
    local div2style = formatAttributes(&lt;br /&gt;
        &amp;#039;style&amp;#039;,&lt;br /&gt;
        &amp;#039;font-size: 105%;&amp;#039;,&lt;br /&gt;
        args.title_style,&lt;br /&gt;
        args.titlestyle,&lt;br /&gt;
        not ( args.title_style or args.titlestyle ) and &amp;#039;background: transparent; text-align: left;&amp;#039;&lt;br /&gt;
    )&lt;br /&gt;
    local title = args.title or &amp;#039;List&amp;#039;&lt;br /&gt;
    local ulclass = formatAttributes( &amp;#039;class&amp;#039;, &amp;#039;NavContent&amp;#039;, args.hlist and &amp;#039;hlist&amp;#039; )&lt;br /&gt;
    local ulstyle = formatAttributes( &lt;br /&gt;
        &amp;#039;style&amp;#039;,&lt;br /&gt;
        not args.bullets and &amp;#039;list-style: none none; margin-left: 0;&amp;#039;,&lt;br /&gt;
        args.list_style,&lt;br /&gt;
        args.liststyle,&lt;br /&gt;
        not ( args.list_style or args.liststyle ) and &amp;#039;text-align: left;&amp;#039;,&lt;br /&gt;
        &amp;#039;font-size: 105%; margin-top: 0; margin-bottom: 0; line-height: inherit;&amp;#039;&lt;br /&gt;
    )&lt;br /&gt;
    &lt;br /&gt;
    -- Build the list.&lt;br /&gt;
    return mw.ustring.format( &lt;br /&gt;
        &amp;#039;&amp;lt;div%s%s&amp;gt;\n&amp;lt;div%s%s&amp;gt;%s&amp;lt;/div&amp;gt;\n&amp;lt;ul%s%s&amp;gt;%s&amp;lt;/ul&amp;gt;\n&amp;lt;/div&amp;gt;&amp;#039;,&lt;br /&gt;
        div1class, div1style, div2class, div2style, title, ulclass, ulstyle, listItems&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main( frame )&lt;br /&gt;
    local origArgs&lt;br /&gt;
    if frame == mw.getCurrentFrame() then&lt;br /&gt;
        origArgs = frame:getParent().args&lt;br /&gt;
        for k, v in pairs( frame.args ) do&lt;br /&gt;
            origArgs = frame.args&lt;br /&gt;
            break&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        origArgs = frame&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    local args = {}&lt;br /&gt;
    for k, v in pairs( origArgs ) do&lt;br /&gt;
        if type( k ) == &amp;#039;number&amp;#039; or v ~= &amp;#039;&amp;#039; then&lt;br /&gt;
            args[ k ] = v&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return buildList( args )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>w&gt;TheDJ</name></author>
	</entry>
</feed>