# File lib/asciidoctor/section.rb, line 85
  def generate_id
    if @document.attributes.has_key? 'sectids'
      sep = @document.attributes['idseparator'] || '_'
      pre = @document.attributes['idprefix'] || '_'
      base_id = %(#{pre}#{title.downcase.gsub(InvalidSectionIdCharsRx, sep).tr_s(sep, sep).chomp(sep)})
      # ensure id doesn't begin with idprefix if requested it doesn't
      if pre.empty? && base_id.start_with?(sep)
        base_id = base_id[1..-1]
        base_id = base_id[1..-1] while base_id.start_with?(sep)
      end
      gen_id = base_id
      cnt = Compliance.unique_id_start_index
      while @document.references[:ids].has_key? gen_id
        gen_id = %(#{base_id}#{sep}#{cnt})
        cnt += 1
      end
      gen_id
    else
      nil
    end
  end