昨今の iBlog ユーザの間ではエントリページのサイドナビ自体を思い切って取っ払う、ってのがどちらかと言うとブームでありまして、まあ、確かに正直うざいなぁ、とも思うんです。おまけに最近地道なダイエットに励んでおられるとあるお方なんか裏 Blog で「重いんだよーーゴルァ」って吠えてたりもして、なんだか神経逆なでするような気もしないでもなく......。しかし生来、物が捨てられない性格なもんで、またサイドナビをあれこれいじる技を一つ考えてみました(と言うか、今とっても逃避モードだから......)。
きっかけはトラックバック・ピープルです。今まで Blog の特徴はコメントとトラックバックと言われてきましたが、何となく運営者同士は繋がるけど、他にはあまりアピールしないなぁ、と特にトラックバックに関しては思っておったです。で、トラックバック・ピープルはそれを解消して、興味の有る話題から話題へと繋がるのにはとても面白い試みだなぁ、と思いました。
でも一つの話題に特化した Blog でなら良いのですが、ここみたいに煩雑に一つの Blog に詰め込んでる場合はどうしよう、と。興味の有る話題のリンクリストを片っ端から貼ってるようじゃ、あっという間に(と言うか既に一杯ですけど)サイドナビも一杯になってしまう。かと言って3カラムにはしない主義なので、そっちには行きたくない......。で、ぼんやりと特定の話題に特化したトラックバックの繋がりなんだから、カテゴリ毎に別なのを貼れればベストかなぁ、と思い、 iblogPatcher の MY_REPLACE.plugin を利用してやってみました。以下、方法です。
当初はサイドナビにそれ用に変換項目を付けて各カテゴリページ、エントリページに書き出し、 MY_REPLACE.plugin で置き換えてやればいいか、と軽く考えていたのですが、どっこいそうは問屋が卸しません。カテゴリを識別する <$CategoryUUID$> や <$CategoryName$> は <$BlogBaseURL$> と違い、ナビゲーションエディタからでは置き換えされないのです。よくよく考えてみればナビゲーションエディタの性格からして、 BlogPage や DayPage など、カテゴリの特定していないページにもチェックマーク一つで貼る事が出来る訳ですから、ナビゲーションエディタからカテゴリの特定を出力するような置き換えがされないのは仕様としては一貫してます。
で、トライ&エラーを繰り返すうち、結局、「Powerd by」や「Statistics(統計情報)」等のようにテンプレートに直接埋め込んでしまう事にしました。まずは CategoryPage.txt 、 EntryPage.txt (+ FileSharingEntryPage.txt、MusicEntryPage.txt )に以下のように置き換え項目を設定しました。
<td valign="top" width="<$NavigationAreaWidth$>%">
<div id="links">
<!-- <$CategoryUUID$>[$TrackBackPeople$] -->
<$NavigationItems$>
赤字で括った部分が追記した置き換え項目です。後半の [$TBP-contents$] の部分はどんな文字列でも構いませんが、置き換えしない(サイドナビにトラックバック・ピープルを貼らない)ページ用にコメントアウトしておきます。カテゴリを特定する置き換え項目に <$CategoryName$> 使いたくなりますが、これだとエントリページでは置き換えされませんでした。また、ヘッダとコンテンツを分けて2行で置き換え項目を作りましたが、これは一つで十分かと思います。ちょっと冗長かと思いつつ、ここではうにゅうにゅサイドナビを利用しているので、後々のメンテナンスを考えてこうしておきました。
実際には「がちゃがちゃエントリ」が上に有りますので、これも置き換え項目の上にタグを直接追記してます。
次に iblogPatcher の Blog 定義ファイルに MY_REPLACE.plugin 用の設定を書き込みます。ここではこのページ( iBlog カテゴリに「トラックバック・ピープル - iBlogFan」を埋め込む)を例に引用します。追記する部分は 'preview' 'after' 'onStart' の push @{$MY_REPLACE::Conf{'replace'}} の所です。
push @{$MY_REPLACE::Conf{'replace'}}, (
{
'name' => '<!-- C1800046858[$TrackBackPeople$] -->',
'value' =>' <div id="varMS_TBP-iBlogFan" class="varms"><span onclick="showMoreMenu(\'TBP-iBlogFan\', 1);" onkeypress="showMoreMenu(\'TBP-iBlogFan\', 1);" style="cursor: pointer">▲TBP-iBlogFan▲</span></div><div id="varMH_TBP-iBlogFan" class="varmh" style="display: none"><span onclick="showMoreMenu(\'TBP-iBlogFan\', 0);" onkeypress="showMoreMenu(\'TBP-iBlogFan\', 0);" style="cursor: pointer">▼TBP-iBlogFan▼</span></div><div class="sideb"><div id="varB_TBP-iBlogFan"><script type="text/javascript" language="javascript">b=0;</script><script language="javascript" type="text/javascript" src="http://t0mo.org/jc/jc.cgi?http://www.blogpeople.net/display/TB_People/tbp00007_utf8.js"></script></div><noscript>この機能は JavaScript が使用できるブラウザで JavaScript 機能を有効にしてご利用ください。JavaScript が使用できない場合は < a href="http://www.blogpeople.net/display/TB_People/tbp00007.rdf" title="iBlogFan">RSS</a> をご覧下さい。</noscript></div>',
},
);
例によって a タグの < a の間は半角空けてます。「 iBlogFan 」のタグは OKAMURA さんが提案された物を拝借してます(独自の CSS のクラスやリンクリスト呼び出し用のタグが「中継君JS」を経由してるので、まんまじゃないです)。
'name' => の所に先程テンプレートに埋め込んだ置き換え項目に、 <$CategoryUUID$> を iBlog から出力する時に置き換えられる結果(カテゴリページへのディレクトリを示す文字列)に変更して入れます。
'value' => には置き換えたい文字列(この場合はトラックバック・ピープルの表示用タグ)を入れます。オレンジ字の所は次に続くシングルクォート( ' )をエスケープしています。この要素に当たる文字列自体が、 Blog 定義ファイル上ではシングルクォートで括られていますので、シングルクォートの交じった文字列を入力したい場合は注意が必要です。
MY_REPLACE.plugin 独自の設定方法に関してはプラグイン自身をテキストエディタで開くと OKAMURA さんによる説明が有ります。
このプラグインはこんな大掛かり(?)な事じゃなくても、例えば非常に頻繁に書く人の名前をリンクタグ付きに置き換える(うちだとやっぱり OKAMURA さんでしょうか......実際には過去エントリのリンクが二重リンクになるのを防止する修正が面倒でやってませんが(^^;)とかも出来るプラグインなので、ちょっとした事にじゃんじゃん利用してあげると何かと楽だと思います。
取りあえずこの Blog ではこの iBlog と Mac+Apple 、 Diving に関連するページに、それぞれ関連したトラックバック・ピープルのリンクリストを貼ってみました。ウザイっすかね!やっぱ!
#てな分けで逃避完了〜。仕事仕事......(;´Д`)Posted by at 17:58
▼1年前はこんなこと書いてました...▼