我想为我的主页创建内容片段。一个示例帖子看起来像

<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/>之前的内容。我想我可以用一个金贾过滤器美丽的汤,以削减读更多和所有内容后如果不存在<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])

10-06 07:24