onDiaryとはnDiaryをcgiとして動かす為のものです。
基本的には「WEB書込のインタフェース」+「nDiaryエクスキュータ」だけです。
cgi化によってWebブラウザからの操作が可能になったものの、基本的にページそのものは静的に生成されます。
FTPの手間が省けるだけで、内容はnDiaryとは何ら変わりません。
だからといって、このスクリプトの意義云々なんて事は考えてはいけません。
需要を決定づける条件式がマイナーで複数かつOR式ではなくAND式、という非常にニッチ&スキマなスクリプトです。
できれば、生暖かい目で草葉の陰から見守って行きましょう。
→ いきなりココに飛んで来た方へ、onDiaryのオフィシャルページはこっちですよ。
1.nDiaryとは?
2.onDiaryとは?
3.onDiary導入覚書
ENV:導入環境について
Step0:文字コード注意
Step1:設定ファイルの編集
Step2:アップロード&ファイルパーミッション
Step3:動作チェック
Step4:機能チェック
4.onDiaryのバージョンについて
5.鯖(Server)負荷について
X.onDiaryの利点?(おまけ)
【注意】
導入に関する記述はWindowsを想定してまふ
適当な文書ですが「こういう内容もまとめやがれ」とかあえて仰るならば受けて立ちましょう・・・時間があればですが(w
記:入鹿
▼1.コトハジメ・・・nDiaryとは?
まずnDiaryとは?!なんですが、それはありさとさんのnDiary導入用覚書を参照して下さい。
私が最初参考にしたドキュメントですし、多分一番整備されたnDiaryドキュメントです。
そういう訳で、nDiaryについて&導入に関してはそちらを参照されるのが確実です。
→ ありさとの別蔵[nDiary導入用覚書]▼2.ではonDiaryとは?!
先のセンテンスのnDiaryをcgi化したものがonDiary; nDiary on the Webです。
onDiaryの特徴は・・・nDiaryの時と同じく、作成者の一歩さんのサイトを参照するが良いかと。
現状でonDiaryユーザーってのは少ないです・・・すいません片手で全然余ります。
まぁ、でも、そのうちユーザーも増えていく?でしょう。
というか、増えることを祈って多少なりとも私の導入覚書を記して行こうかと思います。
→ 一歩の我楽苦多箱[onDiary; nDiary on the Web]▼3.onDiary導入覚書
入鹿のonDiary導入に関しての覚書を記録しておきます。
当然私の環境依存というか、それなりに偏る事はあるでしょうが、まずはドキュメント化する意義優先です。
ですから、なんか聞きたいとか間違ってるとかいうのが有ればメールやBBSでお知らせ下さい。
▽導入環境(鯖)
まずはRubyの使える鯖が無い事には始まりません。
最近はRubyを導入しているISPが増えていますが、Perlと比べてしまうと絶対数が全然少ないです。
Rubyの使えるISPのリストは、Ruby anywhereを参照されると良いでしょう。
ここに紹介されているISP以外にもRubyの使える鯖はありますので、手間を惜しまない方は自ら探して下さい。
因みに私の場合は、www.irukaya.netというドメイン登録を兼ねてweb24.jpというホスティングサービスを利用しています。
私の環境を単純にリストアップしますと、以下の通りになります。
・鯖:web24.jp
・Windows2000(P)
・ActiveRuby1.6.8.1
・Shift-JIS
▽導入Step.0
onDiaryの導入で注意すべき点がいくつかあります。
まずはonDiaryのサイトからnDiaryを含めたonDiaryの本体をダウンロードします。
中身はonDiaryのサイトに書いてある通り、ndiary_0.9.2.zip を基に、ndiary_0.9.3.beta18.zip を上書きした環境です。
notさんが配布しているnDiaryに、一歩さんが追加&修正したスクリプトが含まれた内容です。
2人の環境それぞれで作成されている為、現時点ではShift-JISとEUCの2つのコードが入り交じってます。
文字コードを自動判別するエディタを使用している人は良いのですが、そうじゃ無い方は文字コードを統一する所から始めるのが吉。
因みにWindowsの標準はShift-JISです。
そういう事なんで、文字コード云々な場合は手っ取り早くツールで変換してしまいましょう。
簡易な文字コード変換ツールへのリンクを載せておきます。
→ Quick KANJI code Converter Version 3.1
さて、他に読むドキュメントが無いからコレを読んでいるそこのアナタ!
さらに「いちいち変換なんて面倒じゃん!」なんて思ってるそのこのアナタ!
開発元に文句を言ってはいけません、開発者に求めるのは各種機能の実装とか洗練であって、細かい事は気にしてはいけません。
それに「自分の使っている文字コードに合わせろ」というのは単なる我が儘です。
そういう訳で、文字コードの変換くらい自分でやりましょう。
それでも面倒という方向けに、一応私のonDiaryのコピーを置いておきます。
基本的には一歩さんが公開しているものとさほど変わりません。
違いを列挙しますと、
(1)Shift-JISに文字コードを統一
(2)一歩さんの使ってるISPの広告を削除
(3)onDiaryのindex.cgiの内容が入鹿屋本舗バージョン(後述の修正が入ってます)
(4)バージョン吐きプラグインに[with nDiary on the Web]の文字&リンク追加(趣味です)
onDiaryのバージョンアップに合わせて最新化してゆきます。
欲しい人はご自由に持ってって下さい。
→ 2nd_irukaya20030516.lzh[195kb] onDiary20030516.lzh_Base
→1st_irukaya20030516.lzh[191kb] onDiary20030513.lzh_Base
→irukaya20030512.lzh[155kb] onDiary20030511.lzh_Base
→irukaya20030511.lzh[153kb] onDiary20030506.lzh_Base
▽導入Step.1
nDiaryは動いてますね?文字コードに問題は無いね?
じゃ、onDiaryの設定に移りましょうか。
onDiaryを動かすのに必要な設定&修正は、次に挙げるファイルに書き込みます。
(1)config.txt
(2)index.cgi
nDiaryがローカルで動いているという前提なので、ndiary.confの設定の説明は省きます。
(ただし、Step.0の絡みもあるのでひとつだけ再確認→nDiaryで使う文字コード指定は忘れずに!)
まずは、config.txtです。
config.txtの設定と言っても、非常に単純&少数ですのでさして迷わないでしょう。
「見たまんまです」と言い切ってしまいたいのですが、一応Windowsユーザ向けに一言二言だけ。
config.txtには、パスワード,入力先・出力先・nDiaryスクリプトのパス,最近の日記の出力ファイル名,入力エリアサイズ、を設定値を書き込みます。
パスワードは、onDiaryのcgiにログインする為のパスワードです。
まぁお好きなというか、設定したってください。
次に3種類のパスですが、index.cgiを置いた位置からの相対パスをそれぞれセットします。
(↑多分絶対パスでも大丈夫なハズ・・・仕様未確認ですがね)
最近の日記の出力ファイル名と合わせて、ndiary.confに設定したものと同じモノを設定します。
重複して設定を書く事になりますが、まぁその程度の手間は少ないから良しとしましょう。
もちろん、今後の開発の方向次第でndiary.confに一元化される可能性もあります。
最後に入力エリアサイズですが、この時点ではデフォルトで良いでしょう。
cgiが動いてから、各自微調整すれば良いものです。
※config.txtの中身です、見たとおりですな
#各種、隠しておきたい設定ファイル群
PASSWORD = 'password' ←パスワード設定
#本来なら下4行はndiary.conf等を読み下して自動設定したいとこだがズボラ
LOG_DIRECTORY = './log'
OUTPUT_DIRECTORY = './www'
SCRIPT_DIRECTORY = './script'
LASTEST_FILENAME = 'index.html'
#入力エリアサイズをカスタマイズするなら
TXTAREA_HEIGHT = 30
TXTAREA_WIDTH = 80
そしてindex.cgi本体の修正です。
index.cgi自体は変更無しでも動作しますが、開発者である一歩さんの環境に関するソースを修正します。
index.cgiファイルの440行付近から動的に生成するhtml関連の記述が始まります。
「#===== html =====」という具合に区切ってありまして、それ以下に対象となる記述があります。
まず、head_htmlに関する記述でdivタグで囲まれたISPの広告htmlが書いてあります。
この中身を含めてdivタグを削除しておきます。
もし、別のISPで広告を入れるhtmlを指定されている場合は、そちらの広告のhtmlと書き換えます。
次に、先に挙げた記述の下付近にindex.cgiが生成するページの下端に表示するリンク群の記述があります。
常に開発者へのリンクがあるのが有り難いとも言えます。
しかしindex.cgiを管理ページだと捉えたならば、ここは自サイトに合わせた記述へ変更すべきでしょう。
※一応index.cgiの各ユーザ単位で修正かけた方がええんちゃう?な箇所#===== html ===== =====
def head_html( menu )
menu_list = menu_index(menu)
str = <<-END
<div align="right">
<iframe height="60" width="468" title="ad" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://ad.xrea.com/ad_iframe.fcg?site=ippo.s5.xrea.com"><a href="http://ad.xrea.com/ad_click.fcg?site=ippo.x5.xrea.com" target="_blank"><img src="http://ad.xrea.com/ad_img.fcg?site=ippo.x5.xrea.com" height="60" width="468" border="0" alt="ad"></a></iframe>
</div>
<table bgcolor="##{@titlecolor}" width="100%">
<tr>
<td align="left">
#{menu_list.join("\n")}
</td>
</tr>
</table>
END
return str
end
def tail_html
@tail_html = <<-END
<table bgcolor="##{@titlecolor}" width="100%"><tr><td align="right">
<a href="http://ippo.s5.xrea.com">一歩</a>
(<a href="mailto:ippo@geocities.co.jp">mail</a>,
<a href="http://146.teacup.com/ippo/bbs">BBS</a>) |
<a href="http://www.ruby-lang.org/ja/">Ruby</a> /
<a href="http://www14.cds.ne.jp/~not/product/ndiary/">nDiary</a> /
<a href="http://www.xrea.com/">XREA</a> |
<a href="index.html">[up]</a> /
<a href="http://ippo.s5.xrea.com">[top]</a>
</td></tr></table>
END
return @tail_html
end
end
最後になりますが、もしISP側でRubyへのパスを指定している場合は各スクリプトの先頭のRubyへのパスを修正します。
(#!/usr/local/bin/ruby ←大抵はこのままでOKなハズ)
大抵のISPでは、配布されているnDairy&onDiaryの記述のまま動作します。
もしcgiが動作しなかった場合には、チェックしてみましょう。
▽導入Step.2
スクリプトと設定ファイルの修正が済みましたら、鯖へのファイル転送です。
必要なファイルおよびディレクトリ構造ごと転送しちゃいます。
ここで注意すべき点は、*.cgiファイルなんかはバイナリ指定して転送しちゃうと動かないので注意して下さい。
最近のFTPクライアントですとそのへんは自動認識しちゃいますが、もし古いFTPクライアントを使ってる場合は注意。
私は久しぶりに↑これで嵌りました。
転送が済んだら各ファイルパーミッションの設定を行います。
とは言っても、index.cgiとconfig.txtくらいです。
index.cgiはWebからの参照が可能な様に[755]を設定します。
config.txtは逆にWebからの参照を蹴る様に[]を設定します。
通常の転送であればこれで動くハズですが、動かなかった場合はエラー内容を参照して適時変更を行います。
▽導入Step.3
では動かしてみましょう。 「http://アナタのサイト/cgi-bin/onDiary/index.cgi」といった具合にindex.cgiを参照します。
パスワード入力画面が現れましたか?
→ NG:現れない
・アナタの鯖はRubyがインストールされていますか?
・Rubyへのパスは問題無いですか?
・FTPで*.cgiの転送はASCIIでちゃんと送られましたか?
・index.cgiのパーミッションは正しいですか?
→ OK:現れた
・オメデトウゴザイマス。それでは、各機能を試してみましょう
▽導入Step.4
パスワードを入力してonDiaryにログインしたら、各機能(メニュー)を試してみましょう。
※この記述はonDiary2003.05.16日配布バージョンを元にしています。
[input]
編集する*.diaryファイルを指定します。
デフォルトでは当日日付が表示される仕様になっています。
[list]
日記ソース「./log」配下にある*.diaryファイルの一覧を表示します。
nDiary同様にサブディレクトリを含んでリストアップします。
表示されたファイルのリンクをクリックすると、編集モードへスイッチします。
[upload]
ローカルファイルを指定してサーバへアップロードします。
[参照]からローカルファイルを指定して、下部テキストボックスに保存名を指定します。
動きとしては[input]画面のフォームに読み込んだ後に保存します。
[update]
nDiaryスクリプトを実行します。
テキストボックスにnDiaryオプションを指定して実行する事ができます。
[exec]ボタンを押下して実行となります。
[diary]
生成した*.htmlへのリンクです。
コレが動かないのは、htmlの生成に失敗している場合です。
リンク先が無いと言われる以前に、nDiaryを動かした時点でエラーメッセージが表示されます。
まだ幾つか機能はあるのですが、大抵は直感的に分かります。
各メニューにて表示されるページには、機能&使い方の簡単な注釈が載ってます。
それぞれの機能は正しく動きましたか?
→ NG:動かなかった
nDiaryのエラーの場合は、ローカルで動作確認を取って下さい。
(↑このエラーはEXECでこけた場合に疑って下さい)
鯖のエラーの場合は、大抵パーミッションエラーですんで見直してみましょう。
(↑エラー内容を読めばパーミッションエラーかどうか判別できます)
→ OK:動いた
オメデトウゴザイマス。
後は心ゆくまで弄り倒しましょう。
▼4.onDiaryのバージョンについて
現在のonDiaryの最新バージョンは、2003.05.16版です。
onDiaryに関する時系列を追った情報は、nDiaryUserWikiの下記ページを参照するのがよさげです。
→ 機能拡張[nDiaryをcgiで ]
▼5.鯖(Server)負荷について
一歩さんと猫旦那さんのサイトをチェックするのが一番?
こことか、 こことか、 に色々と出ています。
onDiaryに関する時系列を追った情報は、nDiaryUserWikiの下記ページを参照するのがよさげです。
→ 機能拡張[nDiaryをcgiで ]
▼X.onDiaryの利点(おまけ)
nDiaryをあえて選ぶユーザに対してonDiaryの利点を説く!
なんて事は無理です、あえて言うならば対象になるかも知れないスキマ属性な事例なんぞを紹介。
あくまでここの管理人である入鹿の個人的な意見とか感想とかです。
まず、前提としてnDiaryユーザであること。
色々ある日記ツールの中でも、Rubyで静的生成なnDiaryを使おうというタイプのユーザ。
ローカルで管理したいとか、nDiaryのマークアップが手頃だとか、データの再利用が簡単だとか、etc
まぁ、理由は様々だったりそうで無かったり、でもnDiaryは使いたい or 使い続ける。
そういう人。
では何故にcgi(online)なのか?
一般的な機能を実装しているWebブラウザがあれば、何処からでも利用可能。
というだけでは根拠が薄いのは当然です、なんせnDiaryなんですから。
だからこそのスキマ的nDiary補完機能なのです。
例えば、急な出張なのだが自前のPC or データを持ち出してる暇が無い。
さらに高機能な無料ISPを利用しているが、一週間更新しなかったらアカウントが削除されてしまう。
そういう時にはネットに繋がった端末が有りさえすればOKというcgiとしての利点ですね。
さて、この状況というのは別に自前のPCに限った事ではありません。
私がよくやるのは、短期の急な出張とか旅のときにPalmデバイスだけ持って歩くという事をします。
「旅先でもネット気にするの?」とか言われそうですが、因果な商売(SE)やってるせいでメールが必須なんです。
あと、同様にWebも見れないと困ります。
ですから、WorkPad/c505,AirH"(SDIO),折り畳みキーボード、の3点は忘れずに持って行きます。
Palmデバイスならばグラフィティ入力でも可能ですが、長めのメールが当然なのでキーボード必須。
ネットに繋がる+長文テキスト入力手段有り=Webの更新ができても良いじゃないか
そういう事なんです。
onDiaryの開発理由としても挙げられるのですが、現在の環境がFTPプロトコルを通さない。
これは職場とか学校とか、ちょっと個人的に使える時間に更新をしたい。
(そういう公的な状況で個人サイトの更新をするなんて貴様はバカか?とかいう突っ込みは却下)
でもnDiaryユーザーだと、ローカルで静的生成なのでアップロードできない事には・・・。
もちろんFTPなcgiを導入するという手段もありますが、往々にしてFTPなcgiって使い難かったりします。
スキマスキマと言う通り、ここは各個人の趣味ですかね?
onDiaryのサイトにも挙げられている内容ですが、
・もうnDiaryから離れたくない
・はてなやWikiやtDiaryは高性能過ぎる
・でも↑あいつらがうらやましい
動機が多少後ろ向きな気がするかも知れませんが、そういうココロのスキマを埋めるのがonDiaryです。
(↑開発者でも無いのに言い切ってええんか?!)
つうか、私もtDiaryを弄ろうかとか考えた事がありますが、ソース見るとなんかお腹いっぱいな気分になったものです。
nDiaryの簡易マークアップが身に付いてしまいました。
既にonDiaryを試用(評価)に入ってる方が幾人か居ます。
それぞれの人にそれぞれの理由があるでしょう。
マイナーだとかニッチだとか、そういうジャンルなものであっても自分にピッタリなツールを見つけたら嬉しいですよね?
私にはうってつけだったので、こうやって余計な力入れてこんな文章書いたりするのです。