シフト JIS でも Backlinks 
Blogger の新機能 Backlinks は Shift-JIS のブログでは文字化けしてしまう、ということを前回の記事で紹介しました。
納得がいかないのクリボウは無理やり Shift-JIS に対応させる方法を考えました。説明が大変なので要点だけを書くと…。
1.とりあえず導入
前回記事のとおり、バックリンクを有効にしテンプレートも編集して、ブログを再構築します。
2.コードの取り出し
テンプレートではなくて、出来上がったブログの記事単独ページのコードからバックリンクに関する部分を抜き出します。テキストエディタにコピー&ペーストします。
3.抜き出したコードの書き換え
4.テンプレート上書き
書き換えたコードを、対応するテンプレートのバックリンクに関する部分に上書きします。
5.コード挿入
テンプレートの <head> 内に以下のコードを書き入れます。
6.バックリンクを無効に
管理 > コメントからバックリンクの項目を「非表示」にして再構築します。
以上です。しっかり説明してしまった気もします。
この方法の一番の肝は 「
ほうぼういじりまわすのと、おそらく Blogger の正しい使い方ではないでしょうから、自己責任でどうぞ。
ちなみに、ページと別の文字エンコードでデータを書き込むスクリプトは、たいていこのやりかたでなんとかなることが多いと思います。実は以前紹介した Feed2JS も
納得がいかないのクリボウは無理やり Shift-JIS に対応させる方法を考えました。説明が大変なので要点だけを書くと…。
1.とりあえず導入
前回記事のとおり、バックリンクを有効にしテンプレートも編集して、ブログを再構築します。
2.コードの取り出し
テンプレートではなくて、出来上がったブログの記事単独ページのコードからバックリンクに関する部分を抜き出します。テキストエディタにコピー&ペーストします。
3.抜き出したコードの書き換え
postID=******** の ******** を <$BlogItemNumber$> に書き換えます(2箇所)。"http://search.blogger.com/blogsearch?q=link:********" の ******** を <$BlogItemPermalinkURL$> に書き換えます。最初に出てくる外部スクリプト(http://www.blogger.com/dyn-js/backlink.js)呼び出し部分の <script> タグに属性 charset="UTF-8" を挿入します。4.テンプレート上書き
書き換えたコードを、対応するテンプレートのバックリンクに関する部分に上書きします。
<BlogItemBacklinksEnabled> と </BlogItemBacklinksEnabled> のタグはもう要りません。再構築はまだです。5.コード挿入
テンプレートの <head> 内に以下のコードを書き入れます。
<ItemPage>
<script type="text/javascript" src="http://www.blogger.com/js/backlink.js"></script>
<script type="text/javascript" src="http://www.blogger.com/js/backlink_control.js"></script>
<script type="text/javascript">var BL_backlinkURL = "http://www.blogger.com/dyn-js/backlink_count.js";var BL_blogId = "********";</script>
</ItemPage>
******** 部分にはブログの ID が入ります。2で抜き出したコードにも <script type="text/javascript" src="http://www.blogger.com/js/backlink.js"></script>
<script type="text/javascript" src="http://www.blogger.com/js/backlink_control.js"></script>
<script type="text/javascript">var BL_backlinkURL = "http://www.blogger.com/dyn-js/backlink_count.js";var BL_blogId = "********";</script>
</ItemPage>
blogID=******** とあるので同じものを書き込みます。6.バックリンクを無効に
管理 > コメントからバックリンクの項目を「非表示」にして再構築します。
以上です。しっかり説明してしまった気もします。
この方法の一番の肝は 「
<script> タグに属性 charset="UTF-8" を挿入する」という点。これがしたいがために、上記のように色々いじることになるのです。多言語を意識して Blogger 側でこれをしてくれれば問題は解決するんですけどね。ほうぼういじりまわすのと、おそらく Blogger の正しい使い方ではないでしょうから、自己責任でどうぞ。
ちなみに、ページと別の文字エンコードでデータを書き込むスクリプトは、たいていこのやりかたでなんとかなることが多いと思います。実は以前紹介した Feed2JS も
<script> タグに属性 charset="UTF-8" を書き入れることで、このブログで導入することができたのでした。

いつも丁寧な解説ありがとう!
時間を作って試してみます。
By
OpenCage, at 14 October, 2005 07:36
Post a Comment