Jump to content

Module:Level

From Creopedia

This documentation is transcluded from Module:Level/doc.

Output a level badge using Module:IconText.

Implements Template:Level.


require( 'strict' )

local iconText = require( 'Module:IconText' )

local p = {}


--- Render the level text
---
--- @param levelNum number
--- @return string
local function renderLevel( levelNum )
	local lang = mw.language.getContentLanguage()

	return iconText._main( {
		icon = 'General level icon.png',
		text = lang:formatNum( levelNum ),
		class = 't-level cp-image-pixelated'
	} )
end

--- Wikitext entry point for the module
---
--- @param frame mw.frame
--- @return string
function p.main( frame )
	local getArgs = require( 'Module:Arguments' ).getArgs
	return p._main( getArgs( frame )[1] )
end

--- Render the level text
---
--- @param level string|number
--- @return string
function p._main( level )
	local levelNum = tonumber( level )

	if not levelNum then
		error( 'Invalid level value: ' .. level )
	end

	return mw.getCurrentFrame():extensionTag {
		name = 'templatestyles', args = { src = 'Module:Level/styles.css' }
	} .. renderLevel( levelNum )
end

return p