How to completely remove the tags before truncating?
在本範例你會學到:
- 部落格或網誌的文章清單中簡短顯示內容(點擊看上集)
- Django filters(過濾器) 的使用
striptags
在本範例你需要先準備好:
- 可以使用 Django的環境或簡單範例
- 本環境測試使用
Django==3.0.7
以上(含)
在顯示部落格的文章清單時常常會有顯示每篇文章開頭的簡短文字需求,內建的 truncatechars
將會是你的好朋友!不過使用的時候這方法卻會把 HTML Tag 字元都算進去,使用起來相當不便,還要自己計算位置並搭配slice
一起使用,本文將會幫你解決此問題。
更詳盡的搭配使用說明請見上一期 Django 系列- 如何在清單中截斷、縮短(truncatechars)顯示的文章文字?,搭配服用更有效。
1. striptags
假設資料讀出來的時候是:
<p>hello, word</p>
使用 striptags
的方法:
{{ content.text|striptags|truncatechars:3 }}
結果將會顯示兩個字母(記得 filter 會自動 -1 喔!)
he
有看上集的朋友應該會有點疑惑這個方法跟 truncatechars_html
差別是什麼呢?
{{ content.text| truncatechars_html:7 }}
比較專區:
truncatechars_html
將會忽略前後的標籤,取得中間的字做處理,但標籤還是存在的,並沒有被拿掉或刪除!而使用 striptags
的方法他會直接將 html 直接拿掉,在對字詞做處理,這是他們最大的不同喔!
參考資料
官網:
https://docs.djangoproject.com/en/3.1/ref/templates/builtins/#striptags
stackoverflow
若有任何問題與指教歡迎與我聯繫,若覺得我的內容不錯麻煩幫我隨便點個廣告,謝謝。