“模块:Lyrics”的版本间的差异
跳到导航
跳到搜索
(建立内容为“local p = {} local getArgs = require('Module:Arguments').getArgs local lang = require('Module:Lang') function p._lyrics(args, hookTrigger, customArgs) local or…”的新页面) |
|||
| (未显示同一用户的2个中间版本) | |||
| 第1行: | 第1行: | ||
| + | -- Module 来自萌娘百科。 | ||
local p = {} | local p = {} | ||
| 第11行: | 第12行: | ||
end | end | ||
| − | |||
local orig = {} | local orig = {} | ||
local iter = mw.ustring.gmatch(original..'\n', '([^\n]*)\n') | local iter = mw.ustring.gmatch(original..'\n', '([^\n]*)\n') | ||
| 第85行: | 第85行: | ||
local LDC = frame:callParserFunction{ name = '#var', args = { 'LDC', '0' } } | local LDC = frame:callParserFunction{ name = '#var', args = { 'LDC', '0' } } | ||
if LDC ~= '1' and args.override ~= '1' then | if LDC ~= '1' and args.override ~= '1' then | ||
| − | copyright = '<small>本段落中所使用的歌词,其著作权属于 | + | copyright = '<small>本段落中所使用的歌词,其著作权属于 乐元素(Happy Elements),中文填词 著作权 属于知沅教育出版社或授权知沅社使用填词 的 老师们 。</small>' |
elseif LDC == '1' and args.override == '1' then | elseif LDC == '1' and args.override == '1' then | ||
copyright = frame:expandTemplate{ title = 'ac', args = { '不必要使用override参数的音乐条目' } } | copyright = frame:expandTemplate{ title = 'ac', args = { '不必要使用override参数的音乐条目' } } | ||
2024年10月27日 (日) 13:04的最新版本
此模块的文档可以在模块:Lyrics/doc创建
-- Module 来自萌娘百科。
local p = {}
local getArgs = require('Module:Arguments').getArgs
local lang = require('Module:Lang')
function p._lyrics(args, hookTrigger, customArgs)
local original = args.original or ''
local translated = args.translated or ''
if hookTrigger then
original, translated = hookTrigger('preSplit', original, translated, customArgs)
end
local orig = {}
local iter = mw.ustring.gmatch(original..'\n', '([^\n]*)\n')
for val in iter do
table.insert(orig, val)
end
local tran = {}
local iter = mw.ustring.gmatch(translated..'\n', '([^\n]*)\n')
for val in iter do
table.insert(tran, val)
end
local llang = args.llang or 'ja'
local rlang = args.rlang or 'zh'
local lstyle = args.lstyle or ''
local rstyle = args.rstyle or ''
local html = mw.html.create('div')
:addClass('Lyrics')
:css('width', args.width)
:cssText(args.containerstyle or '')
if ((args['hasRuby'] or '') ~= '') or (not args.colorsMode and (args.original or ''):find('<ruby')) then
html:addClass('Lyrics-has-ruby')
else
html:addClass('Lyrics-no-ruby')
end
local hastran = true
if #tran == 1 and tran[1] == '' then
hastran = false
else
html:addClass('Lyrics-has-translate')
end
if hookTrigger then
hookTrigger('preParse', orig, hastran and tran or false, customArgs)
end
local lines = {}
local len = math.max(#orig, #tran)
for i=1, len do
local line = mw.html.create('div'):addClass('Lyrics-line')
:tag('div')
:addClass('Lyrics-original')
:cssText(lstyle)
:node(lang.wrap(orig[i] or '', llang))
:done()
if hastran then
line:tag('div')
:addClass('Lyrics-translated')
:cssText(rstyle)
:node(lang.wrap(tran[i] or '', rlang))
:done()
end
table.insert(lines, tostring(line))
end
if hookTrigger then
hookTrigger('postParse', lines, customArgs)
end
html:node(table.concat(lines))
-- Clear the floating
html:tag('div'):cssText('clear:both')
html = tostring(html)
if hookTrigger then
html = hookTrigger('preOutput', html, customArgs)
end
local copyright = ''
local frame = mw.getCurrentFrame()
local LDC = frame:callParserFunction{ name = '#var', args = { 'LDC', '0' } }
if LDC ~= '1' and args.override ~= '1' then
copyright = '<small>本段落中所使用的歌词,其著作权属于乐元素(Happy Elements),中文填词著作权属于知沅教育出版社或授权知沅社使用填词的老师们。</small>'
elseif LDC == '1' and args.override == '1' then
copyright = frame:expandTemplate{ title = 'ac', args = { '不必要使用override参数的音乐条目' } }
end
local css = frame:extensionTag{ name = 'templatestyles', args = { src = 'Template:LyricsKai/styles.css' } }
return copyright .. css .. html
end
function p.lyrics(frame)
local args = getArgs(frame, {wrappers='Template:LyricsKai'})
return p._lyrics(args)
end
return p