[library] HTML-TEMPLATE
cl-whoはデザイナーさんがイジるにはハードル高過ぎるかなーと思って HTML-TEMPLATE を使ってみたので、何となくメモ。
どう使うの
Quicklispでインストール可能。テンプレートの作り方は元サイトをどうぞ。
<!-- TMPL_VAR --> | 値を埋め込み |
<!-- TMPL_LOOP キー --><!-- /TMPL_LOOP --> | dolistな繰り返し |
<!-- TMPL_REPEAT キー --><!-- /TMPL_REPEAT --> | dotimesな繰り返し |
<!-- TMPL_IF キー --><!-- TMPL_ELSE --><!-- /TMPL_IF --> | ifな条件分岐 elseは省略可能 |
<!-- TMPL_UNLESS キー --><!-- TMPL_ELSE --><!-- /TMPL_UNLESS --> | unlessな条件分岐 elseは省略可能 |
<!-- TMPL_INCLUDE 'パス' --> | パスで指定したファイルの内容を、そこに展開 |
<!-- TMPL_CALL キー --> | テンプレートを処理した結果を埋め込む |
fill-and-print-template にテンプレートファイルの pathnameを渡すとか、文字列で テンプレートを直接渡すとか。
注意点
デフォルトでは標準出力辺りにHTMLを出力しているよう。html-template:*default-template-output* を、自分の出力したい先へ束縛するといいのだと思う。
注意点2
HTML_INCLUDE を使うとき、勝手に相対パスで見てくれたりしません。
html-template:*default-template-pathname* からの相対パス、またはマシンの絶対パスで指定するっぽい。
それっぽい パスを束縛しましょう。
注意点3
fill-and-print-template のキーワード引数で :external-format は指定したほうが多分いい。
Windows, SBCL, UTF-8のテンプレートだと :external-format を指定しないと、日本語の引数を渡したときに死んでいた。
よく分かってない
正直、あまり良く分かってません。ただ、特殊な機能が タグではなく、コメントとして記述するってのは、ちょっと面白いなーと思ったのでした。