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)})
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