<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://tensura-wiki.info/w/index.php?action=history&amp;feed=atom&amp;title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%3ATracklist</id>
	<title>モジュール:Tracklist - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://tensura-wiki.info/w/index.php?action=history&amp;feed=atom&amp;title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%3ATracklist"/>
	<link rel="alternate" type="text/html" href="https://tensura-wiki.info/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Tracklist&amp;action=history"/>
	<updated>2026-06-01T20:58:28Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://tensura-wiki.info/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Tracklist&amp;diff=2350&amp;oldid=prev</id>
		<title>ド馬: 1版 をインポートしました</title>
		<link rel="alternate" type="text/html" href="https://tensura-wiki.info/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Tracklist&amp;diff=2350&amp;oldid=prev"/>
		<updated>2025-07-18T20:17:56Z</updated>

		<summary type="html">&lt;p&gt;1版 をインポートしました&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2025年7月19日 (土) 05:17時点における版&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key xs951322_dobadobadoba:diff::1.12:old-2349:rev-2350 --&gt;
&lt;/table&gt;</summary>
		<author><name>ド馬</name></author>
	</entry>
	<entry>
		<id>https://tensura-wiki.info/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Tracklist&amp;diff=2349&amp;oldid=prev</id>
		<title>ja&gt;Bcxfu75k: ダークモード対応</title>
		<link rel="alternate" type="text/html" href="https://tensura-wiki.info/w/index.php?title=%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB:Tracklist&amp;diff=2349&amp;oldid=prev"/>
		<updated>2025-05-11T02:05:53Z</updated>

		<summary type="html">&lt;p&gt;ダークモード対応&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
--共通変数&lt;br /&gt;
local track = {}	--トラックテーブル格納用テーブル&lt;br /&gt;
local all = {}	--全○○格納用テーブル&lt;br /&gt;
local desc = {nil, nil}	--コメント格納用テーブル&lt;br /&gt;
local credits = {}	--クレジット表示可否格納用テーブル&lt;br /&gt;
local args = {}	--その他引数格納用テーブル&lt;br /&gt;
local col = 0	--列数&lt;br /&gt;
local width = {}	--列幅格納用テーブル&lt;br /&gt;
local collapsed = false	--折りたたみ可否&lt;br /&gt;
local writer, lyrics, music, arranger, extra, length = function() return '' end, function() return '' end, function() return '' end, function() return '' end, function() return '' end, function() return '' end	--基本セル関数&lt;br /&gt;
local md = true	--microdata on/off&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
引数取得&lt;br /&gt;
]]&lt;br /&gt;
local function getArgs(frame)&lt;br /&gt;
	local t_info, t_num = '', 0&lt;br /&gt;
	local func_credits = function(v)&lt;br /&gt;
		if v == 'yes' then return true end&lt;br /&gt;
		local alias = {'+arrangements', '+a', '+編曲', '・編曲'}&lt;br /&gt;
		for _k, _v in ipairs(alias) do&lt;br /&gt;
			if v == _v then return _v end&lt;br /&gt;
		end&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	for k, v in pairs(require('Module:Arguments').getArgs(frame, {parentOnly = true})) do&lt;br /&gt;
		if string.match(k, '^%D+%d+$') then&lt;br /&gt;
			--各トラック格納&lt;br /&gt;
			t_info, t_num = string.match(k, '(%D+)(%d+)')&lt;br /&gt;
			if not track[t_num] then track[t_num] = {} end&lt;br /&gt;
			track[t_num][1] = tonumber(t_num)		-- トラック番号はkey=1で記録&lt;br /&gt;
			track[t_num][t_info] = v	-- トラック情報はkey=引数で記録&lt;br /&gt;
		elseif string.match(k, 'all_') then&lt;br /&gt;
			--全○○格納&lt;br /&gt;
			local pattern = string.gsub(k, 'all_', '')&lt;br /&gt;
			if not all[pattern] then all[pattern] = {nil, v} end&lt;br /&gt;
		elseif string.match(k, '^%d$') then&lt;br /&gt;
			--コメント格納&lt;br /&gt;
			desc[k] = string.gsub(v, '^([*#;:])', '\n%1')&lt;br /&gt;
		elseif string.match(k, '_credits') then&lt;br /&gt;
			--クレジット表示可否格納&lt;br /&gt;
			credits[string.gsub(k, '_credits', '')] = func_credits(v)&lt;br /&gt;
		else&lt;br /&gt;
			-- その他格納&lt;br /&gt;
			args[k] = v&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--allの整理&lt;br /&gt;
	if all then&lt;br /&gt;
		local function isSame(a, b)	--リンクを考慮して文字列を比較する&lt;br /&gt;
			if a and b then&lt;br /&gt;
				return (string.match(a[2], '%[%[.-%|(.-)]]') or string.match(a[2], '%[%[(.-)]]') or a[2]) == (string.match(b[2], '%[%[.-%|(.-)]]') or string.match(b[2], '%[%[(.-)]]') or b[2])&lt;br /&gt;
			else&lt;br /&gt;
				return false&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		&lt;br /&gt;
		if not all.writing and isSame(all.lyrics, all.music) then&lt;br /&gt;
			all.writing = {nil, all.lyrics[2]}&lt;br /&gt;
		end&lt;br /&gt;
		if all.writing then&lt;br /&gt;
			all.lyrics, all.music = nil, nil&lt;br /&gt;
			all.writing[1] = '全作詞・作曲: '&lt;br /&gt;
		else&lt;br /&gt;
			if all.lyrics then all.lyrics[1] = '全作詞: ' end&lt;br /&gt;
			if all.music then all.music[1] = '全作曲: ' end&lt;br /&gt;
		end&lt;br /&gt;
		if isSame(all.writing, all.arrangements) then&lt;br /&gt;
			all.all = {'全作詞・作曲・編曲: ', all.writing[2]}&lt;br /&gt;
			all.writing, all.arrangements = nil, nil&lt;br /&gt;
		else&lt;br /&gt;
			if all.arrangements then all.arrangements[1] = '全編曲: ' end&lt;br /&gt;
		end&lt;br /&gt;
		if isSame(all.music, all.arrangements) then&lt;br /&gt;
			all.producing = {'全作曲・編曲: ', all.music[2]}&lt;br /&gt;
			all.music, all.arrangements = nil, nil&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	credits.extra = args.extra_column&lt;br /&gt;
	if credits.writing then&lt;br /&gt;
		credits.lyrics, credits.music = false, false&lt;br /&gt;
		if credits.writing ~= true then credits.arrangements = false end&lt;br /&gt;
	end&lt;br /&gt;
	if credits.music and credits.music ~= true then credits.arrangements = false end&lt;br /&gt;
	collapsed = (args.collapsed == 'yes')&lt;br /&gt;
	md = (args.microdata == 'no') and false or args.id&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
列数計算&lt;br /&gt;
]]&lt;br /&gt;
local function calc_columns()&lt;br /&gt;
	local col = 2	--#,タイトル&lt;br /&gt;
	for k, v in pairs(track) do&lt;br /&gt;
		if not v.length then&lt;br /&gt;
			credits.length = false&lt;br /&gt;
		else&lt;br /&gt;
			credits.length = true&lt;br /&gt;
			break&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	for k, v in pairs(credits) do&lt;br /&gt;
		if v then col = col + 1 end&lt;br /&gt;
	end&lt;br /&gt;
	return col&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
幅計算&lt;br /&gt;
]]&lt;br /&gt;
local function calc_width()&lt;br /&gt;
	local width = {}&lt;br /&gt;
	if not credits.length then col = col + 1 end&lt;br /&gt;
	if col &amp;lt; 4 then&lt;br /&gt;
		width.title, width.credits = '100%', 'auto'&lt;br /&gt;
	elseif col &amp;lt; 5 then&lt;br /&gt;
		width.title, width.credits = '60%', '40%'&lt;br /&gt;
	elseif col &amp;lt; 6 then&lt;br /&gt;
		width.title, width.credits = '40%', '30%'&lt;br /&gt;
	elseif col &amp;lt; 7 then&lt;br /&gt;
		width.title, width.credits = '40%', '20%'&lt;br /&gt;
	else&lt;br /&gt;
		width.title, width.credits = '40%', '15%'&lt;br /&gt;
	end&lt;br /&gt;
	return width&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
ヘッダ部&lt;br /&gt;
]]&lt;br /&gt;
local function header()&lt;br /&gt;
	--キャプション定義&lt;br /&gt;
	local result = (args.headline or collapsed) and '&amp;lt;caption style=&amp;quot;text-align:left; padding:0.25em 0.9em; font-weight:bold; line-height:1.4em; white-space:nowrap;&amp;quot;&amp;gt;' .. (args.headline or 'トラックリスト') .. '&amp;lt;/caption&amp;gt;' or ''&lt;br /&gt;
	&lt;br /&gt;
	if collapsed then&lt;br /&gt;
		--折りたたみ表示において[表示]ボタン行追加&lt;br /&gt;
		result = result .. '&amp;lt;tr style=&amp;quot;position:absolute; top:0.25em; right:0.9em; speak:none;&amp;quot;&amp;gt;&amp;lt;th colspan=&amp;quot;' .. col .. '&amp;quot;&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local newall = {}	--全○○表示用テーブル&lt;br /&gt;
	if all then	--全○○/コメント表示のとき&lt;br /&gt;
		if all.lyrics and not credits.lyrics then newall[1] = all.lyrics[1] .. all.lyrics[2] end&lt;br /&gt;
		if all.music and not credits.music then newall[#newall + 1] = all.music[1] .. all.music[2] end&lt;br /&gt;
		if all.all and not credits.writing and not credits.lyrics and not credits.music and not credits.arrangements then&lt;br /&gt;
			newall[1] = all.all[1] .. all.all[2]&lt;br /&gt;
		elseif all.writing and not credits.writing and not credits.lyrics and not credits.music then&lt;br /&gt;
			newall[1] = all.writing[1] .. all.writing[2]&lt;br /&gt;
		elseif all.producing and not credits.music and not credits.arrangements then&lt;br /&gt;
			newall[#newall + 1] = all.producing[1] .. all.producing[2]&lt;br /&gt;
		end&lt;br /&gt;
		if all.arrangements and not credits.arrangements then newall[#newall + 1] = all.arrangements[1] .. all.arrangements[2] end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	if newall[1] or #desc &amp;gt; 0 then&lt;br /&gt;
		--全○○/コメント行追加&lt;br /&gt;
		result = result .. '&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;' .. col .. '&amp;quot; style=&amp;quot;padding-left:0.5em;&amp;quot;&amp;gt;&amp;lt;small style=&amp;quot;font-size:100%;&amp;quot;&amp;gt;' .. (desc[1] or '') .. (newall[1] and (table.concat(newall, '、') .. '。') or '') .. (desc[2] or '') .. '&amp;lt;/small&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;'&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--見出し行追加（#列・タイトル列追加）&lt;br /&gt;
	result = result .. '&amp;lt;tr style=&amp;quot;text-align:left; background-color:var(--background-color-neutral,#eee); color:inherit; font-size:111%;&amp;quot;&amp;gt;&amp;lt;th scope=&amp;quot;col&amp;quot; style=&amp;quot;width:2em; padding-right:0.3em; text-align:right; white-space:nowrap;&amp;quot;&amp;gt;#&amp;lt;/th&amp;gt;&amp;lt;th scope=&amp;quot;col&amp;quot; style=&amp;quot;width:' .. width.title .. '; padding-left:0.9em; white-space:nowrap;&amp;quot;&amp;gt;タイトル&amp;lt;/th&amp;gt;'&lt;br /&gt;
	&lt;br /&gt;
	if credits.writing then&lt;br /&gt;
		--作詞・作曲列追加&lt;br /&gt;
		result = result .. '&amp;lt;th scope=&amp;quot;col&amp;quot; style=&amp;quot;width:' .. (args.writing_width or (credits.extra and '30%' or '40%')) .. ';&amp;quot;&amp;gt;作詞・作曲' .. (credits.writing == true and '' or '・編曲') .. '&amp;lt;/th&amp;gt;'&lt;br /&gt;
		--作詞・作曲セル関数再定義&lt;br /&gt;
		if md then&lt;br /&gt;
			writer = function(x) return '&amp;lt;td itemprop=&amp;quot;recordingOf&amp;quot; itemscope itemtype=&amp;quot;http://schema.org/MusicComposition&amp;quot;&amp;gt;&amp;lt;span itemprop=&amp;quot;lyricist composer&amp;quot; itemscope itemtype=&amp;quot;http://schema.org/Person&amp;quot;&amp;gt;&amp;lt;span itemprop=&amp;quot;name&amp;quot;&amp;gt;' .. (x.writer or all.writer and all.writer[2] or all.all and all.all[2] or '&amp;amp;nbsp;') .. '&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;' end&lt;br /&gt;
		else&lt;br /&gt;
			writer = function(x) return '&amp;lt;td&amp;gt;' .. (x.writer or all.writer and all.writer[2] or all.all and all.all[2] or '&amp;amp;nbsp;') .. '&amp;lt;/td&amp;gt;' end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		local disp = function(y) if y then return '' else return 'display:none;' end end&lt;br /&gt;
		--作詞列追加&lt;br /&gt;
		result = result .. '&amp;lt;th scope=&amp;quot;col&amp;quot; style=&amp;quot;width:' .. (args.lyrics_width or width.credits) .. ';' .. disp(credits.lyrics) .. '&amp;quot;&amp;gt;作詞&amp;lt;/th&amp;gt;'&lt;br /&gt;
		--作詞セル関数再定義&lt;br /&gt;
		if md then&lt;br /&gt;
			lyrics = function(x) return '&amp;lt;td itemprop=&amp;quot;recordingOf&amp;quot; itemscope itemtype=&amp;quot;http://schema.org/MusicComposition&amp;quot; style=&amp;quot;' .. disp(credits.lyrics) .. '&amp;quot;&amp;gt;&amp;lt;span itemprop=&amp;quot;lyricist&amp;quot; itemscope itemtype=&amp;quot;http://schema.org/Person&amp;quot;&amp;gt;&amp;lt;span itemprop=&amp;quot;name&amp;quot;&amp;gt;' .. (x.lyrics or all.lyrics and all.lyrics[2] or x.writer or all.writing and all.writing[2] or all.all and all.all[2] or '&amp;amp;nbsp;') .. '&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;' end&lt;br /&gt;
		else&lt;br /&gt;
			lyrics = function(x) return '&amp;lt;td style=&amp;quot;' .. disp(credits.lyrics) .. '&amp;quot;&amp;gt;' .. (x.lyrics or all.lyrics and all.lyrics[2] or x.writer or all.writing and all.writing[2] or all.all and all.all[2]  or '&amp;amp;nbsp;') .. '&amp;lt;/td&amp;gt;' end&lt;br /&gt;
		end&lt;br /&gt;
		--作曲列追加&lt;br /&gt;
		result = result .. '&amp;lt;th scope=&amp;quot;col&amp;quot; style=&amp;quot;width:' .. (args.music_width or width.credits) .. ';' .. disp(credits.music) .. '&amp;quot;&amp;gt;作曲' .. (credits.music == true and '' or '・編曲') .. '&amp;lt;/th&amp;gt;'&lt;br /&gt;
		--作曲セル関数再定義&lt;br /&gt;
		if md then&lt;br /&gt;
			music = function(x) return '&amp;lt;td itemprop=&amp;quot;recordingOf&amp;quot; itemscope itemtype=&amp;quot;http://schema.org/MusicComposition&amp;quot; style=&amp;quot;' .. disp(credits.music) .. '&amp;quot;&amp;gt;&amp;lt;span itemprop=&amp;quot;composer&amp;quot; itemscope itemtype=&amp;quot;http://schema.org/Person&amp;quot;&amp;gt;&amp;lt;span itemprop=&amp;quot;name&amp;quot;&amp;gt;' .. (x.music or all.music and all.music[2] or x.writer or all.writing and all.writing[2] or all.producing and all.producing[2]  or all.all and all.all[2] or '&amp;amp;nbsp;') .. '&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;' end&lt;br /&gt;
		else&lt;br /&gt;
			music = function(x) return '&amp;lt;td style=&amp;quot;' .. disp(credits.music) .. '&amp;quot;&amp;gt;' .. (x.music or all.music and all.music[2] or x.writer or all.writing and all.writing[2] or all.producing and all.producing[2]  or all.all and all.all[2] or '&amp;amp;nbsp;') .. '&amp;lt;/td&amp;gt;' end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if credits.arrangements then&lt;br /&gt;
		--編曲列追加&lt;br /&gt;
		result = result .. '&amp;lt;th scope=&amp;quot;col&amp;quot; style=&amp;quot;width:' .. (args.arrangements_width or width.credits) .. ';&amp;quot;&amp;gt;編曲&amp;lt;/th&amp;gt;'&lt;br /&gt;
		--編曲セル関数再定義&lt;br /&gt;
		arranger = function(x) return '&amp;lt;td&amp;gt;' .. (x.arranger or all.arrangements and all.arrangements[2] or all.producing and all.producing[2]  or all.all and all.all[2] or '&amp;amp;nbsp;') .. '&amp;lt;/td&amp;gt;' end&lt;br /&gt;
	end&lt;br /&gt;
	if credits.extra then&lt;br /&gt;
		--extra列追加&lt;br /&gt;
		result = result .. '&amp;lt;th scope=&amp;quot;col&amp;quot; style=&amp;quot;width:' .. (args.extra_width or width.credits) .. ';&amp;quot;&amp;gt;' .. credits.extra .. '&amp;lt;/th&amp;gt;'&lt;br /&gt;
		--extraセル関数再定義&lt;br /&gt;
		extra = function(x) return '&amp;lt;td&amp;gt;' .. (x.extra or '&amp;amp;nbsp;') .. '&amp;lt;/td&amp;gt;' end&lt;br /&gt;
	end&lt;br /&gt;
	if credits.length then&lt;br /&gt;
		--時間列追加&lt;br /&gt;
		result = result .. '&amp;lt;th scope=&amp;quot;col&amp;quot; style=&amp;quot;width:4em; padding-right:0.5em; text-align:right; white-space:nowrap;&amp;quot;&amp;gt;時間&amp;lt;/th&amp;gt;'&lt;br /&gt;
		--時間セル再定義&lt;br /&gt;
		if md then&lt;br /&gt;
			length = function(x) return '&amp;lt;td style=&amp;quot;padding-right:0.5em; text-align:right; white-space:nowrap;&amp;quot;&amp;gt;' .. (x.length and ('&amp;lt;time itemprop=&amp;quot;duration&amp;quot; datetime=&amp;quot;'.. string.gsub(x.length, '^(%d+):(%d+)$', 'PT%1M%2S') ..'&amp;quot;&amp;gt;' .. x.length .. '&amp;lt;/time&amp;gt;') or '&amp;amp;nbsp;') .. '&amp;lt;/td&amp;gt;' end&lt;br /&gt;
		else&lt;br /&gt;
			length = function(x) return '&amp;lt;td style=&amp;quot;padding-right:0.5em; text-align:right; white-space:nowrap;&amp;quot;&amp;gt;' .. (x.length and ('&amp;lt;time datetime=&amp;quot;'.. string.gsub(x.length, '^(%d+):(%d+)$', 'PT%1M%2S') ..'&amp;quot;&amp;gt;' .. x.length .. '&amp;lt;/time&amp;gt;') or '&amp;amp;nbsp;') .. '&amp;lt;/td&amp;gt;' end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	result = result .. '&amp;lt;/tr&amp;gt;'&lt;br /&gt;
	&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
本体部&lt;br /&gt;
]]&lt;br /&gt;
local function body()&lt;br /&gt;
	local result = ''&lt;br /&gt;
	local trackA = {}	--ソート用テーブル&lt;br /&gt;
	for k, v in pairs(track) do&lt;br /&gt;
		trackA[#trackA + 1] = v&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(trackA,&lt;br /&gt;
		function (a, b) return a[1] &amp;lt; b[1] end&lt;br /&gt;
	)&lt;br /&gt;
	if md then&lt;br /&gt;
		for k, v in ipairs(trackA) do&lt;br /&gt;
			local color = (v[1] % 2 == 0) and 'var(--background-color-neutral-subtle,#f7f7f7)' or 'var(--background-color-base,#fff)'	--偶数/奇数で別色指定&lt;br /&gt;
			result = result .. '&amp;lt;tr itemprop=&amp;quot;track&amp;quot; itemscope itemtype=&amp;quot;http://schema.org/MusicRecording&amp;quot; style=&amp;quot;background-color:' .. color .. '; color: inherit; vertical-align:top;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;padding-left:0.5em; text-align:right;&amp;quot;&amp;gt;&amp;lt;span itemprop=&amp;quot;position&amp;quot;&amp;gt;' .. (v['#'] or v[1]) .. '&amp;lt;/span&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;' .. (v.title and ('「&amp;lt;span itemprop=&amp;quot;name&amp;quot;&amp;gt;' .. v.title .. '&amp;lt;/span&amp;gt;」') or 'タイトルなし') .. (v.note and ('&amp;lt;small&amp;gt;(' .. v.note .. ')&amp;lt;/small&amp;gt;') or '') .. '&amp;lt;/td&amp;gt;' .. writer(v) .. lyrics(v) .. music(v) .. arranger(v) ..  extra(v) .. length(v) .. '&amp;lt;/tr&amp;gt;'&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		for k, v in ipairs(trackA) do&lt;br /&gt;
			local color = (v[1] % 2 == 0) and 'var(--background-color-neutral-subtle,#f7f7f7)' or 'var(--background-color-base,#fff)'&lt;br /&gt;
			result = result .. '&amp;lt;tr style=&amp;quot;background-color:' .. color .. '; color: inherit; vertical-align:top;&amp;quot;&amp;gt;&amp;lt;td style=&amp;quot;padding-left:0.5em; text-align:right;&amp;quot;&amp;gt;' .. (v['#'] or v[1]) .. '.&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;' .. (v.title and ('「' .. v.title .. '」') or 'タイトルなし') .. (v.note and ('&amp;lt;small&amp;gt;(' .. v.note .. ')&amp;lt;/small&amp;gt;') or '') .. '&amp;lt;/td&amp;gt;' .. writer(v) .. lyrics(v) .. music(v) .. arranger(v) ..  extra(v) .. length(v) .. '&amp;lt;/tr&amp;gt;'&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
フッタ部（合計時間）&lt;br /&gt;
]]&lt;br /&gt;
local function footer()&lt;br /&gt;
	local total = args.total_length&lt;br /&gt;
	local hour, min, sec = 0, 0, 0&lt;br /&gt;
	if total == 'auto' then&lt;br /&gt;
		--合計時間計算&lt;br /&gt;
		for k, v in pairs(track) do&lt;br /&gt;
			if not v.length then v.length = '0:00' end&lt;br /&gt;
			local _min, _sec = string.match(v.length, '(%d+):(%d+)')&lt;br /&gt;
			min, sec = min + _min, sec + _sec&lt;br /&gt;
		end&lt;br /&gt;
		while sec &amp;gt; 59 do&lt;br /&gt;
			min = min + 1&lt;br /&gt;
			sec = sec - 60&lt;br /&gt;
		end&lt;br /&gt;
		if sec &amp;lt; 10 then sec = '0' .. sec end&lt;br /&gt;
		total = min .. ':' .. sec&lt;br /&gt;
	end&lt;br /&gt;
	if total and total == string.match(total, '%d*:%d*') then&lt;br /&gt;
		--&amp;lt;time&amp;gt;タグ&lt;br /&gt;
		hour, min, sec = string.match(total, '(%d-):?(%d+):(%d+)')&lt;br /&gt;
		hour = (hour ~= '') and tonumber(hour) or 0&lt;br /&gt;
		min = hour * 60 + tonumber(min)&lt;br /&gt;
		total = '&amp;lt;time datetime=&amp;quot;PT' .. min .. 'M' .. sec .. 'S&amp;quot;&amp;gt;'.. min .. ':' .. sec .. '&amp;lt;/time&amp;gt;'&lt;br /&gt;
		--合計時間行追加&lt;br /&gt;
		return '&amp;lt;tr style=&amp;quot;text-align:right; font-size:111%;&amp;quot;&amp;gt;&amp;lt;th colspan=&amp;quot;' .. (col - 1) .. '&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;width:7.5em; text-align:left; margin:0 0 0 auto; padding-left:0.5em; white-space:nowrap; font-weight:bold; background-color:var(--background-color-neutral,#eee); color:inherit; outline:1px solid var(--background-color-neutral,#eee);&amp;quot;&amp;gt;合計時間:&amp;lt;/div&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;td style=&amp;quot;padding-right:0.5em; background-color:var(--background-color-neutral,#eee); color:inherit;&amp;quot;&amp;gt;'.. total .. '&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;'&lt;br /&gt;
	else&lt;br /&gt;
		return ''&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	getArgs(frame)&lt;br /&gt;
	col = calc_columns()	--number&lt;br /&gt;
	width = calc_width()	--table&lt;br /&gt;
	&lt;br /&gt;
	--tableタグで囲んで出力&lt;br /&gt;
	local table = mw.html.create('table')&lt;br /&gt;
	table&lt;br /&gt;
		:wikitext(header() .. body() .. footer())	--tableタグ内&lt;br /&gt;
		:attr({class = 'tracklist', id = args.id or ''})&lt;br /&gt;
		:cssText('display:block; max-width:100%; width:auto; border-spacing:0px; border-collapse:collapse; padding:0.2em; font-size:90%; text-align:left;')&lt;br /&gt;
	if collapsed then&lt;br /&gt;
		--折りたたみ表示追加指定&lt;br /&gt;
		table&lt;br /&gt;
			:addClass('mw-collapsible mw-collapsed')&lt;br /&gt;
			:cssText('position:relative; overflow:hidden; outline:1px solid #aaa;')&lt;br /&gt;
	end&lt;br /&gt;
	if md then&lt;br /&gt;
		table:attr({itemtype = 'http://schema.org/MusicAlbum'})&lt;br /&gt;
	end&lt;br /&gt;
	return tostring(table)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>ja&gt;Bcxfu75k</name></author>
	</entry>
</feed>