先ほど導入したBMQuoteプラグインのドキュメントを読んでみた。
変数の値を変更するだけで、拡張フォーマットでの引用ができるらしい。
が、そこで参考にしている「XHTMLでの引用方法」のリンクが切れていたので、検索してみた。
なかなか勉強になる。
が、とりあえずは拡張フォーマットではなく、スタンダードで使うことにした。
さて、BMQuoteのソースを見てみると、簡単に改造できそうだったので、少し変更することにしました。
変更するのは、「_make_html_std」というサブルーチン。
元のソースでは、テキストを選択していなくても「引用」を示す「blockquote」でマークアップされますが、それがいまいち気に入らなかったので。
1
2
3
4
5
6
7
8
9
10
|
sub _make_html_std {
my ($title, $url, $sel_text) = @_;
my $html = <<"HTML";
<div class="quotetitle"><a title="$title" href="$url" target="_blank">$title</a></div>
HTML
$html .= <<"HTML" if $sel_text ne "";
<blockquote>$sel_text</blockquote>
HTML
$html;
}
|
とりあえず、これで私は満足。
ただ、テスト中に問題が。
HTMLソースを記述している部分を引用すると、HTMLとして引用されてしまうので、そのあたりは実体参照に変更したほうが良いのかもしれません。
ということで、やっつけで手直し。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
use HTML::Entities;
sub _make_html_std {
my ($title, $url, $sel_text) = @_;
my $html = <<"HTML";
<div class="quotetitle"><a title="$title" href="$url" target="_blank">$title</a></div>\n
HTML
$sel_text = encode_entities($sel_text, '<>&"');
$html .= <<"HTML" if $sel_text ne "";
<blockquote>$sel_text</blockquote>\n
HTML
$html;
}
|
これでとりあえず安心です。
まあ、あまりHTMLソースを引用することは無いとは思いますが
。