打开/关闭搜索
搜索
打开/关闭菜单
1.2万
1.8万
100
8.1万
导航
首页
最近更改
特殊页面
上传文件
随机页面
随机页面
随机歌曲
随机P主
编辑相关
帮助
讨论版
公共沙盒
待修改页面
批量上传文件
友情链接
VCPedia
打开/关闭外观设置菜单
通知
打开/关闭个人菜单
未登录
登录后可编辑和发表评论。
user-interface-preferences
个人工具
创建账号
登录
欢迎加入
本站官方QQ群
!
查看“︁Module:Notice”︁的源代码
来自Vocawiki
查看
阅读
查看源代码
查看历史
associated-pages
模块
讨论
更多操作
←
Module:Notice
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
local p = {} -- 生成相对iconURL local function buildIconUrl(icon) if not icon or icon == "" then return nil end icon = mw.text.trim(icon):gsub("[\r\n]", "") -- 去掉前缀 icon = icon:gsub("^[Ff]ile:", "") :gsub("^文件:", "") :gsub("^檔案:", "") -- 禁止外链 if icon:match("^https?://") or icon:match("^//") then return nil end -- 站内绝对路径,允许 if icon:match("^/") then return icon end -- 站内文件名生成相对链接 local title = mw.title.makeTitle("Special", "FilePath/" .. icon) if title then return title:localUrl() end return nil end -- 避免引号/括号等打断 style local function sanitizeForCssUrl(url) if not url then return nil end url = url:gsub("[\r\n]", "") url = url:gsub("[\"'%;%)%(%<%>]", "") return url end local function renderNotice(type, iconStyleExtra, innerHtml) return string.format([[ <div class="notice notice-%s"> <div class="notice-icon" style="-webkit-mask-repeat: no-repeat; -webkit-mask-position: center; -webkit-mask-size: contain;%s"></div> %s </div> ]], type, iconStyleExtra, innerHtml) end function p.main(frame) local args = frame:getParent().args local type = args.type or "info" local iconUrl = sanitizeForCssUrl(buildIconUrl(args.icon)) local iconStyleExtra = "" if iconUrl and iconUrl ~= "" then iconStyleExtra = string.format(" --notice-icon: url(%s);", iconUrl) end -- text模式 local textContent = args.text or args[1] if textContent and textContent ~= "" then local inner = string.format([[ <div class="notice-text text-base"> <div class="notice-text-only text-base">%s</div> </div> ]], textContent) return renderNotice(type, iconStyleExtra, inner) end -- 列表 local listItems = {} for i = 1, 50 do local key = "l" .. i if args[key] and args[key] ~= "" then table.insert(listItems, "<li>" .. args[key] .. "</li>") end end local listHtml = "" if #listItems > 0 then listHtml = '<ul class="notice-list text-sm">' .. table.concat(listItems, "\n") .. "</ul>" elseif args.list and args.list ~= "" then listHtml = '<ul class="notice-list text-sm">' .. args.list .. "</ul>" end local inner = string.format([[ <div class="notice-text text-base"> <div class="notice-title text-base">%s</div> %s <div class="notice-detail text-sm">%s</div> </div> ]], args.title or "", listHtml, args.detail or "") return renderNotice(type, iconStyleExtra, inner) end return p
该页面嵌入的页面:
Template:Documentation
(
查看源代码
)
Template:Tl
(
查看源代码
)
Module:Notice/doc
(
查看源代码
)
返回
Module:Notice
。
查看“︁Module:Notice”︁的源代码
来自Vocawiki