如何使用pelican-bootstrap3添加第二个标记列表

时间:2015-12-23 10:51:05

标签: jinja2 pelican

我想列出我用来构建我的模型的乐高套装,就像标签一样,但是在单独的列表中。根据鹈鹕文件,这应该是可能的。但是当我运行pelican content时,我得到了

  

Tags Animal / Duplo / MOC
  Sets 1/0/5/7/1

而不是

  

Tags Animal / Duplo / MOC
  Sets 10571

我通过将{% include 'includes/setlist.html' %}添加到article_info.html来修改了Daan Debie中的pelican-bootstrap theme

这就是我的setlist.html文件:

{% if article.sets %}
<span class="label label-default">Sets</span>
{% for set in article.sets %}
    <a href="{{ SITEURL }}/{{ set.url }}">{{ set }}</a>
    {% if not loop.last %}
        /
    {% endif %}
{% endfor %}
{% endif %}

这是我的降价文件的样子:

  

标题:Girafe
  日期:2015-11-29 14:22:20
  修改时间:2015-11-29 14:22:27
  类别:
  标签:动物,Duplo,MOC
  套装:10571
  S :: girafe
  作者:Yann Baumgartner

     

![GIRAFE] [GIRAFE]
  [girafe]:{filename} /images/girafe.jpg“Girafe”

我在stackoverflow上阅读了所有鹈鹕问题,但找不到答案。我尝试了以下方法:

  • 如果我在setlist中使用taglist代码而不更改任何 变量然后标签正确显示
  • 重命名变量 set_numbers的名称无效。
  • 删除set.url无效。

我错过了什么(模板文件,jinja2过滤器)?任何提示都会非常感激。

1 个答案:

答案 0 :(得分:1)

pelican不会处理任何非标准元数据。它将被保留为字符串。因此,article.sets将是包含"10571"的单个字符串。如果你循环使用它,你将获得单独的字符。您需要通过插件或模板内部自己处理它,如:

{% if article.sets %}
<span class="label label-default">Sets</span>
{% for set in article.sets.split(',') %}
    {{ set|trim }}
    {% if not loop.last %}
        /
    {% endif %}
{% endfor %}
{% endif %}

PS :另外,我不确定您对set.url的期望。同样,由于鹈鹕不会对您的自定义元数据做任何特殊处理,因此它将是基本字符串,并且它不会有url