Module:Carte/autodoc
[voir] [modifier] [historique] [purger]
Utilisation
modifierCe 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.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
-- 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