Управление пробелами в шаблонах Pebble

Мне трудно заставить пробел управлять тем способом, который я хочу в шаблоне Pebble. В настоящее время я генерирую JSON с использованием Pebble, но эта проблема и мой сценарий использования не относятся к JSON (иначе я бы использовал библиотеку JSON, например, Джексона).

Вот мой шаблон Pebble:

        "items": {
            {% for item in items -%}
            "{{ item.name }}": "{{ item.value }}"{% if not loop.last %},{% endif %}

            {% endfor %}

        },

И вот сгенерированный вывод:

    "items": {
        "item1": "Value 1",
        "item2": "Value 2"

    },

Есть две проблемы с этим:

  1. Мне нужно было две пустые строки в шаблоне (одна до endfor и один за endfor,
  2. Я по-прежнему получаю лишнюю пустую строку в выводе перед закрывающей волнистой скобкой, т.е. },,

Я бы хотел, чтобы шаблон выглядел больше следующим образом:

        "items": {
            {% for item in items -%}
            "{{ item.name }}": "{{ item.value }}"{% if not loop.last %},{% endif %}
            {% endfor %}     
        },

И я хотел бы, чтобы результат был:

    "items": {
        "item1": "Value 1",
        "item2": "Value 2"
    },

Я перепробовал множество комбинаций модификатора whilespace, но безуспешно получил желаемый формат.

1 ответ

Модификатор управления пробельными символами только обрезать линии. Это не удаляет перевод строки. Единственное решение для вашего варианта использования - удалить пустые строки вокруг {% endfor %}

Другие вопросы по тегам