「BMQuoteプラグイン」を改造してみた

先ほど導入した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ソースを引用することは無いとは思いますが…。

comments powered by Disqus
Built with Hugo
テーマ StackJimmy によって設計されています。