SereneBachが生成する空タグについて、pixelさまの記事から始まり、宵闇書房さまの記事でそのレスが書かれていますが、自分も反応してみます。
ちなみに僕の携帯はN900iなので、「Re:Re:」とはならずに「Re2:」となります。この機能結構便利です。
エントリーIDの空アンカータグ
まず、pixelさまの記事で紹介されている「カテゴリーINDEX化プラグイン」を使用してエントリーIDの空アンカータグの生成が防げることは、実はpixelさまの「ココだけの話」って記事で読んで早速実践してました。
これによって、テンプレートの方に<div class="entry" id="eid{entry_id}">と書いて対処しています。
追記部分関連の空タグ
お二方が触れられている<div class="entry_more"></div>と<a id="sequel"></a>ですが、僕はContent.pmの_body_text関数あたりを以下のように改造して対処しています。
思いっきり改造しているのでkyoさんの考え方とは正反対になってしまうのですが、こういう方法もあるよ、ってことで。
sub _body_text
{ # 本文・続き・概要
my $cms = shift;
my $entry = shift;
my %var = @_;
if ($entry->body ne '')
{ # 本文
my $body = $entry->formated_body;
# $body .= '<a id="sequel"></a>' if ($entry->more ne '' and $var{'mode'} eq 'ent');
$cms->tag('entry_description'=>$body);
}
if ($entry->more ne '')
{ # 続き
my $permalink = &_permalink($entry,$var{'cat'},'more',$var{'mode'});
my $more = ($var{'mode'} eq 'ent')
? $entry->formated_more
: '<a href="' . $permalink . '">' . $var{'lang'}->string('parts_sequel') . '</a>';
$more = ($var{'mode'} eq 'ent')
? '<div class="entry_more" id="sequel">' . $more . '</div>'
: '<p class="entry_more">' . $more . '</p>';
$cms->tag('entry_sequel'=>$more);
}
$cms->tag('entry_excerpt'=>$entry->sum);
}
肝は後半部分の追加で、divタグやpタグがすでに追加された状態で{entry_sequel}が生成されるようになっています。これは、以下の条件で次のようなタグに括られて生成されます。
- 個別エントリの場合
-
「<div class="entry_more" id="sequel">追記内容</div>」が生成
- それ以外(インデックスページとか)
-
「<p class="entry_more">続きを読む>></p>」が生成
もちろんテンプレートには「{entry_sequel}」と書くだけです。
この仕様は、もともとのSereneBachのテンプレートタグのコンセプトから多少離れている気もしますが、とりあえず僕はこうやって空タグの生成を防いでいます。実はこのネタずっと書きたかったのでこういう機会に書けてよかったです。笑