Módulo:Citar arXiv
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 é usado em aproximadamente 4 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 subpágina de testes deste módulo, na subpágina de testes de módulos (ou ainda em sua subpágina de testes). Por favor, sempre considere expor eventuais mudanças na página de discussão, antes de implementá-las. |
Descrição
Este módulo destina-se a proporcionar funções básicas da predefinição {{Citar arXiv}}
.
Outra documentação:
local a = require('Módulo:Citação/CS1')
--[[--------------------------< a . a r x i v >------------------------------------------------------
Este é o método principal da predefinição {{citar arxiv}}.
]]
a.arxiv = function(frame)
local config, args, A = tratarArgumentos(frame)
config.CitationClass = ''
local B
local classe = 'arxiv'
-- considerando as peculiaridade de {{citar arxiv}} antes da geração de dados COinS
do
local ID_list = extract_ids(args)
-- |arxiv= or |eprint= requeridos para citar arxiv
if not is_set (ID_list['ARXIV']) then
-- adiciona mensagem de erro
table.insert(z.message_tail, { set_error( 'arxiv_missing', {}, true )})
-- series é um alias para version
elseif is_set (A.Series) then
-- concatena version no fim do identificador arxiv
ID_list['ARXIV'] = ID_list['ARXIV'] .. A.Series
A.Series = '' -- esvaziado
deprecated_parameter ('version') -- depreciado apenas para citar arxiv
end
-- uma lista bruta de parâmetros que não são suportados por citar arxiv
if first_set ({A.AccessDate, A.At, A.Authors, A.Chapter, A.Format, A.Page, A.Pages
, A.Periodical, A.PublisherName, A.URL, ID_list.ASIN, ID_list.BIBCODE, ID_list.DOI
, ID_list.ISBN, ID_list.ISSN, ID_list.JFM, ID_list.JSTOR, ID_list.LCCN, ID_list.MR
, ID_list.OCLC, ID_list.OL, ID_list.OSTI, ID_list.PMC, ID_list.PMID, ID_list.RFC
, ID_list.SSRN, ID_list.USENETID, ID_list.ZBL}, 28)
then
-- adiciona mensagem de erro
table.insert(z.message_tail, { set_error('arxiv_params_not_supported', {}, true)})
-- esvazia as seguintes strings correspondentes a argumetos não suportados
A.AccessDate = ''
A.Authors = ''
A.PublisherName = '' -- se necessário, usar citar periódico ou outros
A.Chapter = ''
A.URL = ''
A.Format = ''
A.Page = ''; A.Pages = ''; A.At = ''
end
-- para evitar processamento desnecessário recriando a ID_list na função citation0
config.ID_list = ID_list
-- ID_list local encerra ao fim do escopo, e em config será desreferênciada depois
end
-- periodical não permitido em citar arxiv; se necessário usar citar periódico
A.Periodical = ''
A.TitleType = set_titletype (classe, A.TitleType)
config.ChapterNaoSuportado = true
do
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
end
config.TituloFormatado = {}
do
local TransTitle = A.TransTitle
local Title = A.Title
if is_set(A.TitleLink) and is_set(A.Title) then
Title = "[[" .. A.TitleLink .. "|" .. 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
-- Função com o código abstraído
A, B = citation0(config, args, A)
B.coins_table.Periodical = 'arXiv' -- define arXiv para o COinS
config.CitationClass = classe
B.config = config
return textoFinal(A, B)
end
return a