サーバ側でHTMLを生成する、いわゆる「動的」なウェブサイトの開発では、たいてい「テンプレート言語」を用いる。プログラム中でHTMLを直接書き出してしまうのではなく、HTMLのテンプレートは別ファイルにしておく、という方法だ。プログラムでは、そのテンプレートファイルを読み込んで、テンプレート中にある変数に値を埋め込んでいく、というふうにする。 このとき、HTMLのテンプレートには、変数やループ構造、条件文などが必要になる。こういったものを記述するのに使うのが「テンプレート言語」である(それを解釈するソフトウェアが「テンプレートエンジン」)。例えば、先日紹介した「Jinja2」は、Pythonのテンプレート言語(テンプレートエンジン)でもっとも有名なもののひとつである(Jinja2による記述の実例は、ウィキペディアの解説ページを参照)。 なぜ、プログラム中でHTMLを直接書き出すのではなく、