
<<<はじめに>>>
 このツリー以下では、主にSikiのソースコードについて解説を行いたいと思います。

 「どうせ、物好きなプログラマ以外にゃ、このソフトに興味を持つ奴なンざいないだろうからねぇ」

 ですね。下手にマニュアル書くよりもよっぽどいいでしょう。

 「ただ、ソースコードは常に書き換えているから、こまめにメンテしないとくさっちまうけどねぇ」

 その辺は順次更新するということで。古い記載が残っていたらごめんなさい、ということで……

<<<Sikiの概要>>>
 何はともあれ、プログラムのディレクトリ構造です。Hackする際の重要な手掛りですね。

/////////////////////////////////////////////
siki
  ＋－[[cgi ./cgi]]          cgiファイルを置くところ。他のファイルから隔離しています。
  ｜  ｜－[[index.cgi ./index.cgi]]   まずはここから。初期設定を行う
  ＋－[[doc ./doc]]             ドキュメント類。CSSもここ
  ｜  ＋－[[copyright ./doc/copyright]]   ライセンス
  ｜  ＋－[[siki/theme ./doc/siki/theme]]  テーマフォルダ
  ｜      ＋－[[tDiary ./doc/siki/theme/tDiary]]  デフォルトではtDiaryを使用
  ＋－[[data ./data]]            データを保存
  ｜  ＋－[[node ./data/node]]        テキストデータを保存
  ｜  ＋－[[backup ./data/backup]]      変更履歴を保存
  ｜  ＋－[[cache ./data/cache]]       nodeから作成したHTMLを保存
  ｜  ＋－[[container ./data/container]]   その他データを保存
  ＋－[[lib ./lib]]             プログラム本体 
     ｜－[[main.rb ./lib/main.rb]]      メインルーチン
     ｜－[[variables.rb ./lib/variables.rb]] グローバル変数をまとめたもの
     ｜－[[node.rb ./lib/node.rb]]      テキストデータを管理／処理
     ｜－[[tool.rb ./lib/tool.rb]]      小物ロジック
     ＋－[[command ./lib/command]]      処理内容
     ＋－[[formatter ./lib/formatter]]    テキストをHTMLに変更
     ＋－[[template ./lib/template]]     HTMLの作成ルール
     ＋－[[testunit ./lib/testunit]]     テストユニット
/////////////////////////////////////////////

 大雑把にはこんな感じで。dataフォルダ以下はプログラムが保存するテキストデータ等で、プログラムの本体はlibフォルダ以下ですね。それぞれの解説はリンク先を確認してください。

 Sikiでの基本的な実行の流れは

/////////////////////////////////////////////
[[index.cgi ./index.cgi]] 初期設定
   Ｖ
[[main.rb ./lib/main.rb]] －＞ variables.rb 変数を設定
   ｜    －＞ [[node ./data/node]] テキストデータを読み込み
   ｜    －＞ [[command ./lib/command]]フォルダ内のどれかのコマンド 
   ｜       処理の実行
   ｜       －＞ 必要に応じて[[formatter ./lib/formatter]]フォルダ内の
   Ｖ          formatterを使用してテキストを変更
HTML or Binary Dataを出力
/////////////////////////////////////////////

 といった感じですね。それぞれの細かいところでは結構めんどくさいこともしていますが……
