首頁  >  問答  >  主體

Rails:截斷 HTML 標記文本,同時在資料庫列截斷期間保留連結文本

我有一個名為 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」完整。

我嘗試過使用 rawhtml_safe,但不幸的是,它們沒有提供所需的結果。

P粉896751037P粉896751037402 天前491

全部回覆(1)我來回復

  • P粉665427988

    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>

    回覆
    0
  • 取消回覆