“模块:Tracklist”的版本间差异

添加1,261字节 、​ 2023年8月1日 (二) 21:34
无编辑摘要
标签移动版网页编辑 移动版编辑
Zth讨论 | 贡献
 
(未显示2个用户的17个中间版本)
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 mw.ustring.find(v,k "^[\000-\127]*$")> 1 then
result = result..v"、"
else
result = result.."<span lang=\"ja\">-{"..v.."}-</span>"
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 ljcols = 1 +
local isNumbered = trim(args.number)
(args.lyrics_credits and 1 or 0) +
local ncols = ljcols + isNumbered + trim(args.singer_credits) + trim(args.extra_column) + trim(args.longnote_column) + trim(args.length)
(args.music_credits and 1 or 0) +
local iscv = trim(args.display_cv)
(args.arranger_credits and 1 or 0)
local ncols = ljcols +
(args.singer_credits and 1 or 0) +
(args.extra_column and 1 or 0) +
(args.longnote_column and 1 or 0) +
(args.length and 1 or 0)
 
local firstNumber = trim2(args.firstNumber) or 1
local info = (args.all_writing and ("全碟-{zh-hans:作词;zh-hant:填詞;zh-tw:作詞;}-及作曲:"..langWrap(args.all_writing).." ") or "") ..
(args.all_music and ("全碟作曲:"..langWrap(args.all_music).." ") or "") ..
local info = (trim2(args.all_lyricsall_writing) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟-{zh-hans:作词;zh-hant:填詞;zh-tw:作詞;}-及作曲:"..langWrap(args.all_lyricsall_writing).." </span>") or "") ..
(trim2(args.all_arrangerall_lyrics) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟编曲-{zh-hans:作词;zh-hant:填詞;zh-tw:作詞;}-:"..langWrap(args.all_arrangerall_lyrics).." </span>") or "") ..
(trim2(args.all_singerall_music) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟演唱作曲:"..langWrap(args.all_singerall_music).." </span>") or "") ..
(trim2(args.all_arranger) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟编曲:"..langWrap(args.all_arranger).."</span>") or "") ..
((args.all_note == "except" or args.all_note == "yes") and "<small>(下面注明例外曲目)</small>" or (args.all_note or '')) ..
(trim2(args.all_string_arranger) and ("<span style=\"display:inline-block;margin-right:0.5em;\">全碟弦编曲:"..langWrap(args.all_string_arranger).."</span>") or "") ..
(args.all_note2 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.length and 1all_note2 or 0"")
 
local wikitext = "<div class=\"tracklist" ..
(trim2(args.length) and " tracklist-length" or "").."\"" ..
"\" style=\"min-width:calc(100% - "..trim2(args.reserve_width or "300px"collapsed)..");"..(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
--[[
-->{{#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
14,886

个编辑