class Asciidoctor::ListItem

def fold_first(continuation_connects_first_block = false, content_adjacent = false)

Returns nothing

Then: then drop the first block and fold it's content (buffer) into the list text
Or: the first block is an indented paragraph that's not connected by a list continuation
Or: the first block is an indented paragraph that's adjacent (wrapped line)
When: the first block is a paragraph that's not connected by a list continuation
Given: this list item has at least one block

Here are the rules for when a folding occurs:

Public: Fold the first paragraph block into the text
def fold_first(continuation_connects_first_block = false, content_adjacent = false)
  if !blocks.empty? && blocks.first.is_a?(Block) &&
      ((blocks.first.context == :paragraph && !continuation_connects_first_block) ||
      ((content_adjacent || !continuation_connects_first_block) && blocks.first.context == :literal &&
          blocks.first.attr('options', []).include?('listparagraph')))
    block = blocks.shift
    unless @text.to_s.empty?
      block.buffer.unshift("#@text\n")
    end
    @text = block.buffer.join
  end
  nil
end