Documentation[voir] [modifier] [historique] [purger]

Utilisation modifier

Ce modèle possède une unique fonction exportable destinée à être utilisée par l'intermédiaire du modèle : {{Documentation données cartes}}.

datadoc(frame) – créé la page de documentation pour un module de paramétrage de carte (par exemple Module:Carte/données/canada.

-- Cette page est la racine des pages de paramétrage des carte de géolocalisation. Voir [[Catégorie:Module de paramétrage de carte]]
-- elle contient aussi un hack pour la documentation des sous-modules de paramétrage de carte

local p = {}
local linguistic = require('Module:Linguistique')

local todms = require('Module:Coordinates').dec2dms

local function showpoint(latitude, longitude, text) -- affiche un point important de la carte avec ses coordonnées
	return 	{latitude = latitude, longitude = longitude, text = text}
end

local function makemainmap(area) -- carte principale affichée avec les points principaux dans la doc
	local data = require('Module:Carte/données/' .. area)
	if data.projection ~= 'Projection équirectangulaire' then
		return '[[File:' .. data.images.default .. '|thumb|' .. "(carte par défaut)" .. ']]'
	end
	local top, bottom, left, right = data.top, data.bottom, data.left, data.right
	local ycenter= (top + bottom) / 2
	local xcenter = (left + right) / 2
	if right < left then
		if xcenter > 0 then
			xcenter = xcenter - 180
		else
			xcenter = xcenter + 180
		end
	end
	return tostring(require('Module:Carte').multimap({
		maplist = {area},
		caption = 'Carte par défaut<br />.',
		pointtable = {
			showpoint(top, xcenter, todms{args = {data.top, 'N'}}), -- 'N' pour latitude : hack, il faudrait réparer module:Coordonnées
			showpoint(bottom, xcenter, todms{args = {data.bottom, 'N'}}),
			showpoint(ycenter, left, todms{args = {data.left, 'W'}}),
			showpoint(ycenter, right, todms{args = {data.right, 'W'}}),
		}  })).. '</b><br />'
end

function p.datadoc(frame) -- pour documenter les pages Carte/données/
	local page = mw.title.getCurrentTitle()
	if page.subpageText == 'Bac à sable' or page.subpageText == 'Test' then
		return ''
	end
	local area = mw.text.split(page.text, '/')[3]
	local data = require('Module:Carte/données/' .. area)
	local placename = data.name or mw.wikibase.label(data.wikidata)
	local placelink = ''
	if data.wikidata then
		placelink = mw.wikibase.sitelink(data.wikidata)
	end
	if placelink == '' then -- apparemment wikibase.sitelink retourne '' pas nil
		placelink = nil
	end
	local formattedname =  placename
	if placelink then
		formattedname =  '[[' .. placelink .. '|' .. placename .. ']]'
	end
	-- ajouter ici un script vérifiant que toutes les champs requis sont fournis, et dans un format correct

	-- catégorisation
	local cats = ''
	-- cat des pages de doc
	if page.subpageText == 'Documentation' then
		cats = '[[Catégorie:Documentation de module]]'

	-- cat des pages de code
	else
		local modulecat = 'Catégorie:Module de paramétrage de carte'
		if data.zone then
			local zonedcat = 'Catégorie:Module de paramétrage de carte ' .. linguistic.of(data.zone)
			local page = mw.title.new(zonedcat)
			if page and page.exists then
				modulecat = zonedcat
			end
		end
		cats = cats .. '[[' .. modulecat .. '|' .. area .. ']]'

		if not placelink then
			cats = cats .. '[[Catégorie:Module de paramétrage de carte sans lien Wikidata|' .. area .. ']]'
		end
	end

	local typeprojection = data.projection
	if typeprojection == 'Projection équirectangulaire' then
		typeprojection = '[[Projection cylindrique équidistante|projection équirectangulaire]]'
	elseif typeprojection == 'Projection conique avec DL' then
		typeprojection = '[[Aide:Systèmes de projection#Projection conique centrale sur le cône tangent|projection conique centrale sur le cône tangent]]'
	end
	local introtext = "Cette page contient des données concernant des cartes de géolocalisation " .. linguistic.of(formattedname, string.sub(data.genre, 1, 1), string.sub(data.genre, 2, 2), data.determiner, placename)
	.. ' construites selon la technique de la ' .. typeprojection .. '.'
	.. '<br />Elle est conçue pour être utilisée depuis [[Module:Carte]]. Pour davantage d\'informations sur le sujet, veuillez-vous rapporter à la documentation de ce module. '
	.. '<br /><br /><br /><b> Liste des cartes disponibles</b><br />'
	local maplist = data.images
	local mapgallery = {}
	local mainmap = ''
	local nummap = 0 -- nombre de cartes traitées
	local gallery = mw.html.create('table'):tag('tr')
	if maplist.default then -- pour la carte principale : affiche les coordonnées extrêmes
		local mainmap = makemainmap(area)
		gallery:tag('td'):wikitext(mainmap)
		maplist.default = nil
		nummap = nummap + 1
	end
	for i, j in pairs(maplist) do
		gallery:tag('td'):wikitext('[[File:' .. j .. '|thumb|' .. i .. ']]')
		nummap = nummap + 1
		if nummap % 3 == 0 then -- aller à la ligne toutes les trois cartes
			gallery = gallery:done():tag('tr')
		end
	end
	return introtext .. tostring(gallery:allDone()) .. cats
end
return p