チケット #13 (new blog)

登録: 4 年

最終更新: 3 年

pythonでclearsilverをテンプレートエンジンとして使う

報告者: mtamaki 担当者: mtamaki
優先度: major マイルストーン:
コンポーネント: blog バージョン:
キーワード: 関係者:

説明 (最終更新者: mtamaki) (diff)

今までテンプレートエンジンにCheetahをつかってたんですが、 $$~が変数名として認識されるせいでprototype.jsの$系のJSの関数と相性がよくないという問題があり、 これを機にTracでも使ってるClearSilverを試してみることにしました。

とりあえずインストールするには http://www.clearsilver.net/downloads/ から、 Windowsなら win32/clearsilver-x.x.xx.win32-pyx.x.exe を落としてきて実行します。

するとsite-packagesにneo_cgi.pydがインストールされます。

ためしにClearSilverで文字列中のテンプレートを変数で置換するpythonスクリプトは以下のような感じ。

import neo_cgi		#import neo_cgiでneo_cgi.pydをロードした後でないとimport neo_csとかimport neo_utilができない。
import neo_cs		#CSオブジェクトが入ってる。
import neo_util		#HDF (CSオブジェクトの生成時に使う引数。置き換える変数とかはこれに指定する) オブジェクトが入ってる。

hdf = neo_util.HDF()
hdf.setValue( "variable_name", "値 (オブジェクトでも可)" )
cs = neo_cs.CS( hdf )
cs.parseStr( "テスト=<?cs var:variable_name ?>" )

print cs.render()

(071028追記) CheetahとClearSilverを使ってみた感想としては、まずClearSilverはHTML向けのテンプレートエンジンだということ。Cheetahはテキスト形式なら割と何でもいける。

あとCheetahでのJSの$関数の話に関しては\$と書けばエスケープできます。

また、ClearSilverはテンプレートに変数を埋め込む処理が遅いという話を聞いたことが。未検証。

他にもKIDとかテンプレートエンジンはいろいろあるみたい。 自分は任意のテキストをテンプレートとして展開することが多いので今はCheetah使ってます。

チケットの履歴

更新者: mtamaki (4 年 前)

  • 説明 が変更されました (diff)

更新者: mtamaki (4 年 前)

  • 説明 が変更されました (diff)

更新者: mtamaki (4 年 前)

  • 説明 が変更されました (diff)

更新者: mtamaki (4 年 前)

  • 説明 が変更されました (diff)

更新者: mtamaki (4 年 前)

  • 説明 が変更されました (diff)

更新者: mtamaki (4 年 前)

  • 説明 が変更されました (diff)

更新者: mtamaki (4 年 前)

  • 説明 が変更されました (diff)

更新者: mtamaki (3 年 前)

  • 説明 が変更されました (diff)
Note: チケットについてのヘルプは TracTickets を参照 して下さい。