Difference between revisions of "Module:Purge"

From Timelines
Jump to: navigation, search
(make replacement for Template:Purge)
 
m (Protected Module:Purge: High-risk Lua module ([Edit=Allow only template editors and admins] (indefinite) [Move=Allow only template editors and admins] (indefinite)))
 
(4 intermediate revisions by the same user not shown)
Line 11: Line 11:
 
local url
 
local url
 
do
 
do
local title = mw.title.getCurrentTitle()
+
local title
 +
if args.page then
 +
title = mw.title.new(args.page)
 +
if not title then
 +
error(string.format(
 +
"'%s' is not a valid page name",
 +
args.page
 +
), 2)
 +
end
 +
else
 +
title = mw.title.getCurrentTitle()
 +
end
 
if args.anchor then
 
if args.anchor then
 
title.fragment = args.anchor
 
title.fragment = args.anchor

Latest revision as of 22:38, 13 May 2015

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

-- This module implements [[Template:Purge]].

local p = {}

local function makeUrlLink(url, display)
	return string.format('[%s %s]', url, display)
end

function p._main(args)
	-- Make the URL
	local url
	do
		local title
		if args.page then
			title = mw.title.new(args.page)
			if not title then
				error(string.format(
					"'%s' is not a valid page name",
					args.page
				), 2)
			end
		else
			title = mw.title.getCurrentTitle()
		end
		if args.anchor then
			title.fragment = args.anchor
		end
		url = title:fullUrl{action = 'purge'}
	end
	
	-- Make the display
	local display = mw.html.create('span')
	display
		:attr('title', 'Purge this page')
		:wikitext(args[1] or 'Purge')
	display = tostring(display)
	
	-- Output the HTML
	local root = mw.html.create('span')
	root
		:addClass('noprint')
		:addClass('plainlinks')
		:addClass('purgelink')
		:wikitext(makeUrlLink(url, display))
	
	return tostring(root)
end

function p.main(frame)
	local args = frame:getParent().args
	return p._main(args)
end

return p