abbreviato

abbreviato is a Ruby library for truncating HTML strings keeping the markup valid. It is a fork of jorgemanrubia/truncato but focused on truncating to a bytesize, not on a per-character basis.

Installing

In your Gemfile

gem 'abbreviato'

Usage

truncated_string, was_truncated = Abbreviato.truncate("<p>some text</p>", max_length: 4)
# => ["<p>s...</p>", true]

The configuration options are:

Performance

Abbreviato was designed with performance in mind. Its main motivation was that existing libs couldn't truncate a multiple-MB document into a few-KB one in a reasonable time. It uses the Nokogiri SAX parser.

Running the tests

bundle exec rake

Running a single test

rspec spec/abbreviato/abbreviato_spec.rb
rspec spec/abbreviato/abbreviato_spec.rb357

Running all checks

bundle exec rake spec

Contribute

Follow our contribution guidelines.