BlogWriteでの投稿エラーが解決

以前からBlogWriteでここに投稿すると再構築で500エラーとなっていました。しばらくの間はここに書かなかったので放置していたんですが、BlogWriteのサポートフォーラムを覗いてみたら、解決策をあっさりと見つけてしまいました。 面倒くさがって放置しておくのは考え物ですな。

上記のページを参考にして、EntriesPerRebuildの設定と、ping先の整理をしたところエラーにならなくなりました。

結局、処理負荷のせいでエラーになっていたようです。

BlogWriteがバージョンアップ

BlogWriteがバージョンアップして、MT3.3のエントリータグに対応しました。

これで、自作したTechnorati Tagプラグインは無用の長物になったわけですorz

まあ、Technorati JAPANへのタグ検索リンク生成とか、本文からマークアップされたタグを抽出する機能とかはそれなりに価値がある気がするので、気が向いたら別のプラグインとして作り直すかもしれません。

エントリータグをTechnoratiに検出させる

MT 3.3のデフォルトテンプレートでは、エントリータグをcategory要素としてAtomに含めてくれます。

で、生成されるcategory要素は以下のようになります。

<category term="30" label="MT3.3" scheme="http://www.sixapart.com/ns/types#tag" />

って、これじゃTechnoratiさんは、”30″をタグとみなしちゃいますよorz
実際、”30″でタグ検索したら、該当エントリーが引っかかるし。

テンプレート上の記述は以下のようになってます。

<category term="<$MTTagID encode_xml="1"$>" label="<$MTTagName encode_xml="1"$>" scheme="http://www.sixapart.com/ns/types#tag" />

ブログ内部でしか意味のないTagIDをtermに設定するのは何のためでしょうかね?

ということで、Atomのテンプレートを修正してみました。これで同じタグを別々に表示する必要は無くなるはずです。

<category term="<$MTTagName encode_xml="1"$>" scheme="http://www.sixapart.com/ns/types#tag" />

Technoratiの検索リンクはとりあえずなしにして、後でどうするか考えることにします。

pingされてました

自分で更新pingサーバもどきを作って確認したところ、BlogWriteからの投稿でもMT3.3経由で更新pingが送信されていました。

3.2の時はping送信に時間がかかっていたのですが、3.3では高速化されたのですかね。
それともBlogWrite側に通知してないだけ?

BlogWriteからMT3.3への投稿ではpingが行われない?

BlogWriteのダイアログにping送信中の表示が出ないし、Technoratiのタグ検索にも登録されていないので、MT 3.3経由ではping送信されないようです。

とりあえず、BlogWriteから直接pingするようにしてみます。

追記

Technoratiのタグ検索に一部のタグが登録されていました。単に登録に時間がかかっているだけみたいです。確実に送信されたことを確認する手段はないかなぁ。

Technorati Tag プラグイン

MT 3.3にアップグレードしてタグが使えるようになったのですが、このblogではTechnoratiのタグも使用しています。で、以下のような不満点が出てきました。

  1. MTのタグとTechnoratiのタグを別々につけるのは面倒くさい。
  2. いつも使っているBlogWriteは、MTのタグに対応していない。
  3. Technoratiのタグをコピペするのが面倒くさい。

MTのマニュアルを眺めていたら、プラグインが思ったより簡単に作れそうなので、上記の問題点を解決するプラグインを作ってみました。

機能としてはエントリーの本文に以下のように記述すると、

{{{MT3.3,プラグイン}}}

以下のように変換されます。

Technorati Tag:

続きを読む

Widget Managerとタグ関連

また今度といいましたが、時間ができたのでこのブログのテンプレートを修正しました。

まず、サイドバーでWidget Managerを使用するように修正。もともと、サイドバーの各アイテムとサイドバー自体をモジュールにしてあったので、アイテムをWidgetにして、サイドバーのモジュールをインクルードしているところをWidget Managerのタグに置き換えるだけで修正できました。

まあ、あまりサイドバーの変更をするつもりは無いのであまり使わないように思いますが。

次に、タグ表示をエントリーアーカイブに追加。「カイ氏伝 MT 3.3: Movable Type 3.3へのアップグレードからタグクラウド設定まで」を参考にして、好みのレイアウトになるように修正しました。あと、Atom.とRSS 2.0のデフォルトテンプレートにもタグ関連の記述があったのでそれをコピーしました。

それから、エントリーにタグを追加するために編集ページを開こうとしたら、タイトルに半角ブラケットで囲まれた文字列が含まれるエントリー場合にmt.cgがエラーを起こして開けません。BlogWriteでは問題なく取得/更新ができるので、mt.cgiの仕様か不具合だと思われます。とりあえず、BlogWriteで半角ブラケットを全角ブラケットに変更して問題を回避しました。

で、このタグがテクノラティで認識されるのかが非常に気になっています。認識してくれるならいちいちテクノラティタグをコピペしなくてすむので楽なんですが。でも、BlogWriteではタグがつけられないのでMTの管理画面から投稿しないとだめかorz

追記

やっぱり、タグはテクノラティには反映されませんでした。(2006/07/02)

LaCoocanでStyleCatcherプラグインが使用可能に

Activity Memo the 2nd」 で、StyleCatcherプラグインを使用できるようにLaCoocanがサーバ設定を変更したことを教えていただきました。
Bootstrap.pmをオリジナルのものに戻してみたところ、ちゃんと動作することが確認できました。

LaCoocanでの設定変更ですが、どうやらCGIの起動時に環境変数PWDを設定するようにしたようです。これでMT::Bootstrapがカレントディレクトリの絶対パスを得られるようになり、そこからMTのインストールパスを取得できるようになりました。

今回の件はMT::Bootstrapの不具合のような気がしていますが、何らかの理由(性能とか)でこのようになっているのかも知れず、Perlにあまり詳しくない自分としては不具合と断定できません。

参考

関連記事

LaCoocanでStyleCatcharプラグインが動作しない原因

LaCoocanでStyleCatcharプラグインが動作しない件ですが 、原因がわかりました。

LaCoocanのParl CGIでは、$0の値として”./stylecatcher.cgi”というパターンの値が返りますが、MT::Bootstrapモジュールではこの値からMTのインストールディレクトリをうまく取得できません。このため、mt-config.cgiをカレントディレクトリから見つけようとしてエラーとなります。

とりあえず、lib/MT/Bootstrap.pmの10行目を以下のように変更することで動作するようになりました。

変更前
if ($0 =~ m!(.*([/\\]))!) {
変更後
if (File::Spec->rel2abs($0) =~ m!(.*([/\\]))!) {

追記

よく考えたら、変更後のif文の条件は必ず成立する気がする。確証はないけど。

参考

StyleCatcher プラグインがうまく動かない!!(Activity Memo the 2nd)