LLWiki正在建设中,欢迎加入我们!
“模块:Tracklist”的版本间差异
跳转到导航
跳转到搜索
小 标签:移动版网页编辑 移动版编辑 |
|||
(未显示2个用户的18个中间版本) | |||
第1行: | 第1行: | ||
local p = {} |
local p = {} |
||
local getArgs = require("module:arguments").getArgs |
|||
local ml = require("module:multilist").ml |
|||
local cv = require("module:multilist").cv |
|||
function langWrap(text) |
function langWrap(text) |
||
local result = "" |
|||
if mw.ustring.find(text, "^[\000-\127]*$") then |
|||
for k, v in ipairs(mw.text.split(text, "、")) do |
|||
return text |
|||
if k > 1 then |
|||
result = result.."、" |
|||
end |
|||
result = result.."<span lang=\"ja\">-{"..v.."}-</span>" |
|||
end |
end |
||
return result |
|||
return "<span lang=\"ja\">-{"..text.."}-</span>" |
|||
end |
end |
||
function trim(text) |
|||
return (text and text ~= "") and 1 or 0 |
|||
end |
|||
function trim2(text) |
|||
return (text and text ~= "") and text or false |
|||
end |
|||
function p.main(frame) |
function p.main(frame) |
||
local args = |
local args = getArgs(frame, {removeBlanks = false}) |
||
local info = "" |
|||
local ljcols = 1 + trim(args.lyrics_credits) + trim(args.music_credits) + trim(args.arranger_credits) |
|||
if args.all_writing then |
|||
local isNumbered = trim(args.number) |
|||
info = info.."全碟-{zh-hans:作词;zh-hant:填詞;zh-tw:作詞;}-及作曲:"..langWrap(args.all_writing).." " |
|||
local ncols = ljcols + isNumbered + trim(args.singer_credits) + trim(args.extra_column) + trim(args.longnote_column) + trim(args.length) |
|||
end |
|||
local iscv = trim(args.display_cv) |
|||
if args.all_music then |
|||
info = info.."全碟作曲:"..langWrap(args.all_music).." " |
|||
local firstNumber = trim2(args.firstNumber) or 1 |
|||
end |
|||
if args.all_lyrics then |
|||
local info = (trim2(args.all_writing) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟-{zh-hans:作词;zh-hant:填詞;zh-tw:作詞;}-及作曲:"..langWrap(args.all_writing).."</span>") or "") .. |
|||
(trim2(args.all_lyrics) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟-{zh-hans:作词;zh-hant:填詞;zh-tw:作詞;}-:"..langWrap(args.all_lyrics).."</span>") or "") .. |
|||
end |
|||
(trim2(args.all_music) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟作曲:"..langWrap(args.all_music).."</span>") or "") .. |
|||
if args.all_arranger then |
|||
(trim2(args.all_arranger) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟编曲:"..langWrap(args.all_arranger).."</span>") or "") .. |
|||
(trim2(args.all_string_arranger) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟弦编曲:"..langWrap(args.all_string_arranger).."</span>") or "") .. |
|||
end |
|||
(trim2(args.all_singer) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟演唱:"..ml(frame, {args.all_singer, true}).."</span>") or "") .. |
|||
if args.all_singer then |
|||
((args.all_note == "except" or args.all_note == "yes") and "<br><small>(下面注明例外曲目)</small>" or (args.all_note or '')) .. |
|||
info = info.."全碟演唱:"..langWrap(args.all_singer).." " |
|||
(args.all_note2 or "") |
|||
end |
|||
if args.all_note == "except" or args.all_note == "yes" then |
|||
local wikitext = "<div class=\"tracklist" .. |
|||
info = info.."<small>(下面注明例外曲目)</small>" |
|||
(trim2(args.length) and " tracklist-length" or "").."\"" .. |
|||
else |
|||
(trim2(args.collapsed) and " style=\"border:#aaa 1px solid\"" or "")..">\n" .. |
|||
info = info..(args.all_note or '') |
|||
"{|"..(trim2(args.collapsed) and "class=\"mw-collapsible"..((args.collapsed == "closed" or args.collapsed == "yes") and " mw-collapsed" or "").."\"" or "").."\n" .. |
|||
"!colspan=9|"..(trim2(args.headline) or "曲目列表")..(info == "" and "" or ("<div style=\"font-weight:normal\">"..info.."</div>")).."\n" .. |
|||
"|-"..(trim2(args.color) and "style=\"background-color:"..frame:expandTemplate{title = args.color.."/color"}..";color:white\"" or "").."\n" .. |
|||
"!曲序!!曲目"..(trim2(args.lyrics_credits) and "!! -{zh-hans:作词;zh-hant:填詞;zh-tw:作詞;}-" or "")..(trim2(args.music_credits) and "!! 作曲" or "")..(trim2(args.arranger_credits) and "!! 编曲" or "")..(trim2(args.singer_credits) and "!! 演唱" or "")..(trim2(args.extra_column) and "!!"..args.extra_column or "")..(trim2(args.longnote_column) and "!! 备注" or "")..(trim2(args.length) and "!! style=\"width:3em\" | 时长" or "") |
|||
for k, v in ipairs(args) do |
|||
local r = (k - 1) % ncols - isNumbered |
|||
wikitext = wikitext.."\n|" |
|||
if r == -1 then |
|||
wikitext = wikitext.."-\n|"..(trim2(v) or tostring(math.ceil(k / ncols) + firstNumber - 1)..".") |
|||
elseif r == 0 then |
|||
if isNumbered == 0 then |
|||
wikitext = wikitext.."-\n|"..tostring(math.ceil(k / ncols) + firstNumber - 1)..".\n|" |
|||
end |
|||
wikitext = wikitext.."<span lang=\"ja\">-{"..v.."}-</span>" |
|||
else |
|||
if r < ljcols then |
|||
wikitext = wikitext..langWrap(v) |
|||
elseif r == ljcols and args.singer_credits then |
|||
if iscv == 1 then |
|||
wikitext = wikitext..cv(frame, {v}) |
|||
else |
|||
wikitext = wikitext..ml(frame, {v}) |
|||
end |
|||
else |
|||
wikitext = wikitext..(v or "") |
|||
end |
|||
end |
|||
end |
end |
||
info = info..(args.all_note2 or '') |
|||
wikitext = wikitext..(trim2(args.more) and "\n|-\n|colspan=9|"..args.more or "").."\n|}</div>" |
|||
return info |
|||
return wikitext |
|||
end |
end |
||
--[[{#vardefine:ljcols |
|||
|{{#expr:1 {{#if:{{{lyrics_credits|}}}|+1}} {{#if:{{{music_credits|}}}|+1}} {{#if:{{{arranger_credits|}}}|+1}} }}}}<!-- |
|||
-->{{#vardefine:ncols |
|||
|{{#expr:{{#var:ljcols}} {{#if:{{{singer_credits|}}}|+1}} {{#if:{{{extra_column|}}}|+1}} {{#if:{{{longnote_column|}}}|+1}} {{#if:{{{length|}}}|+1}} }}}}<!-- |
|||
--><div class="tracklist {{#if:{{{length|}}}|tracklist-length|}}" style="min-width: calc(100% - {{{reserve_width|300px}}}); {{#switch:{{{collapsed|}}}|open|closed|yes = border: #aaa 1px solid;}}"> |
|||
{| class="{{#switch:{{{collapsed|}}}|closed|yes = mw-collapsible mw-collapsed|open = mw-collapsible}}" |
|||
! colspan="9" | {{#if:{{{headline|}}}|{{{headline}}} |曲目列表 }}<!-- 左边是headline,右边是全碟参数 -->{{#if:{{#var:info|}}|<div style="font-weight: normal;">{{#var:info}}</div>}} |
|||
|-{{#if:{{{color|}}}|style="background-color:{{ {{{color}}}/color}};color:white;"|}} |
|||
! 曲序 !! 曲目<!-- |
|||
-->{{#if:{{{lyrics_credits|}}}|!! -{zh-hans:作词;zh-hant:填詞;zh-tw:作詞;}-}}<!-- |
|||
-->{{#if:{{{music_credits|}}}|!! 作曲}}<!-- |
|||
-->{{#if:{{{arranger_credits|}}}|!! 编曲}}<!-- |
|||
-->{{#if:{{{singer_credits|}}}|!! 演唱}}<!-- |
|||
-->{{#if:{{{extra_column|}}} |!! {{{extra_column}}}}}<!-- |
|||
-->{{#if:{{{longnote_column|}}}|!! 备注}}<!-- |
|||
-->{{#if:{{{length|}}} |!! style="width:3em" {{!}} 时长}}<!-- |
|||
-->{{#fornumargs:|key|val |
|||
|{{#switch:{{#vardefineecho:rval|{{#expr: ({{#var:key}} - 1) mod {{#var:ncols}} }}}} |
|||
|0 = -{}- |
|||
{{!-}} |
|||
{{!}} {{#expr:ceil( {{#var:key}} / {{#var:ncols}} )}}. {{!!}} {{lj|{{#var:val}}}} |
|||
|#default = {{!!}} {{#ifexpr:{{#var:rval}} < {{#var:ljcols}}|{{lj|{{#var:val}}}}|{{#var:val}}}} |
|||
}} |
|||
}}<!-- |
|||
-->{{#if:{{{more|}}}|-{}- |
|||
{{!-}} |
|||
{{!}} colspan="9" {{!}} {{{more}}} |
|||
}} |
|||
|}</div> |
|||
]]-- |
|||
return p |
return p |
2023年8月1日 (二) 21:34的最新版本
模块文档
这个文档嵌入自模块:Tracklist/doc。
这个模板用于表示专辑收录曲目。
参数说明
总参数 | |
---|---|
headline | 列表标题 |
collapsed | 可选参数,非空时该模板可折叠,yes/closed时初始状态默认折叠 |
lyrics_credits | 非空时添加作词一栏 |
music_credits | 非空时添加作曲一栏 |
arranger_credits | 非空时添加编曲一栏 |
singer_credits | 非空时添加演唱者一栏 |
extra_column | 自定义栏标题 |
longnote_column | 非空时添加备注一栏 |
length | 非空时添加歌曲时长一栏 |
more | 补充说明 |
number | 非空时需要手动填写曲序一栏 |
firstNumber | 更改第一行的起始序号,默认为 1 |
display_cv | 非空时显示的演唱者从“角色(声优)”格式变为“声优(角色役)”格式 |
全碟参数 | |
all_writing | 全碟作词及作曲 |
all_music | 全碟作曲 |
all_lyrics | 全碟作词 |
all_arranger | 全碟编曲 |
all_singer | 全碟演唱 |
all_note | except/yes,与all_note2配套使用以添加例外曲目;或直接添加其他全碟备注 |
all_note2 | 例外曲目 |
分参数顺序(全部为匿名参数,按照表格内容的顺序依次填写即可,空单元格需要留空参数) | |
曲目标题 | 必需 |
曲目作词 | 需要lyrics_credits |
曲目作曲 | 需要music_credits |
曲目编曲 | 需要arranger_credits |
曲目演唱 | 需要singer_credits |
自定义栏目 | 需要extra_column |
曲目备注 | 需要longnote_column |
曲目时长 | 填“分:秒”例如4:01,需要length |
模板示范
{{tracklist | headline = CD | color = nijigaku | lyrics_credits = yes | music_credits = yes | arranger_credits= yes | singer_credits = yes | longnote_column = yes | number = yes | firstNumber = 2 | | [[無敵級*ビリーバー]] | Ayaka Miyake | DECO*27 | Rockwell | kasumi | | | [[未来ハーモニー]] | Kanata Okajima | Akira Sunset、ulala | ulala、Akira Sunset | nijigaku | | 5. | かすみのトキメキ{{ruby|祝祭|カーニバル}}! | | | | | {{lj|[ドラマパート]}} }}
CD | ||||||||
---|---|---|---|---|---|---|---|---|
曲序 | 曲目 | 作词 | 作曲 | 编曲 | 演唱 | 备注 | ||
2. | 無敵級*ビリーバー | Ayaka Miyake | DECO*27 | Rockwell | 中须霞(相良茉优) | |||
3. | 未来ハーモニー | Kanata Okajima | Akira Sunset、ulala | ulala、Akira Sunset | 虹咲学园学园偶像同好会 | |||
5. | かすみのトキメキ |
[ドラマパート] |
外部链接
本页面含有来自萌娘百科的文本,以CC BY-NC-SA 3.0授权引入。经过双方的修改,内容可能已与来源有很大差异。
local p = {} local getArgs = require("module:arguments").getArgs local ml = require("module:multilist").ml local cv = require("module:multilist").cv function langWrap(text) local result = "" for k, v in ipairs(mw.text.split(text, "、")) do if k > 1 then result = result.."、" end result = result.."<span lang=\"ja\">-{"..v.."}-</span>" end return result end function trim(text) return (text and text ~= "") and 1 or 0 end function trim2(text) return (text and text ~= "") and text or false end function p.main(frame) local args = getArgs(frame, {removeBlanks = false}) local ljcols = 1 + trim(args.lyrics_credits) + trim(args.music_credits) + trim(args.arranger_credits) local isNumbered = trim(args.number) local ncols = ljcols + isNumbered + trim(args.singer_credits) + trim(args.extra_column) + trim(args.longnote_column) + trim(args.length) local iscv = trim(args.display_cv) local firstNumber = trim2(args.firstNumber) or 1 local info = (trim2(args.all_writing) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟-{zh-hans:作词;zh-hant:填詞;zh-tw:作詞;}-及作曲:"..langWrap(args.all_writing).."</span>") or "") .. (trim2(args.all_lyrics) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟-{zh-hans:作词;zh-hant:填詞;zh-tw:作詞;}-:"..langWrap(args.all_lyrics).."</span>") or "") .. (trim2(args.all_music) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟作曲:"..langWrap(args.all_music).."</span>") or "") .. (trim2(args.all_arranger) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟编曲:"..langWrap(args.all_arranger).."</span>") or "") .. (trim2(args.all_string_arranger) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟弦编曲:"..langWrap(args.all_string_arranger).."</span>") or "") .. (trim2(args.all_singer) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟演唱:"..ml(frame, {args.all_singer, true}).."</span>") or "") .. ((args.all_note == "except" or args.all_note == "yes") and "<br><small>(下面注明例外曲目)</small>" or (args.all_note or '')) .. (args.all_note2 or "") local wikitext = "<div class=\"tracklist" .. (trim2(args.length) and " tracklist-length" or "").."\"" .. (trim2(args.collapsed) and " style=\"border:#aaa 1px solid\"" or "")..">\n" .. "{|"..(trim2(args.collapsed) and "class=\"mw-collapsible"..((args.collapsed == "closed" or args.collapsed == "yes") and " mw-collapsed" or "").."\"" or "").."\n" .. "!colspan=9|"..(trim2(args.headline) or "曲目列表")..(info == "" and "" or ("<div style=\"font-weight:normal\">"..info.."</div>")).."\n" .. "|-"..(trim2(args.color) and "style=\"background-color:"..frame:expandTemplate{title = args.color.."/color"}..";color:white\"" or "").."\n" .. "!曲序!!曲目"..(trim2(args.lyrics_credits) and "!! -{zh-hans:作词;zh-hant:填詞;zh-tw:作詞;}-" or "")..(trim2(args.music_credits) and "!! 作曲" or "")..(trim2(args.arranger_credits) and "!! 编曲" or "")..(trim2(args.singer_credits) and "!! 演唱" or "")..(trim2(args.extra_column) and "!!"..args.extra_column or "")..(trim2(args.longnote_column) and "!! 备注" or "")..(trim2(args.length) and "!! style=\"width:3em\" | 时长" or "") for k, v in ipairs(args) do local r = (k - 1) % ncols - isNumbered wikitext = wikitext.."\n|" if r == -1 then wikitext = wikitext.."-\n|"..(trim2(v) or tostring(math.ceil(k / ncols) + firstNumber - 1)..".") elseif r == 0 then if isNumbered == 0 then wikitext = wikitext.."-\n|"..tostring(math.ceil(k / ncols) + firstNumber - 1)..".\n|" end wikitext = wikitext.."<span lang=\"ja\">-{"..v.."}-</span>" else if r < ljcols then wikitext = wikitext..langWrap(v) elseif r == ljcols and args.singer_credits then if iscv == 1 then wikitext = wikitext..cv(frame, {v}) else wikitext = wikitext..ml(frame, {v}) end else wikitext = wikitext..(v or "") end end end wikitext = wikitext..(trim2(args.more) and "\n|-\n|colspan=9|"..args.more or "").."\n|}</div>" return wikitext end return p