先ほど、Net::MovableTypeでエントリをアップするとタグが登録されない問題について、
色々と試行錯誤した模様をお届けしたんですが。

Net::MovableTypeで投稿したエントリのTaggingについて - NOBODY:PLACE - MUTTER

Ogawaさんからブクマ経由で素早くコメントをいただきました。

http://code.as-is.net/public/wiki/KeywordsAsTags_Plugin.ja_JP を使うといいよ。mt_keywordsにタグ情報をセットしてポストすればエントリータグとして保存した上で再構築してくれる。


あああ!

Tracで見かけた記憶はあるんですが、まぁ関係ないしなー(当時3.21)と思って、
そのまま忘れてました。
このコメントいただいても、5秒くらい、
『いや、でも再構築のタイミングが…』とか思ってたんですけど、
いやいやいや、投稿のタイミングで動作するんだから、関係ない。


…というわけで、さくっと導入してみたところ、あっさり問題は解決しました(苦笑)
さっき晒したコードは何だったのか…

ありがとうございました。
で、導入方法とか言ったって、解凍して出来たフォルダを
pluginsディレクトリに突っ込むだけなので、特に書くことはないわけですが。
せっかくなので、はてなブックマークエントリ用のテンプレートを少しいじってみました。

具体的には、僕のコメントに付けていただいたはてなスターを、
エントリ上でも再現しようということで。


こんな感じになりました。

Hatena::Bookmark::konaze (2008-02-18) - NOBODY:PLACE - MUTTER



改造のポイント

テンプレートの変更自体は取り立てて難しくないので割愛しますが、
ポイントは、ブックマークコメントのURLをどうやって引っ張ってくるか?ということ。
こんな感じのヤツね。

http://b.hatena.ne.jp/konaze/20080219#bookmark-7543155

これは、Atomフィード内にどんな感じで配置されているかというと、
こんな感じ。(太字部分)

<entry>
  <title>HD DVD報道について考える - コデラノブログ 3</title>
  <link rel="related" type="text/html" href="http://blogmag.ascii.jp/kodera/2008/02/18224858.html" />
  <link rel="alternate" type="text/html" href="http://b.hatena.ne.jp/konaze/20080219#bookmark-7550582" />
  <link rel="service.edit" type="application/x.atom+xml" href="http://b.hatena.ne.jp/atom/edit/7550582" title="HD DVD報道について考える - コデラノブログ 3" />
  <issued>2008-02-19T12:47:27+09:00</issued>
  <author>
    <name>konaze</name>
  </author>
  <id>tag:hatena.ne.jp,2005:bookmark-konaze-7550582</id>
<summary type="text/plain"></summary>
<dc:subject>media</dc:subject>
<dc:subject>dvd</dc:subject>
<dc:subject>*資</dc:subject>
</entry>

rel="alternate"が付加されたlink要素として、entry要素内に配置されてる。
これの取り出し方は…

XML::Atom::Feedのドキュメントと、
こちらを読みつつ、こんな感じのコードを追加してみた。

my @rellink  = grep {$_->rel eq 'alternate'} $entry->link;
my $bookmark_url  = $rellink[0]->href if(@rellink);

これを、適当な名前を付けてテンプレートに渡してやれば、すべて完了。


できたーヽ(´ー`)ノ



しかしあれだな、休みの日くらい休めと言いたい。>俺
まぁ、失敗して困るのは僕だけっていう意味で、自主トレみたいなもんですけどね。


さて引っ越しの契約書にサインするか。