模組:Recent Records in New Page

文档图示 模块文档[查看] [编辑] [历史] [清除缓存]


本模组可截取专题新进条目页的近若干日记录,可用于专题首页等处,以免完整新条目列表屠版。

例子 编辑

截取Portal:动漫/新进条目最近5日记录:

{{#invoke:Recent Records in New Page|main|5|page=Portal:动漫/新进条目}}

效果:

已知问题 编辑

  • 新進頁面不能有其他點列語法,否則本模組可能輸出不期待的結果,如此例。其他點列可考慮使用{{Bulleted list}}等模板生成。

require('Module:No globals')

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