有什么办法可以使用jinja2显示字符串中的第一张图像吗?

时间:2019-07-29 14:30:15

标签: python flask jinja2

我正在使用Flask和Jinja2创建博客网络应用,但是在设置索引页面格式时遇到问题。

我想在每个帖子的标题/标题下方显示一个图像,然后在帖子的第一段显示一个图像。

{{ post['body'][post['body'].find('<img'):post['body'].find('<br>')]|markdown }} {# the first image to be rendered #}

{{ post['body'][post['body'].find('<p>'):post['body'].find('<br>')]|striptags|markdown }} {# the first paragraph to be rendered #}

post ['body']对象是格式为HTML的字符串

第一段呈现,但图像不会呈现。

这是我的帖子的for循环

{% for post in posts.items %}
      <article class="post">
        <header>
          <div class="post-header">
            <h1><a href="{{ url_for('single_post.post', id=post['id']) }}">{{ post['title'] }}</a></h1>
            <div class="about">by {{ User.query.get(post['author_id']).username }} on {{ post['created_at'].strftime('%Y-%m-%d') }}</div>
          </div>
          {% if g.user['uid'] == post['author_id'] %}
            <a class="action" href="{{ url_for('blog.update', id=post['id']) }}">Edit</a>
          {% endif %}
        </header>
        {{ post['body'][post['body'].find('<img'):post['body'].find('<br>')] }}
        {{ post['body'][post['body'].find('<p>'):post['body'].find('<br>')]|striptags|markdown }}
      <p>...</p>
      </article>
    {% endfor %}

降价过滤器的背景:

这是一个过滤器,用于使用Misaka将我的原始html呈现为markdown / rendered HTML

from flask_misaka import Misaka
...
md = Misaka()

我的代码没有任何错误,但是我只是看不到正在渲染的图像或渲染页面的源中的任何剩余信息,这很奇怪。

0 个答案:

没有答案