def characters
      return non_excerpted_text if @charcount < @settings[:characters]
      html_count = char_count = 0
      tags_entities = /#{Regexp.union(/(<[a-z0-9]{1,}\b[^>]*>)/,/(<\/[a-z0-9]{1,}>)/,/(&[^\s]*;)/)}/io
      @body.split(tags_entities).each do |piece|
        if piece =~ tags_entities
          html_count += piece.length
        else
          chars_left = @settings[:characters] - char_count
          # NOTE Do I want to count spaces or not?
          piece.split(/\b/).each{|p|
            break if (char_count >= @settings[:characters])
            char_count += p.length
          }
        end
        break if (char_count >= @settings[:characters])
      end 
      text = clean(@body[0...(html_count+char_count)])
      close_tags(text)
    end
def characters
      return non_excerpted_text if @charcount < @settings[:characters]
      html_count = char_count = 0
      tags_entities = /#{Regexp.union(/(<[a-z0-9]{1,}\b[^>]*>)/,/(<\/[a-z0-9]{1,}>)/,/(&[^\s]*;)/)}/io
      @body.split(tags_entities).each do |piece|
        if piece =~ tags_entities
          html_count += piece.length
        else
          chars_left = @settings[:characters] - char_count
          # NOTE Do I want to count spaces or not?
          piece.split(/\b/).each{|p|
            break if (char_count >= @settings[:characters])
            char_count += p.length
          }
        end
        break if (char_count >= @settings[:characters])
      end 
      text = clean(@body[0...(html_count+char_count)])
      close_tags(text)
    end
limit by characters
 @todo make this work with skip characters