<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ANLLDivisionStanding</id>
	<title>Module:NLLDivisionStanding - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ANLLDivisionStanding"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:NLLDivisionStanding&amp;action=history"/>
	<updated>2026-05-26T06:03:40Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>https://stockhub.co/index.php?title=Module:NLLDivisionStanding&amp;diff=144032&amp;oldid=prev</id>
		<title>imported&gt;MusikAnimal: Protected &quot;Module:NLLDivisionStanding&quot;: High-risk template or module; match protection with associated template ([Edit=Require autoconfirmed or confirmed access] (indefinite))</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:NLLDivisionStanding&amp;diff=144032&amp;oldid=prev"/>
		<updated>2019-02-25T23:17:07Z</updated>

		<summary type="html">&lt;p&gt;Protected &amp;quot;&lt;a href=&quot;/research/Module:NLLDivisionStanding&quot; title=&quot;Module:NLLDivisionStanding&quot;&gt;Module:NLLDivisionStanding&lt;/a&gt;&amp;quot;: &lt;a href=&quot;https://en.wikipedia.org/wiki/High-risk_templates&quot; class=&quot;extiw&quot; title=&quot;wikipedia:High-risk templates&quot;&gt;High-risk template or module&lt;/a&gt;; match protection with associated template ([Edit=Require autoconfirmed or confirmed access] (indefinite))&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module implements {{NLLDivisionStanding}}.&lt;br /&gt;
&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function abbr(shortForm, longForm)&lt;br /&gt;
	return tostring(mw.html.create(&amp;#039;abbr&amp;#039;)&lt;br /&gt;
		:attr(&amp;#039;title&amp;#039;, longForm)&lt;br /&gt;
		:wikitext(shortForm)&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
-- Team class&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local Team = {}&lt;br /&gt;
Team.__index = Team&lt;br /&gt;
&lt;br /&gt;
Team.stringFields = {&lt;br /&gt;
	&amp;#039;name&amp;#039;,&lt;br /&gt;
	&amp;#039;link&amp;#039;,&lt;br /&gt;
	&amp;#039;short&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Team.numberFields = {&lt;br /&gt;
	&amp;#039;pos&amp;#039;,&lt;br /&gt;
	&amp;#039;clinch_playoff&amp;#039;,&lt;br /&gt;
	&amp;#039;clinch_division&amp;#039;,&lt;br /&gt;
	&amp;#039;clinch_best_record&amp;#039;,&lt;br /&gt;
	&amp;#039;ga&amp;#039;,&lt;br /&gt;
	&amp;#039;gf&amp;#039;,&lt;br /&gt;
	&amp;#039;home_loss&amp;#039;,&lt;br /&gt;
	&amp;#039;home_win&amp;#039;,&lt;br /&gt;
	&amp;#039;road_loss&amp;#039;,&lt;br /&gt;
	&amp;#039;road_win&amp;#039;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function Team.new(options)&lt;br /&gt;
	options = options or {}&lt;br /&gt;
	local self = setmetatable({}, Team)&lt;br /&gt;
	for i, field in ipairs(Team.stringFields) do&lt;br /&gt;
		self[field] = options[field]&lt;br /&gt;
	end&lt;br /&gt;
	for i, field in ipairs(Team.numberFields) do&lt;br /&gt;
		self[field] = tonumber(options[field])&lt;br /&gt;
	end&lt;br /&gt;
	return self&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getPosition()&lt;br /&gt;
	return tostring(self.pos) or &amp;#039;--&amp;#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getShortName()&lt;br /&gt;
	return self.short&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getName()&lt;br /&gt;
	return self.name&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getLink()&lt;br /&gt;
	local name = self:getName()&lt;br /&gt;
	local link = self.link&lt;br /&gt;
	if link and name then&lt;br /&gt;
		return string.format(&amp;#039;[[%s|%s]]&amp;#039;, link, name)&lt;br /&gt;
	elseif link then&lt;br /&gt;
		return string.format(&amp;#039;[[%s]]&amp;#039;, link)&lt;br /&gt;
	else&lt;br /&gt;
		return name&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:makeDisplayName()&lt;br /&gt;
	local ret = self:getLink()&lt;br /&gt;
	if not ret then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	local clinches = {}&lt;br /&gt;
	-- The numerical syntax here is a hangover from the wikitext template&lt;br /&gt;
	-- which used #expr hacks to calculate the number of clinches&lt;br /&gt;
	if self.clinch_playoff == 1 then&lt;br /&gt;
		table.insert(clinches, &amp;#039;x&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if self.clinch_playoff == 2 then&lt;br /&gt;
		table.insert(clinches, &amp;#039;c&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if self.clinch_division == 1 then&lt;br /&gt;
		table.insert(clinches, &amp;#039;y&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if self.clinch_best_record == 1 then&lt;br /&gt;
		table.insert(clinches, &amp;#039;z&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
	if clinches[1] then&lt;br /&gt;
		ret = string.format(&amp;quot;%s &amp;amp;ndash; &amp;#039;&amp;#039;&amp;#039;%s&amp;#039;&amp;#039;&amp;#039;&amp;quot;, ret, table.concat(clinches))&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getHomeWins()&lt;br /&gt;
	return self.home_win or 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getHomeLosses()&lt;br /&gt;
	return self.home_loss or 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getRoadWins()&lt;br /&gt;
	return self.road_win or 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getRoadLosses()&lt;br /&gt;
	return self.road_loss or 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getGamesPlayed()&lt;br /&gt;
	return self:getHomeWins() +&lt;br /&gt;
		self:getRoadWins() +&lt;br /&gt;
		self:getHomeLosses() +&lt;br /&gt;
		self:getRoadLosses()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getWins()&lt;br /&gt;
	return self:getHomeWins() + self:getRoadWins()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getLosses()&lt;br /&gt;
	return self:getHomeLosses() + self:getRoadLosses()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:_divideByGamesPlayed(val)&lt;br /&gt;
	local gp = self:getGamesPlayed()&lt;br /&gt;
	if gp &amp;gt; 0 then -- avoid divide-by-zero error&lt;br /&gt;
		return val / gp&lt;br /&gt;
	else&lt;br /&gt;
		return 0&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getWinPercentage()&lt;br /&gt;
	local percent = self:_divideByGamesPlayed(self:getWins())&lt;br /&gt;
	if percent &amp;gt; 1 then&lt;br /&gt;
		percent = 1&lt;br /&gt;
	elseif percent &amp;lt; 0 then&lt;br /&gt;
		percent = 0&lt;br /&gt;
	end&lt;br /&gt;
	local ret = string.format(&amp;#039;%.3f&amp;#039;, percent)&lt;br /&gt;
	if ret:sub(1, 1) == &amp;#039;0&amp;#039; then&lt;br /&gt;
		-- Use strings like .123 instead of 0.123 as that is how it&amp;#039;s done&lt;br /&gt;
		-- in sports publications&lt;br /&gt;
		ret = ret:sub(2, -1)&lt;br /&gt;
	end&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getGamesBack(teamInFirst)&lt;br /&gt;
	local tifDiff = teamInFirst:getWins() - teamInFirst:getLosses()&lt;br /&gt;
	local selfDiff = self:getWins() - self:getLosses()&lt;br /&gt;
	return string.format(&amp;#039;%.1f&amp;#039;, (tifDiff - selfDiff) / 2)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getHomeRecord()&lt;br /&gt;
	return self:getHomeWins() .. &amp;#039;&amp;amp;ndash;&amp;#039; .. self:getHomeLosses()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getRoadRecord()&lt;br /&gt;
	return self:getRoadWins() .. &amp;#039;&amp;amp;ndash;&amp;#039; .. self:getRoadLosses()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getGoalsScored()&lt;br /&gt;
	return self.gf or 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getGoalsAllowed()&lt;br /&gt;
	return self.ga or 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getDifferential()&lt;br /&gt;
	local diff = self:getGoalsScored() - self:getGoalsAllowed()&lt;br /&gt;
	if diff &amp;gt; 0 then&lt;br /&gt;
		return &amp;#039;+&amp;#039; .. tostring(diff)&lt;br /&gt;
	else&lt;br /&gt;
		return tostring(diff)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getGameScoredAverage()&lt;br /&gt;
	local avg = self:_divideByGamesPlayed(self:getGoalsScored())&lt;br /&gt;
	return string.format(&amp;#039;%.2f&amp;#039;, avg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Team:getGameAllowedAverage()&lt;br /&gt;
	local avg = self:_divideByGamesPlayed(self:getGoalsAllowed())&lt;br /&gt;
	return string.format(&amp;#039;%.2f&amp;#039;, avg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
-- DivisionStanding class&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local DivisionStanding = {}&lt;br /&gt;
DivisionStanding.__index = DivisionStanding&lt;br /&gt;
&lt;br /&gt;
function DivisionStanding.new(args)&lt;br /&gt;
	local self = setmetatable({}, DivisionStanding)&lt;br /&gt;
&lt;br /&gt;
	-- Set template-wide arguments&lt;br /&gt;
	self.division = args.division&lt;br /&gt;
	self.team = args.team&lt;br /&gt;
	self.hideLegend = yesno(args.hideLegend, false)&lt;br /&gt;
&lt;br /&gt;
	-- Separate args starting with &amp;quot;team&amp;quot; by team number.&lt;br /&gt;
	local teamArgs = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if type(k) == &amp;#039;string&amp;#039; then&lt;br /&gt;
			local num, suffix = k:match(&amp;#039;^team([1-9][0-9]*)_([a-z_]+)$&amp;#039;)&lt;br /&gt;
			if num then&lt;br /&gt;
				num = tonumber(num)&lt;br /&gt;
				teamArgs[num] = teamArgs[num] or {}&lt;br /&gt;
				teamArgs[num][suffix] = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Make the team objects&lt;br /&gt;
	self.teams = {}&lt;br /&gt;
	for num, t in pairs(teamArgs) do&lt;br /&gt;
		self.teams[num] = Team.new(t)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Find the first-place team if it has been specified&lt;br /&gt;
	self.teamInFirst = tonumber(args.teamInFirst)&lt;br /&gt;
	if self.teamInFirst then&lt;br /&gt;
		self.teamInFirst = self.teams[self.teamInFirst]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Compress the teams array, which at the moment may contain nils&lt;br /&gt;
	self.teams = (function (t)&lt;br /&gt;
		local nums, ret = {}, {}&lt;br /&gt;
		for num in pairs(t) do&lt;br /&gt;
			nums[#nums + 1] = num&lt;br /&gt;
		end&lt;br /&gt;
		table.sort(nums)&lt;br /&gt;
		for i, num in ipairs(nums) do&lt;br /&gt;
			ret[i] = t[num]&lt;br /&gt;
		end&lt;br /&gt;
		return ret&lt;br /&gt;
	end)(self.teams)&lt;br /&gt;
&lt;br /&gt;
	-- Assume the first-place team is the first team in the teams array if it&lt;br /&gt;
	-- was not specified earlier&lt;br /&gt;
	if not self.teamInFirst then&lt;br /&gt;
		self.teamInFirst = self.teams[1]&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return self&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function DivisionStanding:__tostring()&lt;br /&gt;
	local root = mw.html.create()&lt;br /&gt;
	local tableRoot = root:tag(&amp;#039;table&amp;#039;)&lt;br /&gt;
	tableRoot&lt;br /&gt;
		:addClass(&amp;#039;wikitable sortable&amp;#039;)&lt;br /&gt;
		:css(&amp;#039;width&amp;#039;, &amp;#039;65%&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- Caption&lt;br /&gt;
	if self.division then&lt;br /&gt;
		tableRoot:tag(&amp;#039;caption&amp;#039;)&lt;br /&gt;
			:wikitext(self.division)&lt;br /&gt;
			:wikitext(&amp;#039; Division&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Headers&lt;br /&gt;
	local headerRow = tableRoot:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	local function addHeader(display, width, sort)&lt;br /&gt;
		headerRow:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;width&amp;#039;, tostring(width) .. &amp;#039;%&amp;#039;)&lt;br /&gt;
			:attr(&amp;#039;data-sort-type&amp;#039;, sort)&lt;br /&gt;
			:wikitext(display)&lt;br /&gt;
	end&lt;br /&gt;
	addHeader(abbr(&amp;#039;P&amp;#039;, &amp;#039;Position&amp;#039;), 4, &amp;#039;number&amp;#039;)&lt;br /&gt;
	addHeader(&amp;#039;Team&amp;#039;, 38, &amp;#039;text&amp;#039;)&lt;br /&gt;
	addHeader(&amp;#039;GP&amp;#039;, 4, &amp;#039;number&amp;#039;)&lt;br /&gt;
	addHeader(&amp;#039;W&amp;#039;, 4, &amp;#039;number&amp;#039;)&lt;br /&gt;
	addHeader(&amp;#039;L&amp;#039;, 4, &amp;#039;number&amp;#039;)&lt;br /&gt;
	addHeader(&amp;#039;PCT&amp;#039;, 5, &amp;#039;number&amp;#039;)&lt;br /&gt;
	addHeader(&amp;#039;GB&amp;#039;, 5, &amp;#039;number&amp;#039;)&lt;br /&gt;
	addHeader(&amp;#039;Home&amp;#039;, 6, &amp;#039;number&amp;#039;)&lt;br /&gt;
	addHeader(&amp;#039;Road&amp;#039;, 6, &amp;#039;number&amp;#039;)&lt;br /&gt;
	addHeader(&amp;#039;GF&amp;#039;, 4, &amp;#039;number&amp;#039;)&lt;br /&gt;
	addHeader(&amp;#039;GA&amp;#039;, 4, &amp;#039;number&amp;#039;)&lt;br /&gt;
	addHeader(abbr(&amp;#039;Diff&amp;#039;, &amp;#039;Differential&amp;#039;), 4, &amp;#039;number&amp;#039;)&lt;br /&gt;
	addHeader(&amp;#039;GF/GP&amp;#039;, 6, &amp;#039;number&amp;#039;)&lt;br /&gt;
	addHeader(&amp;#039;GA/GP&amp;#039;, 6, &amp;#039;number&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	-- Empty header row. This is purely to hold the up-down arrow icons added&lt;br /&gt;
	-- with the &amp;quot;sortable&amp;quot; class, which helps to keep the table width down.&lt;br /&gt;
	local emptyHeaderRow = tableRoot:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	emptyHeaderRow:tag(&amp;#039;th&amp;#039;):tag(&amp;#039;br&amp;#039;, {selfClosing = true})&lt;br /&gt;
	for i = 1, 13 do&lt;br /&gt;
		emptyHeaderRow:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Rows&lt;br /&gt;
	local function addTeamCell(teamRow, val, align)&lt;br /&gt;
		teamRow:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;text-align&amp;#039;, align)&lt;br /&gt;
			:wikitext(val)&lt;br /&gt;
	end&lt;br /&gt;
	for i, team in ipairs(self.teams) do&lt;br /&gt;
		if team:getLink() then&lt;br /&gt;
			local teamRow = tableRoot:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			teamRow&lt;br /&gt;
				:css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
				:css(&amp;#039;background-color&amp;#039;, self.team and&lt;br /&gt;
					self.team == team:getShortName() and&lt;br /&gt;
					&amp;#039;#ccffcc&amp;#039; or&lt;br /&gt;
					nil&lt;br /&gt;
				)&lt;br /&gt;
			addTeamCell(teamRow, team:getPosition())	&lt;br /&gt;
			addTeamCell(teamRow, team:makeDisplayName(), &amp;#039;left&amp;#039;)&lt;br /&gt;
			addTeamCell(teamRow, team:getGamesPlayed())&lt;br /&gt;
			addTeamCell(teamRow, team:getWins())&lt;br /&gt;
			addTeamCell(teamRow, team:getLosses())&lt;br /&gt;
			addTeamCell(teamRow, team:getWinPercentage())&lt;br /&gt;
			addTeamCell(teamRow, team:getGamesBack(self.teamInFirst))&lt;br /&gt;
			addTeamCell(teamRow, team:getHomeRecord())&lt;br /&gt;
			addTeamCell(teamRow, team:getRoadRecord())&lt;br /&gt;
			addTeamCell(teamRow, team:getGoalsScored())&lt;br /&gt;
			addTeamCell(teamRow, team:getGoalsAllowed())&lt;br /&gt;
			addTeamCell(teamRow, team:getDifferential())&lt;br /&gt;
			addTeamCell(teamRow, team:getGameScoredAverage())&lt;br /&gt;
			addTeamCell(teamRow, team:getGameAllowedAverage())&lt;br /&gt;
		end	&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Legend&lt;br /&gt;
	if not self.hideLegend then&lt;br /&gt;
		local function makeLegend(key, val)&lt;br /&gt;
			return string.format(&amp;quot;&amp;#039;&amp;#039;&amp;#039;%s&amp;#039;&amp;#039;&amp;#039;:&amp;amp;nbsp;%s&amp;quot;, key, val)&lt;br /&gt;
		end&lt;br /&gt;
		root:newline()&lt;br /&gt;
		root:tag(&amp;#039;small&amp;#039;)&lt;br /&gt;
			:wikitext(table.concat({&lt;br /&gt;
				makeLegend(&amp;#039;x&amp;#039;, &amp;#039;Clinched playoff berth&amp;#039;),&lt;br /&gt;
				makeLegend(&amp;#039;c&amp;#039;, &amp;#039;Clinched playoff berth by crossing over to another division&amp;#039;),&lt;br /&gt;
				makeLegend(&amp;#039;y&amp;#039;, &amp;#039;Clinched division&amp;#039;),&lt;br /&gt;
				makeLegend(&amp;#039;z&amp;#039;, &amp;#039;Clinched best regular season record&amp;#039;),&lt;br /&gt;
				makeLegend(&amp;#039;GP&amp;#039;, &amp;#039;Games Played&amp;#039;),&lt;br /&gt;
			}, &amp;#039;; &amp;#039;))&lt;br /&gt;
			:tag(&amp;#039;br&amp;#039;, {selfClosing = true}):done()&lt;br /&gt;
			:wikitext(table.concat({&lt;br /&gt;
				makeLegend(&amp;#039;W&amp;#039;, &amp;#039;Wins&amp;#039;),&lt;br /&gt;
				makeLegend(&amp;#039;L&amp;#039;, &amp;#039;Losses&amp;#039;),&lt;br /&gt;
				makeLegend(&amp;#039;GB&amp;#039;, &amp;#039;[[Games behind|Games back]]&amp;#039;),&lt;br /&gt;
				makeLegend(&amp;#039;PCT&amp;#039;, &amp;#039;Win percentage&amp;#039;),&lt;br /&gt;
				makeLegend(&amp;#039;Home&amp;#039;, &amp;#039;Record at Home&amp;#039;),&lt;br /&gt;
				makeLegend(&amp;#039;Road&amp;#039;, &amp;#039;Record on the Road&amp;#039;),&lt;br /&gt;
				makeLegend(&amp;#039;GF&amp;#039;, &amp;#039;Goals scored&amp;#039;),&lt;br /&gt;
				makeLegend(&amp;#039;GA&amp;#039;, &amp;#039;Goals allowed&amp;#039;),&lt;br /&gt;
			}, &amp;#039;; &amp;#039;))&lt;br /&gt;
			:tag(&amp;#039;br&amp;#039;, {selfClosing = true}):done()&lt;br /&gt;
			:wikitext(table.concat({&lt;br /&gt;
				makeLegend(&amp;#039;Differential&amp;#039;, &amp;#039;Difference between goals scored and allowed&amp;#039;),&lt;br /&gt;
				makeLegend(&amp;#039;GF/GP&amp;#039;, &amp;#039;Average number of goals scored per game&amp;#039;),&lt;br /&gt;
				makeLegend(&amp;#039;GA/GP&amp;#039;, &amp;#039;Average number of goals allowed per game&amp;#039;),&lt;br /&gt;
			}, &amp;#039;; &amp;#039;))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
-- Exports&lt;br /&gt;
-------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	return tostring(DivisionStanding.new(args))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = require(&amp;#039;Module:Arguments&amp;#039;).getArgs(frame, {&lt;br /&gt;
		wrappers = &amp;#039;Template:NLLDivisionStanding&amp;#039;&lt;br /&gt;
	})&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;MusikAnimal</name></author>
	</entry>
</feed>