################################################################
# テンプレート設定ファイル
#
#  自由にテンプレートを変更してください。
#  perl が分からないとちょっち厳しいかもしれません。
#  qq(...) というのは、ほぼ "..." と同義ですが、
#  中身の " をエスケープする必要がありません。 "
#
#  %year,%href などのパラメータについては、ドキュメントを参照して下さい。
#
# accesskey:
#
# 1.前(の日) 
# 2.一覧 
# 3.次(の日) 
# 4.予定 
# 5.日付移動(Go) 
# 6.TODO 
# 8.検索 
################################################################

use Template;
use CGI::QueryString;
use TDS::Tdf::Command;
use TDS::Navigator::Daily;
use TDS::Navigator::Topic;
use TDS::Renderer;
use TDS::Status;
use TDS::Cache;

$Skelton::OutputJcode = q(sjis);

$TDS::Collection::RecentNum = 1;
#$TDS::Dynamic;
#$TDS::Status;
#$TDS::Renderer::RECENT = "&#63880;タイトル";
$TDS::Renderer::RECENT = "タイトル";
$TDS::Renderer::SUMMARY = "一覧";
$TDS::Navigator::HrefTemplateDayDynamic = "title.cgi?%year%0m%0d";
$TDS::Navigator::Template = qq(<a href="%href" accesskey="%accesskey">%label</a>);
#$TDS::Renderer::PREV_DAY = "&#63879;[前日]";
#$TDS::Renderer::NEXT_DAY = "&#63881;[翌日]";
#$TDS::Renderer::PREV_TOPIC = "&#63879;[前]";
#$TDS::Renderer::NEXT_TOPIC = "&#63881;[次]";
$TDS::Renderer::PREV_DAY = "[前日]";
$TDS::Renderer::NEXT_DAY = "[翌日]";
$TDS::Renderer::PREV_TOPIC = "[前]";
$TDS::Renderer::NEXT_TOPIC = "[次]";

#$TDS::Renderer::TopicNavigatorTemplate = qq(<a href="%href" accesskey="%accesskey">%label</a>);
#$TDS::Renderer::TopicNavigatorHrefTemplateDynamic = qq(%path?%y%0m%0d-%new);

sub TDS::Renderer::SetMacroHook
{
    my $self = shift;
    
    # 新規マクロ
    $self->SetMacro("(NEXT|PREV)", sub {
	my ($self, $cmd, $var) = @_;
	my $np = $1;
	my $date = new DateTime::Date;
	$date->Set($self->status->year, $self->status->month,
		   $self->status->day_part);
	my $params = $date->GetParams;
	my $path = $ENV{'SCRIPT_NAME'};
	$path =~ s![^/]*$!!;
	$params->{path} = $path;
	if ($self->status->mode eq 'TOPIC'){
	    my $nav = new TDS::Navigator::Topic(year=>$self->status->year,
						month=>$self->status->month,
						day=>$self->status->day_part);
	    my $var = "TDS::Renderer::${np}_TOPIC";
	    if ($np eq "NEXT"){
#		print "$var, $$var, ";
		return $nav->AsNext($$var);
	    } elsif ($np eq "PREV"){
		return $nav->AsPrev($$var);
	    }
	} else {
	    my $nav = new TDS::Navigator::Daily(year=>$self->status->year,
						month=>$self->status->month,
						day=>$self->status->day_part);
	    my $var = "TDS::Renderer::${np}_DAY";
	    if ($np eq "NEXT"){
#		print "$var, $$var, ";
		return $nav->AsNext($$var);
	    } elsif ($np eq "PREV"){
		return $nav->AsPrev($$var);
	    }
	}
    });
    $self->SetMacro("TITLE_JUMP", qq(<a href="TsDiary.cgi?command=title_jump&$ENV{'QUERY_STRING'}" accesskey="5">5:ジャンプ</a>));
    # オーバーライド
    $self->SetMacro("SUMMARY", sub {
	my ($self, $cmd, $var) = @_;
	$var ||= $TDS::Renderer::SUMMARY;
	my $key = "2";
	$var = "$key:$var";
	return qq(<a href="summary.cgi" accesskey="$key">$var</a>);
    });
    $self->SetMacro("RECENT", sub {
	my ($self, $cmd, $var) = @_;
	$var ||= $TDS::Renderer::RECENT;
	my $key = "0";
	return qq(<a href="TsDiary.cgi" accesskey="$key">$var</a>);
    });
}

sub TDS::Status::ModeCheckHook($)
{
    my $self = shift;
    unless (param('command')){
	if ($self->mode eq 'RECENT' ||
	    $self->mode eq 'DAY'){
	    param('command', 'title');
#	    $TDS::Cache::EnableCache = 0;
	}
    }
}

sub RecentHook($)
{
    die;
}
# コマンドテンプレート
package TDS::Tdf::Command::DIARY;
#$Template = qq(<A HREF="%href" NAME="%anchor">%date</A><br>\n);
#$Template = qq(<A NAME="%anchor">%date</A><br>);
$Template = qq(%date<br>);
$EndTemplate = "<HR>\n";
$TitleTemplate = qq(%year/%0m/%0d<br>);
$TitleEndTemplate = "<hr>";
$DateFormat = "%year/%month/%day(%week)";

package TDS::Tdf::Command::TIMEDIV;
$Template = qq([%ext_attrs]<br>);
$EndTemplate = qq();
$TitleTemplate = qq([%ext_attrs]<br>);
$TitleEndTemplate = qq();
$Mark = "";

package TDS::Tdf::Command::NEW;
$Template = qq(%mark %cat %ext_attrs<br>\n);
$EndTemplate = "%footnote";
$TitleTemplate = qq(<a href="%href">%new</a>:%ext_attrs:); 
$TitleEndTemplate = q(%subs<br>); #undef;
$HrefTemplateDynamic = qq(TsDiary.cgi?%y%0m%0d-%new);
$Mark = '$%n:';

package TDS::Tdf::Command::SUB;
#$Template = qq(<A NAME="%anchor">%mark</A>%cat %ext_attrs<br>);
$Template = qq(%mark %cat %ext_attrs<br>);
$EndTemplate = "";
$Mark = "_";

package TDS::Tdf::Command::P;
$Template = '<p>';
$EndTemplate = undef;

package TDS::Tdf::Command::STRIKE;
$Template = q([S);
$EndTemplate = q(S]);

package TDS::Tdf::Command::UNDERLINE;
$Template = q(<U>);
$EndTemplate = q(</U>);

package TDS::Tdf::Command::LINK;
$Template = qq(<a href="%1">);
#$EndTemplate = qq(</a>[<a href="http://www.sjk.co.jp/c/w.exe?y=%1">通ブ経由</a>]);
$EndTemplate = qq(</a>);

# CITEはblockquoteしません。
package TDS::Tdf::Command::CITE;
$Template = "";
$EndTemplate = "";

# CODEはblockquoteしません
package TDS::Tdf::Command::CODE;
$Template = "<pre>";
$EndTemplate = "</pre>";

# TABLEはCompact HTMLでは使えませんが、定義をなくすと破綻しそうなので
# いじりません。アイデア募集。

# DIVは解釈できません。削ります。
package TDS::Tdf::Command::DIV;
$Template = "";
$EndTemplate = "";

# HRは属性を解釈しますので、そのままにします。

# COMMENTはi-modeではソース見られないので削る
package TDS::Tdf::Command::COMMENT;
sub AsHTML($$){undef;}

# list
package TDS::Tdf::Command::UL;
$Template = undef;
$EndTemplate = undef;

package TDS::Tdf::Command::OL;
$Template = undef;
$EndTemplate = undef;

package TDS::Tdf::Command::LI;
$Template = "・";
$EntTemplate = undef;

# FNは、small/spanを解釈しないので削ります。
package TDS::Tdf::Command::FN;
$Template = qq(<a href="\#%0d-%new-F%fn">*%fn</a>);

package TDS::Tdf::Command::FN_Content;
#$Template = qq(\n<a name="%0d-%new-F%fn">*%fn</a>:);
$Template = qq(\n*%fn<a>:);
$EndTemplate = qq(<br>);


# FN_Formatter : 脚注表示部
package TDS::Tdf::Command::FN_Formatter;
$Template = qq(<hr align="left" width="40%">\n);
$EndTemplate = qq(<br>\n);


################
package TDS::Admin::TdfEditor;
$TdfJcode = "sjis";

################
# 一覧テンプレート
package TDS::Summary;
$YearTemplate = "%year<br>";
$YearEndTemplate = "<br>";
$MonthTemplate = qq(*<A HREF="%href">%month</A>: );
$MonthNolinkTemplate = qq(*%month</A>);
$MonthEndTemplate = "<br>";
$PartTemplate = qq([<A HREF="%href">%part_str</A>]);
$PartTemplateNone = qq((%part));
$PartEndTemplate = undef;
$EachPart = "上,中,下";
$Reverse = 1;

1;
