使用Jinja2模板翻译元素并添加枚举ID?

时间:2012-09-02 13:42:51

标签: python jinja2

我创建的页面显示幻灯片中的幻灯片(存储为名为slide001.png,slide002.png等的图像)以及画外音的成绩单。模板看起来像这样:

  

< div class =“transcript”>
  < p>您好,欢迎来到第一张幻灯片。< / p>
  < p>这是第二张幻灯片。< / p>
  < p> / ...等等......< / p>
  < / DIV>

我希望将其翻译成:

  

< div class =“transcript”>
  < div class =“slide”>
  < img src =“slide001.png”/>
  < p>您好,欢迎来到第一张幻灯片。< / p>
  < / DIV>
  ...等等每张幻灯片...
  < / DIV>

,即每个段落都包含在一个div中,并且img元素插入了一个连续编号的图像引用。我现在用JavaScript做这个,但由于我使用Jinja2做其他事情(插入一致的页眉和页脚,创建前进/后退链接等),我希望我可以做包装和枚举在Jinja2也是如此。没有英雄的hackery可能吗?

1 个答案:

答案 0 :(得分:1)

如果您可以在页面中使用以下格式获取数据,那么它可以很好地呈现。

transcript = [{'image': 'filepath', 'text':'welcome...'},
              {'image': 'filepath2', 'text':'slide2'},
              {'image': 'filepath3', 'text':'slide3'}]

Jinja可以放置内联或移动到一个宏,但这可以做到这一点:

<div class="transcript">
  {% for slide in transcript %}
  <div class="slide">
    <img src="{{ slide.image }}"/>
    <p>{{ slide.text }}</p>
  </div>
  {% endfor %}
</div>