> >

 |  tomori_icon  | 
 |  category_icon  | 

2004年05月21日 (金)

CategoryImageiBlog 1.3.7 beta1

ああ、なんてことでしょう。この糞忙しいのに、つい誘惑に負けた。iBlog1.3.7 beta1 がリリースされていたので、ついついアップデートしてしまいました。
[同日20時、さらにさらに追記] Elan さんより、 OSX 10.3.3 上、日本語環境下で
プレビューが終わらない症状が確認され、報告頂きました。
導入を検討されている方はくれぐれも慎重にして下さい。

[5/23 追記]kaoru_ari さん、HiTsu さんの所を参考に
エンコードを UTF-8 に変更

[5/24 変更] エントリ間のジャンプタグを入れ替えました。


今回は他のヒトバシラーの方々にお任せしようと思っていたのですが......ちょいと食事休憩の合間についつい......ダメだーー俺!

まあ、やっちまったもんは仕方がない。取りあえずいつものように注意点と変更点、メモっておきます。でも、またすぐに自分的な安定バージョン 1.3.5 にダウンデートしてしまうかも知れません。ちなみに僕の環境ではいまだ Shift-JIS です。 1.3.6 以降、UTF8 でエンコーディングされる訳ですが、 iblogPatcher 1.2.1(旧バージョン)で Shift-JIS にエンコードを変更してます。なのでテンプレートも一部新機能に対応させただけで、エンコードは変えてません。<-下記参照

まず、最低限のお約束としてバックアップ。全部やりましょうね〜。

・ iBlog 本体の旧バージョン(僕の場合は 1.3.5 )
・"~/Library/Application Support/iBlog"
・"~/Library/Preferences/com.lifli.iBlog.plist"
・"~/Library/Sites/iblog(または任意のプレビューディレクトリ)"
最後のはやんなくてもいいんですが念の為です。

ちなみにざっと見た所ですと、"~/Library/Application Support/iBlog/Javascript" が丸ごと置き換えられています。その他は“カスタマイズした”テンプレートに変更はなかったようです。

次に変更点。上記のように JavaScript フォルダが置き換えられていると言う事はうにょうにょ用の Script も消去されていますので、それをバックアップから戻しました。続いて当然 CommonLib.js も置き換えられていますので、僕の場合はカスタマイズしてますから、元のを戻します。但し、以下の点が新しい物では変更されていましたので、これらをカスタマイズ版に反映させました。これらの変更は 1.3.7 の CommonLib.js に同じ行が有りますから参考にされる方はそこからコピーしましょう。ここからコピーペーストして問題が起きても、当方には責任負えませんので悪しからず......。 HiTsu さんのエントリに詳しいですが、 UTF-8 エンコードで CommonLib.js を使用の場合、日本語は実体参照化する必要が有ります。これはiBlogが JavaScript より置き換える文字列が不適切な為のバグ回避策のようです( .MacTips 参考リンク)。

1行目から47行目
var entryUUIDsList = <$EntryUUIDs$>;

function getNextEntryLink(entryUUID) {
  var i;
  var entryUUID;
  var categoryUUID;
  
  for(i = 0; i < entryUUIDsList.length -1; i++) {
    if(entryUUIDsList[i] == entryUUID) {
      entryUUID = entryUUIDsList[i+1];
      categoryUUID = getCategoryUUIDForEntry(entryUUID);
      document.write('< a href="../../' + categoryUUID + '/' + entryUUID + '/index.html">&lt;&lt; 次の古いエントリ </a>');
      return;
    }
  }
  
  document.write('');
}

function getPreviousEntryLink(entryUUID) {
  var i;
  var entryUUID;
  var categoryUUID;
  
  for(i = 1; i < entryUUIDsList.length; i++) {
    if(entryUUIDsList[i] == entryUUID) {
      entryUUID = entryUUIDsList[i-1];
      categoryUUID = getCategoryUUIDForEntry(entryUUID);
      document.write('< a href="../../' + categoryUUID + '/' + entryUUID + '/index.html"> 前の新しいエントリ &gt;&gt;</a>');
      return;
    }
  }
  
  document.write('');
}

function getCategoryUUIDForEntry(entryUUID) {
  var entryCategoryUUIDPairs = <$EntryCategoryUUIDPairs$>;
  
  for(var i = 0; i < entryCategoryUUIDPairs.length -1; i++) {
    if(entryCategoryUUIDPairs[i] == entryUUID) {
      return(entryCategoryUUIDPairs[i+1]);
    }
  }
}

赤字は独自の変更点。例によって a タグ < と a の間は半角スペースを空けてますが、実際は不要。
[5/24 変更] 結局左右の関係が釈然としなかったので iBlog デフォルトとは逆に入れ替えました。

ついでに 1.3.6 からの変更点として 183 行目の getFeedbackLink のスペルミス( 1.3.4 までは getFeebackLink と d が抜けていた)を修正(と言ってもこの機能、ここでは使っていないので無用なのですが、念の為)。

次にテンプレートに上記で CommonLib.js に追記した新機能の Previous, Next リンク( MT なんかでもよく見ますよね。 iBlog で付けられてるのは僕の知ってる限り、daily-eimy さん所だけでしたが)表示の為のタグを付けました。これはデフォルトのテンプレートの変更部分をコピーして、下記 EntryPage.txt のタイトルの上に付けました。

<div align="center" class="comitem">
  <script language="JavaScript1.2" type="text/javascript"> getNextEntryLink("<$EntryUUID$>"); </script>
  &nbsp;|&nbsp;< a href="../../index.html">トップ</a>&nbsp;|&nbsp;
  <script language="JavaScript1.2" type="text/javascript"> getPreviousEntryLink("<$EntryUUID$>"); </script>
</div>
<h3 class="title"><$CategoryImage$><$EntryTitle$></h3>

赤字は独自の追記点。クラスはこの Blog のトップの各 Abstract の下のリンクに付けているものと同じスタイルを割り当てました。ですのでまんま使っても意味がないので、お好きなクラスに変える、若しくは削って下さい。緑字は元々有ったタイトルのタグ。
[5/24 変更] 結局左右の関係が釈然としなかったので iBlog デフォルトとは逆に入れ替え、 MT に倣って中央にトップリンクを入れる事にしました。 a タグ < と a の間は半角スペースを空けてます

当面気付いた注意点、変更点は以上です。新機能についてはあまり追及してません。

取りあえず、ざっと使ってみた所、1.3.6 で問題になっていた日本語環境での不具合(特にプレビューが終了しない、など)は解消しているように見えます。日本語環境での不具合が報告されてます。当方の環境ではカテゴリページのページタイトルが文字化けている以外( UTF-8 にすれば解消するのかも? しかしこれも iBlog からの吐き出し時のトラブルのような気がする......)は問題ないようですが、要注意ってことで、まずはこのまましばらく使ってみる事にします。他に気付いた事など有りましたらコメント、トラバなど戴けると嬉しいです>ヒトバシラーの方々。

後は RSS Feed のリンク切れ問題ですが、こればかりは公開してみないと分かりませんので、取りあえず行っちゃえ〜〜ってことで、ポチっ!!

[同日追記] やっぱり RSS Feed は直っておらず、上記リンクの方法で対処。

[同日さらに追記]
・複数のBlogを運営されている方用参考リンク【iBlog 1.3.6 を使うには(.MacTips)】
j_kannnoさんにMLでツッコミ頂き、「前のエントリ」「次のエントリ」と言う文言を時系列になるよう改めました。ありがとうございます。
 ここ、エントリタイトルが抜き出せるといいんですけどね(^^;

[5/23 追記]
 結局 HiTsu さんのエントリに刺激されて、 iblogPatcher も1.3.1 に、エンコードも UTF-8 に変更しました。 Panther 環境ですので、下記、kaoru_ari さんのエントリを参考に ReformatDateTime.plugin をテキストエディタで開き、変更しました。

dark side of the moon 「iblogPatcher-1.3 リリース」
 また、日付フォーマットの変更を担当するプラグインは、今回から ReformatDateTime.plugin として CHANGE_CONTENT.plugin から独立しました。OKAMURA さんは Jaguar で開発しておられますので、これまでは変換テーブルを Panther 用に書き換える必要があったのですが、ReformatDateTime.plugin ではプラグインをテキストエディタで開いて 44 行目の 'panther' => 0, を 'panther' => 1, に書き換えるだけで OK のようです。

これに伴いプチログのエンコードを変更、プチコメも UTF-8 人柱版に変更、サイドナビの BlogPeople Birthday Blog が自動認識だと取得するファイル名が違う為、文字化けしていたので、これは UTF-8 に変更してコードを生成→貼り直しました。

OKAMURA さん、 ComCom さん、 HiTsu さん、kaoru_ari さん、ありがとうございます。

Posted by at 10:37


▼1年前はこんなこと書いてました...▼