×
Create a new article
Write your page title here:
We currently have 30 articles on Ghost Machine Wiki. Type your article name above or create one of the articles listed here!



    Ghost Machine Wiki

    local p = {}
    
    local function makeError(msg)
    	msg ='Error in [[Template:Reply to]]: ' .. msg
    	return mw.text.tag('strong', {['class']='error'}, msg)
    end
    
    function p.replyto(frame)
    	local origArgs = frame:getParent().args
    	local args = {}
    	local maxArg = 1
    	local usernames = 0
    	for k, v in pairs(origArgs) do
    		if type(k) == 'number' then
    			if mw.ustring.match(v,'%S') then
    				if k > maxArg then maxArg = k end
    				usernames = usernames + 1
    				local title = mw.title.new(v)
    				if not title then return makeError('Input contains forbidden characters.') end
    				args[k] = title.rootText
    			end
    		elseif v == '' and k:sub(0,5) == 'label' then
    			args[k] = '​'
    		else
    			args[k] = v
    		end
    	end
    
    	if usernames > (tonumber(frame.args.max) or 50) then
    		return makeError(string.format(
    			'More than %s names specified.',
    			tostring(frame.args.max or 50)
    		))
    	else
    		if usernames < 1 then
    			if frame.args.example then args[1] = frame.args.example else return makeError('Username not given.') end
    		end
    		args['label1'] = args['label1'] or args['label']
    		local isfirst = true
    		local outStr = args['prefix'] or '@'
    		for i = 1, maxArg do
    			if args[i] then
    				if isfirst then
    					isfirst = false
    				else
    					if ( (usernames > 2) or ((usernames == 2) and (args['c'] == '')) ) then outStr = outStr..', ' end
    					if i == maxArg then outStr = outStr..' '..(args['c'] or 'and') .. ' ' end
    				end
    				outStr = string.format(
    					'%s[[User:%s|%s]]',
    					outStr,
    					args[i],
    					args['label'..tostring(i)] or args[i]
    				)
    			end
    		end
    		outStr = outStr..(args['p'] or ':')
    		return mw.text.tag('span', {['class']='template-ping'}, outStr)
    	end
    end
    
    return p
    
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.
    Cookies help us deliver our services. By using our services, you agree to our use of cookies.