Skip to content

Commit

Permalink
Problema com a inclusão da entrada @ABNT-option no arquivo referencia…
Browse files Browse the repository at this point in the history
…s.bib #150

Resoluçào do problema. Sem teste automatizado para garantir correção do bug.

O teste foi implementado em outra branch.
  • Loading branch information
edusantana committed Jun 9, 2017
1 parent 3c2b865 commit 6a81cf2
Showing 1 changed file with 22 additions and 21 deletions.
43 changes: 22 additions & 21 deletions lib/limarka/conversor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class Conversor
attr_accessor :texto_tex
attr_accessor :txt
attr_accessor :usa_pdftotext

# @param trabalho [Trabalho]
def initialize(trabalho, options)
self.t = trabalho
Expand All @@ -45,7 +45,7 @@ def convert()
pretextual(pretextual_tempfile)
postextual(postextual_tempfile)
textual(pretextual_tempfile,postextual_tempfile)

ensure
pretextual_tempfile.close
pretextual_tempfile.unlink
Expand Down Expand Up @@ -73,7 +73,7 @@ def hash_to_yaml(h)
s << "---\n\n"
s.string
end



PRETEXTUAL = "templates/pretextual.tex"
Expand All @@ -83,8 +83,8 @@ def hash_to_yaml(h)
def pretextual(tempfile)
s = StringIO.new
necessita_de_arquivo_de_texto = ["errata"]
["folha_de_rosto", "errata", "folha_de_aprovacao", "dedicatoria", "agradecimentos",
"epigrafe", "resumo", "abstract", "lista_ilustracoes", "lista_tabelas",
["folha_de_rosto", "errata", "folha_de_aprovacao", "dedicatoria", "agradecimentos",
"epigrafe", "resumo", "abstract", "lista_ilustracoes", "lista_tabelas",
"lista_siglas", "lista_simbolos", "sumario"].each_with_index do |secao,indice|
template = "pretextual#{indice+1}-#{secao}"
Open3.popen3("pandoc -f markdown \"--data-dir=#{options[:templates_dir]}\" --template=#{template} -t latex --filter #{pandoc_abnt_path}") {|stdin, stdout, stderr, wait_thr|
Expand All @@ -108,7 +108,7 @@ def pretextual(tempfile)

POSTEXTUAL = "templates/postextual.tex"
# Escreve no arquivo o conteúdo gerado referente ao pós-textual do documento.
# @param tempfile arquivo onde será escrito
# @param tempfile arquivo onde será escrito
def postextual(tempfile)
# Referências (obrigatório)
# Glossário (opcional)
Expand All @@ -125,20 +125,23 @@ def postextual(tempfile)
s << secao_indice

cria_xxx_referencias

@postextual_tex = s.string
File.open(tempfile, 'w') { |file| file.write(postextual_tex) }
end

# Cria arquivo temporário de referencias.
#
#
# Separa o título em subtítulo quando contém `:`.
def cria_xxx_referencias
referencias_tempfile = Tempfile.new('referencias')
File.open(referencias_tempfile, 'w') {|file| file.write(t.referencias)}
b = BibTeX.open(referencias_tempfile.path)
#byebug
b.each do |entry|
if entry.title.include?(':') then
if !entry.title then
next
elsif entry.title.include?(':') then
s = entry.title.split(':')
if entry.title.start_with?("{") and entry.title.end_with?("}") then
s[0] = s[0][1..-1] # remove {
Expand All @@ -148,10 +151,10 @@ def cria_xxx_referencias
entry['subtitle'] = s[1].strip
end
end

b.save_to referencias_bib_file
end

def secao_referencias
secao("postextual1-referencias", false, t.referencias)
end
Expand All @@ -163,15 +166,15 @@ def secao_apendices
def secao_anexos
secao("postextual4-anexos", t.anexos?, t.anexos)
end

# @note Ainda não implementado
def secao_glossario
end

# @note Ainda não implementado
def secao_indice
end

def textual(pretextual_tempfile, postextual_tempfile)
valida_yaml
Open3.popen3("pandoc -f markdown+raw_tex -t latex -s \"--data-dir=#{options[:templates_dir]}\" --template=trabalho-academico --normalize --top-level-division=chapter --include-before-body=#{pretextual_tempfile.path} --include-after-body=#{postextual_tempfile.path} --filter #{pandoc_abnt_path}") {|stdin, stdout, stderr, wait_thr|
Expand All @@ -187,14 +190,14 @@ def textual(pretextual_tempfile, postextual_tempfile)
}
File.open(texto_tex_file, 'w') { |f| f.write(@texto_tex)}
end

def pretextual_tex_file
"#{options[:output_dir]}/xxx-pretextual.tex"
end
def postextual_tex_file
"#{options[:output_dir]}/xxx-postextual.tex"
end

def texto_tex_file
"#{options[:output_dir]}/#{Conversor.tex_file(t.configuracao)}"
end
Expand All @@ -205,7 +208,7 @@ def pdf_file
def referencias_bib_file
"#{options[:output_dir]}/xxx-referencias.bib"
end

def valida_yaml
# não faz nada por enquanto
end
Expand Down Expand Up @@ -235,11 +238,11 @@ def self.tex_file(configuracao)
end

private

# Utilizado para gerar seções específicas do documento
def secao(template, condicao_para_conteudo, conteudo_externo)
s = StringIO.new

Open3.popen3("pandoc -f markdown \"--data-dir=#{options[:templates_dir]}\" --template=#{template} --top-level-division=chapter -t latex --filter #{pandoc_abnt_path}") {|stdin, stdout, stderr, wait_thr|
stdin.write(hash_to_yaml(t.configuracao))
stdin.write("\n")
Expand All @@ -255,11 +258,9 @@ def secao(template, condicao_para_conteudo, conteudo_externo)
s.string
end

def pandoc_abnt_path
def pandoc_abnt_path
ENV["PANDOC_ABNT_BAT"] or "pandoc_abnt"
end

end
end


0 comments on commit 6a81cf2

Please sign in to comment.