Google +1ボタンはMicrodataを読んでくれるんだけど、HTMLありきでメタデータの注釈をつけてあとはお任せでなんとなかなるわけではない。例えばBlogとBlogPostingを組み合わせた形でMicrodataによる注釈を行って、それを一覧ページとpermalinkで使いまわすと+1ボタンからは両者の区別がつかなくなる。そりゃそうか。
このウェブログではpermalinkではArticleに切り替えるようにして、うまく解釈して貰えるようにはした。ただそもそもセクション単位でメタデータを管理できるMicrodataとURL単位でメタデータを解釈しようとする+1ボタン(やいいね! ボタン)は相性が良くないと思うので、どちらかを捨てる方が精神衛生上良さそう。
マークアップする段階でitemprop="description"
とかimg
要素にitemprop="image"
とかは面倒すぎるので、Blosxom側で
sub story {
my($pkg, $path, $filename, $story_ref, $title_ref, $body_ref) = @_;
$$body_ref =~ s/<p>/<p itemprop="description">/;
$has_image = 0;
if ($$body_ref =~ m!<img!) {
$has_image = 1;
$$body_ref =~ s/<img (.*?)>/<img $1 itemprop="image">/;
}
return 1;
}
とかして最初の段落をdescription
にしたり、画像のあるエントリーの場合はimage
を割り当てるようにした。単独のプラグイン化する程ではなかったので、いろんな機能をとりあえずぶち込んでる便利プラグインに混ぜてる。こんなの作って誤魔化すことが多いのでflavourがロジックだらけの魔窟でひどい。
メタデータ絡みのことやってると徒労感が……という一方で妙な達成感があってタチ悪い。