velocity は html のテンプレートエンジンで、 平たく言うとhtmlに関数とかループとか条件分岐とか、 便利なものをもろもろ持ち込めるすぐれものです。 Python でいうと Jinja2 に当たるかもしれません。
この velocity ですが、以前から 「なぜインデントしないんだろう」 という点が気になっていました。 どこかに書いてあるかもしれないのですが、 今日ようやくわかった(気がする)ので走り書きます。
以下のようなコードがあるとき、
タグのペアの数が合わなくなってしまいます。
数が合わなくなるだけならまだしも、
深いifやforeachでネストしてしまうと<div>
のネストとレベルも合わなくなってしまいます。
#foreach(hoge) #if(piyo) <div> #if(fuga) <div> <div> #else <div> <div> #end </div> </div> </div> ## !?!?!?! #end #end
これを解消するためには、 以下のようにする必要があるのですが、 それだと簡単に書ける、というメリットが失われる気もします
#foreach(hoge) #if(piyo) <div> #if(fuga) <div> <div> </div> </div> #else <div> <div> </div> </div> #end </div> #end #end
…ただ、よく考えたらそんなに面倒じゃないので、 他の理由があるかもしれません。