Jan.1,2006 (Sun)
▽nDiaryのアドバンテージ
- 記述が簡略である
- 静的生成である為、負荷が軽い(日記頁の表示が速い)
- 静的生成である為、生成日記を一度検討の上で公開ができる(公開dirへコピーし直す)(失言等が減る)
という事ができる点でしょうか。
▽この頁のnDiary
- ndiary_0.9.4.2.zip (nDiary本体)
- nboard_0.0.3.zip (コメント=ツッコミ機能)(要SSI)
- ntrackback_0.0.1.zip (トラックバック機能)(要SSI)
を基にして(適時dir位置やファイル名を調整しつつ)作成しています。
http://www14.cds.ne.jp/~not/product/ndiary/#download
を参考にして下さい。
また、
tdiary-themeプラグインを利用し、tdiaryのテーマを流用しています。
- clover
http://www.tdiary.org/theme.sample.rhtml?theme=clover
を使用しました。
更にそれに独自のCSS(style.css)を加えて、表示を整えています。
▽onDiaryの注意点
CGIによるGUI上からは、TABの入力ができません。
その為、日記文中で「全角空白4つ」が出たら、これを「TAB」と置換して保存するようにしています。
御注意下さい。
Jan.2,2006 (Mon)
▽filter
独自に加えた・修正したfilterについて。
user/filter/
に入っています。
filterは毎日の日記ファイルに対して働きかけるものです。
ある日の日記全体に特定の飾りをつけたり、
日記内の特定のタグに反応して装飾したりします。
▽cite.rb (参照URL: cite.rb)
「引用」をします。
「Code:」や「Quote:」とほぼ同様で、「Cite:」として使いますが、
その時引数にURIやタイトルを付ける事ができ、CSSでレイアウトできる形でそれらの情報もHTML出力します。
▽comment.rb (参照URL: comment.rb)
コメント=突っ込みを可能にしてます。
ファイル名(.rb→.cgi)や内部処理(文字コード変換やメッセージ出力)等を一部修正しました。
www/nboard/nboard.cgi
等とペアで動作します。
というか、それへのリンクや、それが生成してるはずの日付.htmlをSSIで組み込んだりします。
▽custom.rb (参照URL: custom.rb)
色々個人的な修正を加えてます。
- トピックが空文字の時
topics.html等を生成する時、正規表現で足し引きした後、トピック文字列が空文字列になる時があります。標準ではそれに無理矢理aタグを貼って、リンク参照できないHTMLが生成されます。
ので、空文字列になったら「.」を加えるようにしています。
- パラグラフのカスタム
「Book:」「Review:」「Comment:」で始まるブロックを加工します。
Book:
「本のタイトル」読了。
ここに本の感想を書く。
と書くと、
□『本のタイトル』
「本のタイトル」読了。
ここに本の感想を書く。
となります。
Review:
「映画のタイトル」を観た。
ここに映画の感想を書く。
と書くと、
△『映画のタイトル』
「映画のタイトル」を観た。
ここに映画の感想を書く。
となります。
これらは、それぞれのトピックとパラグラフ(pタグ)にbook,reviewとクラス付けします。
「Comment:」で始まるブロックはコメントアウトします。
Comment:
これはコメントです。
非表示になるはずです。
と書くと、
となります。(↑コメント文として入ってるはずです)
注意するべきは、トピック毎に処理するのでなく、パラグラフ単位であるということ。
空行を入れた2つ目のパラグラフからはクラス付け等がされません。
だから、一つの感想内で段落をつけたいなら、空行でなく、空白文字だけで出来た行で段落をつけましょう。
(このあたりはnDiaryの仕様上どうにもならないっぽいです。TOPIC_BODYを扱うユニットが無い。)
- 「Code:」の微妙なずれの修正
「Code:」で縛った範囲内において、標準では冒頭に1つ改行が入ります。
これがCSSで色づけた時等にバランスが悪いので、その改行を除くようにしました。
- コメントアウトの改行の修正
標準では、コメントアウト行の末尾にも改行(brタグ)が入ります。
これだと空行が沢山出来て、ああここにコメントアウトがあるな? とばれます。
ので、改行を除くようにしました。
▽enikki.rb (参照URL: enikki.rb)
絵日記機能をつけてます。
日付と同じ名前の画像があれば、日記の冒頭に組み込まれます。
複数枚に対応できるように拡張しました。
▽ondiary.rb (参照URL: ondiary.rb)
毎日の末尾に「この日記を編集する」というリンクを付けます。
中身はonDiaryの編集CGIへのリンクですから、
日記の配置変え等設定変更した場合は適時中身を修正してください。
特に設定ファイルを読み込んで自動で追尾修正みたいな事はしていません。
▽rss.rb (参照URL: rss.rb)
標準のrss.rbを拡張したもの。
元のものは、descriptionを、topic最初のパラグラフ(空行まで)しか取らなかったのを、
全体的にとった上で指定文字数まで切り詰めとしています。
最新日記の左上、カレンダーの下の「RSS」に生成された「index.rdf」があります。
▽table.rb (参照URL: table.rb)
notさんの作ったもの。
タブ区切りでtable出力するようにできます。
あると何かの時に便利と思って入れてます。
Table:
[hoge1] [hoge2] [hoge3]
[foo] test1 test2 test3
[bar] -10 20% \10,000
このように入れると
hoge1 | hoge2 | hoge3 | |
---|---|---|---|
foo | test1 | test2 | test3 |
bar | -10 | 20% | \10,000 |
このようになります。本来はタブ区切りですが、CGIのFORMからは入力できないため、
全角空白4つをタブの変わりに入れます。
(保存はタブに置換されて保存されます)
▽trackback.rb (参照URL: trackback.rb)
トラックバックを可能にします。
ファイル名(.rb→.cgi)や内部処理(文字コード変換)等を一部修正しました。
www/ntb/ntb.cgi
等とペアで動作します。
というか、それへのリンクを生成します。
▽relist.rb (参照URL: relist.rb)
「List:」で始まるパラグラフについて、階層的なulのリストを作ります。
List:
・箇条書きを
・入れ子式で
・記述していくものです。
何かの時には結構使い道があるかと思います。
・箇条書きの次の条項
・だいたいこんな感じです。
と書くと、
-
箇条書きを
- 入れ子式で
-
記述していくものです。
何かの時には結構使い道があるかと思います。
-
箇条書きの次の条項
- だいたいこんな感じです。
となります。
インターネット殺人事件
http://internet.kill.jp/d/200407.html#d04_t2
http://internet.kill.jp/o/ulList_20040703.rb
のullistを参考にしました。
Jan.3,2006 (Tue)
▽plugin
独自に加えた・修正したpluginについて。
user/plugin
に入っています。
pluginは、雛型ファイル
log/latest.html
log/pastdays.html
等の中に記述して利用するものです。
▽calender.rb (参照URL: calender.rb)
標準のcalender.rbをかなり拡張したもの。
横7列でなく自由指定できます。
(横14列=>2週分、とか。)
(横10列=>縦は3列基準、とか。)
トップバーに組み込む事を想定して、1行型の出力とか、
サイドバーに縦に細長く組み込む事を想定して、1列型の出力とか、
できます。
1行型でも、1〜31日表示の他、1〜終週目表示(先月来月がちょっと見える)とか。
あとスタイルシートで設定すれば、曜日の色とかもかなり調整効く様にしました。
ruby1.8では祝日のライブラリがなくなった? 変わってしまった? ので、そのへんの対応が危ういです。誰かいい方法ご存知ないですか。
▽link_navi.rb (参照URL: link_navi.rb)
ogiさんのlink_navi.rbを拡張したもの。
ヘッダに「前」「次」ファイル等を付します。
もとは月毎だったのを、月内分割の時も動作するよう修正。
でも私は月内分割してないので(1月1ファイル)、動作確認は適当。
▽monthindex.rb (参照URL: monthindex.rb)
標準のmonthindex.rbを拡張したもの。
月の表示が01月、02月と出るのが嫌で、
オプションで1月2月と0が無いスタイルを加えました。
▽version.rb (参照URL: version.rb)
標準のversion.rbを拡張したもの。
nDiaryのバージョンだけでなく、
生成に利用したRubyのバージョンもでます。
onDiaryで生成した場合はそのバージョンもでます。
Jan.4,2006 (Wed)
▽コメントとトラックバックのテスト
コメントしてみたりトラックバックしてみたりします。
Jan.5,2006 (Thu)
▽onDiaryの変更点について
前回に作ったものとの差。
- 零から作り直しました。
- ruby-1.8を標準としました。(ruby-1.6.8を切り捨てました)
幾つかの機能についてダウングレードしてるでしょうが、それは考慮の末に切ったのでなく、単に実装忘れです。指摘してください。
Jan.7,2006 (Sat)
▽画像テスト
www/enikki/20060107.jpg
に画像を保存すると、
このように、その日の冒頭にその画像が(表示サイズは余り大きいと縮小で)現れます。
▽fiterl/inlineimage.rb
inlineimageフィルタにより、
image(./enikki/20060107.jpg cat 320x240)
と書くと、
と画像をそこに貼り付ける事もできます。
Jan.8,2006 (Sun)
▽filter/enikki.rb
日付の8桁数値で始まる画像が複数有る場合、その全てを貼り付けます。
▽lib/imagesize.rbの不具合
imagesizeというライブラリで、画像のサイズを取得し、それに基づいて縮尺を行うのですが、
nDiaryにもともとついてくるimagesizeでは時に正しい値がとれない場合があります。
例えば今例としてアップしてる画像がまさにそれで、640幅の画像のはずなのに160幅と判定されて、小さく出ます。
(通常、縮尺された場合、imgにhrefがつくはずですが、つきません。)
▽image_size.rbのインストール
但し、
http://www.rubycgi.org/tools/index.htm
こちらにあるimage_size.rbをインストールしていた場合、ndiaryはそちらを優先して利用するようになっており、
その場合、適切な画像サイズが取得されます。
今回は、このimage_size.rbを
user/lib/
におき、
script/lib/imagesize.rb
においてimage_sizeをrequireしてる部分を書き換え、その
user/lib/image_size.rb
を読み込みにいかせるように調整しました。
つっこみなどありましたらどうぞ。メイルアドレスは公開されません。