Module:Citar mapa

local m = require('Módulo:Citação/CS1')

--[[--< m . m a p a >

Este é o método principal da predefinição.

]]

m.mapa = function(frame) -- lista de parâmetros usado apenas neste módulo frame.whitelist = { folha = true, folhas = true, sheet = true, sheets = true, mapa = true, map = true, ['formato-mapa'] = true, ['map-format'] = true, mapurl = true, ['map-url'] = true, urlmapa = true, ['trans-map'] = true, ['mapa-trad'] = true, cartografia = true, cartography = true }   local config, args, A = tratarArgumentos(frame) config.CitationClass = '' config.usaVolume = true config.usaIssue = true local classe = 'map' local sepc = set_style (A.Mode:lower) local use_lowercase = sepc == ','

cfg.aliases.Chapter = {'mapa', 'map'} cfg.aliases.ChapterURL = {'urlmapa', 'mapurl', 'map-url'} cfg.aliases.ChapterFormat = {'formato-mapa', 'map-format'} cfg.aliases.TransChapter = {'trans-map', 'mapa-trad'} cfg.aliases.Cartography = {'cartografia', 'cartography'} cfg.aliases.Sheet = {'folha', 'sheet'} cfg.aliases.Sheets = {'folhas', 'sheets'}

-- verifica por parâmetro |at= adicional. (sheet e sheets) select_one( args, {'at', 'sheet', 'sheets'}, 'redundant_parameters' )

-- mapa no formato de livro não suporta o parâmetro issue if not is_set (A.Periodical) then A.Issue = '' end

-- para forçar o upvalue da tabela 'origin' do metadados de 'A' a carregar o alias A:ORIGIN('Chapter')

-- A.ChapterURL = A['MapURL'] local ChapterURLorigin = A:ORIGIN('ChapterURL') local Periodical_origin = A:ORIGIN('Periodical')

if is_set(A.Cartography ) then A.Cartography = sepc .. " " .. wrap_msg ('cartography', A.Cartography, use_lowercase) end if is_set( A.Scale ) then A.Scale = sepc .. " " .. A.Scale end

A.TitleType = set_titletype (classe, A.TitleType)

-- caso especial quando o mapa está num periódico if is_set (A.Periodical) then config.TituloFormatado = {} local TransTitle = A.TransTitle local Title = A.Title if is_set(A.TitleLink) and is_set(A.Title) then Title = "" .. Title .. "" end if (is_set(Title)) then Title = kern_quotes (Title) Title = wrap_style ('quoted-title', Title) config.TituloFormatado.Title = Title end if (is_set(TransTitle)) then TransTitle= wrap_style ('trans-quoted-title', TransTitle ) -- .. ", "           config.TituloFormatado.TransTitle = TransTitle end end

local coins_pages = get_coins_pages(first_set({A.Sheet, A.Sheets, A.Page, A.Pages, A.At}, 5)) local page, pages = ,  if 'jornal' == Periodical_origin or 'journal' == Periodical_origin then if is_set(A.Sheet) then A.Sheet = wrap_msg ('j-sheet', A.Sheet, use_lowercase) elseif is_set(A.Sheets) then A.Sheets = wrap_msg ('j-sheets', A.Sheets, use_lowercase) end -- mla sempre usa os prefixos p ou pp       if A.Mode:lower ~= 'mla' then if is_set(A.Page) then page = substitute(cfg.messages['j-page(s)'], A.Page) elseif is_set(A.Pages) then page = substitute (cfg.messages['j-page(s)'], A.Pages) end if is_set(A.TotalPages) then pages = substitute (cfg.messages['total-p'], {sepc, A.TotalPages}) end else page, pages = format_pages (A.Page, A.Pages, sepc, A.NoPP, use_lowercase, A.TotalPages) end else if is_set(A.Sheet) then A.Sheet = wrap_msg ('sheet', {sepc, A.Sheet}, use_lowercase) elseif is_set(A.Sheets) then A.Sheets = wrap_msg ('sheets', {sepc, A.Sheets}, use_lowercase) end page, pages = format_pages (A.Page, A.Pages, sepc, A.NoPP, use_lowercase, A.TotalPages) end

local volume = A.Volume if in_array(Periodical_origin, {'revista', 'magazine'}) then if is_set (volume) and is_set (A.Issue) then volume = wrap_msg ('vol-no', {sepc, volume, A.Issue}, use_lowercase) elseif is_set (volume) then volume = wrap_msg ('vol', {sepc, volume}, use_lowercase) elseif is_set (A.Issue) then volume = wrap_msg ('issue', {sepc, A.Issue}, use_lowercase) else volume = '' end else volume = format_volume_issue (A.Volume, A.Issue, sepc) end

-- Função com o código abstraído local B   A, B = citation0( config, args, A)    B.coins_table.Pages = coins_pages

do       local Section = A.Section local Sections = A.Sections local Inset = A.Inset

if is_set( Inset ) then Inset = sepc .. " " .. wrap_msg ('inset', Inset, use_lowercase) end

if is_set( Sections ) then Section = sepc .. " " .. wrap_msg ('sections', Sections, use_lowercase) elseif is_set( Section ) then Section = sepc .. " " .. wrap_msg ('section', Section, use_lowercase) end A.At = A.At .. Inset .. Section end

B.Position = B.Position .. A.Sheet .. A.Sheets A.Page = page A.Pages = pages A.Volume = volume;

-- formatação de Chapter diferenciada local no_quotes = false -- por padrão, inserirá aspas angulares if is_set (A.Contribution) and 0 < #B.c then -- se tiver colaborador(es) -- e um título de contribuição genérico if in_array (A.Contribution:lower, cfg.keywords.contribution) then no_quotes = true -- então não se usará aspas angulares end end

A.Chapter = format_chapter_title (A.ScriptChapter, A.Chapter, A.TransChapter, A.ChapterURL, ChapterURLorigin, no_quotes) -- A.Contribution também está em A.Chapter if is_set (A.Chapter) then A.Chapter = A.Chapter .. A.ChapterFormat ; if is_set (A.TitleType) then -- anotação de mapa aqui ao invés de estar após o título A.Chapter = A.Chapter .. ' ' .. A.TitleType end A.Chapter = A.Chapter.. B.sepc .. ' '   -- se |chapter= não estiver definido, mas estiver |chapter-format= então ... elseif is_set (A.ChapterFormat) then A.Chapter = A.ChapterFormat .. B.sepc .. ' '   end

do       local titulo = A.Mode == 'mla' and '' or A.Title if is_set (A.Chapter) then -- mapa num livro; TitleType é parte de Chapter B.tcommon = safe_join( {titulo, A.Format, A.Edition, A.Scale, A.Series, A.Language, A.Cartography, A.Others, B.Publisher, A.Volume}, B.sepc ) elseif is_set (A.Periodical) then -- mapa num periódico B.tcommon = safe_join( {titulo, A.TitleType, A.Format, A.Periodical, A.Scale, A.Series, A.Language, A.Cartography, A.Others, B.Publisher, A.Volume}, B.sepc ) else -- uma folha ou mapa independente B.tcommon = safe_join( {titulo, A.TitleType, A.Format, A.Edition, A.Scale, A.Series, A.Language, A.Cartography, A.Others, B.Publisher}, B.sepc ) end end

config.CitationClass = classe B.config = config

return textoFinal(A, B) end

return m