#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(' ')