Módulo:Mapa/autodoc
![]() | Este módulo não apresenta nenhuma documentação. Por favor, documente-o caso o saiba usar ou tenha conhecimentos para tal. |
-- Esta página é a raiz das páginas de configuração do mapa de geolocalização. Veja [[Category:Card Setting Module]]
-- Ele também contém um hack para a documentação dos submódulos de parâmetro de mapa
local p = {}
local linguistic = require('Módulo:Linguística')
local todms = require('Módulo:Coordenadas').dec2dms
local function showpoint(latitude, longitude, text) -- exibe um ponto importante do mapa com suas coordenadas
return {latitude = latitude, longitude = longitude, text = text}
end
local function makemainmap(area) -- mapa principal exibido com os principais pontos do documento
local data = require('Módulo:Mapa/dados/' .. area)
if data.projection ~= 'Projeção equiretangular' then
return '[[File:' .. data.images.default .. '|thumb|' .. "(mapa por padrão)" .. ']]'
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('Módulo:Mapa').multimap({
maplist = {area},
caption = 'Mapa por padrão<br />.',
pointtable = {
showpoint(top, xcenter, todms{args = {data.top, 'N'}}), -- 'N' para latitude: hack, seria necessário reparar o módulo:Coordenadas
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) -- documentar as páginas do mapa/dados
local page = mw.title.getCurrentTitle()
if page.subpageText == 'Exemplos para testes' or page.subpageText == 'Testes' then
return ''
end
local area = mw.text.split(page.text, '/')[3]
local data = require('Módulo:Mapa/dados/' .. 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 -- aparentemente wikibase.sitelink retorna '' não nulo
placelink = nil
end
local formattedname = placename
if placelink then
formattedname = '[[' .. placelink .. '|' .. placename .. ']]'
end
-- adicione aqui um script que verifica se todos os campos obrigatórios são fornecidos e em um formato correto
-- categorização
local cats = ''
-- cat das páginas de doc
if page.subpageText == 'Doc' then
cats = '[[Categoria:!Documentação de módulo]]'
-- cat das páginas de código
else
local modulecat = 'Categoria:!Módulos de configuração de mapa'
if data.zone then
local zonedcat = 'Categoria:!Módulos de configuração de mapa ' .. 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 .. '[[Categoria:!Módulos de configuração de mapa sem link Wikidata|' .. area .. ']]'
end
end
local typeprojection = data.projection
if typeprojection == 'Projeção equiretangular' then
typeprojection = '[[Projeção cilíndrica equidistante|projeção equiretangular]]'
elseif typeprojection == 'Projeção cónica com DL' then
typeprojection = 'Projeção cônica central no cone tangente'
end
local introtext = "Esta página contém dados sobre mapas de localização " .. linguistic.of(formattedname, string.sub(data.genre, 1, 1), string.sub(data.genre, 2, 2), data.determiner, placename)
.. ' construído de acordo com a técnica de ' .. typeprojection .. '.'
.. '<br />Ele é projetado para ser usado a partir de [[Módulo:Mapa]]. Para mais informações sobre este tópico, consulte a documentação deste módulo. '
.. '<br /><br /><br /><b> Lista de mapas disponíveis</b><br />'
local maplist = data.images
local mapgallery = {}
local mainmap = ''
local nummap = 0 -- número de mapas tratados
local gallery = mw.html.create('table'):tag('tr')
if maplist.default then -- para o mapa principal: exibe as coordenadas extremas
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 -- vá para a linha a cada três mapas
gallery = gallery:done():tag('tr')
end
end
return introtext .. tostring(gallery:allDone()) .. cats
end
return p