MTCommentReplyToLink タグを Another HTML-lint で花マルにする

MTCommentReplyToLink タグとは、Movable Type のコメント返信機能で特定のコメントに返信する為のリンクを出力するテンプレートタグです。

<$mt:CommentReplyToLink$>

このタグを上のように書いて再構築すると、次のようなソースが書き出されます(「(3, '匿名')」の部分はそれぞれ違います)。

<a title="返信" href="javascript:void(0);" onclick="mtReplyCommentOnClick(3, '匿名')">返信</a>

このままでも全然問題ないのですが、Another HTML-lintでチェックすると、次のように1点減点されてしまいます。

0: line 80: (<a> の href 属性の URI に指定されているスキーム `javascript` の利用は薦められていません。) → 解説 234
1: line 80: onclick 属性を使うときは onkeypress 属性も指定しましょう。 → 解説 150

Another HTML-lint

lint-perfect.png

そこで、lint で花マルを目指す場合、次のような regex_replace モディファイを追加することで、lint さまに指摘されている href属性を修正し onkeypress 属性を追加することができます。

<$mt:CommentReplyToLink regex_replace='/(href)(=".+?")/g','$1="#comments-open"' regex_replace='/(onclick)(=".+?")/g','$1$2 onkeypress$2'$>

すると、出力結果は次のようになります。

<a title="返信" href="#comments-open" onclick="mtReplyCommentOnClick(3, '匿名')" onkeypress="mtReplyCommentOnClick(3, '匿名')">返信</a>

「#comments-open」のところは、コメント投稿フォームの id 属性を指定します。デフォルトテンプレートの場合はこのままでOKです。これで「返信」というリンクをクリックしたときの挙動も、元と同じになります。

「regex_replace='/(onclick)(=".+?")/g','$1$2 onkeypress$2'」は、他の onclick 属性を出力するテンプレートタグで使えます。

以上です。

ちなみに当ブログはlintではチェックしないでくださいねw
2009-06-22 現在、ちょこちょこソースをいじっているところですので。