# カスタマイズ

## 目次

1. customize.ph
   1. IdentInfo
   2. Representation
   3. Parsing
   4. i18n
   5. Extend Feature
   6. System Setting
   7. Administration
2. 日記出力の雛形
   1. 設定の概略
   2. マクロ
      1. 主機能
      2. 共通機能
      3. カウンター
      4. PIM
      5. ジャンプ、カレンダー
      6. 検索
      7. 一言機能
      8. 付加機能
   3. 範囲指定
3. その他の雛形ファイルの設定
   1. 一覧出力の雛形
   2. 辞書出力の雛形
   3. ログ出力の雛形
   4. 各種 editor の雛形
4. テンプレート設定
   1. テンプレートとは？
   2. コマンドテンプレート
      1. 変数
      2. パラメータ
         1. 日付関連
         2. 参照
         3. コマンド行
         4. カウンタ
         5. コマンド特化
   3. 表示説明文テンプレート
      1. クラス宣言
      2. 変数
      3. パラメータ
   4. TODO テンプレート
      1. クラス宣言
      2. 変数
      3. パラメータ
   5. 予定表テンプレート
      1. クラス宣言
      2. 変数
      3. パラメータ
   6. マクロテンプレート
      1. クラス宣言
      2. 変数
   7. 一覧テンプレート
      1. クラス宣言
      2. 変数
   8. カウンターテンプレート
      1. クラス宣言
      2. 変数
      3. パラメータ
   9. 一言
      1. クラス宣言
      2. 変数
      3. パラメータ
   10. カレンダー
       1. クラス宣言
       2. 変数
   11. template.ph による設定
   12. skelton.html による設定
5. スタイル機能

## 1.customize.ph

特に変更する必要のない設定は、 customize_dir/customize.ph にまとめられています。 customize.pl で対話的に設定を変更することができます。

customize.pl を実行してみましょう。

>     % pwd
>     /home/foo/public_html/diary
>     % perl customize.pl

すると，以下のように 分類が表示されます。

>     *** TDS Customizer ***
>     0: quit
>     1: IdentInfo
>     2: Represention
>     3: Parsing
>     4: i18n
>     5: Extend Fearture
>     6: System Setting
>     7: Admin Setting

分類を選択すると、 設定画面に移行します。 例えば、2. representation を選んだとすると、

>     input number [0]
>     >2
>     *** Representation ***
>     0: quit
>     1: allow all monthly access (No)
>     2: display number in recent output (3)
>     3: reverse topic in recent mode (Yes)
>     4: display neighbour number on access to specified day (0)
>     5: auto replace (Yes)
>     6: enable escaping in replacing (No)
>     7: style name ()

となりますので、 変更したい項目を選び、値を入力します。

>     input number [0]
>     >1
>     allow all monthly access [yN]: y
>     *** Representaion ***
>     0: quit
>     1: allow all monthly access (Yes)
>     ...

以下、各項目について説明します。 何も入力せずただ Enter を入力すると，現在の設定をそのまま引き継ぎます。

### 1.1.IdentInfo

個人情報を設定します。

Title of Diary
  日記のタイトル
Author Name
  著者名
mail address
  著者のメールアドレス
URL of diary
  日記の URL

### 1.2.Representation

allow all monthly access
  月単位のアクセスを許すか。 N にすると、動的モードでは ./?200012 というアクセスを許さなくなります (エラーが表示されます)。 静的モードでは d200012.html などの月単位の日記 HTML* を生成しません。
display number in recent output
  カレント*で最新何日分を出力するか。
reverse topic in recent mode
  カレント*で逆順表示をするか
display neighbour number on access to specified day
  動的モード時に ./CCYYMMDD とアクセスされた際、隣接する何日分の日記を表示するか。 ./20000115 とアクセスされたとき， 0 だと 2000年01月15日分だけ、1 とすると前後一日分を含めて 2000年01月13日〜15日を表示します。
auto replacing
  URL変換/用語変換/辞書変換をするか。
enable escaping in replacing
  自動変換対象文字列の直前に '\' を置くと置換を禁止するか。 \hoge と記述すると hoge が自動変換の対象であっても自動変換しません。 url.dat などとあわせて使用すると効果的です。
style name
  スタイル名。各種スタイルが選べます。

### 1.3.Parsing

auto hyper linking
  http://, ftp:// で始まる語に自動的にリンクを張るか
auto parse listing
  ・などから始まる行をリストと見做すか
continue line by /\$/
  行末に '\' を置くと継続行と見なすか。 Y にすると，

  >     あいう\えお

  と記述した際，日記 HTML* には

  >     あいうえお

  と改行を入れずに出力します。
warn if reserved command used
  予約コマンドを警告するか。行頭に空白があれば警告しません(予約コマンドと見なされなくなるため)。
show warning only in author access
  警告を著者アクセス*の時のみ表示するか

### 1.4.i18n

jcode of tdf file
  tdf ファイル*の漢字コード。 undef と指定すると自動判別します。 euc にするとコード変換を行わなくなるため若干動作が速くなります。
output jcode
  出力するときの漢字コード。

### 1.5.Extend Feature

max display number as Schedule
  予定表に最大何件出力するか。
max display number as Todo
  Todo リストに最大何件出力するか。
future limit on display
  現在日時からみて何ヶ月先までの予定を出力するか。 2000年01月15日時点でこの項目が 2 となっていると， 2000年03月15日までの予定のみ表示します。
future limit on display (specified by asta)
  * 指定をした Schedule data の場合，最近何個までを出力するか。 2000年01月15日時点でこの項目が 2 となっていると， "*/*/18 毎月定例飲み会" とした場合， 2000/01/18 と 2000/02/18 の予定のみ表示します。
allow all search to non-author
  Author 以外でも全ての日記への検索を許可するか。全日記への access が server への負荷となるため， default では n となっています。
use signature search method
  シグネチャ法を使用した検索を行うか？。シグネチャ法を使用すると検索が速くなりますが，その分ディスクスペースを 必要とします。
signature directory
  シグネチャ法を利用する際に使用するディレクトリ。
mail2tdf: signature string
  mail2tdf 用のメールで、それ以下をカットするための署名の始まり文字列
mail2tdf: additional acceptable mail-address
  mail2tdf を受け取るメールアドレス（群）。著者アドレスに指定したもの以外を、カンマ区切りで入力します。

### 1.6.System Setting

directory which HTML file is located
  静的にて HTML ファイルが置かれるディレクトリ
hostname lookup
  アクセスログを取る際、IP アドレスからホスト名を探索するか。
logging rejected agent
  拒否したアクセスのログを取るか
logging robot agent
  ロボットアクセスのログを取るか
cookie expire
  クッキー有効期限。+1y, +1m, +1d などと指定してください。
cache survival period
  キャッシュ生存期間。日にちで指定します。

### 1.7.Administration

enable password system without authorized ID
  authorizd ID を使用せずに管理するか。 Y にすると，クッキーを使用せずパスワードのみで各種管理が行えるようになります。
enable customizer.cgi
  customizer.cgi を有効にするか
FTP server name
  FTP を使用するときのサーバ名
diary dir on server
  サーバ上の diary dir。絶対パスで指定すること
web dir on server
  サーバ上の web diary dir。絶対パスで指定すること
customize dir on server
  サーバ上の customize dir。絶対パスで指定すること
user name on ftp server
  ftp server 上のユーザー名
write method to server
  webからの更新の手段として何を使うか：auto, direct, ftp のどれか
user name on ftp server
  ftp server のユーザ名

## 2.日記出力の雛形

出力される HTML の雛形をカスタマイズする方法を説明します。

### 2.1.設定の概略

TDSは、指定された雛形ファイル（skelton.html など）を元に、 要求された日記ファイルを整形、表示します。 <!--#macro cmd="CONTENT" --> のように、 SSIに似た記法でマクロを埋め込みます。

>     <html>
>     <head>
>     <title><!--#macro cmd="TITLE" -->:<!--#macro cmd="EXPLAIN" --></title>
>     </head>
>     <body>
>     <h1><!--#macro cmd="TITLE" -->:<!--#macro cmd="EXPLAIN" --></h1>
>     <!--#macro cmd="DIARY_CONTENT" --></body>
>     </head>

のような skelton.html があった場合、 TITLE, EXPLAIN, DIARY_CONTENT の場所に、 要求に基づいた適当な文字列を挿入します。

>     <html>
>     <head>
>     <title>ほげ日記:最新版</title>
>     </head>
>     <body>
>     <h1>ほげ日記:最新版</h1>
>     <hr>

>     <h2>1999/07/01</h2>
>     <h3>テスト</h3>
>     <p>
>     ほげほげ
>     </p>
>     </body>
>     </head>

### 2.2.マクロ

使用できるマクロについて説明します。

>     <!--#macro cmd="MACRO_NAME" var="VALUE" -->

という形式で指定します。

#### 2.2.1.主機能

DIARY_CONTENT or CONTENT
  日記本体。
NUMBER_OF_DIARY
  表示された日数。
TITLE
  日記タイトル
EXPLAIN
  表示している日記の説明（最新版、何年何月分など）。
LAST_MODIFIED var="format"
  最終更新時刻。format で出力フォーマットを指定。 format は以下のとおり(web_diary_dir*/lib/DateTime/Format.pm から抜粋)。

  %% | PERCENT
  %a | day of the week abbr
  %A | day of the week
  %b | month abbr
  %B | month
  %c | ctime format: Sat Nov 19 21:05:57 1994
  %d | numeric day of the month
  %e | DD
  %D | MM/DD/YY
  %h | month abbr
  %H | hour, 24 hour clock, leading 0's)
  %I | hour, 12 hour clock, leading 0's)
  %j | day of the year
  %k | hour
  %l | hour, 12 hour clock
  %m | month number, starting with 1
  %M | minute, leading 0's
  %n | NEWLINE
  %o | ornate day of month -- "1st", "2nd", "25th", etc.
  %p | AM or PM
  %r | time format: 09:05:57 PM
  %R | time format: 21:05
  %s | seconds since the Epoch, UCT
  %S | seconds, leading 0's
  %t | TAB
  %T | time format: 21:05:57
  %U | week number, Sunday as first day of week
  %w | day of the week, numerically, Sunday == 0
  %W | week number, Monday as first day of week
  %x | date format: 11/19/94
  %X | time format: 21:05:57
  %y | year (2 digits)
  %Y | year (4 digits)
  %Z | timezone in ascii. eg: PST
  %z | timezone in format -/+0000

#### 2.2.2.共通機能

TDS
  使用している TDS、TDS home page へのリンク
TDS_BANNER
  TDSホームページへのバナー
VERSION
  使用している TDS のヴァージョン
DIARY_URL
  日記の URL
BASE_URL
  DIARY_URL からパス部を抽出したもの
CHARSET
  キャラクターセット(iso-2022-jp, euc-jp, shift_jis,us-ascii のどれか)
MAIL_ADDRESS
  著者のメールアドレス
MAILTO var=text
  著者への mailto
AUTHOR_NAME
  著者の名前
YEAR, MONTH
  表示された日記の年、月
EXIST_YEARS
  日記が存在する年の範囲：1995-1999 などと表示する

#### 2.2.3.カウンター

COUNTER
  カウンターを表示。全アクセス/今日のアクセス(訪問回数) という書式
COUNTER_ALL, COUNTER_TODAY, COOKIE_TIMES
  全アクセス、今日のアクセス、訪問回数。1.00-alpha2 より COUNTERコマンドに統合されました。1.00-beta2 より、動的モードの場合のみ復活しました。 静的モードでは警告がでます。

#### 2.2.4.PIM

最新版のみ表示します。

TODO
  Todo リスト
SCHEDULE
  予定表

#### 2.2.5.ジャンプ、カレンダー

RECENT var=text
  最新版へのリンク
(NEXT,PREV,THIS)_MONTH var=text
  次、前、今月の日記へのリンク
SELECT_YEAR_MONTH
  ジャンプする年月の選択オプション
SELECT_(JUN,PART)
  ジャンプする旬の選択オプション
SELECT_CATEGORY
  ジャンプするカテゴリの選択オプション
SUMBIT_JUMP var=label
  ジャンプのサブミットボタン
SUMMARY var=text
  日記一覧へのリンク
CALENDAR
  カレンダー

#### 2.2.6.検索

CGIが使える設定の時のみ表示します。

SEARCH_INPUT_KEYWORD
  検索語入力ボックス
SEARCH_SUBMIT var=label
  検索サブミットボタン
SEARCH_RESULT
  検索により見つかった日記数
SEARCH_SELECT_OBJECT
  検索対象の選択オプション
SEARCH_SELECT_SORT
  検索結果を表示する順番の選択オプション
SEARCH_CHECKBOX_TITLEONLY var=text
  タイトルのみ表示するチェックボックス
SEARCH_CHECKBOX_UNUSE_SIGNATURE_METHOD var=text
  シグネチャ法を不使用にするチェックボックス

#### 2.2.7.一言機能

CGIが有効な設定の時のみ表示します。

COMMENT_INPUT_NAME
  名前の入力ボックス
COMMENT_INPUT_CONTENT
  一言の内容の入力ボックス
COMMENT_SUBMIT var=label
  一言サブミットボタン
COMMENT_SHOW var=num
  一言を最新順に表示
COMMENT_COOKIE_OK var=text
  名前をクッキーで食わせるか

#### 2.2.8.付加機能

URL_LIST var=text
  置換リストへのリンク
AUTHOR_MANAGEMENT var=text
  著者管理へのリンク
TDF_EDITOR var=text
  tdf_editor へのリンク
LOG_ANALYSE var=text
  アクセスログ解析へのリンク
POWER
  ヲレパワーグレードへのリンク
TOC_*
  目次機能は、1.00-alpha2 より廃止されました
CHARSET
  charset
CAPTURED_ANTENNA
  補足アンテナ表示

### 2.3.範囲指定

特定の意味を持つ表示部（PIM,一言など）の範囲を次のような書式で指定します。

>     <!--#begin cmd="PIM" -->
>     ...
>     <!--#end cmd="PIM" -->

PIM
  Personal Information Management。TODOリスト、スケジュールの表示部を囲みます。 最新版のみ表示します。
COMMENT
  一言機能の表示部を囲みます。最新版のみ表示します。
SEARCH
  CGIが可能な時のみ表示：<form action="search.cgi" method="post">, </form> に変換

## 3.その他の雛形ファイルの設定

いずれの雛形ファイルでも、 共通機能マクロは使用できます。

### 3.1.一覧出力の雛形

summary_skelton.html。

SUMMARY_CONTENT
  一覧本体

### 3.2.辞書出力の雛形

dictionary_skelton.html

DICTIONARY_CONTENT
  辞書本体

### 3.3.ログ出力の雛形

admin/log_skelton.html。

(DAY|DAILY)_TRANSITION
  日毎の推移
HOUR
  時間毎
WEEK
  曜日毎
NEWER_REFERER
  新規参照元
RECENT_REFERER
  最近２４時間の参照元
TODAY_REFERER
  今日の参照元
REFERER
  全アクセスの参照元。query 部は省略。
REMOTE_HOST
  アクセスホスト
RECENT_VISITOR
  最近の訪問者
VISITOR
  訪問者ランキング
COMMENT
  一言
ID_MAP
  ID マップ
HUA
  HTTP User Agent
HUA_NAME
  HTTP User Agent（名前のみ）

### 3.4.各種 editor の雛形

admin/editor_skelton.html

WRITE_METHOD
  データ書込み方法
KIND
  編集ファイルの種類
STYLE
  スタイル名
FILENAME
  対象ファイル名
HELP_DOCUMENT
  ヘルプドキュメント
ACTION_CGI
  起動する CGI
DATE_LOAD_FORM
  tdfeditor 用日付指定部
DATE
  日付
BODY
  本文

## 4.テンプレート設定

### 4.1.テンプレートとは？

各部を表示するさいの雛形となるものです。

### 4.2.コマンドテンプレート

>     NEW メンテ
>     CAT TDS
>     久しぶりに TDS のメンテ。
>     template だけで済ますのはアレなので、
>     TDS::StringTable.pm 作って、
>     GetText() で呼び出すようにした。
>     ドキュメントもしこしこ補完。

>     cake さんとこのスタイルを作ってみたり。
>     LINK /~tom/tds_test/ ちょっとテストしてみる。

などの tdf を、どのように HTML に展開するかのテンプレートを指定します。

デフォルトの template.ph では、

>     package TDS::Tdf::Command::DIARY;
>     $Template = qq(<h2><span class="tds-date"><a href="%href" name="%anchor">%date</a></span></h2>\n);
>     $EndTemplate = "<hr>\n";
>     $DateFormat = "%year/%month/%day(%week)";

>     package TDS::Tdf::Command::NEW;
>     $Template = qq(<h3 class="tds-title"><a name="%anchor" href="%href">%mark</a>%cat %ext_attrs</h3>\n<div class="tds-content">);
>     $EndTemplate = "%footnote</div>\n";
>     $Mark = "○";

>     package TDS::Tdf::Command::SUB;
>     $Template = qq(<h4><span class="tds-subtitle"><a name="%anchor" href="%href">%mark</a> %ext_attrs</span></h4>\n);
>     $EndTemplate = "";
>     $Mark = "_";

となっているため、上記 tdf は、

>     <h3><span class="tds-title"><a name="03-4" href="?19990903#03-4"><img src="image/ball.gif" alt="○" border=0 height=16 width=16></a>[TDS] メンテ</span></h3>
>     <p >久しぶりにTDS のメンテ。
>     template だけで済ますのはアレなので、
>     TDS::StringTable.pm 作って、
>     GetText() で呼び出すようにした。
>     ドキュメントもしこしこ補完。
>     </p>
>     <p >cake さんとこのスタイルを作ってみたり。
>     <a href="/~tom/tds_test/">ちょっとテストしてみる。</a></p>

と変換されます。

#### 4.2.1.変数

$Template
  開始コマンドテンプレート
$EndTemplate
  終了コマンドテンプレート
$Mark
  マークテンプレート。%mark に展開される
$DateFormat（DIARY コマンドのみ）
  日付表示フォーマット。%date に展開される
$HrefTemplateDynamic
  動的モードでのリンクテンプレート。%href に展開される
$HrefTemplateStatic
  静的モードでのリンクテンプレート。%href に展開される
$Anchor
  アンカーテンプレート。%anchor に展開される

#### 4.2.2.パラメータ

設定文字列内で使用できるパラメータについて説明します。

##### 4.2.2.1.日付関連

%year,%month,%day,%y,%m,%d
  対象日記の年月日
%Year,%Month,%Day,%Y,%M,%D
  対象日記の年月日の 2byte 表示
%0m, %0d
  対象日記の月日。2 桁の zero-padding。
%week
  対象日記の曜日の英語表記（Sun,Mon,Tue...）
%Week
  対象日記の曜日の日本語（日、月、火、、、）
%week_holy
  対象日記の曜日の英語表記。日曜、祝日なら赤で囲む
%Week_holy
  対象日記の曜日の日本語表記。日曜、祝日なら赤で囲む
%part,%jun
  対象日記の旬 ('a', 'b', 'c' 表記)
%high
  日の一桁目：14 なら 1、23 なら 2、4 なら 0

##### 4.2.2.2.参照

%href
  リンク先の URL。静的・動的モード、対象コマンドに合わせて適切に展開されます。
%anchor
  アンカー

##### 4.2.2.3.コマンド行

%1,%2,%3,%4
  第n引数
%ext_attrs
  拡張属性

##### 4.2.2.4.カウンタ

%new
  NEW のカウンタ
%sub
  SUB のカウンタ
%fn
  FN のカウンタ

##### 4.2.2.5.コマンド特化

- HD
  %hd_counter
    2.2.1 などの章、節番号
- DIARY
  %date
    日付
- CAT
  %var
    カテゴリーの値
- NEW
  %mark
    マーク
  %cat
    カテゴリ
- SUB
  %mark
    マーク
- IMG
  %width,%height
    指定した画像の幅、高さ

### 4.3.表示説明文テンプレート

現在表示されている分についての説明のテンプレートです。 具体的には、「最新分」、「月別」、「旬別」、「日別」です。

#### 4.3.1.クラス宣言

package TDS::Explain;

#### 4.3.2.変数

$Recent
  最新分の説明
$Month
  月別分の説明
$Part
  旬別分の説明
$Day
  日別分の説明
$EachPart
  それぞれの旬の説明。"すべて,上旬,中旬,下旬" などとカンマで区切る
$Search
  検索の場合の説明

#### 4.3.3.パラメータ

%num
  最新分表示数
%year,%month,%day,%part
  （略）
%keyword
  検索語

### 4.4.TODO テンプレート

#### 4.4.1.クラス宣言

package TDS::PIM::Todo;

#### 4.4.2.変数

$ContentTemplate
  各アイテムのテンプレート
$BeginTempate
  開始テンプレート
$EndTempalte
  終了テンプレート
$Delim
  優先度と内容を区切るデリミタ。%delim に展開
$NormalColor
  通常優先度の文字色
$EmphasisColor
  強調優先度（80以上）の文字色
$StrongColor
  再強調優先度（90以上）の文字色

#### 4.4.3.パラメータ

%priority
  優先度
%content
  内容
%delim
  区切り
%color
  文字色

### 4.5.予定表テンプレート

#### 4.5.1.クラス宣言

package TDS::PIM::Schedule;

#### 4.5.2.変数

$ContentTemplate
  各アイテムのテンプレート
$BeginTempate
  開始テンプレート
$EndTempalte
  終了テンプレート
$Delim
  優先度と内容を区切るデリミタ。%delim に展開
$TodayColor
  今日分の予定の文字色
$NormalColor
  通常の文字色

#### 4.5.3.パラメータ

%year,%month,%day,%week,%week_holy
  （略）
%content
  内容
%delim
  区切り
%color
  文字色

### 4.6.マクロテンプレート

各マクロの表示ラベルのテンプレート。

#### 4.6.1.クラス宣言

package TDS::Renderer;

#### 4.6.2.変数

マクロ名と同一。

>     $LAST_MODIFIED = "%a, %d %b %Y %H:%M:%S %Z";
>     $RECENT = "[最新版]";
>     $REFRESH = "[更新]";
>     $NEXT_MONTH = "&gt;&gt;";
>     $PREV_MONTH = "&lt;&lt;";
>     $THIS_MONTH = "==";
>     $SUBMIT_JUMP = "ジャンプ";
>     $SUMMARY = "[一覧]";
>     $CATEGORY = 'ALL';
>     $SEARCH_SUBMIT =  "検索";
>     $SEARCH_RESULT = "<p>%diary 日 %num 件の日記にマッチしました</p>";
>     $SEARCH_SELECT_SORT =  "新しい順,古い順";
>     $SEARCH_SELECT_OBJECT = "指定した月,最近３ヶ月,最近一年,すべて";
>     $AUTHOR_MANAGEMENT =  "[著者管理]";
>     $TDF_EDITOR = "[TdfEditor]";
>     $URL_LIST = "[URL リスト]";
>     $DICTIONARY = "[辞書]";
>     $LOG_ANALYSE_ANCHOR =  "[アクセス解析]";
>     $COMMENT_SUBMIT = "送る";
>     $COMMENT_SHOW_ALL_SUBMIT = "過去のを表示";

### 4.7.一覧テンプレート

一覧表示のためのテンプレート。

#### 4.7.1.クラス宣言

package TDS::Summary;

#### 4.7.2.変数

$YearTemplate
  年始め
$YearEndTemplate
  年終わり
$MonthTemplate
  月へのリンク
$MonthNolinkTemplate
  $TDS::System::AllowAllMonthly = 0 の時の月へのリンク
$MonthEndTemplate
  月終わり
$PartTemplate
  旬別へのリンク
$PartTemplateNone
  日記が存在しない旬へのリンク
$PartEndTemplate
  旬終わり
$EachPart
  旬の説明： "上旬,中旬,下旬"
$MonthlyHrefTemplateDynamic
  月への href（動的）
$MonthlyHrefTemplateStatic
  月への href（静的）
$PartlyHrefTemplateDynamic
  旬への href（動的）
$PartlyHrefTemplatestatic
  旬への href（静的）

### 4.8.カウンターテンプレート

#### 4.8.1.クラス宣言

package TDS::AccessLog::Counter;

#### 4.8.2.変数

$Template
  表示テンプレート

#### 4.8.3.パラメータ

%all
  全アクセス数
%today
  今日のアクセス数
%times
  訪問回数

### 4.9.一言

#### 4.9.1.クラス宣言

package TDS::Comment;

#### 4.9.2.変数

$DefaultComment
  デフォルトのコメント内容
$CommentItemTemplate
  各アイテム（名前とコメント分のセット）の表示テンプレート
$CommentShowTemplate = qq(<table summary="comment" border=1>%content</table>\n);
  コメント全体の表示テンプレート

#### 4.9.3.パラメータ

%name
  書込んだ人の名前
%comment
  コメント文
%content
  コメント中身全体

### 4.10.カレンダー

#### 4.10.1.クラス宣言

package TDS::Calendar;

#### 4.10.2.変数

$TableBorder
  テーブルの幅
@WeekString
  曜日文字列配列
$NextTemplate
  次月へのリンクラベル
$PrevTemplate
  先月へのリンクラベル
$ThisTemplate
  今月へのリンクラベル
$HrefTemplateShowed
  現在表示されている日へのリンクラベル
$HrefTemplateUnshowedDynamic
  現在表示されていない日へのリンクラベル（動的）
$HrefTemplateUnshowedStatic
  現在表示されていない日へのリンクラベル（静的）
$UseTable
  カレンダーとして <table> を使用するか。'auto' とすると UA によって自動判別する
@NoTableBrowsers
  上記自動判別の際、<table> を使用しない UA の配列。デフォルトでは qw(lynx w3)。

### 4.11.template.ph による設定

以上の設定を template.ph に書くことによって反映されます。 必ずファイルの末尾に

>     1;

をつけてください。 詳しくはサンプルの template.ph を見てください。 多分そっちのほうが早いでしょう。

### 4.12.skelton.html による設定

（注意）0.01系での <!--#config name=value --> 形式のテンプレート設定は、 将来的に廃止されます。 template.ph による設定に移行してください。

すべての tdf コマンド*のテンプレートを <!--#config new_template="<dt>%y%m%d</dt><dd>" --> などのように指定する事が出来ます。 コマンド名は小文字で指定して下さい。 終了タグは、 <!--#config new_end_template="</dd>" --> と _end をつけます。 指定できるパラメータは、 使用できるパラメータをご覧ください。

その他に、

date_format
  日付フォーマット。$TDS::Tdf::Command::DIARY::DateFormat にセット
new_mark, (topic_mark)
  トピック*（NEW） につけるマーク。$TDS::Tdf::Command::NEW::Mark にセット
sub_mark
  サブトピック*（SUB）につけるマーク。$TDS::Tdf::Command::SUB::Mark にセット

を指定できます。 なお、0.01 系の date_h_level, add_paragraph_anchor, use_title は 廃止されました。

デフォルトでは、 日付、トピック*、サブトピック*は、それぞれ tds-date,tds-title,tds-subtitle というクラス名で囲われています。 CSSなどでご自由に設定して下さい。

## 5.スタイル機能

通常カスタマイズは web_diary_dir* 以下の

- skelton.html
- summary_skelton.html
- dictionary_skelton.html
- template.ph

によって行いますが、 これらのカスタマイズファイル群を「スタイル」としてまとめ、 スタイル名をつけることにより、 いくつものカスタマイズ群を使い分ける事ができます。

例えば、 web_diary_dir*/styles/tom を生成し、 そこに skelton.html などを置き、 customize.ph で $TDS::Style::Name = q(tom); とすると、 実際に使用されるのは web_diary_dir*/skelton.html ではなく、 web_diary_dir*/styles/tom/skelton.html になります。

標準添付のスタイルは、

- japanese: 日本語
- simple: 単純
- hns: hns like
- tom: 私の
- cake: cake さんの
- tak3: 武井さんの
- t-hermes: T-HERMES さんの

の五つです。

[back]
Copyright(C) 2001