(金)

前回、Gerymatterのサンプルを設置してみた訳だが、それからようやく文字化けを克服したぜぃ。
方法はサンプルに書いたとおりで、EUC-JPで統一しただけ(UTF-8での統一は失敗)。
でも、RSS 1.0とRSS 2.0がEUC-JPなのは気に食わないんで、こちらだけUTF-8化することに挑戦した。

まず、試した方法がForumで挙げられてたgm-rssによるRSSとAtomの生成。
gm-rssを弄ってUTF-8化すれば、膨大な他のソースを弄らなくていいし、Atomまで生成してくれるからだ。
しかし、gm-rssはXML::RSS等を利用し、XML::RSSはXML::Parser等を利用し、XML::ParserはExpatを利用し、Expatはインフォシークiswebライトで用意されてないんで、撃沈した。
そこで、Walrus::RSSを代用するようgm-rssをガンガンに弄った。
結果、こんな感じに出力され、Walrus::RSSがRSS 1.0だけサポートしてるためそれだけになってしまったが、まあそれはそれとてイイじゃないか、なかなか。
なお、gm-rss.cgiをgm.cgiと同場所にアップロードして実行する前に、gm-rssconfig.cfgを設定しRSSを出力すべき場所にアップロードするとともに、GreymatterのEntry Page-Related Templatesで{{entrymainbody}}に対し、以下のように記述しておく必要がある。

<span class="rss:item">
<p>
{{entrymainbody}}
</p>
</span>

gm-rssの改造はまだまだ続けるが、次なる方法、gm-library.cgiを弄ってGreymatter自体が出力するRSSファイルをUTF-8化する方法に移った。
rebuild connected files(sub gm_rebuildconnectedfiles)でGm_Storage::saveFileを実行する前に、以下のとおり入れとくだけで実現できた。

if ($usethisfilename =~ /xml$|rdf$|xsl$/) {
use Jcode;
$entryreturn = Jcode->new($entryreturn,"euc")->h2z->utf8;
}

こっちの方がめっちゃ楽じゃん。
あと余談だが、en_US.pmを弄ってja_JP.pmを作成し、管理者メニューの日本語化に取り組んだが、どうしてもコンフィグと再構築の画面でエラー出すんだよなぁ。

Tags :

Posted by at 00:21+09:00
Categories: ブログウェア | 楽天
Comments | Trackbacks

TopBottom

Trackbacks

Trackback URL:
http://ventura.pv.land.to/tt-cgi/tt_tb.cgi/84

TopBottom

Comments






保存しますか? Yes No


(URL以外は入力必須、過少コメント・連続投稿は不可)

TopBottom

< Gerymatter復活記念 | Home