| このページの文章は現在鋭意作成中です |
interpolate_fancy plug-in †
Blosxomをもっと簡単に使えて、しかしより制限するように、標準の interpolate()サブルーチンをオーバーライドします。現在のコンテンツ上で動作して結果を返すかどうかなど、ページのどのような場所でもアクション(プラグインサブルーチンを呼び出すなど)を実行します。テンプレートのテキストやテンプレート変数の値を条件付、または条件なしで読み込みます。制限には次のものを含みます:定義された、未定義、*に等しい、*に等しくない、*より小さい、*より大きい、*に似ている、*に似ていない(regex)。
blosxom 本体の interpolate() サブルーチンを上書き(オーバーライド)するプラグインです。このプラグインを導入することで、具体的には以下のようなことができるようになります。
- blosxom 本体やプラグインが公開する変数の値によって、表示する内容を差し替える
- プラグイン中の特定サブルーチンを呼び出しその結果によって、表示する内容を切り替える
導入 †
基本的な使い方をする場合は、blosxom プラグインレジストリからダウンロードして、プラグインディレクトリにアップロードするだけで使えるようになります。
設定 †
- $recurse_into_story
- 初期値は 0 。
使い方 †
基本的には blosxom.cgi が フレーバー を読み込んでページを自動生成する際、条件分岐をできるようになります。
本体/プラグインの変数の値を利用する †
blosxom もしくはそのプラグインが提供する変数の内容に対して、数値としての比較はもちろん、正規表現によるマッチ/アンマッチを判定することで条件分岐できます。
例を挙げます。
<?$writeback::count lt="1">no writebacks</?>
上記は writeback プラグイン 互換のプラグインを導入したときに、フレーバー 中で使用できる $writeback::count という変数に対して数値比較を行い、 1 より小さければ「 no writebacks 」という文字列に、上記の文字列全体が置き換わります。
上記の例では lt という文字列が『より小さい』を示す演算子となっていて、これを含めて使える演算子は以下のとおりです。
| eq | 一致する(数値) |
| ne | 一致しない(数値) |
| lt | より小さい |
| gt | より大きい |
| like | マッチする(正規表現) |
| unlike | マッチしない(正規表現) |
その他、変数に値が定義されているかどうかも分岐条件にすることができます。
<?$path>Variable PATH defined</a> <?!$path>Variable PATH undefined</a>
上記は変数 $path が定義されている場合に実行されるのが上、されていない場合に実行されるのが下の行です。
プラグイン中に用意したサブルーチンを呼び出す †
使い方の例 †
ライトバックの有無で表示内容を差し替える †
<?$writeback::count lt="1">no writebacks</?> <?$writeback::count gt="0">$writeback::count</?> <?$writeback::count eq="1">writeback</?> <?$writeback::count gt="1">writebacks</?>
上記のリストを story.* フレーバー のライトバック数を表記している部分と置き換えると、ライトバックがないときは「 no writebacks 」と、 ライトバック数が 1 の時は「 1 writeback 」、2 以上のライトバックがある場合は「 x writebacks 」と表示を切り替えることができます。
各エントリの恒久リンクにのみ機能を付け加える †
<?$path_info unlike="(^[^\.]+/?$)|(^$)|(index\.\w+$)"> writeback stuff goes here </?>
「 path_info がディレクトリ(例 some/path/ )では無い、まったくのブランク(例 / )ではない、そしてインデックスページではない(例 /some/path/index.html )場合は、「 writeback stuff goes here 」というテキストが挿入されます。