<?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-11-03T14:32:34Z</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 &amp;#039;&amp;#039; end, function() return &amp;#039;&amp;#039; end, function() return &amp;#039;&amp;#039; end, function() return &amp;#039;&amp;#039; end, function() return &amp;#039;&amp;#039; end, function() return &amp;#039;&amp;#039; 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 = &amp;#039;&amp;#039;, 0&lt;br /&gt;
	local func_credits = function(v)&lt;br /&gt;
		if v == &amp;#039;yes&amp;#039; then return true end&lt;br /&gt;
		local alias = {&amp;#039;+arrangements&amp;#039;, &amp;#039;+a&amp;#039;, &amp;#039;+編曲&amp;#039;, &amp;#039;・編曲&amp;#039;}&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(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, {parentOnly = true})) do&lt;br /&gt;
		if string.match(k, &amp;#039;^%D+%d+$&amp;#039;) then&lt;br /&gt;
			--各トラック格納&lt;br /&gt;
			t_info, t_num = string.match(k, &amp;#039;(%D+)(%d+)&amp;#039;)&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, &amp;#039;all_&amp;#039;) then&lt;br /&gt;
			--全○○格納&lt;br /&gt;
			local pattern = string.gsub(k, &amp;#039;all_&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
			if not all[pattern] then all[pattern] = {nil, v} end&lt;br /&gt;
		elseif string.match(k, &amp;#039;^%d$&amp;#039;) then&lt;br /&gt;
			--コメント格納&lt;br /&gt;
			desc[k] = string.gsub(v, &amp;#039;^([*#;:])&amp;#039;, &amp;#039;\n%1&amp;#039;)&lt;br /&gt;
		elseif string.match(k, &amp;#039;_credits&amp;#039;) then&lt;br /&gt;
			--クレジット表示可否格納&lt;br /&gt;
			credits[string.gsub(k, &amp;#039;_credits&amp;#039;, &amp;#039;&amp;#039;)] = 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], &amp;#039;%[%[.-%|(.-)]]&amp;#039;) or string.match(a[2], &amp;#039;%[%[(.-)]]&amp;#039;) or a[2]) == (string.match(b[2], &amp;#039;%[%[.-%|(.-)]]&amp;#039;) or string.match(b[2], &amp;#039;%[%[(.-)]]&amp;#039;) 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] = &amp;#039;全作詞・作曲: &amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			if all.lyrics then all.lyrics[1] = &amp;#039;全作詞: &amp;#039; end&lt;br /&gt;
			if all.music then all.music[1] = &amp;#039;全作曲: &amp;#039; end&lt;br /&gt;
		end&lt;br /&gt;
		if isSame(all.writing, all.arrangements) then&lt;br /&gt;
			all.all = {&amp;#039;全作詞・作曲・編曲: &amp;#039;, 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] = &amp;#039;全編曲: &amp;#039; end&lt;br /&gt;
		end&lt;br /&gt;
		if isSame(all.music, all.arrangements) then&lt;br /&gt;
			all.producing = {&amp;#039;全作曲・編曲: &amp;#039;, 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 == &amp;#039;yes&amp;#039;)&lt;br /&gt;
	md = (args.microdata == &amp;#039;no&amp;#039;) 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 = &amp;#039;100%&amp;#039;, &amp;#039;auto&amp;#039;&lt;br /&gt;
	elseif col &amp;lt; 5 then&lt;br /&gt;
		width.title, width.credits = &amp;#039;60%&amp;#039;, &amp;#039;40%&amp;#039;&lt;br /&gt;
	elseif col &amp;lt; 6 then&lt;br /&gt;
		width.title, width.credits = &amp;#039;40%&amp;#039;, &amp;#039;30%&amp;#039;&lt;br /&gt;
	elseif col &amp;lt; 7 then&lt;br /&gt;
		width.title, width.credits = &amp;#039;40%&amp;#039;, &amp;#039;20%&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		width.title, width.credits = &amp;#039;40%&amp;#039;, &amp;#039;15%&amp;#039;&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;#039;&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;&amp;#039; .. (args.headline or &amp;#039;トラックリスト&amp;#039;) .. &amp;#039;&amp;lt;/caption&amp;gt;&amp;#039; or &amp;#039;&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	if collapsed then&lt;br /&gt;
		--折りたたみ表示において[表示]ボタン行追加&lt;br /&gt;
		result = result .. &amp;#039;&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;&amp;#039; .. col .. &amp;#039;&amp;quot;&amp;gt;&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&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;#039;&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;quot;&amp;#039; .. col .. &amp;#039;&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;&amp;#039; .. (desc[1] or &amp;#039;&amp;#039;) .. (newall[1] and (table.concat(newall, &amp;#039;、&amp;#039;) .. &amp;#039;。&amp;#039;) or &amp;#039;&amp;#039;) .. (desc[2] or &amp;#039;&amp;#039;) .. &amp;#039;&amp;lt;/small&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	--見出し行追加（#列・タイトル列追加）&lt;br /&gt;
	result = result .. &amp;#039;&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:&amp;#039; .. width.title .. &amp;#039;; padding-left:0.9em; white-space:nowrap;&amp;quot;&amp;gt;タイトル&amp;lt;/th&amp;gt;&amp;#039;&lt;br /&gt;
	&lt;br /&gt;
	if credits.writing then&lt;br /&gt;
		--作詞・作曲列追加&lt;br /&gt;
		result = result .. &amp;#039;&amp;lt;th scope=&amp;quot;col&amp;quot; style=&amp;quot;width:&amp;#039; .. (args.writing_width or (credits.extra and &amp;#039;30%&amp;#039; or &amp;#039;40%&amp;#039;)) .. &amp;#039;;&amp;quot;&amp;gt;作詞・作曲&amp;#039; .. (credits.writing == true and &amp;#039;&amp;#039; or &amp;#039;・編曲&amp;#039;) .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039;&lt;br /&gt;
		--作詞・作曲セル関数再定義&lt;br /&gt;
		if md then&lt;br /&gt;
			writer = function(x) return &amp;#039;&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;&amp;#039; .. (x.writer or all.writer and all.writer[2] or all.all and all.all[2] or &amp;#039;&amp;amp;nbsp;&amp;#039;) .. &amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;#039; end&lt;br /&gt;
		else&lt;br /&gt;
			writer = function(x) return &amp;#039;&amp;lt;td&amp;gt;&amp;#039; .. (x.writer or all.writer and all.writer[2] or all.all and all.all[2] or &amp;#039;&amp;amp;nbsp;&amp;#039;) .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039; end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		local disp = function(y) if y then return &amp;#039;&amp;#039; else return &amp;#039;display:none;&amp;#039; end end&lt;br /&gt;
		--作詞列追加&lt;br /&gt;
		result = result .. &amp;#039;&amp;lt;th scope=&amp;quot;col&amp;quot; style=&amp;quot;width:&amp;#039; .. (args.lyrics_width or width.credits) .. &amp;#039;;&amp;#039; .. disp(credits.lyrics) .. &amp;#039;&amp;quot;&amp;gt;作詞&amp;lt;/th&amp;gt;&amp;#039;&lt;br /&gt;
		--作詞セル関数再定義&lt;br /&gt;
		if md then&lt;br /&gt;
			lyrics = function(x) return &amp;#039;&amp;lt;td itemprop=&amp;quot;recordingOf&amp;quot; itemscope itemtype=&amp;quot;http://schema.org/MusicComposition&amp;quot; style=&amp;quot;&amp;#039; .. disp(credits.lyrics) .. &amp;#039;&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;&amp;#039; .. (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;#039;&amp;amp;nbsp;&amp;#039;) .. &amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;#039; end&lt;br /&gt;
		else&lt;br /&gt;
			lyrics = function(x) return &amp;#039;&amp;lt;td style=&amp;quot;&amp;#039; .. disp(credits.lyrics) .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. (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;#039;&amp;amp;nbsp;&amp;#039;) .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039; end&lt;br /&gt;
		end&lt;br /&gt;
		--作曲列追加&lt;br /&gt;
		result = result .. &amp;#039;&amp;lt;th scope=&amp;quot;col&amp;quot; style=&amp;quot;width:&amp;#039; .. (args.music_width or width.credits) .. &amp;#039;;&amp;#039; .. disp(credits.music) .. &amp;#039;&amp;quot;&amp;gt;作曲&amp;#039; .. (credits.music == true and &amp;#039;&amp;#039; or &amp;#039;・編曲&amp;#039;) .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039;&lt;br /&gt;
		--作曲セル関数再定義&lt;br /&gt;
		if md then&lt;br /&gt;
			music = function(x) return &amp;#039;&amp;lt;td itemprop=&amp;quot;recordingOf&amp;quot; itemscope itemtype=&amp;quot;http://schema.org/MusicComposition&amp;quot; style=&amp;quot;&amp;#039; .. disp(credits.music) .. &amp;#039;&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;&amp;#039; .. (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;#039;&amp;amp;nbsp;&amp;#039;) .. &amp;#039;&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/td&amp;gt;&amp;#039; end&lt;br /&gt;
		else&lt;br /&gt;
			music = function(x) return &amp;#039;&amp;lt;td style=&amp;quot;&amp;#039; .. disp(credits.music) .. &amp;#039;&amp;quot;&amp;gt;&amp;#039; .. (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;#039;&amp;amp;nbsp;&amp;#039;) .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039; 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;#039;&amp;lt;th scope=&amp;quot;col&amp;quot; style=&amp;quot;width:&amp;#039; .. (args.arrangements_width or width.credits) .. &amp;#039;;&amp;quot;&amp;gt;編曲&amp;lt;/th&amp;gt;&amp;#039;&lt;br /&gt;
		--編曲セル関数再定義&lt;br /&gt;
		arranger = function(x) return &amp;#039;&amp;lt;td&amp;gt;&amp;#039; .. (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;#039;&amp;amp;nbsp;&amp;#039;) .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039; end&lt;br /&gt;
	end&lt;br /&gt;
	if credits.extra then&lt;br /&gt;
		--extra列追加&lt;br /&gt;
		result = result .. &amp;#039;&amp;lt;th scope=&amp;quot;col&amp;quot; style=&amp;quot;width:&amp;#039; .. (args.extra_width or width.credits) .. &amp;#039;;&amp;quot;&amp;gt;&amp;#039; .. credits.extra .. &amp;#039;&amp;lt;/th&amp;gt;&amp;#039;&lt;br /&gt;
		--extraセル関数再定義&lt;br /&gt;
		extra = function(x) return &amp;#039;&amp;lt;td&amp;gt;&amp;#039; .. (x.extra or &amp;#039;&amp;amp;nbsp;&amp;#039;) .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039; end&lt;br /&gt;
	end&lt;br /&gt;
	if credits.length then&lt;br /&gt;
		--時間列追加&lt;br /&gt;
		result = result .. &amp;#039;&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;&amp;#039;&lt;br /&gt;
		--時間セル再定義&lt;br /&gt;
		if md then&lt;br /&gt;
			length = function(x) return &amp;#039;&amp;lt;td style=&amp;quot;padding-right:0.5em; text-align:right; white-space:nowrap;&amp;quot;&amp;gt;&amp;#039; .. (x.length and (&amp;#039;&amp;lt;time itemprop=&amp;quot;duration&amp;quot; datetime=&amp;quot;&amp;#039;.. string.gsub(x.length, &amp;#039;^(%d+):(%d+)$&amp;#039;, &amp;#039;PT%1M%2S&amp;#039;) ..&amp;#039;&amp;quot;&amp;gt;&amp;#039; .. x.length .. &amp;#039;&amp;lt;/time&amp;gt;&amp;#039;) or &amp;#039;&amp;amp;nbsp;&amp;#039;) .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039; end&lt;br /&gt;
		else&lt;br /&gt;
			length = function(x) return &amp;#039;&amp;lt;td style=&amp;quot;padding-right:0.5em; text-align:right; white-space:nowrap;&amp;quot;&amp;gt;&amp;#039; .. (x.length and (&amp;#039;&amp;lt;time datetime=&amp;quot;&amp;#039;.. string.gsub(x.length, &amp;#039;^(%d+):(%d+)$&amp;#039;, &amp;#039;PT%1M%2S&amp;#039;) ..&amp;#039;&amp;quot;&amp;gt;&amp;#039; .. x.length .. &amp;#039;&amp;lt;/time&amp;gt;&amp;#039;) or &amp;#039;&amp;amp;nbsp;&amp;#039;) .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039; end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	result = result .. &amp;#039;&amp;lt;/tr&amp;gt;&amp;#039;&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 = &amp;#039;&amp;#039;&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 &amp;#039;var(--background-color-neutral-subtle,#f7f7f7)&amp;#039; or &amp;#039;var(--background-color-base,#fff)&amp;#039;	--偶数/奇数で別色指定&lt;br /&gt;
			result = result .. &amp;#039;&amp;lt;tr itemprop=&amp;quot;track&amp;quot; itemscope itemtype=&amp;quot;http://schema.org/MusicRecording&amp;quot; style=&amp;quot;background-color:&amp;#039; .. color .. &amp;#039;; 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;&amp;#039; .. (v[&amp;#039;#&amp;#039;] or v[1]) .. &amp;#039;&amp;lt;/span&amp;gt;.&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039; .. (v.title and (&amp;#039;「&amp;lt;span itemprop=&amp;quot;name&amp;quot;&amp;gt;&amp;#039; .. v.title .. &amp;#039;&amp;lt;/span&amp;gt;」&amp;#039;) or &amp;#039;タイトルなし&amp;#039;) .. (v.note and (&amp;#039;&amp;lt;small&amp;gt;(&amp;#039; .. v.note .. &amp;#039;)&amp;lt;/small&amp;gt;&amp;#039;) or &amp;#039;&amp;#039;) .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039; .. writer(v) .. lyrics(v) .. music(v) .. arranger(v) ..  extra(v) .. length(v) .. &amp;#039;&amp;lt;/tr&amp;gt;&amp;#039;&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 &amp;#039;var(--background-color-neutral-subtle,#f7f7f7)&amp;#039; or &amp;#039;var(--background-color-base,#fff)&amp;#039;&lt;br /&gt;
			result = result .. &amp;#039;&amp;lt;tr style=&amp;quot;background-color:&amp;#039; .. color .. &amp;#039;; 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;#039; .. (v[&amp;#039;#&amp;#039;] or v[1]) .. &amp;#039;.&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;#039; .. (v.title and (&amp;#039;「&amp;#039; .. v.title .. &amp;#039;」&amp;#039;) or &amp;#039;タイトルなし&amp;#039;) .. (v.note and (&amp;#039;&amp;lt;small&amp;gt;(&amp;#039; .. v.note .. &amp;#039;)&amp;lt;/small&amp;gt;&amp;#039;) or &amp;#039;&amp;#039;) .. &amp;#039;&amp;lt;/td&amp;gt;&amp;#039; .. writer(v) .. lyrics(v) .. music(v) .. arranger(v) ..  extra(v) .. length(v) .. &amp;#039;&amp;lt;/tr&amp;gt;&amp;#039;&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 == &amp;#039;auto&amp;#039; then&lt;br /&gt;
		--合計時間計算&lt;br /&gt;
		for k, v in pairs(track) do&lt;br /&gt;
			if not v.length then v.length = &amp;#039;0:00&amp;#039; end&lt;br /&gt;
			local _min, _sec = string.match(v.length, &amp;#039;(%d+):(%d+)&amp;#039;)&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 = &amp;#039;0&amp;#039; .. sec end&lt;br /&gt;
		total = min .. &amp;#039;:&amp;#039; .. sec&lt;br /&gt;
	end&lt;br /&gt;
	if total and total == string.match(total, &amp;#039;%d*:%d*&amp;#039;) then&lt;br /&gt;
		--&amp;lt;time&amp;gt;タグ&lt;br /&gt;
		hour, min, sec = string.match(total, &amp;#039;(%d-):?(%d+):(%d+)&amp;#039;)&lt;br /&gt;
		hour = (hour ~= &amp;#039;&amp;#039;) and tonumber(hour) or 0&lt;br /&gt;
		min = hour * 60 + tonumber(min)&lt;br /&gt;
		total = &amp;#039;&amp;lt;time datetime=&amp;quot;PT&amp;#039; .. min .. &amp;#039;M&amp;#039; .. sec .. &amp;#039;S&amp;quot;&amp;gt;&amp;#039;.. min .. &amp;#039;:&amp;#039; .. sec .. &amp;#039;&amp;lt;/time&amp;gt;&amp;#039;&lt;br /&gt;
		--合計時間行追加&lt;br /&gt;
		return &amp;#039;&amp;lt;tr style=&amp;quot;text-align:right; font-size:111%;&amp;quot;&amp;gt;&amp;lt;th colspan=&amp;quot;&amp;#039; .. (col - 1) .. &amp;#039;&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;&amp;#039;.. total .. &amp;#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;#039;&lt;br /&gt;
	else&lt;br /&gt;
		return &amp;#039;&amp;#039;&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(&amp;#039;table&amp;#039;)&lt;br /&gt;
	table&lt;br /&gt;
		:wikitext(header() .. body() .. footer())	--tableタグ内&lt;br /&gt;
		:attr({class = &amp;#039;tracklist&amp;#039;, id = args.id or &amp;#039;&amp;#039;})&lt;br /&gt;
		:cssText(&amp;#039;display:block; max-width:100%; width:auto; border-spacing:0px; border-collapse:collapse; padding:0.2em; font-size:90%; text-align:left;&amp;#039;)&lt;br /&gt;
	if collapsed then&lt;br /&gt;
		--折りたたみ表示追加指定&lt;br /&gt;
		table&lt;br /&gt;
			:addClass(&amp;#039;mw-collapsible mw-collapsed&amp;#039;)&lt;br /&gt;
			:cssText(&amp;#039;position:relative; overflow:hidden; outline:1px solid #aaa;&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if md then&lt;br /&gt;
		table:attr({itemtype = &amp;#039;http://schema.org/MusicAlbum&amp;#039;})&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>