Удалить отступ в шаблоне Jinja

#python #latex #jinja2 #indentation #code-formatting

#python #Латекс #jinja2 #отступы #форматирование кода

Вопрос:

Я пишу шаблон Jinja для документа LaTeX, но я предполагаю, что эта проблема является более общей для шаблонов Jinja в целом. Конкретная проблема, с которой я сталкиваюсь, скорее эстетическая, чем функциональная (я пишу шаблон LaTeX, поэтому мой вывод не чувствителен к отступам).

При написании шаблонов Jinja может иметь смысл делать отступы в частях кода, чтобы показать структуру блока, как в (пробелы отображаются в виде точек — 4 точки — одна вкладка):

 {% for foo in bar %}
....Outer Text
....{% for foobar in fuzbar %}
........Inner Text
........More Inner Text
........Even More Inner Text
....{% endfor }
....More Outer Text
{% endfor %}
  

Теперь управление пробелами позволяет удалять новые строки блоков текста непосредственно перед и после блока. Тем не менее, я хотел бы, чтобы все пробелы в начале строк с отступом были удалены. Таким образом, результат приведенного выше примера должен быть:

 Outer Text
Inner Text
More Inner Text
Even More Inner Text
More Outer Text
  

Обратите внимание, что, поскольку я пишу шаблон LaTeX, обычные строки могут начинаться с t as in textwidth . Я хотел бы иметь решение, которое касается как пробелов, так и табуляции в начале строки. Другие решения для форматирования кода также будут оценены, если они лучше работают с Jinja и по-прежнему позволяют визуально воспринимать логические блоки.

Единственная идея, которая у меня пока есть, — использовать только space в начале каждой строки вместо нескольких tabs и выполнять построчное

lstrip(' ')

в python.

Комментарии:

1. Я только что понял, что это может быть вопрос о табуляции и пробелах.

2. Сталкиваюсь с той же проблемой. Вы нашли исправление?

3. Да, я в основном сделал то, что предложил в своем последнем предложении. Заменил все табуляции пробелами и выполнил линейную lstrip(' ')