У меня есть страница, на которой будут перечислены новостные статьи. Чтобы сократить длину страницы, я только хочу отобразить тизер (первые 200 слов / 600 букв статьи), а затем отобразить ссылку «еще ...», которая при щелчке развернет остальную часть статья в стиле jQuery / Javascript. Теперь я все это выяснил и даже нашел следующий вспомогательный метод на некоторой странице вставки, который будет следить за тем, чтобы новостная статья (строка) не была выделена прямо в середине слова:
def shorten (string, count = 30)
if string.length >= count
shortened = string[0, count]
splitted = shortened.split(/\s/)
words = splitted.length
splitted[0, words-1].join(" ") + ' ...'
else
string
end
end
Проблема, с которой я столкнулся, заключается в том, что тела новостных статей, которые я получаю из БД, имеют формат HTML. Так что, если мне не повезет, вышеупомянутый помощник порежет строку моей статьи прямо в середине html-тега и вставит туда строку "more ..." (например, между ""), что повредит мой html на странице. .
Есть ли способ обойти это или есть плагин, который я могу использовать для генерации отрывков / тизеров из строки HTML?