Home > info > ClearSilver の関数とフィルター (ドキュメント邦訳)

ClearSilver の関数とフィルター (ドキュメント邦訳)

ClearSilver に関しては、tasukuchan さんが ClearSilverについて調べる にマニュアルの邦訳をされており、大変参考になります。

Template Toolkit から ClearSilver に乗り換え、TT のような URI エスケープや、HTML エンティティ 変換をしてくれるフィルター機能が欲しいと思っていましたが、ClearSilver には pod が用意されておらず、h2xs のデフォルトテンプレートと思われる記述しかないので、オフィシャルのドキュメントを調べてみたらありました。

発見ついでに、ググっても他に邦訳されている方がいらっしゃらないようですので、簡単に意訳しておきます。英語は得意ではないので、変な訳があったらコメントで突っ込んでください。

ClearSilver Documentation

フィルター以外にも便利な関数が用意されています。

Expression Functions

ClearSilver にはいくつかのビルトイン関数があります。これらの関数は expression へのアクセスと操作を提供します。現在、全ての関数は文字列か数値を返します。これにより、関数は expression を要求する式のどこへでも利用できます。

Function Arguments Description
subcount(var) An HDF variable HDF 変数の子ノードの数を返します
name(local) A local variable HDF 変数のローカル変数のエイリアス名を返します
first(local) A local variable loop や each 内のローカル変数が最初の要素の場合に真を返します
last(local) A local variable loop や each 内のローカル変数が最後の要素の場合に真を返します
abs(expr) A numeric expression expr の絶対値を返します
max(expr, expr) Two numeric expressions 2つの expr の内の大きい数値を返します
min(expr, expr) Two numeric expressions 2つの expr の内の小さい数値を返します
string.slice(expr, start, end) A string expression, and two numeric expressions Python の slice 演算子のように、expr の start バイト目から end バイト目までの文字列を返します
string.find(string, substr) Two string expressions Python の string.find メソッドのように、string 中に、もし substring が見つかれば、そのポジションを数値で返します。見つからなければ -1 を返します
string.length(expr) A string expression expr の長さを返します
_(expr) A string expression gettext サポート付きでコンパイルされた場合に限り、gettext() のように、翻訳された文字列を返します

Template Filters

ClearSilver API は文字列操作をビルトイン関数として提供しています。これらの関数は、ひとつの文字列型の引数を取り、文字列を返します。 ClearSilver CGI Kit はウェブの仕様のフィルターを持っています。これらのフィルターはデフォルトでほとんどの言語ラッパーの CS レイヤーに加えられています。これらは、URL、javascript のデータ構成、HTML セーフなデータの組み立てを提供する強力なメカニズムです。

url_escape 文字列を %hh 構文に変換します。
html_escape 文字列中の >, <, & を &gt;, &lt;, &amp; に変換します。
js_escape 文字列中の “, ‘, \ を、 \”, \’, \\ に変換します。
text_html 文字列中のタグをエスケープし、改行を<br/>に変換します。
html_strip 文字列中の全てのタグを取り除き、&gt;, &lt;, &amp; を >, <, & に変換します。もし、タグを取り除き、HTML セーフに表示したければ、html_escape() と併用してください。

これらのフィルターは式のどこでも使えます。これらは URL を構成するのに便利だったり、データを安全な HTML であることを強制します。いくつかの例:

<?cs var:html_escape(Page.Title) ?>
<?cs set:url = "http://www.google.com/q=" + url_escape(Query.q) ?>
<IMG onclick="handleClick('<?cs var:js_escape(url)')" SRC="foo.gif">
<A HREF="/newurl?_done=<?cs var:url_escape(url) ?>">click here</A>

info

  1. コメントはまだありません。
  1. No trackbacks yet.