Fortnite Esports Wiki
Advertisement
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Edit the documentation or categories for this module.


local util_map = require("Module:MapUtil")
local util_table = require('Module:TableUtil')
local util_text = require('Module:TextUtil')
local util_vars = require('Module:VarsUtil')

local p = {}
local h = {}

function p.titleTable(title)
	local title = title or mw.title.getCurrentTitle().text
	return util_text.split(title,'/')
end

function p.concatSubpage(base, extension)
	-- concatenate the two but don't add a / if the 2nd argument is empty or Overview
	if extension == 'Overview' or extension == '' or not extension then
		return base
	elseif base == '' or not base then
		return extension
	else
		return base .. '/' .. extension
	end
end

function p.concatSubpageParts(base, ...)
	local args = {...}
	while next(args) do
		base = p.concatSubpage(base, table.remove(args, 1))
	end
	return base
end

function p.concatSubpageArg(base, extension)
	if base == 'events' then base = nil end
	return p.concatSubpage(base, extension)
end

function p.concatSubpageSystem(base, extension)
	local systems = mw.loadData('Module:Systems')
	return p.concatSubpage(base, systems[extension])
end

function p.concatSystemSubpage(base, extension)
	local systems = mw.loadData('Module:Systems')
	return p.concatSubpage(systems[base], extension)
end

function p.concatSubpages(tbl, extension)
	for k, v in pairs(tbl) do
		tbl[k] = p.concatSubpage(v, extension)
	end
	return
end

function p.titleparts(str, n, s)
	local tbl = util_text.split(str or mw.title.getCurrentTitle().text, '/')
	s = util_table.guaranteeIndex(tbl, s)
	return table.concat(util_table.slice(tbl,s,s+n-1),'/')
end

function p.titleslice(str, s, e)
	local tbl = p.titleTable(str)
	s = util_table.guaranteeIndex(tbl, s)
	e = util_table.guaranteeIndex(tbl, e)
	return table.concat(util_table.slice(tbl,s,e),'/')
end

function p.target(page)
	if not page then return nil end
	local title = mw.title.makeTitle(ns or '', page)
	if title.redirectTarget then
		return p.escape(title.redirectTarget.fullText)
	end
	return p.escape(page)
end

function p.isRedirect(page)
	return p.target(page) ~= page
end

function p.escape(page)
	return util_text.ucfirst(page:gsub('_', ' '))
end

function p.lowercase()
	return mw.getCurrentFrame():expandTemplate({ title = 'lowercase' })
end

return p
Advertisement