tDiary.org - 日記コミュニケーションを加速する


blog的運用方法

Last Update: 2005-06-10 20:14:50

この記事は古くなっています。この技術は現在、Blogkitとしてまとめられ、配布されています(→公開アナウンスDownload)。そのことを踏まえた上でお読みください。

blogに関する話題がにぎやかな昨今。tDiaryを「いかにもblogっぽく」運営する方法をまとめました。これであなたも、胸を張ってbloggerを名乗れます:-)

日付は飾りにすぎない

まず、日記において重要な「日付」は、blogではあまり意味を持ちません。blogは記事が単位なので、むしろ更新時刻の明記が大事です。また、ツッコミ(コメント)も記事ごとにつけられる必要があるので、tDiaryにおける「日」はそのまま「記事」に置き換える必要があります。つまり、個々の記事を指す「20021118」のような文字列は、単なる記事番号と捉えましょう。日付など飾りです。偉い人にはそれがわからんのです。

……と、このように割り切れば、以下のような設定でtDiaryをblogツール化できます。

タイトルの日付を消す

設定画面の「日付フォーマット」は通常「%Y-%m-%d」のような日付を表現するフォーマット指定になっていますが、これを記事をアンカーする記号(たとえば「■」)のようなものに置き換えます。

これだけではツッコミの表示でも「■ 12:34」のようなおかしな日付になってしまうので、以下のcomment_dateプラグインを追加します。

def comment_date( time )
   time.strftime( "(%Y-%m-%d %H:%M)" )
end

さらに、ツッコミをメールで受けとる場合には、ツッコミメールのSubjectも「blog:■-1」のようになってしまうので、例えばメールヘッダの項を「blog:%Y-%m-%d」のように日付フォーマットまで指定する必要があります。

アンカーを消す

blogでは記事が最小単位なので、セクションアンカーは邪魔です。そこで通常「<span class="sanchor">_</span>」になっているセクションアンカーを、ばっさり削除し、空にします。

これで表示上はアンカーが消え、すっきりした記事にできます。実際はアンカーを示すタグは残っているのですが、気にしないことにします。

なお、ツッコミアンカーはそのまま使いましょう。個々のツッコミをポイントできるアンカーを持っていることは、tDiaryのアドバンテージです。

更新時刻を表示する

記事から日付を排除してしまったので、その記事がいつ書かれたのかわからなくなってしまいます。そこで記事のLast-Modifiedを取り出して、タイトルと本文の間に挿入するプラグインを書きます。

add_body_enter_proc do |date|
   diary = @diaries[date.strftime( '%Y%m%d' )]
   if diary then
      %Q|<div class="lm">Last Update: \
      #{diary.last_modified.strftime( '%Y-%m-%d %H:%M:%S' )}\
      </div>|
   else
      ''
   end
end

なお、add_body_enter_procの代わりにadd_body_leave_procを使うと、本文の末尾に挿入するように変更できます。

見た目はテーマに、div.lmに関する記述を加えることで工夫します。以下のような感じにするとblogっぽいかも知れません。

div.lm {
   font-size: 90%;
   text-align: right;
}

記事の追加

記事は日付と関係なく追加しなければなりません。もし、1日に2度以上記事を追加するのであれば、2つめの記事は明日の日付で書く必要があります。日付など飾りにすぎないので、単なる記事番号だと思えば気になりません(ちょっと面倒ではありますが)。

コメント(11) [コメントを投稿する]
こ〜りん (2002-11-15 16:45)

本日のリンク元って表記は変えないとだめなのでは?<br>この記事に興味のある人々 ってのをきたさんが提案されてました.

ただただし (2002-11-17 00:10)

表記の問題はまた別にありますね。<br>まぁ、今回はあくまで「システム的に可能かどうか」を検証したということで。

ひだか (2002-11-17 01:38)

blog 的といえば、記事を全部じゃなくてサマリ:)というか<br>見出しだけ表示してあとは...みたいな機能がいるのかも。<br>単に全部出てくると長くなる一方ですよね。

ただただし (2002-11-17 17:26)

その件に関する回答は、近々お見せできるかもしれません(謎

ただただし (2002-11-18 18:33)

……というわけで、トップページは似非サマリ表示にしてみました。うーん、いかにも。

すぎん (2002-11-18 20:36)

WatsNew と似非サマリ表示のやり方を公開してくださいませんか?

ただただし (2002-11-18 23:24)

2、3日待ってください

すぎん (2002-11-19 18:54)

↑blog ちっくに運用したいサイト構想中ですのでよろしくお願いします.

スタTD (2005-06-09 23:43)

大変初歩的な質問なのですが・・<br>説明に<br>以下のcomment_dateプラグインを追加します。<br><br>def comment_date( time )<br> time.strftime( "(%Y-%m-%d %H:%M)" )<br>end<br>とありますが<br>実際にはどうすれば良いのでしょうか?

スタTD (2005-06-10 19:01)

↑<br>ヘッダに<>つきで書けばいいのですね・・・<br>同じように↓を追加したのですが、エラーになるのですが・・・<br><br>add_body_enter_proc do |date|<br> diary = @diaries[date.strftime( '%Y%m%d' )]<br> if diary then<br> %Q|<div class="lm">Last Update: \<br> #{diary.last_modified.strftime( '%Y-%m-%d %H:%M:%S' )}\<br> </div>|<br> else<br> ''<br> end<br>end<br><br>undefined method `last_modified' for nil (NameError)<br><br>(TDiary::Config#save):18:in `save'<br>/virtual/xxx.xxx.xx.xxx/cgi-def/admin/C-010/blog/tdiary/tdiary.rb:72:in `join'<br>/virtual/xxx.xxx.xx.xxx/cgi-def/admin/C-010/blog/tdiary/tdiary.rb:72:in `safe'<br>/virtual/xxx.xxx.xx.xxx/cgi-def/admin/C-010/blog/tdiary/tdiary.rb:423:in `save'<br>/virtual/xxx.xxx.xx.xxx/cgi-def/admin/C-010/blog/tdiary/tdiary.rb:1302:in `eval_rhtml'<br>/virtual/xxx.xxx.xx.xxx/cgi-def/admin/C-010/blog/tdiary/update.rb:62

ただただし (2005-06-10 20:14)

この記事は古くなっています……と冒頭に書いてあるんですが。そもそもここはサポートの場ではありません


«RPMパッケージ登場 最新 1.5.1リリース» 編集
Fork me on GitHub