我正在为LaTeX文档编写Jinja模板,但是我猜想这个问题对于整个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
开头,就像\textwidth
一样。我想要一个解决方案,在行首同时处理空格和制表符。如果其他代码格式化解决方案可以与Jinja更好地结合使用,并且仍然可以直观地掌握逻辑块,那么也将不胜感激。
到目前为止,我唯一的想法是在每行的开头仅使用space
而不是多个tabs
并逐行执行
lstrip(' ')
在python中。