<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mywikibiz.com/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://mywikibiz.com/index.php?action=history&amp;feed=atom&amp;title=Module%3ADemography"/>
	<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Demography&amp;action=history"/>
	<updated>2026-07-29T01:11:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://mywikibiz.com/index.php?title=Module:Demography&amp;diff=471509&amp;oldid=prev</id>
		<title>Zoran: Pywikibot 6.4.0</title>
		<link rel="alternate" type="text/html" href="https://mywikibiz.com/index.php?title=Module:Demography&amp;diff=471509&amp;oldid=prev"/>
		<updated>2021-07-15T21:17:58Z</updated>

		<summary type="html">&lt;p&gt;Pywikibot 6.4.0&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('Module:Arguments').getArgs&lt;br /&gt;
local yesno = require('Module:Yesno')&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) == 'number' 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 '1px solid #999' or nil&lt;br /&gt;
	local padding = not isEmbedded and '4px' 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('table')&lt;br /&gt;
		root&lt;br /&gt;
			:css('margin-left', 'auto')&lt;br /&gt;
			:css('margin-right', 'auto')&lt;br /&gt;
			:css('border', border)&lt;br /&gt;
			:css('border-collapse', 'collapse')&lt;br /&gt;
			:css('background-color', '#f3fff3')&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('caption')&lt;br /&gt;
				:css('margin-bottom', '0.5em')&lt;br /&gt;
				:css('font-size', '1.1em')&lt;br /&gt;
				:css('font-weight', 'bold')&lt;br /&gt;
				:wikitext(&lt;br /&gt;
					(args.caption or 'Historical population of ' .. currentTitle.prefixedText)&lt;br /&gt;
					.. (source and ' &amp;lt;br /&amp;gt;&amp;lt;small&amp;gt;(Source: ' .. source .. ')&amp;lt;/small&amp;gt;' or '')&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['enquêteannuelle'] or args.annualsurvey&lt;br /&gt;
		root:tag('tr')&lt;br /&gt;
			:tag('td')&lt;br /&gt;
				:attr('colspan', dateRowLength)&lt;br /&gt;
				:css('border', border)&lt;br /&gt;
				:css('padding', padding)&lt;br /&gt;
				:css('text-align', 'center')&lt;br /&gt;
				:tag('small')&lt;br /&gt;
					:wikitext(&lt;br /&gt;
						'From the year ' .. noDoubleYear .. ' on: No double counting&amp;amp;mdash;'&lt;br /&gt;
						.. 'residents of multiple communes (e.g. students and military personnel)'&lt;br /&gt;
						.. ' are counted only once.'&lt;br /&gt;
						.. (&lt;br /&gt;
							annualSurvey&lt;br /&gt;
							and ' &amp;lt;br /&amp;gt;' .. annualSurvey .. ': Provisional population (annual survey).'&lt;br /&gt;
							or ''&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('tr')&lt;br /&gt;
	hrow&lt;br /&gt;
		:css('background', '#ddffdd')&lt;br /&gt;
		:tag('th')&lt;br /&gt;
			:attr('scope', 'row')&lt;br /&gt;
			:css('border', border)&lt;br /&gt;
			:css('padding', padding)&lt;br /&gt;
			:wikitext('Year')&lt;br /&gt;
	for i, year in ipairs(years) do&lt;br /&gt;
		if year &amp;lt; 0 then&lt;br /&gt;
			year = '&amp;amp;minus;' .. tostring(year * -1)&lt;br /&gt;
		else&lt;br /&gt;
			year = tostring(year)&lt;br /&gt;
		end&lt;br /&gt;
		hrow:tag('th')&lt;br /&gt;
			:css('border', border)&lt;br /&gt;
			:css('padding', padding)&lt;br /&gt;
			:wikitext(year)&lt;br /&gt;
	end&lt;br /&gt;
	local drow = root:tag('tr')&lt;br /&gt;
	drow&lt;br /&gt;
		:tag('th')&lt;br /&gt;
			:attr('scope', 'row')&lt;br /&gt;
			:css('border', border)&lt;br /&gt;
			:css('padding', padding)&lt;br /&gt;
			:wikitext('Population')&lt;br /&gt;
	for i, year in ipairs(years) do&lt;br /&gt;
		drow:tag('td')&lt;br /&gt;
			:css('border', border)&lt;br /&gt;
			:css('padding', padding)&lt;br /&gt;
			:css('text-align', 'center')&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>Zoran</name></author>
	</entry>
</feed>