Módulo:Citar arXiv

Fonte: Enciclopédia de conhecimento da Igreja de Deus
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