LLWiki正在建设中,欢迎加入我们

模块:Tracklist

来自LLWiki
跳转到导航 跳转到搜索
Template-info.png 模块文档
这个文档嵌入模块: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 Sunsetulala ulalaAkira 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

local 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

local function trim(text)
	return (text and text ~= "") and 1 or 0
end

local 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_wind_arranger) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟管编曲:"..langWrap(args.all_wind_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