m4を使ってみる
30分プログラム、その160。よく聞くm4を実際に使ってみる。
題材は、HTMLの生成。
Webアプリを使っているとデバッグ用のページとリリース用のページを分けたいことがある。例えば、デバッグ用のページはJavascriptファイルを個別に指定しているけど、リリース用のページでは全部まとめてあるとか。
デバッグ用。
<html> <head> <!-- ファイルを個別に指定する --> <script type="text/javascript" src="./a.js"></script> <script type="text/javascript" src="./b.js"></script> <script type="text/javascript" src="./c.js"></script> </head> <body> .. </body> </html>
リリース用。
<html> <head> <!-- full.jsはa.js,b.js,c.jsをまとめたもの --> <script type="text/javascript" src="./full.js"></script> </head> <body> .. </body> </html>
使い方
デバッグ用のHTMLとリリース用のHTMLはほぼ同じものなので、ひとつのファイルから自動生成させる。
$ m4 template.html > release.html $ m4 -D _DEBUG template.html > debug.html
ソースコード
元になるtemplate.htmlは次のようになる。
<html> <head> # ifdef(`_DEBUG',デバッグ用,リリース用) ifdef(`_DEBUG', <script type="text/javascript" src="./a.js"></script> <script type="text/javascript" src="./b.js"></script> <script type="text/javascript" src="./c.js"></script>, <script type="text/javascript" src="./full.js"></script>) </head> <body> .. </body> </html>