2004年03月10日 (水)
独自 REPLACE
を定義するプラグイン
iBlog
のテンプレートファイルには
<$name$>
というような感じで置き換えられる項目(REPLACE)を書けます。このプラグイン
MY_REPLACE.plugin
は同じような機能を
iBlogPatcher
に付加します。 < http://homepage.mac.com/yuji_okamura/.Public/iBlog/plugin/MY_REPLACE.plugin> テンプレートファイルに直接書くのが普通の方法ですが、
- 複数の blog で同じテンプレートセットを使用するのが困難
blog の説明やバナーイメージなど blog によって切り替えたいものを書くときには、別なテンプレートセットにしないとならないので、サイトをカスタマイズすればするほど同じテンプレートセットでやっていくことが困難になってしまいます。
- 複数の blog で別なテンプレートセットを使用するとき面倒
サイト全体のナビゲーションなど各 blog に共通のものを書くときには、それぞれのテンプレートセットに同じものを書かなければなりません。同じ変更を何回も繰り返してすることになり面倒な上に変更漏れや間違いが起きやすくなります。
- 複数のテンプレートファイルに共通する部分のメンテが面倒
一つの blog の中でも、使用しているテンプレートセットの複数のテンプレートファイルで同じ部分をメンテするとき、何度も同じメンテをしなければならないので面倒な上に変更漏れや間違いが起きやすくなります。
と、どっちに転んでも痛し痒しになります。このプラグインを使うとのケースでも一箇所の変更でメンテができるようになります。 #
長い前置きだこと。
プラグインの導入と独自
REPLACE
の定義とにわけて説明します。 【プラグインの導入】
このプラグインは Jcode.pm を利用しています。iblogPatcher の重要なプラグインの多くもこれを利用しているので恐らく既にインストールしてあると思いますが、Jcode.pm を利用したプラグインを避けて iblogPatcher を利用している方は観念してください。
- MY_REPLACE.plugin をプラグイン置き場にダウンロードする。
プラグイン置き場はホームから
Library/Application Support/iblogPatcher/plugin/
です。
- preview after の onStart 処理に MY_REPLACE.plugin の初期化処理を加える。
次のように %ACTION > preview > after > onStart に加えます。
'onStart' => {
...
# 独自 REPLACE を有効にする
MY_REPLACE::OnStart(@_);
...
};
以上で MY_REPLACE.plugin が有効になりました。まだ、独自 REPLACE を定義していないので何の効果も発揮しません。次の「独自 REPLACE の定義」に進んでください。
【独自 REPLACE の定義】
---- 全ての blog に共通する REPLACE の定義方法 ----
MY_REPLACE.plugin の中に書いてある設定で定義します。
42 行目の 'replace' => [ から 58 行目の ], の間に書き込みます。そこには # でコメントになって三種類の例が書いてあります。これを真似して新しい REPLACE を定義してください。
三種類の例は 'context' に割り当てる値が違います。それぞれ次のような違いがあります。
- 'context' => 'html'
-
HTML の中に埋め込む文字列の場合に使用します。
HTML では &, <, ", > を書くとブラウザが混乱して大変危険です。これをそれぞれ &, <, ", > に置き換えてくれます。
- 'context' => 'jss'
-
JavaScript の文字列定数の中に埋め込む文字列の場合に使用します。
JavaScript の文字列定数は ' ' で囲みますが、囲まれた中に直接 ' が入っているとエラーになってしまいます。これを ¥' にエスケープしてくれます。
また改行も使うことができませんが、改行を ¥n にエスケープしてくれます。
- 'context' => undef
-
何の操作もせず使用されます。HTML コードや JavaScript コード等が置き換え結果のときに使用します。
この場合は 'context' の指定を省略しても構いません。
例を書いておきます。
{
'name' => '<$SiteName$>',
'value' => '.Mac をよくしよう!',
'context' => 'html',
},
{
'name' => '<$SiteTopURL$>',
'value' => 'http://homepage.mac.com/yuji_okamura/DotMac/',
'context' => undef,
},
この例ではどの blog においても <$SiteName$> がサイト名「.Mac をよくしよう!」に、<$SiteTopURL$> がサイトのトップページの URL「http://homepage.mac.com/yuji_okamura/DotMac/」に置き換わります。
---- blog 固有の REPLACE の定義方法 ----
blog 定義ファイルの preview after の onStart 処理の中に書いた MY_REPLACE::OnStart(@_); よりも前の同処理内に次のように追加します。
# 独自の REPLACE を定義する
push @{$MY_REPLACE::Conf{'replace'}}, (
ここに 全ての blog に共通する REPLACE の定義方法 と同じように REPLACE を定義してください
);
例えば次のようになります。
この例では <$MetaKeywords$> が meta タグに使うページのキーワード、<$MetaDescriotion$> が meta タグに使うページの説明に置き換わります。
独自 REPLACE を定義してもテンプレートファイルで使わなければ意味がありませんから、もちろんテンプレートファイルも書き換えてください。テンプレートファイルの変更を反映させるために [プレビュー状態をリセット後、プレビュー] や以前に
<http://homepage.mac.com/yuji_okamura/iblog/DotMac/Tips/C1592201073/E1917772948/index.html>
で紹介した方法で iBlog によるファイルの再生成をしてください。
Posted: 12:30
| Comment
| Trackback
以下、類似エントリです。
|
Quick Links
お知らせ
Blog コメント
個々のエントリに関するコメントでないことはこちらにコメントしてください。時々古い方から消していきます。予めご了承下さい。
カレンダー
カテゴリ
アーカイブ
月毎のエントリ一覧
旧サイト引継ぎ(抜粋)
XML/RSS Feed
検索
最近のコメント
BlogPeople
任意のリンクサイトへジャンプ
※最近更新の 24 サイトまで表示
.Mac Tips について
.Mac および .Mac 配布アプリケーションを利用するためのノウハウやツールを提供しているウェブログです。iBlog の諸問題を克服し様々な機能を追加するためのツール iblogPatcher とそのプラグインや iBlog のバックアッププログラム iBlogFreezer の開発と公開、.Mac カウンタなど .Mac 提供機能の流用&カスタマイズ方法の紹介などがメインコンテンツです。
各種検査結果
うっかりすると駄目になってしまいます。エラーが検出されたときは Blog コメントでお知らせください。
Service & Community
Statistics
Total entries in this blog:
Total entries in this category:
Published On: 2006-08-10 20:42
DotMac Counter:
|