extract smart_excerpt to separate gem, dont depend on unicorn and x-real-ip