local p = {}
local getArgs = require('Module:Arguments').getArgs
function p.main(frame)
local args = getArgs(frame)
-- 处理页面名称
local fullpagename = mw.title.getCurrentTitle().fullText
local result = string.gsub(fullpagename, "/存[档檔].*", "")
-- 检查是否有匹配(用于条件判断)
local has_match = fullpagename ~= result
-- 构建HTML
local html = '<div class="infobox" style="background: #f5faff; border:1px solid gray;max-width:max-content;'
if has_match then
html = html .. 'float:right;'
end
html = html .. '">'
html = html .. '<div style="margin: 4px; text-align: center; vertical-align: middle;">'
html = html .. (args.image or '[[File:File.svg|' .. (args['image-width'] or '40px') .. '|link=|档案馆]]')
html = html .. '<big><b>讨论版【' .. (mw.text.split(fullpagename, '/')[2] or '') .. '】档案馆</b></big>'
html = html .. '<hr style="margin:7px;"/><div style="text-align: initial">'
html = html .. frame:expandTemplate{title = 'tabs/core', args = {
TextPadding = '2px 4px',
LabelPadding = '2px 4px',
LabelColor = '#aaa',
LabelBackgroundColor = '#f5faff',
TextBackgroundColor = '#f5faff',
AutoWidth = 'yes',
DefaultTab = '6',
label1 = '<b>20</b>',
text1 = frame:expandTemplate{title = 'ArchiveLink', args = {result, '2020', '04'}},
label2 = '<b>21</b>',
text2 = frame:expandTemplate{title = 'ArchiveLink', args = {result, '2021', '01'}},
label3 = '<b>22</b>',
text3 = frame:expandTemplate{title = 'ArchiveLink', args = {result, '2022', '01'}},
label4 = '<b>23</b>',
text4 = frame:expandTemplate{title = 'ArchiveLink', args = {result, '2023', '01'}},
label5 = '<b>24</b>',
text5 = frame:expandTemplate{title = 'ArchiveLink', args = {result, '2024', '01'}},
label6 = '<b>25年</b>',
text6 = frame:expandTemplate{title = 'ArchiveLink', args = {result, '2025', '01'}}
}}
html = html .. '</div></div></div>'
if has_match then
html = html .. frame:expandTemplate{title = 'MagicWordsForNonSysop', args = {'NOEDITSECTION NONEWSECTIONLINK'}}
end
return html
end
-- 辅助函数:获取处理后的页面名称
function p.getBasePageName(frame)
local fullpagename = mw.title.getCurrentTitle().fullText
local result, _ = string.gsub(fullpagename, "/存[档檔].*", "")
return result
end
-- 辅助函数:检查是否有存档后缀
function p.hasArchiveSuffix(frame)
local fullpagename = mw.title.getCurrentTitle().fullText
local result = string.gsub(fullpagename, "/存[档檔].*", "")
return fullpagename ~= result and "true" or ""
end
return p