Module:DBR index

MyWikiBiz, Author Your Legacy — Tuesday September 24, 2024
Jump to navigationJump to search

Documentation for this module may be created at Module:DBR index/doc

local p = {}
local title = mw.title.getCurrentTitle()

-- The point of this module is to keep the [[WP:PEIS]] lower than is possible
-- with nested templates.

local function sizeof(n)
	return tonumber(mw.getCurrentFrame():callParserFunction('PAGESIZE', {title.fullText .. '/' .. n, 'R'}))
end

function p.main(frame)
	local description = frame.args.description or
		frame:getParent().args.description or
		title.subpageText:lower()
	local as_of = '; data as of ' ..
			frame:expandTemplate{ title = title.fullText .. '/1', args = {} } .. '.\n'
	if sizeof(2) > 50 then
		local result = {'Index of ' .. description .. as_of ..
			'<ul><li>[[/1|Page 1]]</li><li>[[/2|Page 2]]</li>'}
		for i = 3, 27 do
			if sizeof(i) > 50 then
				result[#result + 1] = '<li>[[/' .. i .. '|Page ' .. i .. ']]</li>'
			end
		end
		return table.concat(result)
	end
	local content = mw.title.new(title.fullText .. '/1'):getContent():match('{|.*|}')
	content = frame:getParent():preprocess(content)
	return mw.getContentLanguage():ucfirst(description) .. as_of .. content
end

return p