Module:DateTitleList:修订间差异
跳转到导航
跳转到搜索
无编辑摘要 |
无编辑摘要 |
||
第1行: | 第1行: | ||
local p = {} | |||
-- 格式化日期和生成链接 | |||
local function formatDate(date, title, year, baseYear) | local function formatDate(date, title, year, baseYear) | ||
local dateYear = string.sub(date, 1, 4) -- 获取年份 | local dateYear = string.sub(date, 1, 4) -- 获取年份 | ||
第20行: | 第23行: | ||
return "* '''" .. categoryLink .. "''' " .. pageLink | return "* '''" .. categoryLink .. "''' " .. pageLink | ||
end | end | ||
-- 主函数 | |||
function p.render(frame) | |||
local args = frame:getParent().args | |||
local year = args.year or os.date("%Y") -- 默认年份为当前年份 | |||
local entries = {} | |||
-- 收集date和title的对 | |||
for i = 1, 7 do | |||
local date = args["date" .. i] | |||
local title = args["title" .. i] | |||
if date and title then | |||
table.insert(entries, {date = date, title = title}) | |||
end | |||
end | |||
-- 按日期排序 | |||
table.sort(entries, function(a, b) return a.date < b.date end) | |||
-- 生成输出 | |||
local output = {} | |||
for _, entry in ipairs(entries) do | |||
table.insert(output, formatDate(entry.date, entry.title, year, year)) | |||
end | |||
return table.concat(output, "\n") | |||
end | |||
return p |
2025年1月23日 (四) 00:37的版本
此模块的文档可以在Module:DateTitleList/doc创建
local p = {}
-- 格式化日期和生成链接
local function formatDate(date, title, year, baseYear)
local dateYear = string.sub(date, 1, 4) -- 获取年份
local monthDay = os.date("%m月%d日", os.time{
year = tonumber(dateYear),
month = tonumber(string.sub(date, 5, 6)),
day = tonumber(string.sub(date, 7, 8))
})
-- 构造分类链接
local categoryLink = '<span class="date-link">[[:Category:' .. monthDay .. '|' .. monthDay .. ']]</span>'
-- 如果年份不同于baseYear,添加小号年份
if dateYear ~= baseYear then
categoryLink = '<span class="date-link">[[:Category:' .. monthDay .. '|{{ruby|' .. monthDay .. '|<span class="small-year">' .. dateYear .. '年</span>}}]]</span>'
end
-- 构造页面链接
local pageLink = "[[直播记录/vedal987频道/" .. dateYear .. "年" .. monthDay .. "|" .. title .. "]]"
return "* '''" .. categoryLink .. "''' " .. pageLink
end
-- 主函数
function p.render(frame)
local args = frame:getParent().args
local year = args.year or os.date("%Y") -- 默认年份为当前年份
local entries = {}
-- 收集date和title的对
for i = 1, 7 do
local date = args["date" .. i]
local title = args["title" .. i]
if date and title then
table.insert(entries, {date = date, title = title})
end
end
-- 按日期排序
table.sort(entries, function(a, b) return a.date < b.date end)
-- 生成输出
local output = {}
for _, entry in ipairs(entries) do
table.insert(output, formatDate(entry.date, entry.title, year, year))
end
return table.concat(output, "\n")
end
return p