“模块:Lyrics”的版本间差异

添加406字节 、​ 2020年11月11日 (三) 10:44
无编辑摘要
标签移动版网页编辑 移动版编辑
 
function module.name2color(names,text,lang) --按角色名转换成的颜色给文字上色及加title和语言标识。
if names == '' then
return module.langWrap(text, lang)
elseif names:find(',') then --如果颜色标识中有逗号,则说明有多位角色,使用渐变色。
local errorFlag=nil
names=mw.text.split(names, ',') --将角色列表全部转为小写后,在逗号处分割成table。
local result="<span lang=\""..lang.."\" title=\"" --放置上色结果的span。title内放置角色全名
end --因为连接过程需要转换文字,所以不使用join或listToText。
end
result=result.."\" class=\"Lyrics_gradient"
for k,name in ipairs(names) do
result=result.." "..(classnames[name] or name)..'-lyrics' --与上面的类似,加入class
if colors[name]==nil then
errorFlag=name
end
end
result=result.." "..(errorFlag and "error" or "Lyrics_gradient").."\" style=\"background-image:-webkit-linear-gradient(left," -- Lyrics_gradient类会添加CSS样式:"-webkit-background-clip:text;background-clip:text;-webkit-box-decoration-break:clone;-webkit-text-fill-color:transparent;text-fill-color:transparent;"
for k,name in ipairs(names) do
result=result..(colors[name] or 'black') --与上面的类似,加入各颜色。如果颜色不存在,则为黑色。
end
end
return result..");\">"..(errorFlag and ("[[category:Lyrics中出现错误颜色参数的页面]]Wrong color key: "..errorFlag) or module.langQuote(text, lang)).."</span>"
else --如果颜色标识中没有逗号,则说明只有一位角色,直接上色。
return "<span lang=\""..lang.."\" class=\"Lyrics_single "..(classnames[names] or names).."-lyrics"..(colors[names] and '' or " error").."\" title=\""..(fullnames[names] or '').."\" style=\"color:"..(colors[names] or 'black')..";\">"..(colors[names] and module.langQuote(text, lang) or ("[[category:Lyrics中出现错误颜色参数的页面]]Wrong color key: "..errorFlag)).."</span>"
end
end
16,874

个编辑