ページのタイトルを最初の見出しと同じにするパッチ
標準では、FSWiki の生成する HTML の title 要素には、ページ名(wiki名)がそのまま使用される。
それではブックマークした場合、検索エンジンにひっかかった場合に表示されるページの名称がいまいちである。
そこで、ページ中の最初の大見だし (!!! で始まる行) の内容を、title 要素に使うようにするパッチを作成した。
diff -uNr wiki3_6_2.orig/lib/Wiki/HTMLParser.pm wiki3_6_2/lib/Wiki/HTMLParser.pm --- wiki3_6_2.orig/lib/Wiki/HTMLParser.pm 2006-07-02 18:10:04.000000000 +0900 +++ wiki3_6_2/lib/Wiki/HTMLParser.pm 2006-07-21 20:55:36.795765646 +0900 @@ -22,6 +22,7 @@ my $self = Wiki::Parser->new($wiki); $self->{html} = ""; + $self->{title} = ""; $self->{pre} = ""; $self->{quote} = ""; $self->{table} = 0; @@ -141,6 +142,10 @@ $self->end_quote; my $html = join("",@$obj); + + if ($level == 1 && $self->{title} eq "") { + $self->{title} = $html; + } # メインの表示領域でないとき if(!$self->{main}){ diff -uNr wiki3_6_2.orig/lib/Wiki.pm wiki3_6_2/lib/Wiki.pm --- wiki3_6_2.orig/lib/Wiki.pm 2006-07-02 18:10:05.000000000 +0900 +++ wiki3_6_2/lib/Wiki.pm 2006-07-21 22:15:40.334272438 +0900 @@ -583,6 +583,10 @@ my $parser = Wiki::HTMLParser->new($self,$mainflg); $parser->parse($source); $self->{parse_times}--; + + if ($mainflg && defined($parser->{title}) && $parser->{title} ne "") { + $self->set_title($parser->{title}); + } return $parser->{html}; }