帖子发自 willson-v-
-
-
-
-
-
-
-
1 分钟前, 攸薩 说道:
可以哦~只要把模板改了就行,参数都不用动
不过美工方面我没有留意,可能要改改颜色什么的(
然后就是咱这个为了支持折叠多了一个标题,需要加一个参数(...|title=你要的标题)
再然后就是宽度...这些都好宽(
(话说今天萌百娘不给力啊,预览好卡
-
4 分钟前, 攸薩 说道:
这样咱可以调整好后,直接透用在现有的页面上吗?
还是会出错吗?
应该是可以直接用的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>的用法...大概是这个样子:
当然你也可以把宽度限制做在模板甚至模块里面,不过我不知道你想限制的最大宽度是多少所以就没写(
-
-
3 分钟前, 攸薩 说道:
应该是某个系列三百多帖子,
是有想过
系列
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
-
-
-
6 分钟前, 攸薩 说道:
header是直的还是横的说?
这样感觉可以定案了www
第一版的语法是那边呢w
header是第一纵列的表头哦~
对应关系大概是这样的:
然后第一版的脚本是这个~
剧透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那里被引号框起来的部分就是按顺序排列着三行普通单元格的默认背景色(顺序是第一行->第二行->第三行),改成想要的就可以更改默认颜色哦~
-
-
6 分钟前, 攸薩 说道:
嗯....这样交错的感觉会痛眼?
一整列都同一个颜色下一列就换颜色这样会疏解的效用,
如果变成棋盘状可能就不好了,
(但是交错好酷!!!但不知道用在那里好)
是说如果变成一整列一整列的方式,会要整个大改,甚至不支援aie吗?
基本上维持在aie或是ai的程度,
但是会往下延伸最多到五百个就是了w
(不然就是浓缩可以更少?
嗯...现在的问题是,究竟是往一个轴方向无限延伸,还是往两个轴方向无限延伸;
现在是纵轴固定为0/1/2/3个,横轴可以无限延伸;支持按横行设置颜色(事实上修改之前的旧版就可以,指定bg_color[x]就好);
但是之前看到你那个评分我有点被吓到所以来确认需求...需要横轴和纵轴都无限延伸的话,改语法就是不可避免的了...但我总觉得这不是你的意思...
-
-
-
-
-
-
-
3 分钟前, 攸薩 说道:
文科脑又爆炸了,话说可以弄弄看吗?
记得在每月回报绩效的时后回报这点噢!
话说你维基用户名打算取啥?帮你贴模块的时候就可以说作者是谁呢
大概是这样的(刚搞的还没测试....)
剧透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]...
用户名...嘛就保持一致吧(
-
8 分钟前, 攸薩 说道:
其实咱都是想说偷工,毕竟连接也是蓝色字也是蓝色就没有差异的说,
还是会有人介意吗,没想过哎...!
还是说是让连接不明显的原因嘛!?
话说这问题好像被漏掉了(
话说有办法做出word内建的色彩表格
第一横行深橘
第二横行浅橘
以此类推吗?
(好奇问问就是,这样可以更不痛眼就是了ww)
可以做哦!不过要改lua代码(
看下里面的renderRow函数,下面有个循环,就是在渲染一个个的单元格,循环体中有一个没有被用到的i,就是循环次数;i对2取余,可以得到当前是奇数行或者是偶数行,然后再对应地为info变量修改:css('background-color', '...')就可以了!
-
-
【宣传】【过期活动】寒冬中的暖阳-返乡活动预告-
在 暗の广场
发布于 · ,由willson-v-修改
完 全 重 写(大悲
这样就可以了...尽力做到和原来一样了,不显示某行也做了(顺便一提,如果让第三行消失的话边框会变得比较奇怪所以我建议让第二行消失...否则就要自己重写第二行的边框...)
===== 删掉第二行的场合 =====
===== 删掉第三行的场合 =====
===== 删掉第三行并手动补正第二行边框的场合 =====
其他的各种自定义也做了(
(话说咱的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)...设了就会变,举个栗子就是:
(嗯希望这次没错)
第二个问题...嗯tab好看(确信
嘛总归要重写的嘛...大不了再写个模块自动化处理一下