首页
随机
登录
设置
关于NeuroWiki
免责声明
NeuroWiki
搜索
查看“Module:DateTitleList”的源代码
←
Module:DateTitleList
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您必须确认您的电子邮件地址才能编辑页面。请通过
参数设置
设置并确认您的电子邮件地址。
您可以查看和复制此页面的源代码。
local p = {} -- 格式化日期函数,增加对 CSS 类的支持 local function format_date(frame, date_str, title, year, css_class) -- 提取年份、月份和日期 local year_in_date = string.sub(date_str, 1, 4) local month = tonumber(string.sub(date_str, 5, 6)) -- 去掉前导零 local day = tonumber(string.sub(date_str, 7, 8)) -- 去掉前导零 -- 格式化日期为 "X月X日" local month_day = string.format("%d月%d日", month, day) -- 构造分类链接和 ruby 模板 local category_link if year_in_date ~= year then -- 使用 ruby 模板 category_link = frame:expandTemplate{ title = "ruby", args = { month_day, year_in_date .. "年" } } else category_link = month_day end -- 构造最终分类链接和页面链接 local category = string.format("[[:Category:%s|%s]]", month_day, category_link) local page_link = string.format("[[直播记录/vedal987频道/%s年%s|%s]]", year_in_date, month_day, title) -- 如果有 CSS 类,则将其应用到最外层 li if css_class then return string.format('<li class="%s">\'\'\'%s\'\'\' %s</li>', css_class, category, page_link) else return string.format('<li>\'\'\'%s\'\'\' %s</li>', category, page_link) end end -- 比较日期,用于排序 local function compare_dates(a, b) return a.date < b.date end -- 主函数 function p.main(frame) local args = frame:getParent().args local year = args.year or os.date("%Y") local entries = {} -- 收集日期、标题和样式 for i = 1, 7 do local date = args["date" .. i] local title = args["title" .. i] local css_class = args["class" .. i] if date and title then table.insert(entries, {date = date, title = title, css_class = css_class}) end end -- 按日期排序 table.sort(entries, compare_dates) -- 生成输出列表 local result = {} for _, entry in ipairs(entries) do table.insert(result, format_date(frame, entry.date, entry.title, year, entry.css_class)) end -- 包装在 <ul> 中,作为返回结果 return '<ul class="date-title-list" style="height: -webkit-fill-available;">' .. table.concat(result, "\n") .. '</ul>' end return p
该页面使用的模板:
Module:DateTitleList/doc
(
查看源代码
)
返回
Module:DateTitleList
。