跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
偶像大师中文维基
搜索
搜索
外观
登录
个人工具
登录
欢迎来到偶像大师中文维基,本站仍在筹备阶段,如有兴趣参与建设可加群申请账号:
542540342
《
偶像大师 全力以赴
》汉化补丁现已发布,
点击此处
转至发布页查看详情
查看“︁Module:Rainbow”︁的源代码
模块
讨论
English
阅读
查看源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
查看源代码
查看历史
刷新
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
←
Module:Rainbow
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于这些用户组的用户执行:
用户
、editor
您可以查看和复制此页面的源代码。
local module = {} local getArgs = require('Module:Arguments').getArgs function module._main(colors, material) local rubySave = {} material = mw.ustring.gsub(material, '(<ruby[^>]*>.-</ruby>)', function(str) rubySave[#rubySave + 1] = str return 'Ÿ' end) local htmlEscapeSave = {} local htmlEscapeSaveFunc = function(str) htmlEscapeSave[#htmlEscapeSave + 1] = str return 'Æ' end material = mw.ustring.gsub(material, '&#%d+;', htmlEscapeSaveFunc) material = mw.ustring.gsub(material, '&[A-Za-z]+;', htmlEscapeSaveFunc) function lang(ptns) for i, v in ipairs(ptns) do material = mw.ustring.gsub(material, '(.*%-{)ῧ?(.-)(;?%s-'..v..':)(.-}%-)', function(str0, str1, str2, str3) -- 使用ῧ指示保持当前颜色 -- 使用Ῥ指示这是下一个语言变种的开始,读取颜色 return str0..'ῧ'..str1..mw.ustring.gsub(str2, '(.)', '‡%1')..'Ῥ'..str3 end) end end lang({ 'zh%-hans', 'zh%-hant', 'zh%-cn', 'zh%-tw', 'zh%-hk', 'zh%-sg', 'zh%-mo', 'zh%-my', 'zh' }) function flee(ptns) for i, v in ipairs(ptns) do material = mw.ustring.gsub(material, '('..v..')', function(str) return mw.ustring.gsub(str, '(.)', '‡%1') end) end end flee({ -- html标签或mw的标记应当视为一个整体,不单独变色 '<.->', '%-{', '}%-', '\'\"\`UNIQ%-.-%-QINU\`\"\'' }) local flag = 1 -- 变色计数 local ZhConverter_old_flag = 1 -- 字词转换中上一个语言变种的flag local ruby = 1 -- ruby计数 local htmlEscape = 1 -- HTML转义字符计数 local mark = false -- 标签跳过 local rainbow = mw.ustring.gsub(material, '[^%s]', function(str1) if str1 == 'ῧ' then ZhConverter_old_flag = flag return '' end if str1 == 'Ῥ' then flag = ZhConverter_old_flag return '' end if str1 == '‡' then mark = true return '' end if str1 == 'Æ' then htmlEscape = htmlEscape + 1 return htmlEscapeSave[htmlEscape - 1] end if mark then mark = false return str1 end local colour = '' if str1 ~= 'Ÿ' then colour = '<span style="color:'..colors[flag]..'">'..str1..'</span>' else colour = string.gsub(rubySave[ruby], '<ruby([^>]*)>', function(str2) if string.find(str2, 'style=".-"') then return '<ruby '..string.gsub(str2, 'style="(.-)"', function(str3) return 'style="'..str3..'; color:'..colors[flag]..'"' end)..'>' else return '<ruby'..str2..' style="color:'..colors[flag]..'">' end end) ruby = ruby + 1 end if flag < #colors then flag = flag + 1 else flag = 1 end return colour end) return rainbow end function module.main(frame) local args = getArgs(frame, {wrappers='Template:Rainbow'}) local colorStr = args.c or args[1] local material = args.s or args[2] local colors = mw.text.split(colorStr, ',') return module._main(colors, material) end return module
该页面使用的模板:
Module:Rainbow/doc
(
查看源代码
)
返回
Module:Rainbow
。