我想为我的主页创建内容片段。一个示例帖子看起来像
<p>Your favorite Harry Potter characters enter the Game of Thrones universe, and you'll never guess what happens!</p> <readmore/> <p>...they all die</p>
在主页上,我只希望<readmore/>显示之前的内容。我在想可以在Jinja过滤器中使用Beautiful Soup来剪掉readmore及其后的所有内容。如果不<readmore/>存在,它应该剪切在第一个换行符或段落末尾。
<readmore/>
我怎样才能做到这一点?
只需检查<readmore/>文本中是否存在或其他子字符串,然后在其上拆分,或者在换行符上不拆分该子字符串。
from markupsafe import Markup @app.template_filter() def snippet(value): for sep in ('<readmore/>', '<br/>', '<br>', '</p>'): if sep in value: break else: sep = '\n' return Markup(value.split(sep, 1)[0])