Как добавить второй список тегов с помощью pelican-bootstrap3

Я хотел бы перечислить наборы Lego, которые я использовал для создания своих моделей, так же, как теги, но в отдельном списке. Согласно документации pelican, это должно быть возможно. Но когда я запускаю pelican content, я получаю

Tags Животное / Дупло / MOC
Sets 1 / 0 / 5 / 7 / 1

вместо

Tags Животное / Duplo / MOC
Sets 10571

Я изменил тему pelican-bootstrap от Daan Debie, добавив {% include 'includes/setlist.html' %} до article_info.html.

Вот как выглядит мой файл 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
Дата: 29.11.2015 14:22:20
Обновлено: 29.11.2015 14:22:27
Категория:
Метки: Animal, Duplo, MOC
> Наборы: 10571
Слизень: жираф
Авторы: Янн Баумгартнер

![Жираф][жираф]
[жираф]: {filename}/images/girafe.jpg "Жираф"

Я прочитал все вопросы о пеликанах в stackoverflow, но не нашел ответа. Я пробовал следующее:

  • Если я использую код списка тегов в сетлисте без изменения каких-либо переменных, теги отображаются правильно.
  • Переименование имени переменной в set_numbers не сработало.
  • Удаление set.url не помогло.

Я что-то упустил (файл шаблона, фильтр jinja2)? Любая подсказка будет высоко оценена.


person Yann    schedule 23.12.2015    source источник


Ответы (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. Опять же, поскольку pelican не делает ничего особенного с вашими пользовательскими метаданными, это будет основная строка без url.

person Avaris    schedule 23.12.2015
comment
Большое спасибо! Теперь я также понимаю, почему set.url не будет работать. - person Yann; 26.12.2015
comment
Это тоже решило мою проблему. Не подумал об использовании функции разделения внутри шаблона. Спасибо! - person mr.adam; 19.02.2016