FreeStyleWiki
ページのタイトルを最初の見出しと同じにするパッチ
標準では、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};
}