From Wikipedia, the free encyclopedia


local getArgs = require('Module:Arguments').getArgs



p = {}



local function add_header_row(frame, tbl, text)

	local row = tbl:tag('tr')

	row:tag('th')

		:attr('colspan', '2')

		:wikitext(text)

end



local function (frame, pagename)

	return frame:expandTemplate{ title='edit', args={ pagename } }

end



local function add_template_row(frame, tbl, pagename)

	local row = tbl:tag('tr')

	row:tag('td')

		:wikitext(frame:expandTemplate{ title='tl', args={ pagename } })

	row:tag('td')

		:wikitext((frame, 'Template:' .. pagename))

end



local function add_wikilink_row(frame, tbl, pagename, text, right)

	local row = tbl:tag('tr')

	row:tag('td')

		:wikitext('[[' .. pagename .. '|' .. (text or pagename) .. ']]')

	row:tag('td')

		:wikitext(right or (frame, pagename))

end



local function add_section(frame, args, tbl, add_section_header, arg_prefix, page_prefix, row_function)

	if row_function == nil then

		row_function = add_wikilink_row

	end

	local nums = {}

	for k, _ in pairs(args) do

		if type(k) == 'string' then

			local num = k:match('^' .. arg_prefix .. '(%d+)$')

			if num then

				table.insert(nums, tonumber(num))

			end

		end

	end

	if #nums == 0 then

		return

	end

	table.sort(nums)

	add_header_row(frame, tbl, add_section_header)

	for _, num in ipairs(nums) do

		local arg_name = arg_prefix .. num

		local arg = argsarg_name

		local pagename = page_prefix .. arg

		local text = argsarg_name .. 'text'

		local right = argsarg_name .. 'right'

		row_function(frame, tbl, pagename, text or arg, right)

	end

end



local function main(frame)

	local args = getArgs(frame)

	local tbl = mw.html.create('table')

		:cssText('clear: right; float:right; border:1px navy solid;')

	tbl:tag('caption')

		:wikitext('Portal toolbox')

	add_header_row(frame, tbl, 'Main portal page')

	local rootTitle = mw.title.getCurrentTitle().rootPageTitle.subjectPageTitle

	add_wikilink_row(frame, tbl, rootTitle.fullText)

	

	add_section(frame, args, tbl, 'Static subpages', 'static', rootTitle.fullText .. '/')

	add_section(frame, args, tbl, 'Dynamic subpages', 'dynamic', rootTitle.fullText .. '/')

	add_section(frame, args, tbl, 'Templates', 'template', '', add_template_row)

	add_section(frame, args, tbl, 'Other', 'other', '')

	return tbl

end



p.main = main



return p
From Wikipedia, the free encyclopedia


local getArgs = require('Module:Arguments').getArgs



p = {}



local function add_header_row(frame, tbl, text)

	local row = tbl:tag('tr')

	row:tag('th')

		:attr('colspan', '2')

		:wikitext(text)

end



local function (frame, pagename)

	return frame:expandTemplate{ title='edit', args={ pagename } }

end



local function add_template_row(frame, tbl, pagename)

	local row = tbl:tag('tr')

	row:tag('td')

		:wikitext(frame:expandTemplate{ title='tl', args={ pagename } })

	row:tag('td')

		:wikitext((frame, 'Template:' .. pagename))

end



local function add_wikilink_row(frame, tbl, pagename, text, right)

	local row = tbl:tag('tr')

	row:tag('td')

		:wikitext('[[' .. pagename .. '|' .. (text or pagename) .. ']]')

	row:tag('td')

		:wikitext(right or (frame, pagename))

end



local function add_section(frame, args, tbl, add_section_header, arg_prefix, page_prefix, row_function)

	if row_function == nil then

		row_function = add_wikilink_row

	end

	local nums = {}

	for k, _ in pairs(args) do

		if type(k) == 'string' then

			local num = k:match('^' .. arg_prefix .. '(%d+)$')

			if num then

				table.insert(nums, tonumber(num))

			end

		end

	end

	if #nums == 0 then

		return

	end

	table.sort(nums)

	add_header_row(frame, tbl, add_section_header)

	for _, num in ipairs(nums) do

		local arg_name = arg_prefix .. num

		local arg = argsarg_name

		local pagename = page_prefix .. arg

		local text = argsarg_name .. 'text'

		local right = argsarg_name .. 'right'

		row_function(frame, tbl, pagename, text or arg, right)

	end

end



local function main(frame)

	local args = getArgs(frame)

	local tbl = mw.html.create('table')

		:cssText('clear: right; float:right; border:1px navy solid;')

	tbl:tag('caption')

		:wikitext('Portal toolbox')

	add_header_row(frame, tbl, 'Main portal page')

	local rootTitle = mw.title.getCurrentTitle().rootPageTitle.subjectPageTitle

	add_wikilink_row(frame, tbl, rootTitle.fullText)

	

	add_section(frame, args, tbl, 'Static subpages', 'static', rootTitle.fullText .. '/')

	add_section(frame, args, tbl, 'Dynamic subpages', 'dynamic', rootTitle.fullText .. '/')

	add_section(frame, args, tbl, 'Templates', 'template', '', add_template_row)

	add_section(frame, args, tbl, 'Other', 'other', '')

	return tbl

end



p.main = main



return p

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook