◆少前百科是非盈利性、非官方的少女前线维基百科。 ◆如果您发现某些内容错误/空缺,请勇于修正/添加!参与进来其实很容易!点这里 加入少前百科。 ◆有任何意见、建议、纠错,欢迎在 GFwiki:反馈与建议 提出和讨论。编辑事务讨论QQ群:597764980,微博@GFwiki少前百科 ◆To foreigners,You can use twitter to contact us. |
“模块:VoiceTable2”的版本间的差异
(添加全局格式参数) |
|||
(未显示1个用户的8个中间版本) | |||
第11行: | 第11行: | ||
local title = mw.text.trim(args["表格标题"] or "") | local title = mw.text.trim(args["表格标题"] or "") | ||
local path = mw.text.trim(args["目录"] or "") | local path = mw.text.trim(args["目录"] or "") | ||
+ | local suffix = args["格式"] | ||
local lack_file = false | local lack_file = false | ||
第16行: | 第17行: | ||
local lack_tran = false | local lack_tran = false | ||
− | local table_class = playable and " | + | local table_class = playable and "voiceTableBox" or "voiceTableBox mw-collapsible mw-collapsed" |
-- Table | -- Table | ||
− | table.insert(res_table, string.format("\n< | + | table.insert(res_table, string.format("\n<table class=\"%s\">", table_class)) |
− | table.insert(res_table, " | + | if not playable then table.insert(res_table, string.format("<tr><th><div class=\"voiceTableFirstTitle\">%s<\/div><\/th><\/tr><tr><td>", title)) end |
− | + | table.insert(res_table, "<div class=\"voiceTable\">") | |
for i = 1, max_pieces do | for i = 1, max_pieces do | ||
local piece_title = mw.text.trim(args["标题" .. i] or "") | local piece_title = mw.text.trim(args["标题" .. i] or "") | ||
local sort_title = mw.text.trim(args["分类标题" .. i] or "") | local sort_title = mw.text.trim(args["分类标题" .. i] or "") | ||
+ | |||
if sort_title ~= "" then | if sort_title ~= "" then | ||
− | table.insert(res_table, string.format("<div class=\"voiceTableSortTitle\"> | + | table.insert(res_table, string.format("<div class=\"voiceTableSortTitle\">%s<\/div>", sort_title)) |
− | + | end | |
+ | |||
if piece_title ~= "" then | if piece_title ~= "" then | ||
local piece_jp = mw.text.trim(args["日文" .. i] or "") | local piece_jp = mw.text.trim(args["日文" .. i] or "") | ||
第44行: | 第47行: | ||
local piece_lack_info = piece_lack_file or piece_lack_text or piece_lack_tran | local piece_lack_info = piece_lack_file or piece_lack_text or piece_lack_tran | ||
− | table.insert(res_table, string.format("<div class=\"voiceTableTitle\" style=\" | + | table.insert(res_table, string.format("<div class=\"voiceTableTitle\" style=\"color:%s;\"><p>%s<\/p><\/div>", (piece_lack_info and "#3F3F3F" or "#000000"), piece_title)) |
+ | table.insert(res_table, "<div class=\"voiceTableContent\">") | ||
if playable and piece_jp ~= "" then | if playable and piece_jp ~= "" then | ||
第62行: | 第66行: | ||
end | end | ||
− | table.insert(res_table, | + | table.insert(res_table, "<\/div>") |
if playable then | if playable then | ||
− | table.insert(res_table, | + | table.insert(res_table, "<div class=\"voiceTableMedia\">") |
− | if piece_file ~= "" | + | if piece_file ~= "" then |
if piece_file == "-" then | if piece_file == "-" then | ||
table.insert(res_table, "—") | table.insert(res_table, "—") | ||
else | else | ||
+ | if not (string.find(piece_file, '.', -4, true)) then piece_file = piece_file .. '.' .. suffix end | ||
local piece_file_url = (path == "") and frame:callParserFunction{name = 'filepath:' .. piece_file} or (path .. piece_file) | local piece_file_url = (path == "") and frame:callParserFunction{name = 'filepath:' .. piece_file} or (path .. piece_file) | ||
local player_args = {icon_width = '36px', src = piece_file_url} | local player_args = {icon_width = '36px', src = piece_file_url} | ||
第91行: | 第96行: | ||
end | end | ||
− | table.insert(res_table, "<\/div>") | + | table.insert(res_table, "<\/div><\/td><\/tr><\/table>") |
return table.concat(res_table) | return table.concat(res_table) |
2022年6月16日 (四) 20:36的最新版本
此模块的文档可以在模块:VoiceTable2/doc创建
local p = {} function p.table(frame) local max_pieces = 50 local args = (frame == mw.getCurrentFrame() and frame.args) or frame res_table = {} table.insert(res_table, frame:callParserFunction{name = '#Widget:MiniAudioPlayerJS'}) local playable = ((args["可播放"] or "") ~= "") local title = mw.text.trim(args["表格标题"] or "") local path = mw.text.trim(args["目录"] or "") local suffix = args["格式"] local lack_file = false local lack_text = false local lack_tran = false local table_class = playable and "voiceTableBox" or "voiceTableBox mw-collapsible mw-collapsed" -- Table table.insert(res_table, string.format("\n<table class=\"%s\">", table_class)) if not playable then table.insert(res_table, string.format("<tr><th><div class=\"voiceTableFirstTitle\">%s<\/div><\/th><\/tr><tr><td>", title)) end table.insert(res_table, "<div class=\"voiceTable\">") for i = 1, max_pieces do local piece_title = mw.text.trim(args["标题" .. i] or "") local sort_title = mw.text.trim(args["分类标题" .. i] or "") if sort_title ~= "" then table.insert(res_table, string.format("<div class=\"voiceTableSortTitle\">%s<\/div>", sort_title)) end if piece_title ~= "" then local piece_jp = mw.text.trim(args["日文" .. i] or "") local piece_cn = mw.text.trim(args["中文" .. i] or "") local piece_tc = mw.text.trim(args["繁中" .. i] or "") local piece_en = mw.text.trim(args["英文" .. i] or "") local piece_kr = mw.text.trim(args["韩文" .. i] or "") local piece_file = mw.text.trim(args["语音" .. i] or "") local piece_lack_file = (piece_file == "") local piece_lack_text = (piece_jp == "" and piece_cn == "") local piece_lack_tran = (piece_jp ~= "" and piece_cn == "") local piece_lack_info = piece_lack_file or piece_lack_text or piece_lack_tran table.insert(res_table, string.format("<div class=\"voiceTableTitle\" style=\"color:%s;\"><p>%s<\/p><\/div>", (piece_lack_info and "#3F3F3F" or "#000000"), piece_title)) table.insert(res_table, "<div class=\"voiceTableContent\">") if playable and piece_jp ~= "" then table.insert(res_table, "<p class=\"voiceTextJP\" lang=\"ja\" style=\"margin:5px; margin-bottom:10px;\">" .. piece_jp .. "</p>") end if piece_cn ~= "" then table.insert(res_table, "<p class=\"voiceTextCN\" lang=\"zh\" style=\"margin:5px;\">" .. piece_cn .. "</p>") end if piece_tc ~= "" then table.insert(res_table, "<p class=\"voiceTextTC\" lang=\"zh\" style=\"margin:5px; display:none;\">" .. piece_tc .. "</p>") end if piece_en ~= "" then table.insert(res_table, "<p class=\"voiceTextEN\" lang=\"en\" style=\"margin:5px; display:none;\">" .. piece_en .. "</p>") end if piece_kr ~= "" then table.insert(res_table, "<p class=\"voiceTextKR\" lang=\"ko\" style=\"margin:5px; display:none;\">" .. piece_kr .. "</p>") end table.insert(res_table, "<\/div>") if playable then table.insert(res_table, "<div class=\"voiceTableMedia\">") if piece_file ~= "" then if piece_file == "-" then table.insert(res_table, "—") else if not (string.find(piece_file, '.', -4, true)) then piece_file = piece_file .. '.' .. suffix end local piece_file_url = (path == "") and frame:callParserFunction{name = 'filepath:' .. piece_file} or (path .. piece_file) local player_args = {icon_width = '36px', src = piece_file_url} if piece_file_url == "" then player_args["download_style"] = "display:none;" player_args["play_style"] = "display:none;" end if not playable then player_args["download_style"] = "display:none;" end table.insert(res_table, frame:callParserFunction{name = '#Widget:MiniAudioPlayer', args = player_args}) end end table.insert(res_table, string.format("<\/div>")) end lack_file = lack_file or piece_lack_file lack_text = lack_text or piece_lack_text lack_tran = lack_tran or piece_lack_tran end end table.insert(res_table, "<\/div><\/td><\/tr><\/table>") return table.concat(res_table) end return p