欢迎来到偶像大师中文维基,本站仍在筹备阶段,如有兴趣参与建设可加群申请账号:
542540342
《
偶像大师 全力以赴
》汉化补丁现已发布,
点击此处
转至发布页查看详情
查看“︁Module:Rainbow”︁的源代码
←
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
。
首页
复制短链接
反馈与建议
管理与编辑
编辑指南
最近更改
维护列表
探索
官方网站
偶像大师 PORTAL
交流群组
友情链接
论坛社区
iM@S制作人同好会
作品汉化
偶像大师SP汉化组
偶像大师OFA汉化组
闪耀色彩汉化小组
学园偶像大师汉化
百科网站
灰姑娘女孩中文维基
闪耀色彩资料库
学园偶像大师图鉴
资讯情报
学园偶像大师同好会
偶像大师闪耀色彩报社
活动组织
偶像大师F@N EXPO
偶像大师国际协力机构
工具
导航菜单
个人工具
登录
命名空间
模块
讨论
English
查看
阅读
查看源代码
查看历史
更多
刷新
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息