模块:AutoTabTable:修订间差异

跳到导航 跳到搜索
添加1,927字节 、​ 2024年6月9日 (星期日)
调配宽度
(建立内容为“local p = {} local params = {} params["prefix" ] = {'a', 'i', 'e'} params["tab_prefix" ] = 'tab_header' params["display_title"…”的新页面)
 
(调配宽度)
 
(未显示3个用户的65个中间版本)
第7行: 第7行:
params["title"                  ] = "表格默认标题"
params["title"                  ] = "表格默认标题"
params["item_per_tab"          ] = "50"
params["item_per_tab"          ] = "50"
params["max_width"              ] = "60%"
params["max_width"              ] = "fit-content"
params["max_height"              ] = "fit-content"
params["margin"                ] = ""
params["shadow"                ] = "0px 0px 0px #878787"
params["tab_color"              ] = "#004B97"
params["tab_color"              ] = "#004B97"
params["tab_bg_color"          ] = "#FF9224"
params["tab_bg_color"          ] = "#ffffff"
params["header"                ] = {'作者', '主题', '简介'}
params["header"                ] = {'作者', '主题', '简介'}
params["color"                  ] = {'#004B97', '#0066CC', '#0066CC'}
params["color"                  ] = {'#000000', '#000000', '#000000'}
params["bg_color"              ] = {'#FF9224', '#FFDCB9', '#FFE4CA'}
params["bg_color"              ] = {'#f8f9fa', '#f8f9fa', '#f8f9fa'}
params["color_alt"              ] = {'#004B97', '#0066CC', '#0066CC'}
params["text"                  ] = {'center', 'center', 'left'}
params["bg_color_alt"          ] = {'#FF9224', '#FFDCB9', '#FFE4CA'}
params["color_alt"              ] = {'#202122', '#202122', '#202122'}
params["header_color"          ] = {'#004B97', '#0066CC', '#0066CC'}
params["bg_color_alt"          ] = {'#f8f9fa', '#f8f9fa', '#f8f9fa'}
params["header_bg_color"        ] = {'#FF9224', '#FFAD86', '#FFAD86'}
params["header_color"          ] = {'#000000', '#000000', '#000000'}
params["header_bg_color"        ] = {'#d2d3d4', '#d2d3d4', '#d2d3d4'}
params["display"                ] = {'true', 'true', 'true'}
params["display"                ] = {'true', 'true', 'true'}
params["col_width"              ] = {'10%', '40%', '50%'}
params["col_width"              ] = {'50px', '350px', '350px'}
params["col_height"              ] = {'fit-content', 'fit-content', 'fit-content'}
params["border_color"          ] = {
params["border_color"          ] = {
     '#D26900 #FF9224 #D26900 #D26900',
     '#878787 #878787 #878787 #878787',
     '#D26900 #FFDCB9 #D26900 #FF9224',
     '#878787 #878787 #878787 #878787',
     '#D26900 #D26900 #D26900 #FF9224',
     '#878787 #878787 #878787 #878787',
}
}
params["header_border_color"    ] = {
params["header_border_color"    ] = {
     '#D26900 #FF9224 #D26900 #D26900',
     '#878787 #878787 #878787 #878787',
     '#D26900 #FFAD86 #D26900 #FFAD86',
     '#878787 #878787 #878787 #878787',
     '#D26900 #D26900 #D26900 #FF9224',
     '#878787 #878787 #878787 #878787',
}
}
params["border_style"          ] = {
params["border_style"          ] = {
     "dashed solid double double",
     "solid solid solid solid",
     "dashed double double solid",
     "solid solid solid solid",
     "dashed double double solid",
     "solid solid solid solid",
}
}
params["header_border_style"    ] = {
params["header_border_style"    ] = {
     "double solid dashed double",
     "solid solid solid solid",
     "double double dashed solid",
     "solid solid solid solid",
     "double double dashed solid",
     "solid solid solid solid",
}
}
params["border_width"          ] = {
params["border_width"          ] = {
     "5px 1px 3px 5px",
     "1px 1px 1px 1px",
     "5px 1px 3px 1px",
     "1px 1px 1px 1px",
     "5px 5px 3px 1px",
     "1px 1px 1px 1px",
}
}
params["header_border_width"    ] = {
params["header_border_width"    ] = {
     "5px 1px 3px 5px",
     "1px 1px 1px 1px",
     "5px 1px 3px 1px",
     "1px 1px 1px 1px",
     "5px 5px 3px 1px",
     "1px 1px 1px 1px",
}
}


第55行: 第60行:
     "item_per_tab",
     "item_per_tab",
     "max_width",
     "max_width",
    "max_height",
    "shadow",
    "margin",
     "tab_color",
     "tab_color",
     "tab_bg_color"
     "tab_bg_color"
第69行: 第77行:
     "display"              ,
     "display"              ,
     "col_width"            ,
     "col_width"            ,
    "col_height"            ,
     "border_color"          ,
     "border_color"          ,
     "header_border_color"  ,
     "header_border_color"  ,
第75行: 第84行:
     "border_width"          ,
     "border_width"          ,
     "header_border_width"  ,
     "header_border_width"  ,
    "text"                  ,
}
}


第86行: 第96行:
                 :css('padding'              ,'10px')
                 :css('padding'              ,'10px')
                 :css('width'                , params["col_width"            ][i])
                 :css('width'                , params["col_width"            ][i])
                :css('height'              , params["col_height"            ][i])
                 :css('color'                , params["header_color"        ][i])
                 :css('color'                , params["header_color"        ][i])
                 :css('background-color'    , params["header_bg_color"      ][i])
                 :css('background-color'    , params["header_bg_color"      ][i])
第91行: 第102行:
                 :css('border-color'        , params["header_border_color"  ][i])
                 :css('border-color'        , params["header_border_color"  ][i])
                 :css('border-style'        , params["header_border_style"  ][i])
                 :css('border-style'        , params["header_border_style"  ][i])
                :css('text-align'          , params["text"                ][i])
         end
         end
     end
     end
第105行: 第117行:
                 :css('padding'              ,'10px')
                 :css('padding'              ,'10px')
                 :css('width'                , params["col_width"    ][i])
                 :css('width'                , params["col_width"    ][i])
                :css('height'              , params["col_height"    ][i])
                 :css('border-width'        , params["border_width"  ][i])
                 :css('border-width'        , params["border_width"  ][i])
                 :css('border-color'        , params["border_color"  ][i])
                 :css('border-color'        , params["border_color"  ][i])
                 :css('border-style'        , params["border_style"  ][i])
                 :css('border-style'        , params["border_style"  ][i])
                :css('text-align'          , params["text"          ][i])
             if row_id % 2 == 0 then
             if row_id % 2 == 0 then
                 info
                 info
第116行: 第130行:
                     :css('color'            , params["color_alt"    ][i])
                     :css('color'            , params["color_alt"    ][i])
                     :css('background-color' , params["bg_color_alt"  ][i])
                     :css('background-color' , params["bg_color_alt"  ][i])
             end
             end
         end
         end
第126行: 第141行:
         :addClass('wikitable')
         :addClass('wikitable')
         :addClass('mw-collapsible')
         :addClass('mw-collapsible')
        :addClass('mw-collapsed')
         :addClass('plainrowheaders')
         :addClass('plainrowheaders')
         :css('overflow-x', 'auto')
         :css('overflow-x', 'auto')
         :css('width', "100%")
         :css('width', "fit-content")
        :css('min-width', "800px")
        :css('height', "fit-content")
       
    if args['collapsed'] then tbl:addClass('mw-collapsed') end
 
      
      
     if params["display_title"] == "true" then
     if params["display_title"] == "true" then
第151行: 第170行:
     -- i hate lua why array subscribtion starts at 1
     -- i hate lua why array subscribtion starts at 1
     local tot_row_ids = {}
     local tot_row_ids = {}
    local item_per_tab = tonumber(params["item_per_tab"])
     for k, _ in pairs(args) do
     for k, _ in pairs(args) do
         local anum = ('' .. k):match('^a(%d+)$')
         local anum = ('' .. k):match('^a(%d+)$')
第160行: 第178行:
     table.sort(tot_row_ids)
     table.sort(tot_row_ids)


     local tab_count = math.ceil(tableLength(tot_row_ids) / item_per_tab)
     local tab_count = 0
    local current_item_count = 0
    local current_max_item = tonumber(params["item_per_tab"])
     local tabs_row_ids = {}
     local tabs_row_ids = {}
    for i, a in ipairs(tot_row_ids) do
        if current_item_count == 0 then
            if tab_count ~= 0 then table.sort(tabs_row_ids[tab_count]) end
            tab_count = tab_count + 1
            if args["item_in_tab"..tostring(tab_count)] then
                current_max_item = tonumber(args["item_in_tab"..tostring(tab_count)])
            else
                current_max_item = tonumber(params["item_per_tab"])
            end
            tabs_row_ids[tab_count] = {}
        end
        table.insert(tabs_row_ids[tab_count], a)
        current_item_count = current_item_count + 1
        if current_item_count == current_max_item then
            current_item_count = 0
        end
    end


     -- if only one table is needed...
     -- if only one table is needed...
第168行: 第205行:
         constraint_div
         constraint_div
             :css("max-width", params["max_width"])
             :css("max-width", params["max_width"])
            :css("max-height", params["max_height"])
            :css("box-shadow", params["shadow"])
            :css("margin", params["margin"])
         local tbl = renderTable(args, tot_row_ids)
         local tbl = renderTable(args, tot_row_ids)
         constraint_div:node(tbl)
         constraint_div:node(tbl)
         return constraint_div
         return constraint_div
    end
    for i=1,tab_count do
        tabs_row_ids[i] = {}
        for j=1,item_per_tab do
            tabs_row_ids[i][j] = tot_row_ids[(i-1)*item_per_tab + j]
        end
     end
     end


第185行: 第218行:
         :addClass("tabs-container")
         :addClass("tabs-container")
         :css("max-width", params["max_width"])
         :css("max-width", params["max_width"])
 
        :css("max-height", params["max_height"])
        :css("box-shadow", params["shadow"])
:css("margin", params["margin"])
     -- create tab ui list
     -- create tab ui list
     local tab_list = tabs_div:tag("ul")
     local tab_list = tabs_div:tag("ul")
第193行: 第228行:
         :css("overflow-x", "auto")
         :css("overflow-x", "auto")
      
      
     for i, _ in ipairs(tabs_row_ids) do
    local current_count = 1
     for i, row_ids in ipairs(tabs_row_ids) do
         local list_ele = tab_list:tag("li")
         local list_ele = tab_list:tag("li")
         if i == 1 then
         if i == 1 then
第201行: 第237行:
             :addClass("tab")
             :addClass("tab")
             :tag("strong")
             :tag("strong")
            if args[params['tab_prefix']..tostring(i)] then
        if args[params['tab_prefix']..tostring(i)] then
                ele_title:wikitext(args[params['tab_prefix']..tostring(i)])
            ele_title:wikitext(args[params['tab_prefix']..tostring(i)])
            else
        else  
                ele_title:wikitext(tostring((i-1)*item_per_tab+1).."~"..tostring(i*item_per_tab))
            ele_title:wikitext(tostring(current_count).."~"..tostring(current_count+tableLength(row_ids)-1))
            end
        end
        current_count = current_count + tableLength(row_ids)
     end
     end


第213行: 第250行:
         :addClass("tabs-contents")
         :addClass("tabs-contents")
         :css("width", "auto")
         :css("width", "auto")
   
        :css("min-width", "800px")
        :css("height", "auto")
     for i, row_ids in ipairs(tabs_row_ids) do
     for i, row_ids in ipairs(tabs_row_ids) do
         local table_ele = tables_list:tag("div")
         local table_ele = tables_list:tag("div")
第222行: 第260行:
             :addClass("tab-c")
             :addClass("tab-c")
             :css("width", "auto")
             :css("width", "auto")
            :css("min-width", "800px")
            :css("height", "auto")
         local inner_content = table_ele:tag("div")
         local inner_content = table_ele:tag("div")
         inner_content
         inner_content
第227行: 第267行:
             :css("columns", "1")
             :css("columns", "1")
             :css("width", "auto")
             :css("width", "auto")
            :css("min-width", "800px")
            :css("height", "auto")
         local content_tbl = renderTable(args, row_ids)
         local content_tbl = renderTable(args, row_ids)
         inner_content:node(content_tbl)
         inner_content:node(content_tbl)
15,508

个编辑

导航菜单