我有一个名为 comment
的数据库列,用于存储包含 HTML 标记的评论。
为了缩短大文本并在弹出窗口中完整显示它们,我使用了 truncate(comment, length: 50, escape: false)
函数。
让我们考虑两个例子:
示例 1:
comment
列包含以下带有 HTML 标记的纯文本。通过使用 escape: false
,HTML 标记不会被截断,并且文本会正确显示,包括任何格式,例如粗体:
<strong>123</strong><br> \\<br> <strong>test</strong>
示例 2:
在本例中,我使用 href
标记创建链接,但 escape
行为未按预期运行。它不会将其识别为 HTML 标记,而是将其视为纯文本:
<a href="/uploads/attachments/2211/test.pdf" target="_blank">ClickToOpenFile</a>
截断后,显示如下:
<a href="/uploads/attachments/2..
但是,期望的结果是仅截断 标记内的文本,保持链接文本“ClickToOpenFile”完整。
我尝试过使用 raw
和 html_safe
,但不幸的是,它们没有提供所需的结果。
P粉6654279882023-09-13 16:54:17
使用 github.com/hgmnz/truncate_html gem:
some_html = '<ul><li><a href="http://whatever">This is a link</a></li></ul>' truncate_html(some_html, length: 15, omission: '...(continued)') => <ul><li><a href="http://whatever">This...(continued)</a></li></ul>