转跳到内容

willson-v-

【会员】初级会员
  • 内容数

    157
  • 加入

  • 最后访问

  • 赢得天数

    1

帖子发自 willson-v-

  1. 10 小时前, 攸薩 说道:

    :SS04:

    那样这次再详细说,

    排版模式是根据这个形式(太抱歉了!居然没有很好的解说!)

    https://wiki.sstmlt.com/wiki/跨越时空的勇者

    那个不能自定义表头,所以才想把你的贴过去整改,

    就不用为了改表头就建一个模块(还被念的说))

    话说如果之后想要更改模块的颜色,在不改模块的情况下,

    要在页面还是模版中打什麽才能更改底色呢?

    ---

    话说你那种横向的适合用在什麽那种资料呢?

     

    问题二~~

    在使用这

    https://wiki.sstmlt.com/wiki/跨越时空的勇者

    排版形式下,

    你认为300多个,

    建立这个功能,

    https://wiki.sstmlt.com/wiki/模板:Tabs

    会不会更好一点?

    tabs上面呈现1-50  50-100 这种感觉?

    还是语法会大改的说?...

    完  全  重  写(大悲

    剧透
        local p = {}
    
        local params = {}
        params["prefix"                 ] = {'a', 'i', 'e'}
        params["display_title"          ] = {'false'}
        params["title"                  ] = "表格默认标题"
        params["width"                  ] = "60%"
        params["header"                 ] = {'作者', '主题', '简介'}
        params["color"                  ] = {'#004B97', '#0066CC', '#0066CC'}
        params["bg_color"               ] = {'#FF9224', '#FFDCB9', '#FFE4CA'}
        params["header_color"           ] = {'#004B97', '#0066CC', '#0066CC'}
        params["header_bg_color"        ] = {'#FF9224', '#FFAD86', '#FFAD86'}
        params["display"                ] = {'true', 'true', 'true'}
        params["col_width"              ] = {'5%', '25%', '35%'}
        params["border_color"           ] = {
            '#D26900 #FF9224 #D26900 #D26900',
            '#D26900 #FFDCB9 #D26900 #FF9224',
            '#D26900 #D26900 #D26900 #FF9224',
        }
        params["header_border_color"    ] = {
            '#D26900 #FF9224 #D26900 #D26900',
            '#D26900 #FFAD86 #D26900 #FFAD86',
            '#D26900 #D26900 #D26900 #FF9224',
        }
        params["border_style"           ] = {
            "dashed solid double double",
            "dashed double double solid",
            "dashed double double solid",
        }
        params["header_border_style"    ] = {
            "double solid dashed double",
            "double double dashed solid",
            "double double dashed solid",
        }
        params["border_width"           ] = {
            "5px 1px 3px 5px",
            "5px 1px 3px 1px",
            "5px 5px 3px 1px",
        }
        params["header_border_width"    ] = {
            "5px 1px 3px 5px",
            "5px 1px 3px 1px",
            "5px 5px 3px 1px",
        }
    
        local global_param_list = {
            "title",
            "display_title",
            "width"
        }
    
        local col_param_list = {
            "header"                ,
            "color"                 ,
            "bg_color"              ,
            "header_color"          ,
            "header_bg_color"       ,
            "display"               ,
            "col_width"             ,
            "border_color"          ,
            "header_border_color"   ,
            "border_style"          ,
            "header_border_style"   ,
            "border_width"          ,
            "header_border_width"   ,
        }
    
        function renderHeader(tbl)
            local row = tbl:tag('tr')
            for i=1,3 do
                if params["display"][i] == "true" then 
                    local header_th = row:tag('th')
                    header_th
                        :wikitext(params["header"][i])
                        :css('padding'              ,'10px')
                        :css('width'                , params["col_width"            ][i])
                        :css('color'                , params["header_color"         ][i])
                        :css('background-color'     , params["header_bg_color"      ][i])
                        :css('border-width'         , params["header_border_width"  ][i])
                        :css('border-color'         , params["header_border_color"  ][i])
                        :css('border-style'         , params["header_border_style"  ][i])
                end
            end
        end
        
        function renderRow(row_id, args, tbl)
            local row = tbl:tag('tr')
    
            for i=1,3 do
                if params["display"][i] == "true" then 
                    local info = row:tag('td')
                    info
                        :wikitext(args[params["prefix"][i] .. row_id]) --单元格样式
                        :css('padding'              ,'10px')
                        :css('width'                , params["col_width"     ][i])
                        :css('color'                , params["color"         ][i])
                        :css('background-color'     , params["bg_color"      ][i])
                        :css('border-width'         , params["border_width"  ][i])
                        :css('border-color'         , params["border_color"  ][i])
                        :css('border-style'         , params["border_style"  ][i])
                end
            end
        end
        
        --处理表格
        function renderMainTable(args)
            local tbl = mw.html.create('table')
                :addClass('wikitable')
                :addClass('mw-collapsible')
                :addClass('mw-collapsed')
                :addClass('plainrowheaders')
                :css('display', 'block')
                :css('overflow-x', 'auto')
                :css('width', params["width"])
            
            if params["display_title"] == "true" then
                local caption = tbl:tag('caption')
                caption
                    :wikitext(title)
                    :css('white-space', 'nowrap')
            end
    
            renderHeader(tbl)
            
            local valid_a = {}
            for k, _ in pairs(args) do --计算有效行
                local anum = ('' .. k):match('^a(%d+)$')
                if anum then table.insert(valid_a, tonumber(anum)) end
            end
            table.sort(valid_a)
            
            if next(valid_a) ~= nil then
                for _, a in ipairs(valid_a) do 
                    renderRow(a, args, tbl)
                end
            end
    
            return tbl
        end
        
        function p._historicalActivity(args)
            -- deal with params
            for _, key in ipairs(global_param_list) do
                if args[key] then
                    params[key] = args[key]
                end
            end
    
            for _, key in ipairs(col_param_list) do
                for i=1,3 do
                    if args[key..tostring(i)] then
                        params[key][i] = args[key..tostring(i)]
                    end
                end
            end
    
            --处理表格
            local tb1 = renderMainTable(args)
        
            local res = mw.html.create()
            res:node(tb1)
        
            return tostring(res)
        end
        
        function p.historicalActivity(frame)
            local args = {}
            local parent_args = frame:getParent().args;--获取页面传来得参数,而不是模板的参数
            
            --将获取的参数传给args
            for k, v in pairs(parent_args) do
                if v ~= '' then
                    args[k] = v
                end
            end
            return p._historicalActivity(args)
        end
        
        return p

    这样就可以了...尽力做到和原来一样了,不显示某行也做了(顺便一提,如果让第三行消失的话边框会变得比较奇怪所以我建议让第二行消失...否则就要自己重写第二行的边框...)

    ===== 删掉第二行的场合 =====

    template2.png

    ===== 删掉第三行的场合 =====

    template3.png

    ===== 删掉第三行并手动补正第二行边框的场合 =====

    template4.png

    其他的各种自定义也做了(

    (话说咱的wiki没有Sandbox哇...咱一直在萌百的Sandbox里面做实验,有点罪恶感(

    自定义选项在代码最上面那里,global_param_list里面是全局的参数,包括大的标题文字、标题显示与否(默认为否)和整体宽度(默认60%);

    col_param_list里面是每行设置的参数,默认值在最顶上那一坨定义里面,这里面的都可以自定义...

    比如说col_param_list里面有一项header,那么header1、header2、header3就分别代表了第一列、第二列、第三列的表头文字;

    背景色则是bg_color1/2/3(表头的背景色是header_bg_color1/2/3)...设了就会变,举个栗子就是:

    template1.png

    (嗯希望这次没错)

    第二个问题...嗯tab好看(确信

    嘛总归要重写的嘛...大不了再写个模块自动化处理一下

  2. 8 小时前, eveeee 说道:

    对本专业好迷茫啊- -

    感觉cs以后也不一定能找到好工作的样子,自己的技术水平什么的也根本比不上身边的那些卷王

    明明去年还挺努力的

    可是最近因为疫情太颓废了。。。有时候觉得自己只是一个玩游戏吃吃喝喝的废物呃呃呃

    附加在研究的算法题(?)抱着有人能帮我做的渺茫希望23333

      隐藏内容

    image.png.aa5b286a57f77725894fe36b31089b6d.png

     

    嘛放宽心,咱们cs就业怎么的还是目前横向对比起来比较乐观那批...海外的同学还可以再乐观一点(

    不必担心自己的前途问题啦(

    (这里刚过了大三秋招大家都拿到了不错offer所以形势真的其实还好

    要搞研究的话现在也有不少新兴领域(虽然ai卷得天昏地暗就是了)

  3. 1 分钟前, 攸薩 说道:

    :SS08:好厉害!

    其实是问

    https://wiki.sstmlt.com/wiki/跨越时空的勇者

    这种已经建立好的,

    可以把旧有的清除,直接套用你现在的版本吗?

    会有bug吗?

     

    可以哦~只要把模板改了就行,参数都不用动

    不过美工方面我没有留意,可能要改改颜色什么的(

    然后就是咱这个为了支持折叠多了一个标题,需要加一个参数(...|title=你要的标题)

    再然后就是宽度...这些都好宽(

    (话说今天萌百娘不给力啊,预览好卡

    image.png.25843995c05ce08a4c2180faf5a1d887.png

  4. 4 分钟前, 攸薩 说道:

    :SS04:这样咱可以调整好后,直接透用在现有的页面上吗?

    还是会出错吗?

    应该是可以直接用的8...这个和脚本关系其实没有那么大,演示里面我是加了一点点css让它溢出时自动生成滚动条,然后在应用的时候用一个div限制其最大宽度(

    加了滚动条版本的脚本:

    剧透
    local p = {}
    local prefix                = {'a', 'i', 'e'}
    local title                 = "表格默认标题"
    local header                = {'作者', '主题', '简介'}
    local color                 = {'#004B97', '#0066CC', '#0066CC'}
    local bg_color              = {'#FF9224', '#FFDCB9', '#FFE4CA'}
    local border_color          = {
                                    '#FF9224 #D26900 #D26900 #D26900',
                                    '#FFDCB9 #D26900 #FF9224 #D26900',
                                    '#D26900 #D26900 #FF9224 #D26900',
                                  }
    local header_border_color   = {
                                    '#FF9224 #D26900 #D26900 #D26900',
                                    '#FFAD86 #D26900 #FFAD86 #D26900',
                                    '#D26900 #D26900 #FF9224 #D26900',
                                }
    local header_color          = {'#004B97', '#0066CC', '#0066CC'}
    local header_bg_color       = {'#FF9224', '#FFAD86', '#FFAD86'}
    local row_top               = {'double', 'double', 'double'}
    local row_bottom            = {'double', 'double', 'double'}
    local row_left              = {'dashed', 'dashed', 'dashed'}
    local row_right             = {'double', 'double', 'double'}
    local header_top            = {'double', 'double', 'double'}
    local header_bottom         = {'double', 'double', 'double'}
    local header_left           = {'double', 'double', 'double'}
    local header_right          = {'dashed', 'dashed', 'dashed'}
    local display               = {'true', 'true', 'true'}
     
    function renderRow(row_id, args, valid_a, tbl)
        local row = tbl:tag('tr')
        
        local header_th = row:tag('th')
     
        header_th
            :wikitext(header[row_id])
            :css('color'                , header_color[row_id])
            :css('padding'              ,'10px')
            :css('background-color'     , header_bg_color[row_id])
            :css('border-width'         , '1px 3px 1px 5px')
            :css('border-color'         , header_border_color[row_id])
            :css('border-top-style'     , header_top   [row_id])
            :css('border-bottom-style'  , header_bottom[row_id])
            :css('border-left-style'    , header_left  [row_id])
            :css('border-right-style'   , header_right [row_id])
        
            
        for i, anum in ipairs(valid_a) do
            local info = row:tag('td')
            info
                :wikitext(args[prefix[row_id] .. anum]) --单元格样式
                :css('color'                , color[row_id])
                :css('padding'              , '10px')
                :css('background-color'     , bg_color[row_id])
                :css('border-width'         , '1px 3px 1px 5px')
                :css('border-color'         , border_color[row_id])
                :css('border-top-style'     , row_top   [row_id])
                :css('border-bottom-style'  , row_bottom[row_id])
                :css('border-left-style'    , row_left  [row_id])
                :css('border-right-style'   , row_right [row_id])
        end
    end
     
    --处理表格
    function renderMainTable(args, valid_a)
        local tbl = mw.html.create('table')
            :addClass('wikitable')
            :addClass('mw-collapsible')
            :addClass('mw-collapsed')
            :addClass('plainrowheaders')
            :css('display', 'block')
            :css('overflow-x', 'auto')
            :css('white-space', 'nowrap')
        
        if args['title'] then
            title = args['title']
        end
        
        local caption = tbl:tag('caption')
        caption
            :wikitext(title)
            :css('white-space', 'nowrap')
        
        for i=1,3 do
            if args['title' .. i] then
                title[i] = args['title' .. i]
            end
            if args['color' .. i] then
                color[i] = args['color' .. i]
            end
            if args['bg_color' .. i] then
                bg_color[i] = args['bg_color' .. i]
            end
            if args['border_color' .. i] then
                border_color[i] = args['border_color' .. i]
            end
            if args['header_border_color' .. i] then
                header_border_color[i] = args['header_border_color' .. i]
            end
            if args['header_color' .. i] then
                header_color[i] = args['header_color' .. i]
            end
            if args['header_bg_color' .. i] then
                header_bg_color[i] = args['header_bg_color' .. i]
            end
            if args['row_top' .. i] then
                row_top[i] = args['row_top' .. i]
            end
            if args['row_bottom' .. i] then
                row_bottom[i] = args['row_bottom' .. i]
            end
            if args['row_left' .. i] then
                row_left[i] = args['row_left' .. i]
            end
            if args['row_right' .. i] then
                row_right[i] = args['row_right' .. i]
            end
            if args['header_top' .. i] then
                header_top[i] = args['header_top' .. i]
            end
            if args['header_bottom' .. i] then
                header_bottom[i] = args['header_bottom' .. i]
            end
            if args['header_left' .. i] then
                header_left[i] = args['header_left' .. i]
            end
            if args['header_right' .. i] then
                header_right[i] = args['header_right' .. i]
            end
            if args['display' .. i] then
                display[i] = args['display' .. i]
            end
            if args['header' .. i] then
                header[i] = args['header' .. i]
            end
     
            if display[i] == "true" then
                renderRow(i, args, valid_a, tbl)
            end
        end
     
        return tbl
    end
     
    function p._historicalActivity(args)
        local valid_a = {}
        
        for k, v in pairs(args) do--计算行数
            local anum = ('' .. k):match('^a(%d+)$')
            if anum then table.insert(valid_a, tonumber(anum)) end
        end
        table.sort(valid_a)
     
        --处理表格
        local tb1 = renderMainTable(args, valid_a)
     
        local res = mw.html.create()
        res:node(tb1)
     
        return tostring(res)
    end
     
    function p.historicalActivity(frame)
        local args = {}
        local parent_args = frame:getParent().args;--获取页面传来得参数,而不是模板的参数
     
        -- Out of order parsing bug.
        -- 不懂
        -- local temp;
        -- for i = 1, 50 do
        --     temp = parent_args["a" .. tostring(i)];
        --     temp = parent_args["i" .. tostring(i)];
        --     temp = parent_args["e" .. tostring(i)];
        -- end
        
        --将获取的参数传给args
        for k, v in pairs(parent_args) do
            if v ~= '' then
                args[k] = v
            end
        end
        return p._historicalActivity(args)
    end
     
    return p

    然后就是那个<div>的用法...大概是这个样子:

    image.png.e28c37a6575b9e184fb7a03bfb88afe0.png

    当然你也可以把宽度限制做在模板甚至模块里面,不过我不知道你想限制的最大宽度是多少所以就没写(

  5. 刚刚, 攸薩 说道:

    :SS08:唉!?现在的模式直接改会没颜色吗ww

    (求助大神)

    是往下扩展的说w

    知道会溢出只好往下扩展ww

    看来就是可以偷懒用一个表格

    大家方便自己也方便的感觉吗?

    不会,有默认的颜色...但是!如果那个颜色和你的单元格颜色恰好一样那就悲剧了(

    溢出可以设置优雅的滚动条,理论上应该能解决这个问题...

    image.png.bd42fecb59dc5abfacacc1157f97e9fa.png

  6. 3 分钟前, 攸薩 说道:

    :SS04:应该是某个系列三百多帖子,

    是有想过

    系列

    1-10(表格

    依此类推

    还是

    1-50(表格

    在想阅览方面上怎样会比较清晰点

    又不会一次太多只想滚过去(

     

    话说想要把虚线换方向

    row_top[x]:第x行单元格上侧边框样式,具体可以参考这里列出的边框样式(比如说,...|row_top2=dashed|...就会让第二行单元格的上侧边框设置成短横线的样子)

    row_bottom[x]、row_left[x]、row_right[x]:类似于row_top[x]

    header_top[x]:第x行标题栏上侧边框样式,类似于row_top[x]

    header_bottom[x]、header_left[x]、header_right[x]:类似于header_top[x]

    对换吗?

    emmmmmmm,50绝对会溢出到屏幕右边去的(大悲

    如果已经到50了,不如把所有都丢进去,然后让大家自己ctrl+f搜索...

    虚线那个是对的哦~如果上面不想要虚线,那就把row_top1/2/3和/或header_top1/2/3设成别的(比如双线double)就可以了;需要注意的是,请同时设置边框颜色,否则边框和单元格颜色一样的话设了也看不到XD

  7. 1 分钟前, 攸薩 说道:

    :SS04:这样好懂多了(

    刚还回去几天前的用手指头笔画((

    话说你认为一个系列有三百多个

    你认为用

    系列         编号    连接

    (系列名)   编号    连接

    ---

    系列名

    编号    连接

    1-10   1-10连接(横向牌下去

    那样好一点呢?

    我推荐2哦~

    特别是2可以依靠嵌套表格允许各自折叠/展开,方便查找(

     

  8. 6 分钟前, 攸薩 说道:

    :SS04:header是直的还是横的说?

    这样感觉可以定案了www

    第一版的语法是那边呢w

    header是第一纵列的表头哦~

    对应关系大概是这样的:

    image.png.a9d4efc7b5d860e176ab386b87a5f227.png

    然后第一版的脚本是这个~

    剧透
    local p = {}
    local prefix                = {'a', 'i', 'e'}
    local title                 = "表格默认标题"
    local header                = {'作者', '主题', '简介'}
    local color                 = {'#004B97', '#0066CC', '#0066CC'}
    local bg_color              = {'#FF9224', '#FFDCB9', '#FFE4CA'}
    local border_color          = {
                                    '#FF9224 #D26900 #D26900 #D26900',
                                    '#FFDCB9 #D26900 #FF9224 #D26900',
                                    '#D26900 #D26900 #FF9224 #D26900',
                                  }
    local header_border_color   = {
                                    '#FF9224 #D26900 #D26900 #D26900',
                                    '#FFAD86 #D26900 #FFAD86 #D26900',
                                    '#D26900 #D26900 #FF9224 #D26900',
                                }
    local header_color          = {'#004B97', '#0066CC', '#0066CC'}
    local header_bg_color       = {'#FF9224', '#FFAD86', '#FFAD86'}
    local row_top               = {'double', 'double', 'double'}
    local row_bottom            = {'double', 'double', 'double'}
    local row_left              = {'dashed', 'dashed', 'dashed'}
    local row_right             = {'double', 'double', 'double'}
    local header_top            = {'double', 'double', 'double'}
    local header_bottom         = {'double', 'double', 'double'}
    local header_left           = {'double', 'double', 'double'}
    local header_right          = {'dashed', 'dashed', 'dashed'}
    local display               = {'true', 'true', 'true'}
     
    function renderRow(row_id, args, valid_a, tbl)
        local row = tbl:tag('tr')
        
        local header_th = row:tag('th')
     
        header_th
            :wikitext(header[row_id])
            :css('color'                , header_color[row_id])
            :css('padding'              ,'10px')
            :css('background-color'     , header_bg_color[row_id])
            :css('border-width'         , '1px 3px 1px 5px')
            :css('border-color'         , header_border_color[row_id])
            :css('border-top-style'     , header_top   [row_id])
            :css('border-bottom-style'  , header_bottom[row_id])
            :css('border-left-style'    , header_left  [row_id])
            :css('border-right-style'   , header_right [row_id])
        
            
        for i, anum in ipairs(valid_a) do
            local info = row:tag('td')
            info
                :wikitext(args[prefix[row_id] .. anum]) --单元格样式
                :css('color'                , color[row_id])
                :css('padding'              , '10px')
                :css('background-color'     , bg_color[row_id])
                :css('border-width'         , '1px 3px 1px 5px')
                :css('border-color'         , border_color[row_id])
                :css('border-top-style'     , row_top   [row_id])
                :css('border-bottom-style'  , row_bottom[row_id])
                :css('border-left-style'    , row_left  [row_id])
                :css('border-right-style'   , row_right [row_id])
        end
    end
     
    --处理表格
    function renderMainTable(args, valid_a)
        local tbl = mw.html.create('table')
            :addClass('wikitable')
            :addClass('mw-collapsible')
            :addClass('mw-collapsed')
            :addClass('plainrowheaders')
        
        if args['title'] then
            title = args['title']
        end
        
        local caption = tbl:tag('caption')
        caption
            :wikitext(title)
            :css('white-space', 'nowrap')
        
        for i=1,3 do
            if args['title' .. i] then
                title[i] = args['title' .. i]
            end
            if args['color' .. i] then
                color[i] = args['color' .. i]
            end
            if args['bg_color' .. i] then
                bg_color[i] = args['bg_color' .. i]
            end
            if args['border_color' .. i] then
                border_color[i] = args['border_color' .. i]
            end
            if args['header_border_color' .. i] then
                header_border_color[i] = args['header_border_color' .. i]
            end
            if args['header_color' .. i] then
                header_color[i] = args['header_color' .. i]
            end
            if args['header_bg_color' .. i] then
                header_bg_color[i] = args['header_bg_color' .. i]
            end
            if args['row_top' .. i] then
                row_top[i] = args['row_top' .. i]
            end
            if args['row_bottom' .. i] then
                row_bottom[i] = args['row_bottom' .. i]
            end
            if args['row_left' .. i] then
                row_left[i] = args['row_left' .. i]
            end
            if args['row_right' .. i] then
                row_right[i] = args['row_right' .. i]
            end
            if args['header_top' .. i] then
                header_top[i] = args['header_top' .. i]
            end
            if args['header_bottom' .. i] then
                header_bottom[i] = args['header_bottom' .. i]
            end
            if args['header_left' .. i] then
                header_left[i] = args['header_left' .. i]
            end
            if args['header_right' .. i] then
                header_right[i] = args['header_right' .. i]
            end
            if args['display' .. i] then
                display[i] = args['display' .. i]
            end
            if args['header' .. i] then
                header[i] = args['header' .. i]
            end
     
            if display[i] == "true" then
                renderRow(i, args, valid_a, tbl)
            end
        end
     
        return tbl
    end
     
    function p._historicalActivity(args)
        local valid_a = {}
        
        for k, v in pairs(args) do--计算行数
            local anum = ('' .. k):match('^a(%d+)$')
            if anum then table.insert(valid_a, tonumber(anum)) end
        end
        table.sort(valid_a)
     
        --处理表格
        local tb1 = renderMainTable(args, valid_a)
     
        local res = mw.html.create()
        res:node(tb1)
     
        return tostring(res)
    end
     
    function p.historicalActivity(frame)
        local args = {}
        local parent_args = frame:getParent().args;--获取页面传来得参数,而不是模板的参数
     
        -- Out of order parsing bug.
        -- 不懂
        -- local temp;
        -- for i = 1, 50 do
        --     temp = parent_args["a" .. tostring(i)];
        --     temp = parent_args["i" .. tostring(i)];
        --     temp = parent_args["e" .. tostring(i)];
        -- end
        
        --将获取的参数传给args
        for k, v in pairs(parent_args) do
            if v ~= '' then
                args[k] = v
            end
        end
        return p._historicalActivity(args)
    end
     
    return p

    顺便一提,如果想固定下来不用每次调用都指定的话,直接改脚本最顶上那些常量就可以了~

    比如第6行的bg_color那里被引号框起来的部分就是按顺序排列着三行普通单元格的默认背景色(顺序是第一行->第二行->第三行),改成想要的就可以更改默认颜色哦~

  9. 6 分钟前, 攸薩 说道:

     

    :SS04:嗯....这样交错的感觉会痛眼?

    一整列都同一个颜色下一列就换颜色这样会疏解的效用,

    如果变成棋盘状可能就不好了,

    (但是交错好酷!!!但不知道用在那里好)

    是说如果变成一整列一整列的方式,会要整个大改,甚至不支援aie吗?

    基本上维持在aie或是ai的程度,

    但是会往下延伸最多到五百个就是了w

    (不然就是浓缩可以更少?

    嗯...现在的问题是,究竟是往一个轴方向无限延伸,还是往两个轴方向无限延伸;

    现在是纵轴固定为0/1/2/3个,横轴可以无限延伸;支持按横行设置颜色(事实上修改之前的旧版就可以,指定bg_color[x]就好);

    但是之前看到你那个评分我有点被吓到所以来确认需求...需要横轴和纵轴都无限延伸的话,改语法就是不可避免的了...但我总觉得这不是你的意思...

  10. 6 分钟前, 攸薩 说道:

    :NEKOMIMI_PARADISE_18:原来是没有数字是直有数字是横!!

    (只能这样的理解)

    话说能把最后的在贴过来一次嘛w

    怕忘记改到第61行?

    如果要想下向右无限延伸的话,必须要改调用的语法,现在的语法不能支持...因为修改源自的那个模板是用a i e表示横、用数字标示纵;这样横能表示的必然有限;如果要改成两个轴都能无限延伸的话,语法需要改成  i_[x]_[y]=单元格内容  的语法...也不是不能写就是了.jpg

    不过我想先确定一下需求,这样的语法可以接受吗?

  11. 刚刚, 攸薩 说道:

    :NEKOMIMI_PARADISE_18:原来是没有数字是直有数字是横!!

    (只能这样的理解)

    话说能把最后的在贴过来一次嘛w

    怕忘记改到第61行?

    啊啊,不是这样的...由于表格会无限向右延伸,所以无法无限的提供“指定第x竖行的颜色”(其实仔细想想也可以写但是好像没这个需求),所以所有的都是带数字的、对行指定的;

    改动之后的代码增加了以2为周期、周期性横向改变颜色的功能,但是好像这个不是你的需求...

    image.thumb.png.df4ead30a365f02d824822863e4c9da2.png

     

  12. 4 分钟前, 攸薩 说道:

    :NEKOMIMI_PARADISE_18:这样之后一直打下去就会变成

    固定奇数浅的嘛!?

    完整的ww

    话说也是改动bg吗?

    嗯,一直横向延伸的第二行会是bg_color2和bg_color_alt2指定的颜色,奇偶数交替使用这两个...不过如果要的不是横向交错而是纵向交错的话,用旧版的指定bg_color就可以了(旧版会直接指定一整行除了抬头之外的背景色

    但是说到底这里只有三行欸...要做往右往下都无限延伸的吗(

  13. 3 分钟前, 攸薩 说道:

    :YangTuo_21:文科脑又爆炸了,话说可以弄弄看吗?

    记得在每月回报绩效的时后回报这点噢!

    话说你维基用户名打算取啥?帮你贴模块的时候就可以说作者是谁呢

    大概是这样的(刚搞的还没测试....)

    剧透
    local p = {}
    local prefix                = {'a', 'i', 'e'}
    local title                 = "表格默认标题"
    local header                = {'作者', '主题', '简介'}
    local color                 = {'#004B97', '#0066CC', '#0066CC'}
    local bg_color              = {'#FF9224', '#FFDCB9', '#FFE4CA'}
    local bg_color_alt          = {'#FFB254', '#FFFCD9', '#FFF4EA'}
    local border_color          = {
                                    '#FF9224 #D26900 #D26900 #D26900',
                                    '#FFDCB9 #D26900 #FF9224 #D26900',
                                    '#D26900 #D26900 #FF9224 #D26900',
                                  }
    local header_border_color   = {
                                    '#FF9224 #D26900 #D26900 #D26900',
                                    '#FFAD86 #D26900 #FFAD86 #D26900',
                                    '#D26900 #D26900 #FF9224 #D26900',
                                }
    local header_color          = {'#004B97', '#0066CC', '#0066CC'}
    local header_bg_color       = {'#FF9224', '#FFAD86', '#FFAD86'}
    local row_top               = {'double', 'double', 'double'}
    local row_bottom            = {'double', 'double', 'double'}
    local row_left              = {'dashed', 'dashed', 'dashed'}
    local row_right             = {'double', 'double', 'double'}
    local header_top            = {'double', 'double', 'double'}
    local header_bottom         = {'double', 'double', 'double'}
    local header_left           = {'double', 'double', 'double'}
    local header_right          = {'dashed', 'dashed', 'dashed'}
    local display               = {'true', 'true', 'true'}
     
    function renderRow(row_id, args, valid_a, tbl)
        local row = tbl:tag('tr')
        
        local header_th = row:tag('th')
    
        header_th
            :wikitext(header[row_id])
            :css('color'                , header_color[row_id])
            :css('padding'              ,'10px')
            :css('background-color'     , header_bg_color[row_id])
            :css('border-width'         , '1px 3px 1px 5px')
            :css('border-color'         , header_border_color[row_id])
            :css('border-top-style'     , header_top   [row_id])
            :css('border-bottom-style'  , header_bottom[row_id])
            :css('border-left-style'    , header_left  [row_id])
            :css('border-right-style'   , header_right [row_id])
        
            
        for i, anum in ipairs(valid_a) do
            local info = row:tag('td')
            info
                :wikitext(args[prefix[row_id] .. anum]) --单元格样式
                :css('color'                , color[row_id])
                :css('padding'              , '10px')
                :css('border-width'         , '1px 3px 1px 5px')
                :css('border-color'         , border_color[row_id])
                :css('border-top-style'     , row_top   [row_id])
                :css('border-bottom-style'  , row_bottom[row_id])
                :css('border-left-style'    , row_left  [row_id])
                :css('border-right-style'   , row_right [row_id])
            
            if i % 2 then
                info :css('background-color' , bg_color[row_id])
            else 
                info :css('background-color' , bg_color_alt[row_id])
            end
        end
    end
     
    --处理表格
    function renderMainTable(args, valid_a)
        local tbl = mw.html.create('table')
            :addClass('wikitable')
            :addClass('mw-collapsible')
            :addClass('mw-collapsed')
            :addClass('plainrowheaders')
        
        if args['title'] then
            title = args['title']
        end
        
        local caption = tbl:tag('caption')
        caption
            :wikitext(title)
            :css('white-space', 'nowrap')
        
        for i=1,3 do
            if args['title' .. i] then
                title[i] = args['title' .. i]
            end
            if args['color' .. i] then
                color[i] = args['color' .. i]
            end
            if args['bg_color' .. i] then
                bg_color[i] = args['bg_color' .. i]
            end
            if args['bg_color_alt' .. i] then
                bg_color_alt[i] = args['bg_color_alt' .. i]
            end
            if args['border_color' .. i] then
                border_color[i] = args['border_color' .. i]
            end
            if args['header_border_color' .. i] then
                header_border_color[i] = args['header_border_color' .. i]
            end
            if args['header_color' .. i] then
                header_color[i] = args['header_color' .. i]
            end
            if args['header_bg_color' .. i] then
                header_bg_color[i] = args['header_bg_color' .. i]
            end
            if args['row_top' .. i] then
                row_top[i] = args['row_top' .. i]
            end
            if args['row_bottom' .. i] then
                row_bottom[i] = args['row_bottom' .. i]
            end
            if args['row_left' .. i] then
                row_left[i] = args['row_left' .. i]
            end
            if args['row_right' .. i] then
                row_right[i] = args['row_right' .. i]
            end
            if args['header_top' .. i] then
                header_top[i] = args['header_top' .. i]
            end
            if args['header_bottom' .. i] then
                header_bottom[i] = args['header_bottom' .. i]
            end
            if args['header_left' .. i] then
                header_left[i] = args['header_left' .. i]
            end
            if args['header_right' .. i] then
                header_right[i] = args['header_right' .. i]
            end
            if args['display' .. i] then
                display[i] = args['display' .. i]
            end
            if args['header' .. i] then
                header[i] = args['header' .. i]
            end
     
            if display[i] == "true" then
                renderRow(i, args, valid_a, tbl)
            end
        end
     
        return tbl
    end
     
    function p._historicalActivity(args)
        local valid_a = {}
        
        for k, v in pairs(args) do--计算行数
            local anum = ('' .. k):match('^a(%d+)$')
            if anum then table.insert(valid_a, tonumber(anum)) end
        end
        table.sort(valid_a)
     
        --处理表格
        local tb1 = renderMainTable(args, valid_a)
     
        local res = mw.html.create()
        res:node(tb1)
     
        return tostring(res)
    end
     
    function p.historicalActivity(frame)
        local args = {}
        local parent_args = frame:getParent().args;--获取页面传来得参数,而不是模板的参数
     
        -- Out of order parsing bug.
        -- 不懂
        -- local temp;
        -- for i = 1, 50 do
        --     temp = parent_args["a" .. tostring(i)];
        --     temp = parent_args["i" .. tostring(i)];
        --     temp = parent_args["e" .. tostring(i)];
        -- end
        
        --将获取的参数传给args
        for k, v in pairs(parent_args) do
            if v ~= '' then
                args[k] = v
            end
        end
        return p._historicalActivity(args)
    end
     
    return p

    新的自定义背景颜色参数名是bg_color_alt[x]...

    用户名...嘛就保持一致吧(

  14. 8 分钟前, 攸薩 说道:

    :YangTuo_21:其实咱都是想说偷工,毕竟连接也是蓝色字也是蓝色就没有差异的说,

    还是会有人介意吗,没想过哎...!

    还是说是让连接不明显的原因嘛!?

    话说这问题好像被漏掉了(

    话说有办法做出word内建的色彩表格

    第一横行深橘

    第二横行浅橘

    以此类推吗?

    (好奇问问就是,这样可以更不痛眼就是了ww)

    可以做哦!不过要改lua代码(

    看下里面的renderRow函数,下面有个循环,就是在渲染一个个的单元格,循环体中有一个没有被用到的i,就是循环次数;i对2取余,可以得到当前是奇数行或者是偶数行,然后再对应地为info变量修改:css('background-color', '...')就可以了!

  15. 5 分钟前, 攸薩 说道:

    :NEKOMIMI_PARADISE_18:可是太深的话就跟黑色没两样,而且黑+橘有点痛眼就是了?

    是的哇...所以我选的蓝色饱和度其实也还蛮高的...单独拎出来看其实挺蓝的(

    嘛配色这个东西讲到底还是见仁见智,蓝橘天然对比色说实话挺搭的...除了混淆链接问题不大啦(

    反过来说,如果链接有下划线或者链接小标志,为了表达统一故意用一样的颜色也是可以的,只要能区分出来就好(

×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款