模块:Recent Records in New Page
本模块可截取专题新进条目页的近若干日记录,可用于专题首页等处,以免完整新条目列表屠版。
例子
编辑截取Portal:动漫/新进条目最近5日记录:
{{#invoke:Recent Records in New Page|main|5|page=Portal:动漫/新进条目}}
效果:
- 8月9日 - 贯彻辅助魔法支援弱小队友的宫廷魔法师,惨遭驱逐后目标成为最强冒险者
- 8月8日 - 一叠间漫画咖啡屋生活!
- 8月7日 - 倾心一抹笑、棺材、旅人、怪蝙蝠、食粮人类Starving Anonymous、伤追之人、一只名叫痛苦的狗
- 8月6日 - 小春日和。、白蛇:浮生(侵权)
- 8月5日 - 肉丸 (漫画家)、大冲 (漫画家)
已知问题
编辑- 新进页面不能有其他点列语法,否则本模块可能输出不期待的结果,如此例。其他点列可考虑使用{{Bulleted list}}等模板生成。
上述文档嵌入自Module:Recent Records in New Page/doc。 (编辑 | 历史) 编者可以在本模块的沙盒 (创建 | 镜像)和测试样例 (创建)页面进行实验。 本模块的子页面。 |
require('strict')
local getArgs = require"Module:Arguments".getArgs
local p = {}
--------------------------------
function p.main(frame)
local args = getArgs(frame)
return p._main(frame, args)
end
function p._main(frame, args)
local t = function(title, ...) return frame:expandTemplate{ title = title, args = {...} } end
local pageContent = mw.title.new(args.page):getContent()
local str, strPosBegin, strPosEnd = '', 0, 0
strPosBegin = pageContent:find('\n%*[^:]')
strPosEnd = strPosEnd
for i = 1, args[1] + 1 do
strPosEnd = pageContent:find('\n%*[^:]', strPosEnd + 1)
end
str = pageContent:sub(strPosBegin, strPosEnd)
str = str:gsub('\n==.+==', ''):gsub('\n</?onlyinclude>', ''):gsub('\n+', '\n') -- dirty fixes
return mw.getCurrentFrame():preprocess(str)
end
return p