Download
MovableType
Plugin

リンク切れチェックプラグイン

MovableType の記事中のリンクをチェックし,リンク切れを見つけるプラグインです。


概要

長くブログを続けていると,過去にリンクしたサイトのいくつかはなくなっています。「クリックする前にリンク切れが分かるようにしたい」というのが開発の動機です (nlog(n): リンク切れを示すタグが欲しい)。

このプラグインは,ブログの記事や,コメント,トラックバックなどのリンクをチェックし,リンク切れなどの場合には,そのアンカータグに class="badlink" というクラス属性を追加します。リンク切れの表示は,スタイルシートで行います。

MT 2.6 以降で動作します。動作確認は次の環境で行っています。

  • Movable Type 2.661, Perl 5.8.2, 文字コード EUC-JP
  • Movable Type Open Source 4.1, Perl 5.8.2, 文字コード UTF-8

MTOS では,システムプラグインとして動作します。MT 3.x でも動作するでしょう。

Movable Type には,他にもリンクをチェックするプラグインがあります (CheckLinks | Plugins for Movable Type | staggernation.com)。表示する形式が異なります。CheckLinks は,リンク切れのサイトのリストをまとめて出力します。ここで配布するリンク切れチェックプラグインは,リンク切れをインラインで表示したい場合に有効です。


ダウンロード


準備

プラグイン導入にあたり,次の Perl モジュールを追加インストールする必要があります。関連するモジュールもインストールしてください。

ダイナミックパブリッシングを利用する場合は,次の PHP モジュールをインストールしてください (インストール例: nlog(n): PEAR HTTP_Request のインストール)。


インストール

プラグインの編集と保存

ダウンロードしたファイルを展開し,プラグイン用フォルダに保存してください。

  • MTPath/plugins/badlinkfinder.pl

MTOS/MT 4 用の場合,ダウンロードしたファイルを展開し,プラグイン用フォルダに保存してください。次のディレクトリ構成となります。

plugins/
  BadLinkFinder/
    BadLinkFinder.pl
    lib/
      BadLinkFinder/
        L10N.pm
        L10N/
          en_us.pm
          ja.pm
    php/
      block.mtbadlinkfinder.php

スタイルシートの編集

スタイルシートに次のスタイルを追加してください。ここでは,リンク切れ表示を,class="blog" のクラス属性がついている部分に限定しています。クラスの名前が違う場合は,適当なものに書き換えてください。例えば,<div class="content"> と </div> で囲まれた範囲を対象としたい場合は,下の .blog を .content あるいは div.content に書き換えてください。

        .blog a.badlink:after {
                content: url(/images/x.gif);
                vertical-align: middle;
        }

リンク先がある場合(リンク切れでない場合)に 画像を表示したい場合は,スタイルシートに次のスタイルを追加します。この設定はプラグインを導入しなくても有効です (nlog(n): 外部リンクにアイコンをつけるには)。

        .blog a[href^="http:"]:after,
        .blog a[href^="https:"]:after {
                content: url(/images/external-link.gif);
                vertical-align: middle;
        }
        .blog a[href^="<$MTBlogURL$>"]:after {
                content: "";
        }

画像の保存

リンク切れ表示用の画像を作って「サイトパス/images」ディレクトリに「x.gif」という名前で保存してください。適当な画像がない場合は,この画像をダウンロードしてお使い下さい。「vertical-align: middle;」の指定はなくても結構です。

  • external-link.gif
  • x x.gif

使えるようになるタグ

プラグインの導入により,次のタグが使えるようになります。コンテナタグです。

  • <MTBadLinkFinder>

使い方

テンプレートにおいて,リンクをチェックしたい部分を <MTBadLinkFinder> と </MTBadLinkFinder> で囲みます。例えば,次のように使います。

<MTBadLinkFinder>
  <$MTEntryBody$>
  <MTEntryIfExtended>
    <$MTEntryMore$>
  </MTEntryIfExtended>
</MTBadLinkFinder>

コメントやトラックバックの欄を含めても,もちろん結構です。ただし,数が多くなればその分チェックする時間も長くなりますのでご注意ください。


既知のバグ

'a' タグに何かしらのクラスが定義されていて,例えば「someclass」,リンク切れの場合,プラグインにより「class="someclass badlink"」となります。この動作はバグではありません。しかし,先に定義されているクラスが「class="toobadlink"」などの badlink を含むものであった場合,このプラグインは badlink クラスを追加しません。これはバグです。


ご利用に関して

無料でご利用になれます。商用に利用されても構いません。

ライセンス

Perl と同じライセンスとします (原文: The Artistic License,日本語訳: The Artistic License Japanese Translation 1.0)。

無保証

無保証です。何か問題が起きたとしても,作者は責任を持ちません。ご自身の責任の下でご利用ください。

ご意見

ご意見ご要望がありましたら,以下の「更新履歴」のリリース情報がブログの記事になっていますので,そのコメント欄に書き込みをお願いします。


更新履歴

  1. 2007年6月7日 バージョン 0.3 リリース [リリース情報] [開発情報]
    badlinkfinder-0.3.pl, badlinkfinder-0.3.tar.gz, badlinkfinder-0.3.zip
    • 必要 Perl モジュール: HTTP::SimpleLinkChecker
  2. 2008年2月25日 バージョン 0.4 リリース [リリース情報]
    badlinkfinder-0.4.pl, badlinkfinder-0.4.tar.gz, badlinkfinder-0.4.zip
    • 必要 Perl モジュール: LWP::UserAgent
  3. 2008年8月8日 バージョン 0.50.1 リリース [リリース情報]
    MT 2/MT 3: badlinkfinder-0.5.pl
    MTOS/MT 4: BadLinkFinder-0.50.1.tar.gz, BadLinkFinder-0.50.1.zip
    • 必要 Perl モジュール: HTML::TreeBuilder, LWP::UserAgent
    • 必要 PHP モジュール: PEAR HTTP_Client