2007-11-19 アーカイブ

http://hxxk.jp/2007/11/19/

Movable Type の Trackback Auto-Discovery は記事ごとにどうにかできないか

記事データ

投稿者

望月真琴

投稿日時

2007-11-19T21:53+09:00

タグ
概要

Movable Type の Trackback Auto-Discovery は、記事を再度編集する際にも再度トラックバックを送信してしまうので、ユーザは安易に設定することが無いようにして欲しいという主張、あるいは解決につながるプラグインを誰かお願いします、というワガママ。

リプライ

2 件のリプライがあります。

記事本文

少しずつ weblog を書く癖を取り戻していこう

約 3 ヶ月半ぶりの記事です。 本当は休止中と謳っていても月に 1 ~ 2 本は記事を書いていたいのですが......。

非業界人があそびにいったよシリーズの第 3 段はもう少しお待ちください、録音させていただいた内容を踏まえてきっちりとレポートしたいので。 実はレポートする前に エスカフラーチェ LLC | pur*log の purprin さんに再びお会いすることになったので、怒られるかも......と思いましたけど実際はそのことに触れられませんでした。 ダメな子だと既に諦められているのかもしれません。

あまりに間を空けすぎるのも何なので、ひとつひとつの記事の分量を少なめにしながらリハビリ ( という表現が正しいのかどうか分かりませんが ) をしていこうと思います。 今回は、ある記事からトラックバックを送信されて思ったことをひとつ。

Movable Type の Trackback Auto-Discovery は新規投稿時以外でも有効になる

Movable Type には Trackback Auto-Discovery という機能があります。 これは簡単に説明すると、送信側と受信側の機能に分類でき、送信側は 「記事の新規投稿や編集をした時に、記事中に含まれるリンク先の内容を取得して、トラックバック ping を自動で検知し、トラックバックを送信する」 という機能で、受信側は 「所定の形式の RDF をページ中に挿入しておくことで、トラックバック ping の自動検知を有効なものとする」 機能です。 ( 本当はもっと詳しい仕様が定められているのですが、その辺りは TrackBack Technical Specification - Auto-Discovery of TrackBack Ping URLs あたりを参照してください。あるいは拙記事 Movable Type の Trackback auto-discovery あたり。 )

Movable Type 4 ドキュメントトラックバック設定では、 自動検知を設定しておくと、新しくエントリーを投稿したときにエントリー内のリンクをすべてチェックし、リンク先にトラックバックURLがあった場合にはトラックバックを送信します と説明されていますが、実際は新規投稿時に加え、既に作成済みの記事を編集して保存しなおした際にも再びトラックバック ping を検知します。 ( 更に、記事の公開の状態が「公開」であれば、トラックバックの再送信を行います。 ) まとめると、

  • 記事の公開の状態が「公開」であるか
    • 未公開 ( 下書き ) である
      • 記事内にリンクが含まれているか
        • 含まれていない
          • トラックバック ping は検知されないし、トラックバックも送信されない
        • 含まれている
          • トラックバック自動検知を有効にしているか
            • 有効にしていない
              • トラックバック ping は検知されないし、トラックバックも送信されない
            • 有効にしている
              • 記事内のリンクの URL を「トラックバック送信先の URL 」欄に保存し、トラックバック ping の検知やトラックバックの送信は行わない
    • 公開である
      • 記事内にリンクが含まれているか
        • 含まれていない
          • トラックバック ping は検知されないし、トラックバックも送信されない
        • 含まれている
          • トラックバック自動検知を有効にしているか
            • 有効にしていない
              • トラックバック ping は検知されないし、トラックバックも送信されない
            • 有効にしている
              • リンク先の記事は Trackback Auto-Discovery の RDF を記事内に挿入しているか
                • 挿入していない
                  • トラックバック ping の検知は試みられるが、検知できずにトラックバックは送信されない
                • 挿入している
                  • トラックバック ping が検知され、トラックバックが送信される

という流れです。 記事が新規投稿であるか再編集であるかは関係ありません。

過去の記事をよく手直しする場合は、 Trackback Auto-Discovery は有効にしない方が良い

過去の記事に、最近書いた新しい関連記事や、外部の関連記事へのリンクを追記するなど、過去の記事であっても手直しをすることはあります。 それ自体は悪いことではありません。 しかし、 Trackback Auto-Discovery を有効にしていて、かつ記事内にリンクが含まれていると、手直しの度にトラックバックを送信することになります。 Trackback Auto-Discovery の設定は記事ごとではなくて weblog 自体に行うものなので、意外と気付いていない方も多いかも。 ( 今回この記事を書くきっかけになった weblog を書いている方も、 Movable Type の設定や Web システムの挙動に詳しいと思われる方なので、見落としやすい点なのかもしれません。 )

いっそのこと 「 Trackback Auto-Discovery そのものを無効にしてくれ ! 」 と言いたいところですが、それは解決策としては突拍子もないでしょう。 ( まあ、そもそも初期設定では無効になっている機能なのですが。 ) 他に考えられる解決策としては、次のような感じでしょうか。

過去の記事を手直しする場合は、一時的に Trackback Auto-Discovery を無効にする

Trackback Auto-Discovery を通常は有効にしつつ、無用なトラックバックの再送信を防ぐための解決策。 でも、いちいちこんなことやるくらいだったら Trackback Auto-Discovery の機械的な自動処理というメリットが薄れます。 最初から Trackback Auto-Discovery を無効にして、トラックバックを送るべき時だけ手動で送った方がトラックバックのクオリティは高くなるでしょうし。

過去の記事を手直ししてトラックバックを再送信してしまった場合は、コメントなりメールなりで削除のお願いをする

これも機械的な自動処理のメリットが薄れます。 トラックバックとはちょっと話が違いますが、 Twitterでナンパされて会ってきた - CROOK 暴発 という表現が面白いですね。 「トラックバックを再度暴発させてしまったのでお手数ですが拭き取ってください。」

舐め取ってください、でもいいか。 いや、喩えですよ ?

Trackback Auto-Discovery は内部リンクに対してのみ有効にする

外部リンクに対して有効にするから、暴発させたあげくに拭き取り行為まで相手の手を煩わせることになるのです。 内部リンクであれば暴発しようが予想外の記事に発射しようが後始末は自分でできるのですが。

Trackback Auto-Discovery を記事単位で管理できるようなプラグインを作る

私はスキルが無いので作ることができませんが、 weblog 全体にかかる Trackback Auto-Discovery の設定を、記事単位で管理するようなプラグインを作ることができれば機械的な自動処理のメリットを失わずに、思わぬ暴発を防げるのではないでしょうか。 記事ごとに設定するのが煩わしいのであれば、例えば 「記事の新規投稿時は Trackback Auto-Discovery を有効に、再編集時は Trackback Auto-Discovery を無効にする」 といった判別でも良い気がします。 安全装置とでも言いますか、再編集時はロックをかけておく、的な。

もっと根本的な解決策として 「 hxxk.jp の Trackback Auto-Discovery 用の RDF を削除する」 というものもありますが、敢えて RDF は挿入したままでの解決策を考えてみました。

そもそも挿入していなければ暴発の被害を受けることもないので、他人に注文を付ける前に自衛策を講じるべきと言われるかもしれませんが、しばらくは挿入したままにしておきます。 発射する側も仕様を完全に知っておいて欲しいとは言いませんが、ある程度の知識を身に付けて、何度も何度も暴発させることのないようにして下さい。

うん、何か途中から変な方向に逸れたのは久しぶりの記事だから感覚が掴めないからじゃなく、途中で CROOK を引き合いに出してしまったせいだ、ということにして良いでしょうか。 Twitterでナンパされて会ってきた - CROOK を読んで、次に東京に行くことがあって都合が合えば legnum さんと飲んでみたいなあ、と思って記事に絡めたのが失敗でした。

※ legnum さんの名誉のために言っておくと、今回のトラックバック暴発をかましたのは legnum さんではありません。

※重ねて legnum さんの名誉のために言っておくと、 legnum さんは真面目な記事や為になる考察を CROOK で数多く書かれています ! ケツなんて見ていませんから !

リプライ

2 件のリプライが送られています。 この記事に対するご意見やご質問、ご感想などありましたら個別記事ページの送信フォームからお送り下さい。

2007-11-20T12:49+09:00 - is

こんにちは。えーと、記事と関係のないコメントで恐縮なのですが、CSSが適用されていないのは仕様でしょうか?

2008-01-07T22:27+09:00 - 望月真琴

仕様「でした」。新しい CSS を作るまでは link 要素および xml-stylesheet 処理命令を外していたのです。

補足情報

著作、講演、制作実績など