ニュース記事を一覧表示するページがあります。ページの長さを短くするために、ティーザー (記事の最初の 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
私が抱えている問題は、DB から取得したニュース記事の本文がフォーマットされた HTML であることです。したがって、運が悪いと、上記のヘルパーは記事の文字列を html タグの途中で切り刻み、そこに "more..." 文字列を挿入します (たとえば、"" の間)。これにより、ページ上の html が破損します。 .
これを回避する方法はありますか、または HTML 文字列から抜粋/ティーザーを生成するために使用できるプラグインはありますか?