<?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%3ADemography</id>
	<title>Module:Demography - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://stockhub.co/index.php?action=history&amp;feed=atom&amp;title=Module%3ADemography"/>
	<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Demography&amp;action=history"/>
	<updated>2026-06-07T09:45:52Z</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:Demography&amp;diff=135974&amp;oldid=prev</id>
		<title>imported&gt;Dcirovicbot: .</title>
		<link rel="alternate" type="text/html" href="https://stockhub.co/index.php?title=Module:Demography&amp;diff=135974&amp;oldid=prev"/>
		<updated>2017-12-20T10:13:22Z</updated>

		<summary type="html">&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- This module implements {{demography}}.&lt;br /&gt;
&lt;br /&gt;
local getArgs = require(&amp;#039;Module:Arguments&amp;#039;).getArgs&lt;br /&gt;
local yesno = require(&amp;#039;Module:Yesno&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
-- Often-used functions.&lt;br /&gt;
local floor = math.floor&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.isInteger(v)&lt;br /&gt;
	if type(v) == &amp;#039;number&amp;#039; and floor(v) == v then&lt;br /&gt;
		return true&lt;br /&gt;
	else&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.getArgNums(args)&lt;br /&gt;
	local isInteger = p.isInteger&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		if isInteger(k) then&lt;br /&gt;
			nums[#nums + 1] = k&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(nums)&lt;br /&gt;
	return nums&lt;br /&gt;
end			&lt;br /&gt;
&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
-- Main functions&lt;br /&gt;
----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
function p.main(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
	return p._main(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args)&lt;br /&gt;
	local years = p.getArgNums(args)&lt;br /&gt;
	local isEmbedded = yesno(args.embed)&lt;br /&gt;
	local border = not isEmbedded and &amp;#039;1px solid #999&amp;#039; or nil&lt;br /&gt;
	local padding = not isEmbedded and &amp;#039;4px&amp;#039; or nil&lt;br /&gt;
	local dateRows = p.renderDateRows(args, years, border, padding)&lt;br /&gt;
	local dateRowLength = #years + 1&lt;br /&gt;
	local root&lt;br /&gt;
	if isEmbedded then&lt;br /&gt;
		root = mw.html.create()&lt;br /&gt;
	else&lt;br /&gt;
		root = mw.html.create(&amp;#039;table&amp;#039;)&lt;br /&gt;
		root&lt;br /&gt;
			:css(&amp;#039;margin-left&amp;#039;, &amp;#039;auto&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;margin-right&amp;#039;, &amp;#039;auto&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;border&amp;#039;, border)&lt;br /&gt;
			:css(&amp;#039;border-collapse&amp;#039;, &amp;#039;collapse&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;background-color&amp;#039;, &amp;#039;#f3fff3&amp;#039;)&lt;br /&gt;
		if not args.noheader then&lt;br /&gt;
			local currentTitle = mw.title.getCurrentTitle()&lt;br /&gt;
			local source = args.source&lt;br /&gt;
			root:tag(&amp;#039;caption&amp;#039;)&lt;br /&gt;
				:css(&amp;#039;margin-bottom&amp;#039;, &amp;#039;0.5em&amp;#039;)&lt;br /&gt;
				:css(&amp;#039;font-size&amp;#039;, &amp;#039;1.1em&amp;#039;)&lt;br /&gt;
				:css(&amp;#039;font-weight&amp;#039;, &amp;#039;bold&amp;#039;)&lt;br /&gt;
				:wikitext(&lt;br /&gt;
					(args.caption or &amp;#039;Historical population of &amp;#039; .. currentTitle.prefixedText)&lt;br /&gt;
					.. (source and &amp;#039; &amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;(Source: &amp;#039; .. source .. &amp;#039;)&amp;lt;/small&amp;gt;&amp;#039; or &amp;#039;&amp;#039;)&lt;br /&gt;
				)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	root:wikitext(dateRows)&lt;br /&gt;
	local noDoubleYear = args.sansdoublescomptes or args.withoutdoublecount&lt;br /&gt;
	if noDoubleYear then&lt;br /&gt;
		local annualSurvey = args[&amp;#039;enquêteannuelle&amp;#039;] or args.annualsurvey&lt;br /&gt;
		root:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
			:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
				:attr(&amp;#039;colspan&amp;#039;, dateRowLength)&lt;br /&gt;
				:css(&amp;#039;border&amp;#039;, border)&lt;br /&gt;
				:css(&amp;#039;padding&amp;#039;, padding)&lt;br /&gt;
				:css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
				:tag(&amp;#039;small&amp;#039;)&lt;br /&gt;
					:wikitext(&lt;br /&gt;
						&amp;#039;From the year &amp;#039; .. noDoubleYear .. &amp;#039; on: No double counting&amp;amp;mdash;&amp;#039;&lt;br /&gt;
						.. &amp;#039;residents of multiple communes (e.g. students and military personnel)&amp;#039;&lt;br /&gt;
						.. &amp;#039; are counted only once.&amp;#039;&lt;br /&gt;
						.. (&lt;br /&gt;
							annualSurvey&lt;br /&gt;
							and &amp;#039; &amp;lt;br /&amp;gt;&amp;#039; .. annualSurvey .. &amp;#039;: Provisional population (annual survey).&amp;#039;&lt;br /&gt;
							or &amp;#039;&amp;#039;&lt;br /&gt;
						)&lt;br /&gt;
					)&lt;br /&gt;
	end&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.renderDateRows(args, years, border, padding)&lt;br /&gt;
	local root = mw.html.create()&lt;br /&gt;
	local hrow = root:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	hrow&lt;br /&gt;
		:css(&amp;#039;background&amp;#039;, &amp;#039;#ddffdd&amp;#039;)&lt;br /&gt;
		:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
			:attr(&amp;#039;scope&amp;#039;, &amp;#039;row&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;border&amp;#039;, border)&lt;br /&gt;
			:css(&amp;#039;padding&amp;#039;, padding)&lt;br /&gt;
			:wikitext(&amp;#039;Year&amp;#039;)&lt;br /&gt;
	for i, year in ipairs(years) do&lt;br /&gt;
		if year &amp;lt; 0 then&lt;br /&gt;
			year = &amp;#039;&amp;amp;minus;&amp;#039; .. tostring(year * -1)&lt;br /&gt;
		else&lt;br /&gt;
			year = tostring(year)&lt;br /&gt;
		end&lt;br /&gt;
		hrow:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;border&amp;#039;, border)&lt;br /&gt;
			:css(&amp;#039;padding&amp;#039;, padding)&lt;br /&gt;
			:wikitext(year)&lt;br /&gt;
	end&lt;br /&gt;
	local drow = root:tag(&amp;#039;tr&amp;#039;)&lt;br /&gt;
	drow&lt;br /&gt;
		:tag(&amp;#039;th&amp;#039;)&lt;br /&gt;
			:attr(&amp;#039;scope&amp;#039;, &amp;#039;row&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;border&amp;#039;, border)&lt;br /&gt;
			:css(&amp;#039;padding&amp;#039;, padding)&lt;br /&gt;
			:wikitext(&amp;#039;Population&amp;#039;)&lt;br /&gt;
	for i, year in ipairs(years) do&lt;br /&gt;
		drow:tag(&amp;#039;td&amp;#039;)&lt;br /&gt;
			:css(&amp;#039;border&amp;#039;, border)&lt;br /&gt;
			:css(&amp;#039;padding&amp;#039;, padding)&lt;br /&gt;
			:css(&amp;#039;text-align&amp;#039;, &amp;#039;center&amp;#039;)&lt;br /&gt;
			:wikitext(args[year])&lt;br /&gt;
	end&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>imported&gt;Dcirovicbot</name></author>
	</entry>
</feed>