查看“模块:Collapsible list”的源代码
←
模块:Collapsible list
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您必须确认您的电子邮件地址才能编辑页面。请通过
系统设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
-- This module implements {{折叠列表}}. local p = {} local function gettitlestyletracking( ts ) if not ts then return '' end ts = mw.ustring.gsub(mw.ustring.lower(ts), '%s', '') local tsvals = mw.text.split(ts, ';') table.sort(tsvals) local skey = table.concat(tsvals,';') skey = mw.ustring.gsub(skey, '^;', '') skey = mw.text.encode(mw.text.encode(skey),'%c%[%]=') if (mw.ustring.match(';' .. ts, ';background:') or mw.ustring.match(';' .. ts, ';background%-color:')) and mw.ustring.match(';' .. ts, ';text%-align:') then return '[[Category:Pages using collapsible list with both background and text-align in titlestyle|' .. skey .. ' ]]' end return '[[Category:Pages using collapsible list without both background and text-align in titlestyle|' .. skey .. ' ]]' end local function getListItem( data ) if not type( data ) == 'string' then return '' end return mw.ustring.format( '<li style="line-height: inherit; margin: 0">%s</li>', data ) end -- Returns an array containing the keys of all positional arguments -- that contain data (i.e. non-whitespace values). local function getArgNums( args ) local nums = {} for k, v in pairs( args ) do if type( k ) == 'number' and k >= 1 and math.floor( k ) == k and type( v ) == 'string' and mw.ustring.match( v, '%S' ) then table.insert( nums, k ) end end table.sort( nums ) return nums end -- Formats a list of classes, styles or other attributes. local function formatAttributes( attrType, ... ) local attributes = { ... } local nums = getArgNums( attributes ) local t = {} for i, num in ipairs( nums ) do table.insert( t, attributes[ num ] ) end if #t == 0 then return '' -- Return the blank string so concatenation will work. end return mw.ustring.format( ' %s="%s"', attrType, table.concat( t, ' ' ) ) end local function buildList( args ) -- Get the list items. local listItems = {} local argNums = getArgNums( args ) for i, num in ipairs( argNums ) do table.insert( listItems, getListItem( args[ num ] ) ) end if #listItems == 0 then return '' end listItems = table.concat( listItems ) -- hack around mw-collapsible show/hide jumpiness by looking for text-alignment -- by setting a margin if centered local textAlignmentCentered = 'text%-align%s*:%s*center' local centeredTitle = (args.title_style and args.title_style:lower():match(textAlignmentCentered) or args.titlestyle and args.titlestyle:lower():match(textAlignmentCentered)) local centeredTitleSpacing if centeredTitle then centeredTitleSpacing = 'margin: 0 4em' else centeredTitleSpacing = '' end -- Get class, style and title data. local collapsibleContainerClass = formatAttributes( 'class', 'mw-collapsible', not args.expand and 'mw-collapsed' ) local collapsibleContainerStyle = formatAttributes( 'style', 'text-align: center; font-size: 95%;', args.frame_style, args.framestyle ) local collapsibleTitleStyle = formatAttributes( 'style', 'line-height: 1.6em; text-align: left; display: inline-block; float: left;', args.title_style, args.titlestyle ) local jumpyTitleStyle = formatAttributes( 'style', centeredTitleSpacing ) local title = args.title or 'List' local ulclass = formatAttributes( 'class', 'mw-collapsible-content', args.hlist and 'hlist' ) local ulstyle = formatAttributes( 'style', 'font-size: 105%; margin-top: 0; margin-bottom: 0; line-height: inherit; text-align: left;', not args.bullets and 'list-style: none none; margin-left: 0;', args.list_style, args.liststyle ) -- Build the list. return mw.ustring.format( '<div%s%s>\n<div%s><div%s>%s</div></div>\n<ul%s%s>%s</ul>\n</div>', collapsibleContainerClass, collapsibleContainerStyle, collapsibleTitleStyle, jumpyTitleStyle, title, ulclass, ulstyle, listItems ) .. gettitlestyletracking(args.title_style or args.titlestyle) end function p.main( frame ) local origArgs if frame == mw.getCurrentFrame() then origArgs = frame:getParent().args for k, v in pairs( frame.args ) do origArgs = frame.args break end else origArgs = frame end local args = {} for k, v in pairs( origArgs ) do if type( k ) == 'number' or v ~= '' then args[ k ] = v end end return buildList( args ) end return p
该页面使用的模板:
模块:Collapsible list/doc
(
查看源代码
)
返回至
模块:Collapsible list
。
导航菜单
个人工具
创建账户
登录
名字空间
模块
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
更多
模块
讨论
阅读
查看源代码
查看历史
导航
首页
新闻部
科学ADV
简介
团队介绍
世界观
登场人物
音乐
同人与扩展延伸
系列作品
混沌之脑 Chaos;Head
命运石之门 Steins;Gate
机器人笔记 Robotics;Notes
混沌之子 Chaos;Child
超自然九人组 Occultic;Nine
匿名代码 Anonymous;Code
Wiki项目资料
项目内参
最近更改
随机页面
编辑教程
提问解答聊天室
工具
链入页面
相关更改
特殊页面
页面信息