Re: How to find out why asciidoctor-bibtex dies?
Posted by
mojavelinux on
Dec 10, 2019; 8:49am
URL: https://discuss.asciidoctor.org/How-to-find-out-why-asciidoctor-bibtex-dies-tp7396p7402.html
It seems to me like a bug in asciidoctor-bibtex. Perhaps file an issue there if you have not already done so?
Cheers,
-Dan
On Fri, Dec 6, 2019 at 5:02 AM wolandscat [via Asciidoctor :: Discussion] <
[hidden email]> wrote:
I have installed and run asciidoctor-bibtext. It works on some of our files, but on some it fails. With trace on, I get this:
/usr/local/gems/asciidoctor-bibtex-0.6.0/lib/asciidoctor-bibtex/processor.rb:205:in `block in build_citation_text': asciidoctor: FAILED: /cygdrive/c/dev/openEHR-specifications/specifications-RM/docs/ehr/master.adoc: Failed to load AsciiDoc document - undefined method `ref' for #<AsciidoctorBibtex::CitationItem:0x00000006028fb918> (NoMethodError)
from /usr/local/gems/asciidoctor-bibtex-0.6.0/lib/asciidoctor-bibtex/processor.rb:193:in `each'
from /usr/local/gems/asciidoctor-bibtex-0.6.0/lib/asciidoctor-bibtex/processor.rb:193:in `each_with_index'
from /usr/local/gems/asciidoctor-bibtex-0.6.0/lib/asciidoctor-bibtex/processor.rb:193:in `build_citation_text'
from /usr/local/gems/asciidoctor-bibtex-0.6.0/lib/asciidoctor-bibtex/processor.rb:114:in `block in replace_citation_macros'
from /usr/local/gems/asciidoctor-bibtex-0.6.0/lib/asciidoctor-bibtex/processor.rb:113:in `each'
from /usr/local/gems/asciidoctor-bibtex-0.6.0/lib/asciidoctor-bibtex/processor.rb:113:in `replace_citation_macros'
from /usr/local/gems/asciidoctor-bibtex-0.6.0/lib/asciidoctor-bibtex/extensions.rb:120:in `block (2 levels) in process'
from /usr/local/gems/asciidoctor-bibtex-0.6.0/lib/asciidoctor-bibtex/extensions.rb:119:in `each'
from /usr/local/gems/asciidoctor-bibtex-0.6.0/lib/asciidoctor-bibtex/extensions.rb:119:in `each_with_index'
from /usr/local/gems/asciidoctor-bibtex-0.6.0/lib/asciidoctor-bibtex/extensions.rb:119:in `block in process'
from /usr/local/gems/asciidoctor-bibtex-0.6.0/lib/asciidoctor-bibtex/extensions.rb:110:in `each'
from /usr/local/gems/asciidoctor-bibtex-0.6.0/lib/asciidoctor-bibtex/extensions.rb:110:in `process'
from /usr/local/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:556:in `[]'
from /usr/local/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:556:in `block in parse'
from /usr/local/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:555:in `each'
from /usr/local/gems/asciidoctor-2.0.10/lib/asciidoctor/document.rb:555:in `parse'
from /usr/local/gems/asciidoctor-2.0.10/lib/asciidoctor/load.rb:83:in `load'
from /usr/local/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:78:in `convert'
from /usr/local/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:183:in `block in convert_file'
from /usr/local/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:183:in `open'
from /usr/local/gems/asciidoctor-2.0.10/lib/asciidoctor/convert.rb:183:in `convert_file'
from /usr/local/gems/asciidoctor-2.0.10/lib/asciidoctor/cli/invoker.rb:128:in `block in invoke!'
from /usr/local/gems/asciidoctor-2.0.10/lib/asciidoctor/cli/invoker.rb:111:in `each'
from /usr/local/gems/asciidoctor-2.0.10/lib/asciidoctor/cli/invoker.rb:111:in `invoke!'
from /usr/local/gems/asciidoctor-2.0.10/bin/asciidoctor:15:in `<top (required)>'
from /home/Thomas/bin/asciidoctor:23:in `load'
from /home/Thomas/bin/asciidoctor:23:in `<main>'
generated /cygdrive/c/dev/openEHR-specifications/specifications-RM/docs/ehr/../ehr.html
I tracked that error to this bit of code in the file /usr/local/gems/asciidoctor-bibtex-0.6.0/lib/asciidoctor-bibtex/processor.rb
# if found, insert reference information
if @biblio[cite.key].nil?
if @throw_on_unknown
raise "Unknown reference: #{cite.ref}" #### FAILS HERE
else
puts "Unknown reference: #{cite.ref}" #### OR HERE
cite_text = cite.ref.to_s
end
else
cite_text = citation_text(macro, cite)
end
I can't find out what reference or citation the program is failing on, because `.ref` is undoubtedly being called on a void reference, i.e. the program has an actual bug.
So I can't find out if my cite:[] macro is wrong, or if something is broken in my .bib file. I have suspicions about problems with underscores in cite keys in the .bib file, or maybe there is another error there. What tools do people use to validate a .bib file?
Stuck for now...
Any help appreciated.
--