diff --git a/resources/asciidoctor/lib/scaffold.rb b/resources/asciidoctor/lib/scaffold.rb index 1dae7d11d0268..7feb8b08ffdd7 100644 --- a/resources/asciidoctor/lib/scaffold.rb +++ b/resources/asciidoctor/lib/scaffold.rb @@ -17,7 +17,10 @@ def process document def process_blocks block process_block block for subblock in block.context == :dlist ? block.blocks.flatten : block.blocks - process_blocks subblock + # subblock can be nil for definition lists without a definition. + # this is weird, but it is safe to skip nil here because subclasses + # can't change it anyway. + process_blocks subblock if subblock end end end diff --git a/resources/asciidoctor/spec/elastic_compat_tree_processor_spec.rb b/resources/asciidoctor/spec/elastic_compat_tree_processor_spec.rb index 9b0ca4979efda..e06d275230446 100644 --- a/resources/asciidoctor/spec/elastic_compat_tree_processor_spec.rb +++ b/resources/asciidoctor/spec/elastic_compat_tree_processor_spec.rb @@ -39,4 +39,34 @@ DOCBOOK expect(actual).to eq(expected.strip) end + + it "doesn't mind missing definitions" do + actual = convert <<~ASCIIDOC + == Example + `thing1`:: + + def1 + + `thing2`:: + ASCIIDOC + expected = <<~DOCBOOK + + Example + + + thing1 + + def1 + + + + thing2 + + + + + + DOCBOOK + expect(actual).to eq(expected.strip) + end end