ruby Rails:截断HTML标记的文本,同时在数据库列中截断时保留链接文本

xqkwcwgp  于 2023-08-04  发布在  Ruby
关注(0)|答案(1)|浏览(109)

我有一个名为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..


但是,期望的结果是只截断<a>标记内的文本,而保持链接文本“ClickToOpenFile”不变。
我尝试使用rawhtml_safe,但不幸的是,它们没有提供所需的结果。

xyhw6mcr

xyhw6mcr1#

使用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>

字符串

相关问题