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

添加18字节 、​ 2021年8月4日 (三) 11:43
撤销Bhsd讨论)的版本31124
(外面额外套一层span还是有好处的)
标签撤销
(撤销Bhsd讨论)的版本31124)
标签撤销
 
(未显示同一用户的2个中间版本)
local errorFlag=nil
names=mw.text.split(names, ',') --将角色列表全部转为小写后,在逗号处分割成table。
local result="'<span title=\""' --放置上色结果的span。title内放置角色全名
for k,name in ipairs(names) do --将分割后的角色列表依次处理。k表示编号,从1开始。
result=result..(fullnames[name] or '') --把每个角色名转换成全名,并加入到结果。如果角色不存在,则为空。
end --因为连接过程需要转换文字,所以不使用join或listToText。
end
result=result.."\'" class=\""'
for k,name in ipairs(names) do
result=result.." "..(classnames[name] or name)..'-lyrics' --与上面的类似,加入class
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..");"..(
return result..");"..( errorFlag and "'background:none;\">[[category:Lyrics中出现错误颜色参数的页面]]Wrong color key: "'..errorFlag or "\">"..module.langQuote(text, lang)).."</span>"
or '">'..module.langQuote(text, lang)
).."</span>"
else --如果颜色标识中没有逗号,则说明只有一位角色,直接上色。
return "'<span class=\"Lyrics_single "'..(classnames[names] or names).."-lyrics"..(colors[names] and '' or " error").."\" title=\""..(fullnames[names] or '').."\" style=\"color:"..(colors[names] or '')..";\">"..(colors[names] and module.langQuote(text, lang) or "[[category:Lyrics中出现错误颜色参数的页面]]Wrong color key: "..names).."</span>"
'" title="'..(fullnames[names] or '')..'" style="color:'..(colors[names] or '')..';">'..
(colors[names] and module.langQuote(text, lang) or "[[category:Lyrics中出现错误颜色参数的页面]]Wrong color key: "..names)
.."</span>"
end
end
:wikitext( module.langQuote(text, lang) ) --给这个span加上内容,内容为langQuote确定的是否需要繁简转换的维基文本。
return tostring(span)
end
 
function module.split(text)
local result = {}
for v in mw.ustring.gmatch(text..'\n', '([^\n]*)\n') do
table.insert(result, v)
end
return result
end
 
function module._lyrics(args) --改写自[[moegirl:Module:Lyrics]]的._lyrics。args为传入参数的table。
local orig = mw.textmodule.split(args[1] or args.original or '', '\n')
local tran = mw.textmodule.split(args[2] or args.translated or '', '\n') --对传入的字符串进行初步处理。
--对传入的字符串进行初步处理。
--1. 如果没有传入字符串,则默认为空字符串。
--2. 在所有换行处分割字符串,结果为一个table。
end
 
if (args[1] or args.original or ''):find('<ruby') or (args[2] or args.transaltedtranslated or ''):find('<ruby') or (args.hasRuby or '') ~= '' then
html:addClass('Lyrics_has_ruby') --如果歌词原文或疑问中有ruby,或者手动设置的hasRuby不为空,则添加Lyrics_has_ruby的class;
else
html:addClass('Lyrics_no_ruby') --否则,添加Lyrics_no_ruby的class。
16,874

个编辑