Módulo:Citar arXiv
Saltar para a navegação
Saltar para a pesquisa
A documentação para este módulo pode ser criada na página Módulo:Citar arXiv/doc
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