Esta wiki foi não teve nenhuma edição nem entrada nos registos durante os últimos 45 dias e foi marcada automaticamente como inativa. Se quiser impedir a wiki de ser fechada mostre alguns sinais de atividade. Se não houver sinais de utilização da wiki nos próximos 15 dias, ela será fechada de acordo com as normas de dormência (que todos os fundadores de wikis aceitam ao pedir uma wiki). Se a wiki for fechada e ninguém a reabrir nos próximos 135 dias, ela será candidata para eliminação. Nota: se é burocrata da wiki, pode ir a Special:ManageWiki e desmarcar "inativa" por si próprio.
De Família Corsi
Este módulo é usado em mais de 40 000 páginas. (Ver Wikipedia:Predefinições em alto risco) Para evitar sobrecargas desnecessárias ao servidor e outros transtornos, quaisquer mudanças devem ser previamente testadas, seja na Predefinição:Teste |
Este módulo está na categoria sujeitos a proteção de página. Ele é um módulo de alta visibilidade em uso por um grande número de páginas, ou é transcluído muito frequentemente. Por causa do vandalismo ou erros que podem afectar muitas páginas, e mesmo edições triviais podem causar cargas substanciais nos servidores, ele está protegido de editar. |
Este módulo depende dos seguintes outros módulos: |
Descrição[editar]
Este módulo destina-se a proporcionar funções básicas da predefinição {{Citar periódico}}
.
Outra documentação:
local p = require('Módulo:Citação/CS1')
--[[--------------------------< a b s t r a c a o >-----------------------------------
Código em comum às citações de periódico
]]
local abstracao = function(config, A)
config.usaVolume = true
config.usaIssue = true
config.ChapterNaoSuportado = true
local chap_param
-- pega o nome do parâmetro de um destes peta-parâmetros relacionados a "chapter"
if is_set (A.Chapter) then
chap_param = A:ORIGIN ('Chapter')
elseif is_set (A.TransChapter) then
chap_param = A:ORIGIN ('TransChapter')
elseif is_set (A.ChapterURL) then
chap_param = A:ORIGIN ('ChapterURL')
elseif is_set (A.ScriptChapter) then
chap_param = A:ORIGIN ('ScriptChapter')
else is_set (A.ChapterFormat)
chap_param = A:ORIGIN ('ChapterFormat')
end
-- se foi encontrado algum...
if is_set (chap_param) then
-- ... adiciona mensagem de erro
table.insert( z.message_tail, { set_error( 'chapter_ignored', {chap_param}, true ) } )
-- e esvazia para evitar problemas com concatenações
A.Chapter = ''
A.TransChapter = '';
A.ChapterURL = '';
A.ScriptChapter = '';
A.ChapterFormat = '';
end
local TransTitle = A.TransTitle
local Title = A.Title
if is_set(A.TitleLink) and is_set(A.Title) then
Title = "[[" .. A.TitleLink .. "|" .. Title .. "]]"
end
config.TituloFormatado = {}
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
--[[--------------------------< p . p e r i o d i c o >----------------------------------
Este é o método principal da predefinição {{citar periódico}}.
]]
p.periodico = function(frame)
frame.whitelist = { aspas = true,
mes = true,
["mês"] = true}
local config, args, A = tratarArgumentos(frame)
config.CitationClass = ''
config.permPCMcomoURL = true
local classe = 'journal'
-- abstração de códigos que os periódicos têm em comum
abstracao(config, A)
if is_set(args.aspas) and args.aspas:lower() == 'não' then
config.TituloFormatado = nil
end
local mes = args.mes or args["mês"]
if is_set(A.Year) and is_set(mes) then
meses = {"janeiro", "fevereiro", "março", "abril", "maio", "junho", "julho", "agosto", "setembro", "outubro", "novembro", "dezembro"}
local n = mes:match("^(%d+)$")
n = n and tonumber(n)
if n and n > 0 and n < 13 then
A.Date = meses[n] .. ' de ' .. A.Year
A.Year = ''
else
existe = false
for _,m in pairs(meses) do
if m == tostring(mes) then
existe = true
break
end
end
if (existe) then
A.Date = mes .. ' de ' .. A.Year
A.Year = ''
end
end
end
local sepc = set_style (A.Mode:lower())
local use_lowercase = sepc == ','
local page, pages = '', ''
-- 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
local volume = A.Volume
if ('mla' == A.Mode:lower()) then
-- mla 8th edition; força letra minúscula
if is_set (volume) and is_set (A.Issue) then
volume = wrap_msg ('vol-no', {sepc, volume, A.Issue}, true)
elseif is_set (volume) then
volume = wrap_msg ('vol', {sepc, volume}, true)
else
volume = ''
end
else
volume = format_volume_issue (volume, A.Issue, sepc, use_lowercase)
end
if not is_set(A.Title) and is_set(volume) then
config.TituloDispensavel = true
if is_set(A.URL) then
for i=1,volume:len() do
if volume:sub(i,i):match(("[^%".. sepc .. "%s]")) then
volume = volume:sub(1, i-1) .. '['.. A.URL .. ' '.. volume:sub(i) .. ']'
break
end
end
A.URL = ''
end
end
-- Função com o código abstraído
local B
A, B = citation0(config, args, A)
A.Page = page
A.Pages = pages
A.Volume = volume
if is_set(A.Others) then
A.Others = A.Others .. B.sepc .. " "
end
if 'mla' == A.Mode then
B.tcommon = safe_join( {A.Periodical, A.Format, A.TitleType, A.Series, A.Language
, A.Edition, B.Publisher, A.Agency, A.Volume}, B.sepc )
else
B.tcommon = safe_join( {A.Others, A.Title, A.TitleNote, A.Edition, B.Publisher, A.Periodical
, A.Format, A.TitleType, A.Series, A.Language, A.Agency, A.Volume}, B.sepc )
end
config.CitationClass = classe
B.config = config
return textoFinal(A, B)
end
--[[--------------------------< p . j o r n a l >-----------------------------------------
Este é o método principal da predefinição {{citar jornal}}.
]]
p.jornal = function(frame)
local config, args, A = tratarArgumentos(frame)
config.CitationClass = ''
local classe = 'news'
-- abstração de códigos que os periódicos têm em comum
abstracao(config, A)
-- Função com o código abstraído
local B
A, B = citation0(config, args, A)
if ('mla' == A.Mode) then -- caso especial caso estiver no modo MLA
B.tcommon = safe_join( {A.Periodical, A.Format, A.TitleType, A.Series
, A.Language, A.Edition, B.Publisher, A.Agency}, B.sepc )
else
B.tcommon = safe_join({A.Title, A.TitleNote, A.Periodical, A.Format, A.TitleType
, A.Series, A.Language, A.Volume, A.Others, A.Edition, B.Publisher, A.Agency}, B.sepc )
end
config.CitationClass = classe
B.config = config
return textoFinal(A, B)
end
--[[--------------------------< p . r e v i s t a >----------------------------------
Este é o método principal da predefinição {{citar revista}}.
]]
p.revista = function(frame)
local config, args, A = tratarArgumentos(frame)
config.CitationClass = ''
local classe = 'magazine'
-- abstração de códigos que os periódicos têm em comum
abstracao(config, A)
local sepc = set_style (A.Mode:lower())
local volume = A.Volume
if is_set (volume) and is_set (A.Issue) then
volume = wrap_msg ('vol-no', {sepc, volume, A.Issue}, sepc == ',');
elseif is_set (volume) then
volume = wrap_msg ('vol', {sepc, volume}, sepc == ',');
elseif is_set (A.Issue) then
volume = wrap_msg ('issue', {sepc, A.Issue}, sepc == ',');
else
volume = ''
end
-- Função com o código abstraído
local B
A, B = citation0(config, args, A)
A.Volume = volume
config.CitationClass = classe
B.config = config
return textoFinal(A, B)
end
return p