# 日記ファイルの書き方

## 目次

1. ファイルの場所
2. 日記の書き方
3. tdf コマンド
   1. 日記特化系
      1. 制御コマンド
   2. インライン系
      1. リンクコマンド
      2. 画像コマンド
      3. 装飾コマンド
      4. その他
   3. ブロック系
      1. コンテナコマンド
      2. 引用コマンド
      3. リストコマンド
      4. テーブルコマンド
      5. 特殊コマンド
      6. その他
      7. コメントアウト
   4. ブロック化
   5. リンク化
   6. アンカー付加
4. 使用例
5. 出力するHTML について

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

## 1.ファイルの場所

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

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

## 2.日記の書き方

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

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

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

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

>     NEW ショパン
>     革命の練習をする。
>     全然うまくならないよー。

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

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

>     SUB お味の方
>     はなかなか。
>     でもちょっと味が薄かったかな？

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

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

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

>     できあがりは
>     LINK image/yasai_itame.gif こんな感じよ。

>     SUB お味の方
>     はなかなか。
>     でもちょっと味が薄かったかな？

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

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

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

>     できあがりは
>     LINK image/yasai_itame.gif こんな感じよ。

>      SUB お味の方
>     はなかなか。
>     でもちょっと味が薄かったかな？

>     ポイントは、
>     UL
>     LI 塩と砂糖を間違えない
>     LI 人参にちゃんと火を通す
>     LI ちゃんと味見をする
>     /UL
>     ことですな。

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

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

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

## 3.tdf コマンド*

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

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

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

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

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

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

### 3.1.日記特化系

#### 3.1.1.制御コマンド

NEW トピック*タイトル

  新しいトピック*を開始します *1。

SNEW トピック*タイトル

  筆者しか読めないトピック*を開始します。 自分以外がアクセスしたときは、 このトピック*は表示されませんので、 プライベートなことがかけます。 ただし tdf が httpd reachable な場所に置いてある場合は意味をもちません。 ~/diary など httpd request が届かない場所に日記ファイルをおきましょう。

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

  そのトピック*のカテゴリーを指定します

SUB サブタイトル

  サブトピック*を開始します。

SSUB サブタイトル

  作者しか読めないサブトピック*を開始します。

### 3.2.インライン系

#### 3.2.1.リンクコマンド

URL url 説明文章

  説明文章とともに、url も表示します。 <a href="url" > 説明文章(url)</a> に変換します。 説明文書が記述されていない時は、 <a href="url"> url</a> に変換します。

LINK url 説明文章

  <a href=" url">説明文章</a> に変換します。

MAILTO mail_address 説明文章

  <a href="mailto: mail_address">説明文章</a> に変換します。

BANNER href_url src_url align height width alt説明文章

  バナーを張る

#### 3.2.2.画像コマンド

IMG src align width height alt

  画像を表示します。 srcは画像ファイル名、 align は配置位置、 altは説明文章です。 width, height は画像の幅、高さで、 0 を指定すると自動的に算出しますが、 警告メッセージが出ます。

  src としてURIを指定することもできますが、 サイズは自動的に検出されません。 囲い込みをクリアするには、 BR clear=all を使用します。

#### 3.2.3.装飾コマンド

BIG 文章

  文字を大きくします

SMALL 文章

  文字を小さくします

COLOR color 文章

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

EM 文章

  文章を強調(EMphasis)します

STRONG 文章

  文章を最強調します

STRIKE 文章

  文章に打ち消し線を引きます。 <span style="text-decoration: line-through">

UNDERLINE 文章

  文章に下線を引きます。 <span style="text-decoration: underline">

ITALIC 文章

  文章を斜体にします。 <i>

SUBSCRIPT 文章

  文章を subscript にします。 <sub>

SUPERSCRIPT 文章

  文章を superscript にします。 <sup>

SPAN class-name文章

  インラインコンテナ（<span>）で囲みます。 class-name を指定することに より、 CSS での装飾が可能になります。

#### 3.2.4.その他

FN
脚注文章
/FN

  脚注を書きます。 脚注の入れ子は許されません。

BR

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

VERB テキスト

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

### 3.3.ブロック系

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

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

#### 3.3.1.コンテナコマンド

P
テキスト
(/P)

  文章を段落として囲みます。 前後を空行かコマンドに挟まれた生のテキストは、自動的に P で囲まれます。

  ブロック系で唯一終了コマンドが省略できます。
CENTER
テキスト
/CENTER

  段落をセンタリングします。 （未実装）

DIV extend attribute
テキスト
/DIV

  ブロックコンテナ（<div>）で囲みます。 extend attribute により属性を追加することができます。

#### 3.3.2.引用コマンド

PRE
テキスト
/PRE

  preformated なブロックを囲みます。

CITE
テキスト
/CITE

  ブロックレベルの引用部分を囲みます。 <blockquote>

CODE
ソースコード
/CODE

  ソースコードを囲みます。 <blockquote><cite><code>

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

#### 3.3.3.リストコマンド

UL
LI コマンド
/UL

  箇条書きを囲みます。

OL
LI コマンド
/OL

  番号つきの箇条書きを囲みます。

LI テキスト

  リストアイテムを生成します。

DL
DT,DD コマンド
/DL

  定義の箇条書きを囲みます。 次の行にすぐに DT を持ってこなければなりません。 空行も置いてはいけません。

DT 定義テキスト

  定義

DD 説明テキスト

  定義の説明文

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

この機能は customize.pl で使用の制御が可能です。

#### 3.3.4.テーブルコマンド

TABLE
TR,TH,TD コマンド
/TABLE

  表を囲みます。

TR テキスト

  行を生成します

TH テキスト

  見出しのセルを生成します

TD テキスト

  通常のセルを生成します。

#### 3.3.5.特殊コマンド

SECRET
フロー
/SECRET

  囲んだ部分を著者のみ参照可にします。

VERBATIM
テキスト
/VERBATIM

  囲んだ部分は、一切のコマンド解析、コメントアウト処理、実体参照変換*をしません。 HTMLを直接書きたい場合などに使用します。

NOPARSE
テキスト
/NOPARSE

  囲んだ部分は、一切のコマンド解析、コメントアウト処理をしません。 実体参照変換*はします。 tdf をそのまま表示したい場合などに使用します。

COMMENT
テキスト
/COMMENT

  囲んだ部分をコメントアウト(<!-- .. -->) します。

HIDE
テキスト
/HIDE

  囲んだ部分を一切出力しません。

#### 3.3.6.その他

HR
  水平線を引きます

#### 3.3.7.コメントアウト

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

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

### 3.4.ブロック化

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

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

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

### 3.5.リンク化

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

例：

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

上記は

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

と同義です。

## 4.使用例

サンプルtdfファイルをご覧下さい。

## 5.出力するHTML について

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

段落要素の挿入
  親要素がインライン要素を含めないにもかかわらず、 インライン要素（含むテキスト）が現れた場合、 自動的にその部分を段落要素(p)で囲みます。
CSS の利用
  HTML 4.0 を満たすため、 文字装飾を行うのに <font> などdeprecated なエレメントは使用せず、 CSSを使います。 よって、ブラウザがCSSを使用できない、あるいはしていない場合、 作成者の思ったような効果がでない場合があります。

  tdf が変換する HTML を変更したい場合は、 カスタマイズをご覧ください。

*1:（ヴァージョン 1.00 以上は、'!' が使えなくなりました。）

[back]
Copyright(C) 2001