HOWTO write tDiary
Author: TADA Tadashi

# tDiary
日記の書き方

## 目次

- tDiaryの日記フォーマット
- tDiary記述のコツ

## tDiaryの日記フォーマット

本文には、HTMLで日記を記述します。とは言っても、普通の文章だけの日記を書く分にはHTMLを意識しなくても良いように、HTMLに対して改行や行頭文字に特別なルールを加えたものです。サブタイトルや段落を簡単に指定するためにこのような拡張をしてあります。

以下のようなルールがあります。表示上の改行と実際の改行を区別するために、実際の改行には「↓」と書いてあります。

サブタイトル(1)↓
上記のように行頭から始まる行は、サブタイトルとなります。標準のスタイルシートでは、太字で表示されます。サブタイトルから次の空改行までを「セクション」と呼び、サブタイトルの前にはセクションアンカーが付きます。↓
上の行やこの行のように、サブタイトル以降の行は通常の文章として認識されます。段落がサブタイトルで始まっている場合には、文章の前にはセクションアンカーはつきません。↓
↓
空改行があると、セクションの切り替えを意味します。このように、空白で文章を始めると、サブタイトル抜きでセクションが始まります。最初の段落の先頭にだけセクションアンカーが付きます。サブタイトルのある場合ように太字にはなりません。↓
サブタイトルで始まらなくても、2つ目の段落以降にはアンカーは付きません。↓
↓
<pre>↓
このように行の最初が「<」で始まる段落がある場合、↓
そのセクションは全体が整形の対象にならなくなります。↓
次に空改行が現れるまで(つまり次のセクションまで)の文↓
章はそのままの形でHTML内に展開されます。リストやテー↓
ブルなどを使いたい場合等、HTMLタグをそのまま使いたい↓
場面に利用できます。セクションアンカーは付きません。↓
</pre>↓
↓
<<a href="hogehoge">サブタイトル(2)</a>↓
必然的に、HTMLタグで始まるサブタイトルがつけられないことになりますが、上記のように「<<」で始まる場合にはそれを特別にサブタイトルと見なすようになっています。↓

上記の内容は、以下のように表示されます。

## 2001-08-03 (指定したタイトル)

### ■サブタイトル(1)

上記のように行頭から始まる行は、サブタイトルとなります。標準のスタイルシートでは、太字で表示されます。サブタイトルから次の空改行までを「セクション」と呼び、サブタイトルの前にはセクションアンカーが付きます。

上の行やこの行のように、サブタイトル以降の行は通常の文章として認識されます。段落がサブタイトルで始まっている場合には、文章の前にはセクションアンカーはつきません。

■空改行があると、セクションの切り替えを意味します。このように、空白で文章を始めると、サブタイトル抜きでセクションが始まります。最初の段落の先頭にだけセクションアンカーが付きます。サブタイトルのある場合ように太字にはなりません。

サブタイトルで始まらなくても、2つ目の段落以降にはアンカーは付きません。

    このように最初の行が「<」で始まる段落がある場合、
    そのセクションは全体が整形の対象にならなくなります。
    次に空改行が現れるまで(つまり次のセクションまで)の文
    章はそのままの形でHTML内に展開されます。リストやテー
    ブルなどを使いたい場合等、HTMLタグをそのまま使いたい
    場面に利用できます。セクションアンカーは付きません。

### ■ サブタイトル(2)

必然的に、HTMLタグで始まるサブタイトルがつけられないことになりますが、上記のように「<<」で始まる場合にはそれを特別にサブタイトルと見なすようになっています。

このようにtDiaryは、簡単な文章だけからなる日記をつける場合にはHTMLを知らなくても使え、HTMLに詳しい場合にはそれもサポートするようになっています。……が、ときどき不用意にタグを使ってハマる人も少なくないので、日記中でタグを多用する人は次の「tDiary記述のコツ」もお読みください。

▲目次へ戻る

## tDiary記述のコツ

### セクションにタグ入りの行を含めたい

例えば日記中にリストを埋め込むために<ul>タグを入れたいとしましょう。話題は同じなのでセクションは変えたくない。このように段落全体を特殊なタグで装飾したい場合、tDiaryでは少しコツが必要です。以下のようなレイアウトをしたい場合を例にとりあげます。

## 2001-08-29

### ■サブタイトル

以下のように2つの項目からなるリストを書きます。

- リスト項目1
- リスト項目2

こんな感じです。ここまで同一のセクション。

まずひとつの方法は、前の段落に合体させてしまう方法です。生成された日記のHTMLを見ればわかるように、段落というのは<p>〜</p>で囲まれているだけです。これを利用してごまかしを入れます。

サブタイトル↓
以下のように2つの項目からなるリストを書きます。</p><ul><li>リスト項目1</li><li>リスト項目2</li></ul><p>　こんな感じです。ここまで同一のセクション。↓

途中でいっさい改行を入れないところがミソです。タグで囲まれた段落が何行にもわたる場合以外はこれでもけっこういけますが、ちょっと見通しが悪いですね。

上の例は、tDiaryが段落には自動的に<p>を入れることを利用しています。逆に、タグで始まる行があるセクションにはこの<p>タグ自体を挿入しないことを利用する方法もあります。通常の段落に、手動で<p>タグを入れる方法です。以下の記述例では、セクション中に「<」で始まる行があるので、tDiaryは何も手を加えません。そのためリスト以外の通常の文を<p>〜</p>で囲んでいます。

サブタイトル↓
<p>　以下のように2つの項目からなるリストを書きます。</p>↓
<ul>↓
<li>リスト項目1</li>↓
<li>リスト項目2</li>↓
</ul>↓
<p>　こんな感じです。ここまで同一のセクション。</p>↓

この手法は、タグで囲まれた段落が複数行に渡るとき(例えば<pre>タグでソースコードを挿入するなど)には必須になるでしょう。

もちろん、「セクションが分かれても良い」という場合にはもっと楽になります。こだわりがなければ以下のように書いてしまうのが良いかもしれません。

サブタイトル↓
以下のように2つの項目からなるリストを書きます。↓
↓
<ul>↓
<li>リスト項目1</li>↓
<li>リスト項目2</li>↓
</ul>↓
↓
こんな感じです。ここまで同一のセクション。↓

最後の「こんな感じです〜」の行頭にはセクションアンカーが入ってしまいますが、たいして気にする問題でもないでしょう。

### セクション単位でなく、段落単位にアンカーを入れたい

tDiaryは、「話題の単位はセクションにあり、段落にまでアンカーを入れる必要はない」というポリシーで作られているため、基本的には段落にアンカーを入れることはできません。ただし、サブタイトルなしのセクションが作れることを利用すれば、見た目は段落単位にアンカーを入れることもできます。以下の例を見てください:

サブタイトル(1)↓
↓
このようにサブタイトルの下にすぐ空改行を入れてしまい、続く段落を空白で始めるようにすれば、サブタイトルと段落は別々のセクションになります。↓
↓
段落の間にすべて空改行を入れるようにすれば、このようにすべての段落にアンカーを付けることができるわけです。↓
↓
サブタイトル(2)↓
↓
行頭の空白を入れないとサブタイトルになるので注意しましょう。↓

上の例は以下のように展開されます。ポイントは行頭の空白ですね。

## 2001-08-30

### ■サブタイトル(1)

■このようにサブタイトルの下にすぐ空改行を入れてしまい、続く段落を空白で始めるようにすれば、サブタイトルと段落は別々のセクションになります。

■段落の間にすべて空改行を入れるようにすれば、このようにすべての段落にアンカーを付けることができるわけです。

### ■サブタイトル(2)

■行頭の空白を入れないとサブタイトルになるので注意しましょう。

▲目次へ戻る