TOP
$Id: index.html,v 1.1.1.1 2003/02/26 10:10:09 shin-t Exp $

nDiary

- Web日記作成支援スクリプト -

目次

  1. 概要
  2. 動作環境
  3. 配布ファイル
  4. インストール
  5. 設定
    1. ndiary.conf
    2. 雛形ファイル
    3. Plug-in
    4. トピック一覧
  6. 日記の作成・運用
    1. 日記の記述
    2. フィルタ
    3. html への変換
  7. リンク
    1. 稼働例
    2. 関連リンク
  8. 履歴
  9. ダウンロード

1. 概要

nDiary は、Web上で日記を書く際に、各日付毎に定型的なタグをつけたり、過去の日記を月別のファイルへコピーするなどの面倒で、且つ、まちがいを起こしやすいルーチンワークを自動化することにより、日記執筆の支援をおこなうスクリプトです。

1日1つの日記を書いたテキストファイルを用意すると、タグをつけ、それらを連結して、月別のファイルと最近数日分の日記をまとめたファイルを静的に作成します。

基本コンセプトとして、普通のテキストファイルとして読んでもなるべく違和感のないファイルを解析して html にするというものがあります。自分自身が手軽に Web日記を書くことを目的として作成したため、高機能なものは目指しておらず、ちょっとだけ楽をしようという程度のものです。

現在以下のような機能が実装されています


2. 動作環境

Ruby version 1.6 以降 (動作試験は、Windows2000 + Cygwin版 Ruby version 1.6.2 でおこなっています)


3. 配布ファイル

Script/
diary
スクリプト起動ファイル
ndiary-lib.rb
スクリプト本体
sample.ndiary.conf
設定ファイルのサンプル
lib/
nDiary の使用するライブラリ
plugin/
各種 Plug-in
filter/
各種 Filter
index.html
簡単な説明(このファイル)
product.css
index.html 用のスタイルシート
log/
日記原稿のサンプル
Sample/
雛形ファイルのサンプル
misc/
その他の関連ファイル

4. インストール

nDiary は Ruby というスクリプト言語で記述されています。そのため、使用するには Ruby が稼働する環境が必要となります。
Ruby は、Ruby公式ホームページから入手できます。Windowsユーザの方は、こちらなどでバイナリが入手できます。また、初めて Ruby を導入される方は、インストーラ付きのバイナリ がおすすめです。

はじめて nDiary を導入される方は、有里さんの nDiary導入用覚え書き が大変参考になりますので、ご一読をおすすめします。


5. 設定

5. 1 ndiary.conf

ndiary.conf の設定を各自の環境に合わせて書き換えます。

ndiary.conf は、sample.ndiary.conf を ndiary.conf にリネームして使用してください。

最低限設定が必要な項目は、以下のものです。

LOG_DIRECTORY
日記の原稿が存在するディレクトリ
OUTPUT_DIRECTORY
htmlファイルを出力するディレクトリ

LOG_DIRECTORY、OUTPUT_DIRECTORY に設定したディレクトリは忘れずに作成しておきましょう。それ以外の項目については、ndiary.conf のコメントを見て適宜書き換えてください。

ndiary.conf は diary、ndiary-lib.rb と同じディレクトリに作成する必要があります。ただし、~/.ndiaryrc が存在する場合は、そちらが優先されます。

5. 2 雛形ファイル

雛形ファイルは、日記のベースとなる html ファイルで、雛形ファイル内のコメントタグが nDiary により置換され出力されます。

最近の日記を数日分まとめたファイルと月別のファイルの 2種類の雛形ファイルを用意する必要があります。

<!--body--> というコメントは、日記本文に置換されます。最低限、これだけは雛形ファイル内に含めるようにしてください。
<!--plug=プラグイン名?opt1=val1--> というコメントは、後述する Plug-in が起動されます。

5. 3 Plug-in

雛形ファイルに

<!--plug=プラグイン名?opt1=val1?opt2=val2-->

というコメントタグを埋め込むことにより、Plug-in を起動します。Plug-in は、埋め込まれたコメントタグの部分を別の文字列に置き換えたり、別のファイルを書き換えたりなど様々な動作を行います。各プラグインの機能は、それぞれのファイルの冒頭ののコメント部分を参照してください。

動作としては、plug= で指定されたプラグイン名に拡張子 .rb を付与した ruby script を読み込み、実行します。その際、「?」以降がオプションとして Plug-in に渡されます。

例えば、

<!--plug=monthindex?title=過去の日記?style=simple-->

というコメントを埋め込むと、monthindex.rb が読み込まれ、オプションとして、「title=過去の日記」「style=simple」が Plug-in に渡されます。

Plug-in は script/plugin ディレクトリに置いておきます。

5. 4 トピック一覧

ndiary.conf に

TOPIC = hoge.html

という行を設定すると、後述する「トピック」を抽出してまとめた「トピック一覧」を記載した html を作成します。
上記のようにファイル名を指定すると、そのファイル名で「トピック一覧」を作成します。
LOG_DIRECTORY で指定したディレクトリにそのファイル名で雛形ファイルを用意するとOUTPUT_DIRECTORY で指定したディレクトリに出力します。

「トピック一覧」は、TOPIC = という行を複数記述することにより、その数だけ作成することができます。その際、ファイル名の後ろにタブで区切って抽出するトピックの条件を指定することもできます。

TOPIC = topics.html

TOPIC = shopping.html 買

TOPIC = books.html 読書|本

この例では、全トピックを記載した topics.html 、「買」という文字を含んだトピックを抽出した shopping.html、「読書」または「本」という文字列を含んだトピックを抽出した books.html を作成します。また、正規表現に関する知識がある場合は、より細かい指定ができます。その方法については ndiary.conf の末尾のコメントを参照して下さい。


6. 日記の作成・運用

6. 1 日記の記述

ndiary.conf の LOG_DIRECTORY で設定したディレクトリか、もしくは、それより下層のディレクトリに yyyymmdd.diary という日記の原稿となるファイル(以下 diaryファイル)を作成します。yyyyは年、mmは月、ddは日です。つまりは、1999年4月18日の日記は、19990418.diary というファイルになります。
再帰的に下層のディレクトリを検索するので、年や月ごとにディレクトリを分けることもできます。

diaryファイルは、以下のように解析され、html に変換されます。
空行で区切られた文章を一つのブロックとして、そのブロックの形態に応じてタグをつけていきます。文章の中でのタグの使用は自由ですが、ブロック毎に自動的にタグが付加されますので、自分の思った通りの表示がされない場合があります。その場合は、「<<」を使ってください。
各ブロックは次のような順序で評価され、html に変換されます。こちらに作者が実際に記述しているdiaryファイルがありますので、参考にしてください。

  1. ブロックの1行目が「<<」の場合は、一切加工ををおこなわないので、自由 にタグを書くことができます。
  2. ブロックの1行目が「Code:」の場合は、プログラムなどのソースファイルを表示するのに適したタグ(<div class="code"><pre><tt><code>)を付加します。また、Code: は以下のオプションを指定することができます。
  3. ブロックの1行目が「Quote:」の場合は、<blockquote class="quote"> を付加します。Quote: は以下のオプションを指定することができます。
  4. ブロック内の全ての行がタブでインデントされている場合は <blockquote> を付加します。
  5. 行頭がタブで始まる行が含まれているブロックは、 <dl><dt><dd> を使った定義リストに変換します。
  6. トピック(見出し。特定の文字(○●▽▼□■…。追加、変更可能)で始まり、且つ、1行で終わっているブロック)には、<h5> を付加してアンカーをつけます。
  7. ブロックが「・」または「+」で始まる場合は、 <ul><li> を使った順不同リストに変換します。
  8. それ以外の場合は、<p> で囲み、アンカーをつけます。

脚注は「ほげほげ(*脚注)」と記述した場合は「(*」と「)」で囲まれた部分が、「ほげほげ((-脚注-))」と記述した場合は「((-」と「-))」で囲まれた部分が、その日の最後の部分に自動的に挿入されます。

6. 2 フィルタ

作成した日記本文に対して置換を行う仕組みとしてフィルタが用意されています。現在、直接タグを書かなくてもリンク、強調、ルビなどを使用できるものや ISBN を記述することによって各オンライン書店へのリンクを自動的に作成するものなどが用意されています。

使用するためには ndiary.conf に

FILTER = 'inlinedecorate'

FILTER = 'bookstore'

というように使用するフィルタの数だけ記入します。各フィルタの機能、使用法については script/filter ディレクトリの各フィルタファイルを参照してください。

6. 3 html への変換

diaryファイルを作成したら、html への変換を行うため、スクリプトを起動します。このときオプションの指定により動作が変わります。

>ruby diary
一番最近日記が書かれた月のファイルと最近数日分ををまとめたファイルを作成します。
通常の運用ではこの形式で十分です。
>ruby diary yyyymm
yyyy年mm月の日記をまとめたファイルを作成します。
過去の日記に追記、修正した場合に使用します。
(使用例) >ruby diary 200004  2000年4月の日記(200004.html)を作成します。
>ruby diary all
diaryファイル が存在する全ての月のファイルを作成します。

また、第一引数として 拡張子が .conf なファイルを指定するとそのファイルを ndiary.conf の代わりの設定ファイルとして使用してスクリプトを実行します。

>ruby diary test.conf
test.conf を設定ファイルとして一番最近日記が書かれた月のファイルと最近数日分ををまとめたファイルを作成します。

7. リンク

7. 1 稼働例

nDiary を使用していただいている方々です。(2001-02-12現在)
リンクされて迷惑だという方がいらっしゃいましたら、ご連絡ください。

7. 2 関連リンク
nDiary Antenna
nDiary関連ページ更新時刻順表示
nDiary関連リンク集
有里さんによるnDiary関連リンク集
ndiary-mode.el
emacs用ndiary-mode
nDiary導入用覚え書き
有里さんによる Windowsユーザ向けの導入覚え書き
nDiaryのすすめ
Stellaさんによる nDiary に関してのコラム
をゐなり日誌ヘッドラインセンサー
偽春菜ののヘッドラインセンサー。nDiary なページだったら使えるかも?
nDiary FAQ
になる予定の場所。誰でも書き込めます。
nonsense talk
作者の日記。nDiary 関連の話はここにだらだら書いてます。

8. 履歴

version 0.9.2 ( 2001-02-12 )

version 0.9.1 ( 2001-01-02 )

version 0.9.0 ( 2001-01-01 )

version 0.8.0 ( 2000-06-17 )

version 0.7.1 ( 1999-12-12 )

version 0.7.0 ( 1999-10-05 )

version 0.6.8 ( 1999-08-25 )

version 0.6.7 ( 1999-08-01 )

version 0.6.6

version 0.6.5

version 0.6.0

9. ダウンロード

ndiary_0.9.2.zip
最新版
過去のバージョン
次期バージョンの Beta版なんかもたまにあります。

not@cds.ne.jp
TOP