我用这个 gem 来 truncate html, 发现会把中文标点过滤掉,大家用什么 gem 呢? https://github.com/ianwhite/truncate_html
我也想找 如果不考虑 IE 老版本的话,可以用 CSS 实现
发现过滤中文标点是一个 issue, 有印度大哥先 K 了... 看看源码找找问题出现在哪里..
truncate_html 我看了一下。和预想的一样,按 HTML 节点拆开,然后遍历节点里的内容字符数。做成 helper 对 rails 会有依赖。可以考虑做一个 gem,把函数包裹一下。这样就可以通用
最佳方案还是这个吧:
text-overflow: ellipsis;
IE 6 支持 http://msdn.microsoft.com/en-us/library/cc351024v=vs.85).aspx(
只有旧版本的 Firefox (6 或者以下) 有问题 http://stackoverflow.com/questions/802175/truncating-long-strings-with-css-feasible-yet
https://github.com/xiaods/truncate_html 我 fork 了一份,升级到 rspec2 && bundle.修了一个 bug. have a look
strip_tags 后 再 truncate 是不是符合你的需要
<%= (truncate(strip_tags(post.body), :length => 30, :omission => '...')).html_safe %> 我也一直用 ls 說的辦法,不是挺好麼?
<%= (truncate(strip_tags(post.body), :length => 30, :omission => '...')).html_safe %>
#7 楼 @Victor 中文和英文的表现长度是不同的。