Управление пробелами в шаблонах Pebble - PullRequest
0 голосов
/ 02 июля 2018

Мне трудно заставить пробел управлять тем способом, который мне нужен в шаблоне 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 control , но мне не повезло с получением нужного мне формата.

1 Ответ

0 голосов
/ 07 июля 2018

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

...