TITLE 日記ファイルの書き方

日々の日記を書く日記ファイル（以下 tdf）の書式を説明します。 

HD 2 ファイルの場所
基本的に一日一ファイル形式で、 CCYY 年 MM 月 DD 日の日記は、
ITALIC diary_dir/
CCYY/MM/DD.tdf というファイルに書きます
（
LINK case_study.html#monthly_split 月別にまとめる
こともできます）
。
月と日は必ず二桁にしてください。

存在しない日付のファイルを作っても（1999/11/31.tdf など）
無視されます。

HD 2 日記の書き方
基本的に、
その日の tdf ファイルにメモ帳感覚で書いていくだけです。

CODE
突然料理をしたくなったので、
野菜炒めを作って食った。
/CODE

しかし、いくつかの別の話題を書きたい場合は、
それぞれに見出しを書いてあげると分かりやすいですね。

CITE
PRE
SPAN cmd-name NEW
 お料理
突然料理をしたくなったので、
野菜炒めを作って食った。

SPAN cmd-name NEW
 ショパン
革命の練習をする。
全然うまくならないよー。
/PRE
/CITE

'NEW' という（後で述べる）tdf コマンドを作ってあげると、
ある話題（トピック）の見出し（トピックタイトル）をつける事が出来ます。
小見出しをつけたいのなら、

CITE
PRE
SPAN cmd-name NEW
 お料理
突然料理をしたくなったので、
野菜炒めを作って食った。

SPAN cmd-name SUB
 お味の方
はなかなか。
でもちょっと味が薄かったかな？
/PRE
/CITE

のように、SUB という tdf コマンドを使います。

せっかく web を使っているのだからリンクを張りたい、というならば、

CITE
PRE
SPAN cmd-name NEW
 お料理
突然料理をしたくなったので、
野菜炒めを作って食った。

できあがりは
SPAN cmd-name LINK
 image/yasai_itame.gif こんな感じよ。

SPAN cmd-name SUB
 お味の方
はなかなか。
でもちょっと味が薄かったかな？
/PRE
/CITE

と LINK コマンドをつかいます。

箇条書きをしたいー、のなら、

CITE
PRE
SPAN cmd-name NEW
 お料理
突然料理をしたくなったので、
野菜炒めを作って食った。

できあがりは
SPAN cmd-name LINK
 image/yasai_itame.gif こんな感じよ。

SPAN cmd-name
 SUB お味の方
はなかなか。
でもちょっと味が薄かったかな？

ポイントは、
SPAN cmd-name UL~
SPAN cmd-name LI
 塩と砂糖を間違えない
SPAN cmd-name LI
 人参にちゃんと火を通す
SPAN cmd-name LI
 ちゃんと味見をする
SPAN cmd-name /UL

ことですな。
/PRE
/CITE

と、LI コマンドを使って箇条書きを作り、それらを UL コマンドで囲ってあげます。

段落分けについては、単に空行をいれてあげればいいです。
上の例だと、「できあがりは」の所で自動的に新しい段落が始まってくれます。

このぐらいだけ分かっていれば、
大体の日記は書けます。
もっと細かい指定をしたければ、
下の節を読んでください。

HD 2 tdf コマンド
日記ファイルは最終的に HTML に変換されますが、
日記ファイルを記述するにあたり、
tdf コマンドというものを使用することが出来ます。
これを使うことにより、 ユーザが HTML についてよく知らなくとも、
それに代替されるいくつかのコマンドを使用すれば、
簡単に日記を作成することができます。 

HTMLに熟知している使用者でも、
tdf コマンドを使えば、
タグで囲む作業から解放されますし、
URL, FN など便利な機能を使うことが出来ます。
また、裸のテキストは段落で囲みますので、
 HTML 4.0 valid な HTML を作成することができます。 

<,>,&," はエスケープされますので、 直接 HTML を記述する事はできません。
直接 HTML を記述する場合は、
LINK #VERBATIM VERBATIMコマンド
を使用してください。

tdf コマンドを用いる場合は、
必ずコマンドを大文字で、
なおかつ行頭に書かねばなりません。
また、行頭から大文字で始まりスペースが続くものは、
将来 tdf コマンドとして採用される可能性がありますので、 な
るべくそのような形式で記述しないようにして下さい。
もし使用した場合は、警告がでます。

この tdf コマンドのアイデアは、
hns から翻案しました。
感謝いたします。

コマンドには、以下のようなものがあります。 

HD 3 日記特化系
HD 4 制御コマンド

DL
DT
SPAN cmd-name NEW 
SPAN cmd-arg トピックタイトル
/DT
DD
P
新しいトピックを開始します
FN
（ヴァージョン 1.00 以上は、'!' が使えなくなりました。）
/FN
。
DT
SPAN cmd-name SNEW 
SPAN cmd-arg トピックタイトル
DD
P
筆者しか読めないトピックを開始します。
 自分以外がアクセスしたときは、 
このトピックは表示されませんので、
プライベートなことがかけます。
ただし tdf が httpd reachable な場所に置いてある場合は意味をもちません。
~/diary など httpd request が届かない場所に日記ファイルをおきましょう。

この機能は、"conf/authors_id.txt" に普段使用するブラウザのクッキーを記述し、
なおかつ動的モードの時に有効になります。 
それ以外の時は、このトピックは表示されません。
この機能には多少問題がありますので、
LINK attention.html#tdf_security 日記ファイルの安全性
を御覧ください。

DT
SPAN cmd-name CAT 
SPAN cmd-arg カテゴリー 
DD
P
そのトピックのカテゴリーを指定します

DT
SPAN cmd-name SUB 
SPAN cmd-arg サブタイトル 
DD
P
サブトピックを開始します。

DT
SPAN cmd-name SSUB 
SPAN cmd-arg サブタイトル 
DD
P
作者しか読めないサブトピックを開始します。
/DL

HD 3 インライン系
HD 4 リンクコマンド
DL
DT
SPAN cmd-name URL 
SPAN cmd-attr url 
SPAN cmd-arg 説明文章
DD
P
説明文章とともに、url も表示します。
<a href="url"
>
ITALIC 説明文章(url)
</a> に変換します。
説明文書が記述されていない時は、
<a href="url">
ITALIC url
</a> に変換します。

DT
SPAN cmd-name LINK 
SPAN cmd-attr url 
SPAN cmd-arg 説明文章 
DD
P
<a href="
ITALIC url
">説明文章</a> に変換します。

DT
SPAN cmd-name MAILTO 
SPAN cmd-attr mail_address 
SPAN cmd-arg 説明文章
DD
P
<a href="mailto:
ITALIC mail_address
">説明文章</a> に変換します。
DT
SPAN cmd-name BANNER 
SPAN cmd-attr href_url src_url align height width alt
SPAN cmd-arg 説明文章
DD
P
バナーを張る
/DL

HD 4 画像コマンド
DL
DT
SPAN cmd-name IMG 
SPAN cmd-attr src align width height alt 
DD
P
画像を表示します。 
srcは画像ファイル名、 
align は配置位置、
altは説明文章です。
width, height は画像の幅、高さで、
0 を指定すると自動的に算出しますが、
警告メッセージが出ます。

src としてURIを指定することもできますが、
サイズは自動的に検出されません。
COMMENT
この場合でも幅、高さを省略した場合自動的に算出しますが、
処理コストが高いため、
かならず警告後サイズは指定してください。

また、src が "/~" から始まる場合は自サイトの URI と見做し、
"http://127.0.0.1" を付加します。
/COMMENT

囲い込みをクリアするには、
 BR clear=all を使用します。
/DL

HD 4 装飾コマンド
DL
DT
SPAN cmd-name BIG 
SPAN cmd-arg 文章 
DD
P
文字を大きくします 

DT
SPAN cmd-name SMALL 
SPAN cmd-arg 文章 
DD
P
文字を小さくします 

DT
SPAN cmd-name COLOR 
SPAN cmd-attr color 
SPAN cmd-arg 文章
DD
P
文章を指定した色(color)で表示します。
 #FFFFFF などの16進数、あるいは red, blue などの既定値で指定します。
HTML変換の際は、<font> ではなく <span style="color:.."> を使用しているので、
スタイルシートが有効になっていなければ効果がありません（ポリシーです）。

DT
SPAN cmd-name EM 
SPAN cmd-arg 文章
DD
P
文章を強調(EMphasis)します 

DT
SPAN cmd-name STRONG 
SPAN cmd-arg 文章 
DD
P
文章を最強調します

DT
SPAN cmd-name STRIKE 
SPAN cmd-arg 文章
DD
P
文章に打ち消し線を引きます。 <span style="text-decoration: line-through"> 

DT
SPAN cmd-name UNDERLINE 
SPAN cmd-arg 文章
DD
P
文章に下線を引きます。 <span style="text-decoration: underline"> 

DT
SPAN cmd-name ITALIC 
SPAN cmd-arg 文章
DD
P
文章を斜体にします。 <i> 

DT
SPAN cmd-name SUBSCRIPT 
SPAN cmd-arg 文章
DD
P
文章を subscript にします。 <sub> 

DT
SPAN cmd-name SUPERSCRIPT 
SPAN cmd-arg 文章
DD
P
文章を superscript にします。 <sup> 

DT
SPAN cmd-name SPAN 
SPAN cmd-attr class-name
SPAN cmd-arg 文章
DD
P
インラインコンテナ（<span>）で囲みます。 class-name を指定することに
より、 CSS での装飾が可能になります。 
/DL

HD 4 その他

DL
DT
SPAN cmd-name FN~
SPAN cmd-arg 脚注文章~
SPAN cmd-name /FN
DD
P
脚注を書きます。
脚注の入れ子は許されません。

DT
SPAN cmd-name BR
DD
P
改行(<br>)を挿入します。
IMGコマンドの囲い込みをクリアしたい時に、
 BR clear=all と使うとよいでしょう。

DT
SPAN cmd-name VERB 
SPAN cmd-arg テキスト
DD
P
指定したテキストは、一切のコマンド解析、コメントアウト処理、
実体参照変換をしません。
HTMLを直接書きたい場合などに使用します。
/DL

HD 3 ブロック系

/CMDが記述してある場合は、必ずそれでブロック閉じなければなりません。
閉じ忘れがあると、システムは警告し自動的に補完します。
記述してない場合は、省略可能です。

要素としてテキストと書かれているものは、
文章とインラインコマンドを表します。 

HD 4 コンテナコマンド

DL
DT
SPAN cmd-name P~
SPAN cmd-arg テキスト~
SPAN cmd-name (/P)
DD
P
文章を段落として囲みます。
前後を空行かコマンドに挟まれた生のテキストは、自動的に P で囲まれます。 

ブロック系で唯一終了コマンドが省略できます。
DT
SPAN cmd-name CENTER~
SPAN cmd-arg テキスト~
SPAN cmd-name /CENTER
DD
P
段落をセンタリングします。
（未実装）

DT
SPAN cmd-name DIV extend attribute~
SPAN cmd-arg テキスト~
SPAN cmd-name /DIV 
DD
P
ブロックコンテナ（<div>）で囲みます。
extend attribute により属性を追加することができます。
/DL

HD 4 引用コマンド

DL
DT
SPAN cmd-name PRE~
SPAN cmd-arg テキスト~
SPAN cmd-name /PRE 
DD
P
preformated なブロックを囲みます。
DT
SPAN cmd-name CITE~
SPAN cmd-arg テキスト~
SPAN cmd-name /CITE 
DD
P
ブロックレベルの引用部分を囲みます。
<blockquote> 
DT
SPAN cmd-name CODE~
SPAN cmd-arg ソースコード~
SPAN cmd-name /CODE 
DD
P
ソースコードを囲みます。
<blockquote><cite><code>

このコマンドに含まれた部分は、
コマンド認識をしません。

/DL

HD 4 リストコマンド

DL
DT
SPAN cmd-name UL~
SPAN cmd-arg LI コマンド~
SPAN cmd-name /UL 
DD
P
箇条書きを囲みます。
#次の行にすぐに LI を持ってこなければなりません。
#空行も置いてはいけません。

DT
SPAN cmd-name OL~
SPAN cmd-arg LI コマンド~
SPAN cmd-name /OL 
DD
P
番号つきの箇条書きを囲みます。
#次の行にすぐに LI を持ってこなければなりません。
#空行も置いてはいけません。

DT
SPAN cmd-name LI 
SPAN cmd-arg テキスト ~
DD
P
リストアイテムを生成します。

DT
SPAN cmd-name DL~
SPAN cmd-arg DT,DD コマンド~
SPAN cmd-name /DL
DD
P
定義の箇条書きを囲みます。
次の行にすぐに DT を持ってこなければなりません。
空行も置いてはいけません。

DT
SPAN cmd-name DT 
SPAN cmd-arg 定義テキスト 
DD
P
定義

DT
SPAN cmd-name DD 
SPAN cmd-arg 説明テキスト
DD
P
定義の説明文 
/DL

また，文頭に '・' があると自動的に番号なしリストに変換します。
実際には UL, LI, /UL に置き換えます。

COMMENT
同様に文頭に + があると番号ありリストに変換します。
こちらは OL, LI, /OL に置き換えます。
/COMMENT
この機能は customize.pl で使用の制御が可能です。


HD 4 テーブルコマンド
DL
DT
SPAN cmd-name TABLE~
SPAN cmd-arg TR,TH,TD コマンド~
SPAN cmd-name /TABLE 
DD
P
表を囲みます。 

DT
SPAN cmd-name TR 
SPAN cmd-arg テキスト
DD
P
行を生成します

DT
SPAN cmd-name TH 
SPAN cmd-arg テキスト
DD
P
見出しのセルを生成します

DT
SPAN cmd-name TD 
SPAN cmd-arg テキスト
DD
P
通常のセルを生成します。 
/DL

HD 4 特殊コマンド
DL
DT
SPAN cmd-name SECRET~
SPAN cmd-arg フロー~
SPAN cmd-name /SECRET
/SPAN
DD
P
囲んだ部分を著者のみ参照可にします。


DT
ANCHOR+ VERBATIM
SPAN cmd-name VERBATIM~
/ANCHOR
SPAN cmd-arg テキスト~
SPAN cmd-name /VERBATIM
DD
P
囲んだ部分は、一切のコマンド解析、コメントアウト処理、実体参照変換をしません。
HTMLを直接書きたい場合などに使用します。

DT
SPAN cmd-name NOPARSE~
SPAN cmd-arg テキスト~
SPAN cmd-name /NOPARSE~
DD
P
囲んだ部分は、一切のコマンド解析、コメントアウト処理をしません。
実体参照変換はします。
tdf をそのまま表示したい場合などに使用します。

DT
SPAN cmd-name COMMENT~
SPAN cmd-arg テキスト~
SPAN cmd-name /COMMENT~
DD
P
囲んだ部分をコメントアウト(<!-- .. -->) します。

DT
SPAN cmd-name HIDE~
SPAN cmd-arg テキスト~
SPAN cmd-name /HIDE
DD
P
囲んだ部分を一切出力しません。
/DL


HD 4 その他
DL
DT
SPAN cmd-name HR 
DD
水平線を引きます 
/DL

HD 4 コメントアウト
行頭に '#' があると、 その行はコメントアウトされます。
行頭に空白を置けば（' #'） 通常の文章と認識されます。 
行頭に '##' があると、 その行は何の出力もされません。
行頭に空白を置けば（' ##'）、 通常の文章と認識されま
す。 

ただし VERBATIM, NOPARSE, CODE コマンドの中ではそのまま表示されます。

HD 3 ブロック化
 STRONG, LINK など一行で完結するコマンドを
ブロックで囲むよう変更することができます。

CODE
STRONG+
COLOR+ red
hoge
LINK foo.bar
/COLOR
/STRONG
/CODE

 CMD+ と '+' を付加することにより、
終了コマンドを必要とするようになります。
この機能によって、
「リンクを張った赤い強調」
などが可能になります。

HD 3 リンク化

 CMD* href content とすることで、
href を参照先として content をリンクで囲む事ができます。

例：

CODE
STRONG* http://www.foo.com/ foo.com
UL
LI* http://www.bar.com/ bar.com
/UL
/CODE

上記は

CODE
STRONG+
LINK http://www.foo.com/ foo.com
/STRONG
UL
LI
LINK http://www.bar.com/ bar.com
/LI
/UL
/CODE

と同義です。

COMMENT
HD 3 アンカー付加

 CMD# name content とすることで、
name という名前のアンカーを指定することができます。

例：

CODE
HD# style 2 スタイル指定
/CODE

上記は

CODE
HD+ 2
ANCHOR style スタイル指定
/HD
/CODE

と同義です。
/COMMENT

HD 2 使用例
LINK ../samples/tdf/01.tdf サンプルtdfファイル
をご覧下さい。


HD 2 出力するHTML について

TDSは、デフォルトで HTML 4.0 valid な HTML を出力します。
また、以下のような特徴があります。

DL
DT 段落要素の挿入 
DD
親要素がインライン要素を含めないにもかかわらず、
インライン要素（含むテキスト）が現れた場合、
自動的にその部分を段落要素(p)で囲みます。

DT CSS の利用 
DD
 HTML 4.0 を満たすため、
文字装飾を行うのに <font> などdeprecated なエレメントは使用せず、
CSSを使います。
よって、ブラウザがCSSを使用できない、あるいはしていない場合、
作成者の思ったような効果がでない場合があります。
P
tdf が変換する HTML を変更したい場合は、
LINK customize.html カスタマイズ
をご覧ください。
/DL

