しょーもないネタ2。
一つ前のやつの追記にちょろっと書いたが、「いつものやつ」にまつわる問題。Jinja2 の方では以前書いた「お馴染みの」問題ね。
ポイントは2つだけ。一つは Newline Filters。なので、Python code block を挟んだ前後なんかに残ってしまう空行はこれで取り除ける:
1 % for e in elems:
2 % if flag:
3 <%
4 .. some multiline
5 python code ..
6 %>\
7 .. template output ..
8 % endif
9 % endfor
問題はもう一つで、<%text>を使う場合。以下だと余計な空行が残るわけだ:
1 <%text>
2 #! /bin/sh
3 # -*- coding: utf-8 -*-
4 ffmpeg="${ffmpeg:-c:/Program Files/ffmpeg-4.1-win64-shared/bin/ffmpeg}"
5 </%text>
残念だけどこれの解はこれしかなさそう:
1 <%text>#! /bin/sh
2 # -*- coding: utf-8 -*-
3 ffmpeg="${ffmpeg:-c:/Program Files/ffmpeg-4.1-win64-shared/bin/ffmpeg}"
4 </%text>\
テンプレートが読みにくくなるのもイヤらしいことではあるんだけれど、まぁ仕方ないか…。