--- akiary061.cgi 2005-04-28 18:11:11.450040000 +0900
+++ akiary.cgi 2005-05-15 08:02:01.786945600 +0900
@@ -18,6 +18,8 @@
{
user_cfg_file=>{''=>'cfg/user.cfg'},
time_zone=>'+0900',
+ newline => '
',
+ charset => 'SHIFT_JIS',
};
&parse_cfg_file($akiary_cfg_file,$acfg);
@@ -259,9 +261,12 @@
$DATE{$dids[0]}=$date;
$TITLE{$dids[0]}=$FORM{'title'};
$BODY{$dids[0]}=$FORM{'body'};
- $BODY{$dids[0]}=~s/\x0D\x0A/
/g; # 改行コード変換(Win)
- $BODY{$dids[0]}=~s/\x0D/
/g; # 改行コード変換(Mac)
- $BODY{$dids[0]}=~s/\x0A/
/g; # 改行コード変換(UNIX)
+ $BODY{$dids[0]}=~s/\x0D\x0A/\n/g; # 改行コード変換(Win)
+ $BODY{$dids[0]}=~s/\x0D/\n/g; # 改行コード変換(Mac)
+ $BODY{$dids[0]}=~s/\x0A/\n/g; # 改行コード変換(UNIX)
+ $newline = $acfg->{newline};
+ $newline =~ s/\\n/\n/g;
+ $BODY{$dids[0]} =~ s/\n/$newline/g;
$file=&date2dfn($date);
@@ -291,9 +296,12 @@
$DATE{$dids[0]}=$date;
$TITLE{$dids[0]}=$FORM{'title'};
$BODY{$dids[0]}=$FORM{'body'};
- $BODY{$dids[0]}=~s/\x0D\x0A/
/g; # 改行コード変換(Win)
- $BODY{$dids[0]}=~s/\x0D/
/g; # 改行コード変換(Mac)
- $BODY{$dids[0]}=~s/\x0A/
/g; # 改行コード変換(UNIX)
+ $BODY{$dids[0]}=~s/\x0D\x0A/\n/g; # 改行コード変換(Win)
+ $BODY{$dids[0]}=~s/\x0D/\n/g; # 改行コード変換(Mac)
+ $BODY{$dids[0]}=~s/\x0A/\n/g; # 改行コード変換(UNIX)
+ $newline = $acfg->{newline};
+ $newline =~ s/\\n/\n/g;
+ $BODY{$dids[0]} =~ s/\n/$newline/g;
$file=&date2dfn($date);
@@ -459,7 +467,7 @@
$t=~s/(.*?)<\/TMPL_IF>/($p->{$1})?$2:''/egs;
#
- $t=~s//$p->{$1}/eg;
+ $t=~s//$p->{$1}/g;
return($t);
}
@@ -640,8 +648,10 @@
($date,$title,$body)
=($date{$FORM{'did'}},$title{$FORM{'did'}},$body{$FORM{'did'}});
($syear,$smon,$smday)=($date=~/^(\d{4})(\d{2})(\d{2})/);
- $body=~tr/\x0D\x0A//d; # 改行コード削除
- $body=~s/
/\n/ig;
+ if ($acfg->{newline} eq '
') {
+ $body=~tr/\x0D\x0A//d; # 改行コード削除
+ $body=~s/
/\n/ig;
+ }
# ページ表示
$html=&HtmlHeader("修正");
@@ -779,7 +789,7 @@
'akiary.cgiでデフォルト値を設定して下さい。');
}
$v =~ s/"//g;
- $v =~ s/\$ENV\{'(\w+)'\}/$ENV{$1}/eg;
+ $v =~ s/\$ENV\{'(\w+)'\}/$ENV{$1}/g;
if ($ke =~ /\{"(\w*)"\}\{"(\w*)"\}/) {
${ $cfg->{$k} }{$1}{$2}=$v;
@@ -850,9 +860,7 @@
# Print HTTP
#
sub PrintHTTP{
- print "Content-Type: text/html\n";
- print "\n";
- print $_[0];
+ print "Content-Type:text/html;charset=", $acfg->{charset}, "\n\n", $_[0];
}
#
@@ -962,7 +970,7 @@
# デフォルトは"%Y0年%M0月%D0日(%W0)"
#
sub date2sdate{
- local($date,$format)=@_;
+ local($date,$format,$no_tag)=@_;
local($y0,$m0,$d0,$w);
local(@m2,@m3,@w0,@w1,@w2);
local($color,$class,$sdate);
@@ -997,28 +1005,29 @@
$sdate=~s/%Y2/$y0-1988/eg; # 平成元号
$sdate=~s/%M0/sprintf("%d",$m0)/eg; # 月
$sdate=~s/%M1/sprintf("%02d",$m0)/eg; # 月(0付き)
- $sdate=~s/%M2/$m2[$m0-1]/eg; # 月(英語短縮)
- $sdate=~s/%M3/$m3[$m0-1]/eg; # 月(英語)
+ $sdate=~s/%M2/$m2[$m0-1]/g; # 月(英語短縮)
+ $sdate=~s/%M3/$m3[$m0-1]/g; # 月(英語)
$sdate=~s/%D0/sprintf("%d",$d0)/eg; # 日
$sdate=~s/%D1/sprintf("%02d",$d0)/eg; # 日(0付き)
- $sdate=~s/%W0/$w0[$w]/eg; # 曜日
- $sdate=~s/%W1/$w1[$w]/eg; # 曜日(英語短縮)
- $sdate=~s/%W2/$w2[$w]/eg; # 曜日(英語)
+ $sdate=~s/%W0/$w0[$w]/g; # 曜日
+ $sdate=~s/%W1/$w1[$w]/g; # 曜日(英語短縮)
+ $sdate=~s/%W2/$w2[$w]/g; # 曜日(英語)
+
+ if ($no_tag) {
- if ($CFG{'date_color_tag'} eq 'font'){
+ } elsif ($CFG{'date_color_tag'} eq 'font') {
$color="#000000"; # 平日の色
$color="#DD0000" if ($w == 0); # 日曜日の色
$color="#3333FF" if ($w == 6); # 土曜日の色
$sdate="$sdate";
- } else {
+ } elsif ($CFG{'date_color_tag'} eq 'span') {
$class="weekday"; # 平日の色
$class="sunday" if ($w == 0); # 日曜日の色
$class="saturday" if ($w == 6); # 土曜日の色
$sdate="$sdate";
}
-
# リターン
- return("$sdate");
+ return $sdate;
}
#
@@ -1402,16 +1411,28 @@
# body部作成
foreach(@k){
- print FH "\n";
+ print FH qq();
print FH "";
$tmp=$tmpbnbody;
# 日付
$dates=&date2sdate($bndate{$_});
- $tmp=~s//$dates/;
+ $w3cdtf=&date2sdate($bndate{$_}, '%Y0-%M1-%D1', 1);
+ $tmp=~s//$dates/g;
+ $tmp=~s//$w3cdtf/g;
# タイトル
$tmp=~s//$bntitle{$_}/;
+ $tmp=~s//$bntitle{$_}/g;
# 日記本文
$tmp=~s//$bnbody{$_}/;
+ # 生did
+ $tmp =~ s//$_/g;
+ # Permalink
+ $bn_file = $bndate{$_};
+ $bn_file =~ s/^(\d{6}).*/$1.html/;
+ $base_uri = diary_dir_uri();
+ $permalink = $base_uri . $bn_file . '#' . $_;
+ $tmp =~ s//$permalink/g;
+
print FH "$tmp";
print FH "\n";
}
@@ -1595,8 +1616,8 @@
$tmp =~ s/%Y2/$y-1988/eg; # 元号
$tmp =~ s/%M0/sprintf("%d",$m)/eg; # 月
$tmp =~ s/%M1/sprintf("%02d",$m)/eg; # 月(0付き)
- $tmp =~ s/%M2/$m2[$m-1]/eg; # 月(英語短縮)
- $tmp =~ s/%M3/$m3[$m-1]/eg; # 月(英語)
+ $tmp =~ s/%M2/$m2[$m-1]/g; # 月(英語短縮)
+ $tmp =~ s/%M3/$m3[$m-1]/g; # 月(英語)
if (defined($index{$y})){
$index{$y} .= $CFG{'index_format_between_months'};
}
@@ -1685,15 +1706,27 @@
@k=splice(@k,-$latest_times,$latest_times);
@k=reverse(@k) if ($reverse==1);
foreach(@k){
- $ret.="\n";
+ $ret .= qq();
$tmp=$match;
# 日付
$dates=&date2sdate($date{$_});
+ $w3cdtf=&date2sdate($date{$_}, '%Y0-%M1-%D1', 1);
$tmp=~s//$dates/g;
+ $tmp=~s//$w3cdtf/g;
# タイトル
- $tmp=~s//$title{$_}/g;
+ $tmp=~s//$title{$_}/;
+ $tmp=~s//$title{$_}/g;
# 日記本文
- $tmp=~s//$body{$_}/g;
+ $tmp=~s//$body{$_}/;
+ # 生did
+ $tmp =~ s//$_/g;
+ # Permalink
+ $bn_file = $date{$_};
+ $bn_file =~ s/^(\d{6}).*/$1.html/;
+ $base_uri = diary_dir_uri();
+ $permalink = $base_uri . $bn_file . '#' . $_;
+ $tmp =~ s//$permalink/g;
+
$ret.=$tmp;
}
@@ -1775,3 +1808,9 @@
}
return("$y${m}01.html");
}
+
+sub diary_dir_uri {
+ my $uri = $ENV{'SCRIPT_NAME'};
+ $uri =~ s!^(.*?)(?:[\./]+?)(?:\w+\.cgi|/)$!$1!;
+ return 'http://' . $ENV{'HTTP_HOST'} . $uri . '/' . (($dcfg->{'diary_dir'} eq './') ? '' : $dcfg->{'diary_dir'});
+}