Maison > Questions et réponses > le corps du texte
J'ai une colonne de base de données appelée comment
qui stocke les commentaires contenant des balises HTML.
Pour raccourcir les gros textes et les afficher complètement dans une fenêtre popup, j'ai utilisé la fonction truncate(comment, length: 50, escape: false)
.
Considérons deux exemples :
Exemple 1 :
comment
列包含以下带有 HTML 标记的纯文本。通过使用 escape: false
La colonne contient le texte brut suivant avec des balises HTML. En utilisant escape: false
, les balises HTML ne sont pas tronquées et le texte s'affiche correctement, y compris toute mise en forme telle que le gras :
<strong>123</strong><br> \\<br> <strong>test</strong>
Exemple 2 :
Dans ce cas, j'utilise href
标记创建链接,但 escape
et le comportement ne fonctionne pas comme prévu. Il ne le reconnaît pas comme un balisage HTML, mais le traite comme du texte brut :
<a href="/uploads/attachments/2211/test.pdf" target="_blank">ClickToOpenFile</a>
Après troncature, l'affichage est le suivant :
<a href="/uploads/attachments/2..
Cependant, le résultat souhaité est de tronquer uniquement le texte à l'intérieur de la balise , en laissant le texte du lien "ClickToOpenFile" intact.
J'ai essayé d'utiliser raw
和 html_safe
mais malheureusement, ils n'ont pas fourni les résultats souhaités.
P粉6654279882023-09-13 16:54:17
Utilisez la gemme github.com/hgmnz/truncate_html :
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>