16,874
个编辑
LLWiki正在建设中,欢迎加入我们!
小 |
标签:撤销 |
||
(未显示同一用户的5个中间版本) | |||
local errorFlag=nil
names=mw.text.split(names, ',') --将角色列表全部转为小写后,在逗号处分割成table。
local result=
for k,name in ipairs(names) do --将分割后的角色列表依次处理。k表示编号,从1开始。
result=result..(fullnames[name] or '') --把每个角色名转换成全名,并加入到结果。如果角色不存在,则为空。
end --因为连接过程需要转换文字,所以不使用join或listToText。
end
result=result..
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")..
for k,name in ipairs(names) do
result=result..(colors[name] or 'black') --与上面的类似,加入各颜色。如果颜色不存在,则为黑色。
end
end
return result..");"..(
or '">'..module.langQuote(text, lang)
).."</span>"
else --如果颜色标识中没有逗号,则说明只有一位角色,直接上色。
return
'" 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 =
local tran =
--对传入的字符串进行初步处理。
--1. 如果没有传入字符串,则默认为空字符串。
--2. 在所有换行处分割字符串,结果为一个table。
end
if (args[1] or args.original or ''):find('<ruby') or (args[2] or args.
html:addClass('Lyrics_has_ruby') --如果歌词
else
html:addClass('Lyrics_no_ruby') --否则,添加Lyrics_no_ruby的class。
local orig_line=orig[i] --准备转换颜色标识。
if orig_line:find('@') then --如果有颜色标识,
orig_line=orig_line:gsub("^([^@]+)", function(n) return module.langWrap(n,llang) end) --则把开头没有颜色
orig_line=orig_line:gsub("@([^@]*)@([^@]+)", function(n1,n2) return module.name2color(n1,n2,llang) end) --并把颜色标识替换成有语言标识的颜色span。
else --如果没有颜色标识,
:addClass('Lyrics_translated')
:cssText(rstyle)
:node(rlang and module.
:done()
end
|