# File lib/asciidoctor/reader.rb, line 151
  def peek_line direct = false
    if direct || @look_ahead > 0
      @unescape_next_line ? @lines[0][1..-1] : @lines[0]
    elsif @eof || @lines.empty?
      @eof = true
      @look_ahead = 0
      nil
    else
      # FIXME the problem with this approach is that we aren't
      # retaining the modified line (hence the @unescape_next_line tweak)
      # perhaps we need a stack of proxy lines
      if !(line = process_line @lines[0])
        peek_line
      else
        line
      end
    end
  end