<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="nl">
	<id>https://wiki-raamsdonk.nl/index.php?action=history&amp;feed=atom&amp;title=Module%3AGemeente_in_Nederland</id>
	<title>Module:Gemeente in Nederland - Bewerkingsoverzicht</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-raamsdonk.nl/index.php?action=history&amp;feed=atom&amp;title=Module%3AGemeente_in_Nederland"/>
	<link rel="alternate" type="text/html" href="https://wiki-raamsdonk.nl/index.php?title=Module:Gemeente_in_Nederland&amp;action=history"/>
	<updated>2026-04-26T21:47:11Z</updated>
	<subtitle>Bewerkingsoverzicht voor deze pagina op de wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://wiki-raamsdonk.nl/index.php?title=Module:Gemeente_in_Nederland&amp;diff=76432&amp;oldid=prev</id>
		<title>Colani: 1 versie geïmporteerd</title>
		<link rel="alternate" type="text/html" href="https://wiki-raamsdonk.nl/index.php?title=Module:Gemeente_in_Nederland&amp;diff=76432&amp;oldid=prev"/>
		<updated>2024-03-23T16:40:18Z</updated>

		<summary type="html">&lt;p&gt;1 versie geïmporteerd&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nieuwe pagina&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--Variabele die alle modulefuncties bevat&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
--Modulefunctie &amp;quot;settlements_table&amp;quot;, voert functie &amp;quot;settlements_table&amp;quot; uit&lt;br /&gt;
function p.settlements_table(frame)&lt;br /&gt;
	local ok, result = pcall(settlements_table, frame)&lt;br /&gt;
	--Als er geen errors optraden tijdens de uitvoering van de functie, wordt de tabel (het resultaat) geretourneerd&lt;br /&gt;
	if ok == true then&lt;br /&gt;
		return result&lt;br /&gt;
	--Als er wel een error optrad, wordt een foutmelding geretourneerd en wordt de pagina in een beheercategorie geplaatst&lt;br /&gt;
	else&lt;br /&gt;
		return frame:expandTemplate{ title = &amp;#039;Error&amp;#039;, args = {&amp;#039;De module gaf een foutmelding (klik [[Overleg Wikipedia:Wikiproject/WikidataOpWikipedia/Inwoneraantal#Tabel woonplaatsen Nederlandse gemeente|hier]] voor hulp):&amp;lt;br /&amp;gt;&amp;#039; .. result .. &amp;#039;[[Categorie:Wikipedia:Tabel woonplaatsen Nederlandse gemeente/Directe actie nodig]]&amp;#039;} }&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--Functie &amp;quot;settlements_table&amp;quot;, maakt een tabel met alle woonplaatsen in een gemeente en de bijbehorende inwoneraantallen en markeert de hoofdplaats(en)&lt;br /&gt;
function settlements_table(frame)&lt;br /&gt;
	result = &amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	--Parameters die meegegeven worden aan het sjabloon ophalen&lt;br /&gt;
	parent_args = frame:getParent().args&lt;br /&gt;
	--Parameters die meegegeven worden aan de module (vanuit het sjabloon) ophalen&lt;br /&gt;
	args = frame.args&lt;br /&gt;
&lt;br /&gt;
	--Als de sjabloonparameter &amp;quot;wikidataid&amp;quot; gegeven is, wordt een tabel gemaakt voor het Wikidata-item met dat ID&lt;br /&gt;
	if parent_args.wikidataid then&lt;br /&gt;
		municipality_id = parent_args.wikidataid&lt;br /&gt;
		--Als het ID niet op een Wikidata-ID lijkt, wordt een foutmelding geretourneerd&lt;br /&gt;
		if string.sub(municipality_id, 1, 1) ~= &amp;#039;Q&amp;#039; then&lt;br /&gt;
			error(&amp;#039;Het opgegeven Wikidata-ID, &amp;lt;code&amp;gt;&amp;#039; .. municipality_id .. &amp;#039;&amp;lt;/code&amp;gt;, is niet geldig. Een geldig Wikidata-ID is in de vorm &amp;quot;Qx&amp;quot;, met een of meer cijfers op de plaats van x.&amp;#039;)&lt;br /&gt;
		end&lt;br /&gt;
	--Anders wordt het Wikidata-item behorend bij de pagina zelf gebruikt&lt;br /&gt;
	else&lt;br /&gt;
		municipality_id = mw.wikibase.getEntityIdForCurrentPage()&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Als de pagina geen Wikidata-ID heeft en ook geen Wikidata-ID is opgegeven, wordt een foutmelding geretourneerd&lt;br /&gt;
	if municipality_id == nil then&lt;br /&gt;
		error(&amp;#039;Er kon geen tabel gemaakt worden omdat deze pagina geen Wikidata-ID heeft en er geen Wikidata-ID is opgegeven als parameter (zie [[Sjabloon:Tabel woonplaatsen Nederlandse gemeente#Parameters|hier]] welke parameters gebruikt kunnen worden).&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Als het bijbehorende Wikidata-item niet een instantie is van &amp;quot;municipality of the Netherlands&amp;quot; (Q2039348), wordt een foutmelding geretourneerd&lt;br /&gt;
	local municipality_instance = &amp;#039;Q2039348&amp;#039;&lt;br /&gt;
	if not is_instance(municipality_id, municipality_instance) then&lt;br /&gt;
		error(&amp;#039;Er kon geen tabel gemaakt worden omdat het [[:d:&amp;#039; .. municipality_id .. &amp;#039;|Wikidata-item]] &amp;#039; .. (parent_args.wikidataid and &amp;#039;van het opgegeven Wikidata-ID&amp;#039; or &amp;#039;van deze pagina&amp;#039;) .. &amp;#039; niet een instantie is van &amp;quot;municipality of the Netherlands&amp;quot; ([[d:&amp;#039; .. municipality_instance .. &amp;#039;|&amp;#039; .. municipality_instance .. &amp;#039;]]).&amp;#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--De hoofdplaatsen van, woonplaatsen in, het totale inwoneraantal van en de naam van de gemeente worden opgehaald uit Wikidata&lt;br /&gt;
	local capitals = mw.wikibase.getBestStatements(municipality_id, &amp;#039;P36&amp;#039;)&lt;br /&gt;
	local settlements = mw.wikibase.getBestStatements(municipality_id, &amp;#039;P1383&amp;#039;)&lt;br /&gt;
	local municipality_data = get_population(frame, municipality_id)&lt;br /&gt;
	local municipality_name = mw.wikibase.getLabelByLang(municipality_id, &amp;#039;nl&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
	--De Wikidata-ID&amp;#039;s van de hoofdplaatsen worden in een table gezet&lt;br /&gt;
	local capital_ids = {}&lt;br /&gt;
	for k in pairs(capitals) do&lt;br /&gt;
		capital_ids[k] = capitals[k].mainsnak.datavalue.value.id&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Voor iedere woonplaats in de gemeente worden gegevens opgehaald&lt;br /&gt;
	local settlements_data = {}&lt;br /&gt;
	local municipality_population_sum = 0&lt;br /&gt;
	local n = 1&lt;br /&gt;
	for k in pairs(settlements) do&lt;br /&gt;
		local id = settlements[k].mainsnak.datavalue.value.id&lt;br /&gt;
&lt;br /&gt;
		--Alleen als de woonplaats een instantie is van &amp;quot;populated place in the Netherlands&amp;quot; (Q1852859) wordt deze meegenomen&lt;br /&gt;
		if is_instance(id, &amp;#039;Q1852859&amp;#039;) then&lt;br /&gt;
			--Het inwoneraantal wordt opgehaald, alsmede het inwoneraantal met bron erachter en de bijbehorende peildatum&lt;br /&gt;
			local settlement_data = get_population(frame, id)&lt;br /&gt;
&lt;br /&gt;
			--De naam van de woonplaats wordt opgehaald&lt;br /&gt;
			local settlement_name = mw.wikibase.getLabelByLang(id, &amp;#039;nl&amp;#039;)&lt;br /&gt;
&lt;br /&gt;
			--Voor de woonplaatsnamen worden links naar artikelen gemaakt, als er geen pagina over bestaat wordt er niet gelinkt&lt;br /&gt;
			local settlement_table_name = frame:expandTemplate{ title = &amp;#039;Wikidata&amp;#039;, args = {&amp;#039;label&amp;#039;, &amp;#039;short&amp;#039;, &amp;#039;linked&amp;#039;, id} }&lt;br /&gt;
&lt;br /&gt;
			--Als de woonplaats een hoofdplaats van de gemeente is, wordt hij gemarkeerd&lt;br /&gt;
			local settlement_is_capital = contains(capital_ids, id)&lt;br /&gt;
			if settlement_is_capital then&lt;br /&gt;
				settlement_table_name = &amp;#039;\&amp;#039;\&amp;#039;\&amp;#039;&amp;#039; .. settlement_table_name .. &amp;#039;\&amp;#039;\&amp;#039;\&amp;#039;&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
&lt;br /&gt;
			--Gegevens over de woonplaats worden opgeslagen in een table&lt;br /&gt;
			settlement_data_combined = {name=settlement_name, table_name=settlement_table_name, is_capital=settlement_is_capital}&lt;br /&gt;
			for k,v in pairs(settlement_data) do&lt;br /&gt;
				settlement_data_combined[k] = v&lt;br /&gt;
			end&lt;br /&gt;
			settlements_data[n] = settlement_data_combined&lt;br /&gt;
			n = n + 1&lt;br /&gt;
&lt;br /&gt;
			--De som van alle inwoneraantallen wordt berekend&lt;br /&gt;
			municipality_population_sum = municipality_population_sum + settlement_data_combined.population&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--De table wordt gesorteerd volgens de functie &amp;quot;order_settlements&amp;quot;&lt;br /&gt;
	table.sort(settlements_data, order_settlements)&lt;br /&gt;
&lt;br /&gt;
	for k, row in pairs(settlements_data) do&lt;br /&gt;
		--De tabel wordt gemaakt met de gegevens uit de table &amp;quot;settlements_data&amp;quot;. Merk op dat hier &amp;quot;row.population_with_source_sortable&amp;quot; wordt gebruikt, het inwoneraantal mét bron erachter&lt;br /&gt;
		result = result .. &amp;#039;\n|-\n|&amp;#039; .. row.table_name .. &amp;#039;||&amp;#039; .. row.population_with_source_sortable .. &amp;#039;||&amp;#039; .. row.population_date&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Als de som van de inwoneraantallen niet gelijk is aan de waarde gegeven op Wikidata, wordt het verschil toegevoegd aan de tabel&lt;br /&gt;
	local population_difference = municipality_data.population - municipality_population_sum&lt;br /&gt;
	if population_difference ~= 0 then&lt;br /&gt;
		--Het Sjabloon:Sorteer wordt gebruikt om het overige inwoneraantal sorteerbaar te maken&lt;br /&gt;
		local population_difference_sortable = frame:expandTemplate{ title = &amp;#039;Sorteer&amp;#039;, args = {population_difference, format_thousand(population_difference)} }&lt;br /&gt;
		--Als het verschil binnen de marge van een afrondingsverschil ligt (aantal woonplaatsen vermenigvuldigd met 2) heet de tabelrij &amp;quot;Afrondingsverschil&amp;quot;, anders &amp;quot;Overig&amp;quot;&lt;br /&gt;
		if math.abs(population_difference) &amp;gt; #settlements_data * 2 then&lt;br /&gt;
			--Als het verschil te groot is, wordt de pagina in een beheercategorie geplaatst&lt;br /&gt;
			population_difference_title = &amp;#039;Overig[[Categorie:Wikipedia:Tabel woonplaatsen Nederlandse gemeente/Te veel overig]]&amp;#039;&lt;br /&gt;
		else&lt;br /&gt;
			population_difference_title = &amp;#039;Afrondingsverschil&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		result = result .. &amp;#039;\n|-class=&amp;quot;sortbottom&amp;quot;\n|&amp;#039; .. population_difference_title .. &amp;#039;||&amp;#039; .. population_difference_sortable .. &amp;#039;||&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Het totale inwoneraantal van de gemeente uit Wikidata wordt onderaan de tabel gezet. Merk op dat hier &amp;quot;municipality_data.population_with_source_sortable&amp;quot; wordt gebruikt, het inwoneraantal mét bron erachter&lt;br /&gt;
	result = &amp;#039;{| class=&amp;quot;wikitable sortable&amp;quot;\n|+ Woonplaatsen in de gemeente &amp;#039; .. municipality_name .. &amp;#039;\n|-\n!Woonplaats!!Inwoneraantal!!Peildatum&amp;#039; .. result .. &amp;#039;\n|-class=&amp;quot;sortbottom&amp;quot;\n|Totaal:||&amp;#039; .. municipality_data.population_with_source_sortable .. &amp;#039;||&amp;#039; .. municipality_data.population_date .. &amp;#039;\n|+ align=&amp;quot;bottom&amp;quot; style=&amp;quot;caption-side:bottom; text-align:right;&amp;quot; class=&amp;quot;noprint&amp;quot; | &amp;lt;small&amp;gt;[[Overleg Wikipedia:Wikiproject/WikidataOpWikipedia/Inwoneraantal#Tabel woonplaatsen Nederlandse gemeente|Meld een fout]]&amp;lt;/small&amp;gt;\n|}&amp;#039;&lt;br /&gt;
&lt;br /&gt;
	--Het resultaat wordt geretourneerd&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--Functie &amp;quot;is_instance&amp;quot;, kijkt of een Wikidata-item een instantie is van een ander Wikidata-item&lt;br /&gt;
function is_instance(id, instance)&lt;br /&gt;
	local instances = mw.wikibase.getBestStatements(id, &amp;#039;P31&amp;#039;)&lt;br /&gt;
	for index, value in pairs(instances) do&lt;br /&gt;
		if value.mainsnak.datavalue.value.id == instance then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--Functie &amp;quot;get_population&amp;quot;, haalt het inwoneraantal, inwoneraantal met bron en de peildatum van het inwoneraantal op uit Wikidata&lt;br /&gt;
function get_population(frame, id)&lt;br /&gt;
	--Als de woonplaats een inwoneraantal heeft waarvan &amp;quot;van toepassing op deel&amp;quot; (P518) de gemeente zelf is, dan wordt dat inwoneraantal gebruikt&lt;br /&gt;
	population_partial = frame:expandTemplate{ title = &amp;#039;Wikidata&amp;#039;, args = {&amp;#039;property&amp;#039;, id, &amp;#039;P1082&amp;#039;, P518=municipality_id} }:gsub(&amp;#039;%.&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
	if population_partial ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		population = population_partial&lt;br /&gt;
		population_with_source = frame:expandTemplate{ title = &amp;#039;Wikidata&amp;#039;, args = {&amp;#039;property&amp;#039;, &amp;#039;qualifier&amp;#039;, &amp;#039;references&amp;#039;, &amp;#039;normal+&amp;#039;, id, &amp;#039;P1082&amp;#039;, P518=municipality_id} }&lt;br /&gt;
		population_date = frame:expandTemplate{ title = &amp;#039;Wikidata&amp;#039;, args = {&amp;#039;properties&amp;#039;, &amp;#039;qualifier&amp;#039;, &amp;#039;normal+&amp;#039;, id, &amp;#039;P1082&amp;#039;, P518=municipality_id, &amp;#039;P585&amp;#039;, format=&amp;#039;%q&amp;#039;} }&lt;br /&gt;
	else&lt;br /&gt;
		--Anders worden met Sjabloon:Inwonertal het &amp;quot;gewone&amp;quot; inwoneraantal en bijbehorende gegevens van Wikidata gehaald, die gemarkeerd zijn als voorkeurswaarde&lt;br /&gt;
		population = frame:expandTemplate{ title = &amp;#039;Inwonertal&amp;#039;, args = {id=id, soort=&amp;#039;waardepuur&amp;#039;} }:gsub(&amp;#039;%.&amp;#039;, &amp;#039;&amp;#039;)&lt;br /&gt;
		population_with_source = frame:expandTemplate{ title = &amp;#039;Inwonertal&amp;#039;, args = {id=id} }&lt;br /&gt;
		population_date = frame:expandTemplate{ title = &amp;#039;Inwonertal&amp;#039;, args = {id=id, soort=&amp;#039;datum&amp;#039;} }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Als de peildatum 4 karakters of korter is (een jaartal), wordt deze via het Sjabloon:Sorteer voor de sortering omgezet naar 1 januari van dat jaar&lt;br /&gt;
	if string.len(population_date) &amp;lt;= 4 then&lt;br /&gt;
		population_date = frame:expandTemplate{ title = &amp;#039;Sorteer&amp;#039;, args = {&amp;#039;1 januari&amp;#039;, population_date} }&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Als het inwoneraantal niet bekend is, wordt deze vervangen door een vraagteken en wordt de pagina in een beheercategorie geplaatst&lt;br /&gt;
	if population == &amp;#039;&amp;#039; then&lt;br /&gt;
		--Voor de sortering wordt het inwoneraantal op 0 gezet, terwijl &amp;quot;population_with_source&amp;quot; wordt weergegeven als een vraagteken&lt;br /&gt;
		population = 0&lt;br /&gt;
		population_with_source = &amp;#039;?&amp;#039;&lt;br /&gt;
		result = result .. &amp;#039;[[Categorie:Wikipedia:Tabel woonplaatsen Nederlandse gemeente/Ontbrekend inwoneraantal]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Als de peildatum niet gelijk is aan de gewenste peildatum, wordt de pagina in een beheercategorie geplaatst&lt;br /&gt;
	if population_date ~= args.reference_date then&lt;br /&gt;
		result = result .. &amp;#039;[[Categorie:Wikipedia:Tabel woonplaatsen Nederlandse gemeente/Onjuiste peildatum]]&amp;#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Als de moduleparameter &amp;quot;wikidatalinks&amp;quot; gelijk is aan &amp;quot;ja&amp;quot;, wordt bij ieder inwoneraantal een link geplaatst naar de Wikidata-locatie van dat gegeven&lt;br /&gt;
	if parent_args.wikidatalinks == &amp;#039;ja&amp;#039; then&lt;br /&gt;
		local wikidatalink = frame:expandTemplate{ title = &amp;#039;Inwonertal&amp;#039;, args = {id=id, soort=&amp;#039;wdlink&amp;#039;} }&lt;br /&gt;
		--Alleen als het het inwoneraantal van de gemeente betreft, wordt de pagina in een beheercategorie geplaatst (zodat die categorietoewijzing maar een keer gebeurt)&lt;br /&gt;
		if id == municipality_id then&lt;br /&gt;
			wikidatalink = wikidatalink .. &amp;#039;[[Categorie:Wikipedia:Tabel woonplaatsen Nederlandse gemeente/Directe actie nodig]]&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
		population_with_source = population_with_source .. &amp;#039; &amp;#039; .. wikidatalink&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	--Het Sjabloon:Sorteer wordt gebruikt om de inwoneraantallen sorteerbaar te maken&lt;br /&gt;
	local population_with_source_sortable = frame:expandTemplate{ title = &amp;#039;Sorteer&amp;#039;, args = {population, population_with_source} }&lt;br /&gt;
&lt;br /&gt;
	return {population=population, population_with_source_sortable=population_with_source_sortable, population_date=population_date}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--Functie &amp;quot;contains&amp;quot;, kijkt of een table een bepaalde waarde bevat&lt;br /&gt;
function contains(tab, val)&lt;br /&gt;
	for index, value in pairs(tab) do&lt;br /&gt;
		if value == val then&lt;br /&gt;
			return true&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--Functie &amp;quot;order_settlements&amp;quot;, retourneert welke rij boven en welke onder de andere moet staan: op alfabetische volgorde van woonplaatsnamen, waarbij de hoofdplaats(en) bovenaan staat/staan (alfabetisch gesorteerd indien meer dan één)&lt;br /&gt;
function order_settlements(a, b)&lt;br /&gt;
	if a.is_capital == b.is_capital then&lt;br /&gt;
		return a.name &amp;lt; b.name&lt;br /&gt;
	end&lt;br /&gt;
	return a.is_capital&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--Functie &amp;quot;format_thousand&amp;quot;, voegt scheidingstekens voor duizendtallen (punten) toe aan een getal&lt;br /&gt;
--Credits: remiX (04-01-2013), van http://www.computercraft.info/forums2/index.php?/topic/8065-lua-thousand-separator/&lt;br /&gt;
--Aangepast om ook te werken voor negatieve getallen&lt;br /&gt;
function format_thousand(v)&lt;br /&gt;
	if v &amp;lt; 0 then&lt;br /&gt;
		negative = true&lt;br /&gt;
		v = -v&lt;br /&gt;
	end&lt;br /&gt;
	local s = string.format(&amp;#039;%d&amp;#039;, math.floor(v))&lt;br /&gt;
	local pos = string.len(s) % 3&lt;br /&gt;
	if pos == 0 then pos = 3 end&lt;br /&gt;
	local formatted = string.sub(s, 1, pos) .. string.gsub(string.sub(s, pos+1), &amp;#039;(...)&amp;#039;, &amp;#039;.%1&amp;#039;)&lt;br /&gt;
	if negative == true then formatted = &amp;#039;-&amp;#039; .. formatted end&lt;br /&gt;
	return formatted&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Colani</name></author>
	</entry>
</feed>