ブログネタ
livedoorブログのリニューアル! に参加中!

私のブログでは、HTMLのテンプレートを個別に編集してトップページだけでなくすべてのページでサイドバーが表示されるようにしています。どのように編集しているかというと、あちこちのブログで紹介されているように以下のようなタグを挿入することで実現しています。

<script language="JavaScript" src="<$BlogUrl$>plugin.js"></script>

これだと、過去の記事についても常に最新のサイドバーを表示することができ、とても便利でした。でも、今はこの手が使えなくなってしまっています。移行の進め方で色々と非難の声も出ているlivedoor Blogの新環境に移行した途端、上記で使用しているJavaScriptのplugin.jsファイルが更新されなくなってしまったのです。

おそらく、新環境で追加された3カラム形式のデザイン用に置き換えタグを刷新したことで使えなくなってしまったのだと思います。確かにplugin.jsの機能自体は公開されていたものではありませんが、突然使えなくなってしまうのもどうかと思います。

このplugin.jsの更新は今後も実施されないのかどうか、サポートにメールで問い合わせてみましたが、半月くらいたっても返事はありません。とはいえ、このままだと不便なので対応してみました。

まず、他の人たちがどうしているかブログを検索してみました。多いのが、上記の行を次の行に置き換えるという手です。

<$PluginList_A$>

確かにこれだと記事を投稿した時点のサイドバーが付くことになります。しかし、私がplugin.jsで実現していた「常に最新のサイドバーを維持する」ためには、記事投稿時に毎回、全ページの再構築を実施しなければならなくなります。これはあまりにも面倒です。

私はlivedoor Blog PROを契約しているのでftpでアクセスして何か使えそうなファイルが無いかチェックしてみました。すると、archivesディレクトリの下にあるplugin_A.incというファイルがサイドバーに表示されるhtmlを含んでいることがわかりました。

そこで、以下のようなことを行うPerlスクリプトを書いて対応してみました。

  1. ftpでplugin_A.incをgetする。
  2. plugin_A.incの各行にdocument.writeln()を付加する。
  3. それをplugin.jsとして出力する。
  4. ftpで作成したplugin.jsをputする。

記事を投稿した後、いつもこのPerlスクリプトを実行する必要はあるのですが、毎回全ページの再構築を行うよりは遥かに短時間で済みます。livedoor Blog PRO契約していないと使えない手ではありますが、一つの回避策にはなるかと思います。

それとも、こんなことをしなくても良い方法が、もしかしたらあるのかもしれません。ご存知の方は教えてください。