转跳到内容

新人报到


推荐贴

刚刚, 起名字好麻烦的 说道:

这么讲吧,周围卷的反而是自乱阵脚,弄得精力也跟不上。反而还没我成绩好呢。还有的是原来被氛围和宣传恐吓着去卷,结果学不好,现在不卷了正正常常的学习反而成绩提高呢

:SS04:对呢,话说你现在就挺轻松的在学习吗>

攸薩在综合事务区回答问题有功,收到了一只萌萌的呜喵的奖励.2节操

链接到点评
1 分钟前, 起名字好麻烦的 说道:

压力也不是没有,但比起他们来说肯定是非常轻松的。那种偷着玩的说不定心理压力比我大多了

:SS04:真的呢,还要偷偷玩,话说如果要做重复性大的事情你要怎样坚持呢

攸薩出去逛街玩被妹纸表白,戴上眼镜一看是恐龙版的.-3节操

链接到点评
50 分钟前, 攸薩 说道:

:NEKOMIMI_PARADISE_18:大神!!话说你要加入本论坛的百科填写员吗?

很缺这种强大的技术佬!

  显示隐藏内容
local p = {}

local args--存参数
local frame
local anums = {}--存行数

--添加行
function addTableRow(tbl)
    return tbl:tag('tr')
end

--处理表头
function renderHeaderRow(tbl)

    local headerRow = addTableRow(tbl)
    headerRow
        :tag('th')
            :wikitext('作者')
	    :css('color','#004B97')--文字颜色
	    :css('background-color','#FF9224')--底色
            :css('border-width', '5px 1px 3px 5px')
            :css('border-color','#D26900 #FF9224 #D26900 #D26900')
            :css('border-top-style','double')
            :css('border-bottom-style','dashed')
            :css('border-left-style','double')
            :css('width', '5%')
            :attr('scope', 'column')
        :done()
        :tag('th')
            :wikitext('主题')
	    :css('color','#0066CC')
	    :css('background-color','#FFAD86')
            :css('border-width', '5px 1px 3px 1px')
            :css('border-color','#D26900 #FFAD86 #D26900 #FFAD86')
            :css('border-top-style','double')
            :css('border-bottom-style','dashed')
            :css('border-right-style','double')
            :css('width', '25%')
            :attr('scope', 'column')
        :done()
        :tag('th')
            :wikitext('简介')
	    :css('color','#0066CC')
	    :css('background-color','#FFAD86')
            :css('border-width', '5px 5px 3px 1px')
            :css('border-color','#D26900 #D26900 #D26900 #FF9224')
            :css('border-top-style','double')
            :css('border-bottom-style','dashed')
            :css('border-right-style','double')
            :css('width', '35%')
            :attr('scope', 'column')
        :done()

end

--处理某一行数据
function renderListRow(tb1, anum)
    local row = addTableRow(tb1)--添加行,并将当前行传给row

    if args['a' .. anum] then
        local activity = row:tag('td')--添加单元格,并将该单元格传给activity
        activity
        :attr('align', 'center')--单元格样式
	:css('padding','3px')
	:css('color','#004B97')--文字颜色
	:css('background-color','#FF9224')--底色
        :css('border-width', '5px 1px 3px 5px')
        :css('border-color','#D26900 #FF9224 #D26900 #D26900')
        :css('border-top-style','dashed')
        :css('border-bottom-style','double')
        :css('border-left-style','double')
        :wikitext(args['a' .. anum])
    end
    
    local info = row:tag('td')--再添加单元格,并将该单元格传给info

    info
    :wikitext(args['i' .. anum])--单元格样式
    :css('color','#0066CC')
    :css('padding','10px')
    :css('background-color','#FFDCB9')
    :css('border-width', '5px 1px 3px 1px')
    :css('border-color','#D26900 #FFDCB9 #D26900 #FF9224')
    :css('border-top-style','dashed')
    :css('border-bottom-style','double')
    :css('border-right-style','double')

    local info1 = row:tag('td')--再添加单元格,并将该单元格传给info

    info1
    :wikitext(args['e' .. anum])--单元格样式
    :css('color','#0066CC')
    :css('background-color','#FFE4CA')
    :css('border-width', '5px 5px 3px 1px')
    :css('border-color','#D26900 #D26900 #D26900 #FF9224')
    :css('padding','10px')
    :css('border-top-style','dashed')
    :css('border-bottom-style','double')
    :css('border-right-style','double')

end

--处理表格
function renderMainTable()
    local tb1 = mw.html.create('table')--创建table
        --.attr('cellspacing', 0)--在这里table添加样式
        :addClass('wikitable')
        :addClass('mw-collapsible')
        :addClass('mw-collapsed')
        :css('width', '60%')
    
    renderHeaderRow(tb1)
    for i, anum in ipairs(anums) do--循环处理每一行数据
        renderListRow(tb1, anum)
    end

    return tb1
end

function p._historicalActivity(Args)
    args = Args
    
    for k, v in pairs(args) do--计算行数
        local anum = ('' .. k):match('^a(%d+)$')
        if anum then table.insert(anums, tonumber(anum)) end
    end
    table.sort(anums)

    --处理表格
    local tb1 = renderMainTable()

    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)];
    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

语法在上面~

第一个可以改成相反的效果吗?

第二个目前是

|A

|I

|E

但是想要这种模式不改的情况下,

不打|E 自己就会消失表头,

打|e又会出现e的表头

嗯我大概看懂了...

相反的效果是指左边是表头、表格向右横向延伸吗?

然后第二个目标指的是“所有参数中均未出现ex=xxx的情况下,不再显示简介列表头”是吗?

链接到点评
3 小时前, 攸薩 说道:

:NEKOMIMI_PARADISE_18:大神!!话说你要加入本论坛的百科填写员吗?

很缺这种强大的技术佬!

  显示隐藏内容
local p = {}

local args--存参数
local frame
local anums = {}--存行数

--添加行
function addTableRow(tbl)
    return tbl:tag('tr')
end

--处理表头
function renderHeaderRow(tbl)

    local headerRow = addTableRow(tbl)
    headerRow
        :tag('th')
            :wikitext('作者')
	    :css('color','#004B97')--文字颜色
	    :css('background-color','#FF9224')--底色
            :css('border-width', '5px 1px 3px 5px')
            :css('border-color','#D26900 #FF9224 #D26900 #D26900')
            :css('border-top-style','double')
            :css('border-bottom-style','dashed')
            :css('border-left-style','double')
            :css('width', '5%')
            :attr('scope', 'column')
        :done()
        :tag('th')
            :wikitext('主题')
	    :css('color','#0066CC')
	    :css('background-color','#FFAD86')
            :css('border-width', '5px 1px 3px 1px')
            :css('border-color','#D26900 #FFAD86 #D26900 #FFAD86')
            :css('border-top-style','double')
            :css('border-bottom-style','dashed')
            :css('border-right-style','double')
            :css('width', '25%')
            :attr('scope', 'column')
        :done()
        :tag('th')
            :wikitext('简介')
	    :css('color','#0066CC')
	    :css('background-color','#FFAD86')
            :css('border-width', '5px 5px 3px 1px')
            :css('border-color','#D26900 #D26900 #D26900 #FF9224')
            :css('border-top-style','double')
            :css('border-bottom-style','dashed')
            :css('border-right-style','double')
            :css('width', '35%')
            :attr('scope', 'column')
        :done()

end

--处理某一行数据
function renderListRow(tb1, anum)
    local row = addTableRow(tb1)--添加行,并将当前行传给row

    if args['a' .. anum] then
        local activity = row:tag('td')--添加单元格,并将该单元格传给activity
        activity
        :attr('align', 'center')--单元格样式
	:css('padding','3px')
	:css('color','#004B97')--文字颜色
	:css('background-color','#FF9224')--底色
        :css('border-width', '5px 1px 3px 5px')
        :css('border-color','#D26900 #FF9224 #D26900 #D26900')
        :css('border-top-style','dashed')
        :css('border-bottom-style','double')
        :css('border-left-style','double')
        :wikitext(args['a' .. anum])
    end
    
    local info = row:tag('td')--再添加单元格,并将该单元格传给info

    info
    :wikitext(args['i' .. anum])--单元格样式
    :css('color','#0066CC')
    :css('padding','10px')
    :css('background-color','#FFDCB9')
    :css('border-width', '5px 1px 3px 1px')
    :css('border-color','#D26900 #FFDCB9 #D26900 #FF9224')
    :css('border-top-style','dashed')
    :css('border-bottom-style','double')
    :css('border-right-style','double')

    local info1 = row:tag('td')--再添加单元格,并将该单元格传给info

    info1
    :wikitext(args['e' .. anum])--单元格样式
    :css('color','#0066CC')
    :css('background-color','#FFE4CA')
    :css('border-width', '5px 5px 3px 1px')
    :css('border-color','#D26900 #D26900 #D26900 #FF9224')
    :css('padding','10px')
    :css('border-top-style','dashed')
    :css('border-bottom-style','double')
    :css('border-right-style','double')

end

--处理表格
function renderMainTable()
    local tb1 = mw.html.create('table')--创建table
        --.attr('cellspacing', 0)--在这里table添加样式
        :addClass('wikitable')
        :addClass('mw-collapsible')
        :addClass('mw-collapsed')
        :css('width', '60%')
    
    renderHeaderRow(tb1)
    for i, anum in ipairs(anums) do--循环处理每一行数据
        renderListRow(tb1, anum)
    end

    return tb1
end

function p._historicalActivity(Args)
    args = Args
    
    for k, v in pairs(args) do--计算行数
        local anum = ('' .. k):match('^a(%d+)$')
        if anum then table.insert(anums, tonumber(anum)) end
    end
    table.sort(anums)

    --处理表格
    local tb1 = renderMainTable()

    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)];
    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

语法在上面~

第一个可以改成相反的效果吗?

第二个目前是

|A

|I

|E

但是想要这种模式不改的情况下,

不打|E 自己就会消失表头,

打|e又会出现e的表头

嗯...我整了一个功能类似但是是向右拓展的表格,不知道是不是你要的那种(

顺便我增加了一批自定义选项,我觉得行开关用自定义选项可能会比较好(

剧透
local p = {}
local prefix                = {'a', 'i', 'e'}
local title                 = {'作者', '主题', '简介'}
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 = row:tag('th')
    header
        :wikitext(title[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')
        :css('width', '60%')
    
    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 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

 

现在这个模块在萌百我的个人lua沙盒那里,并且现在(暂时地)用着沙盒模板(Template:Sandbox)作为外层模板;如果沙盒模板有别人做实验内容被破坏了的话,把里面的内容重新编辑成这个就好:

剧透
<noinclude><!-- 请勿删除此行 -->{{帮助导航}}{{沙盒顶部}}<!-- 请勿删除此行 --></noinclude>

{{#invoke:Sandbox/willson0v0/LinearTable|historicalActivity}}

可以自定义一些属性(属性都有默认值不用全都手动设置),例如,...|title1=第一行标题|...就定义了第一行标题、...|bg_color2=#66ccff|...就定义了第二行单元格的背景色,所有可以自定义的属性如下([3]替换成1/2/3不保留中括号没有空格):

  1. title[x]:第x行表格标题

  2. color[x]:第x行单元格字体色

  3. bg_color[x]:第x行单元格背景色

  4. border_color[x]:第x行单元格边框颜色,每个包含4个颜色值,以top right bottom left顺序,中间一个空格(比如说,...|border_color1=#00FF00 #00FF00 #00FF00 #00FF00|...就会把第一行的边框四边都设成死亡荧光绿)

  5. header_color[x]:第x行标题栏字体色

  6. header_bg_color[x]:第x行标题栏背景色

  7. header_border_color[x]:第x行标题栏边框颜色,和border_color类似

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

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

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

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

  12. display[x]:决定第x行是否显示(比如说,...|display3=false|...就会让第三行整个消失)

最后是一个小栗子:

image.thumb.png.2d53e6aff39dce3d40bf4ddda0b6520e.png

有关百科填写员...主要是我现在刚来,还不是很清楚在做什么/要做什么/能做什么,不过有需要的话可以召唤我就是了(

,由willson-v-修改
注释
攸薩 攸薩 10.00节操 太牛了,务必申请后取得应有的奖励!
链接到点评

创建帐号或登入才能点评

您必须成为用户才能点评

创建帐号

在我们社区注册个新的帐号。非常简单!

注册新帐号

登入

已有帐号? 登入

现在登入
×
×
  • 新建...

重要消息

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