昨日あたりから、この日記サイトに新しい機能を実装することを考えていた 前々から考えてはいたんだけど、めんどうくさがっていて結局うやむやになっていた 元々、実装しようと思っていたのは、以下の通りだ
- 日記の検索機能
- 下書き機能
- 未来投稿機能
日記の検索機能
「そういえばアレがあったのはいつだっけなあ」 みたいな感じで昔の出来事を振り返ろうと思ったとき 検索できないといつ書いたのかがわからないので 検索機能を実装しようと思っていた
下書き機能
途中まで書いて、続きはあとで書きたいってとき とりあえず途中のままで公開してしまうか 別の場所に一旦保存しておくかしかできないので不便だった 下書き機能を実装すればそういった問題が解消される
未来投稿機能
「この話は、まだ大っぴらにはしたくない/しないほうがいいな…」 ってときに使う機能 公開される日時を指定して、その日時になったら自動で公開される それまでは静かに眠っているということだ 忘れてしまわないようにその出来事を書いておきたいけど 今すぐには公開したくないってときが何回かあったので 未来投稿機能はあると便利だと感じた
上の 3 つは前から考えていて、昨日、新しく思いついたのが RSS フィードを作ることだ
この日記を見ている人はたぶんほとんどいないから 実装してもあまり意味はないのかもしれないけど 定期的に見たいという人がいたらフィードがあれば便利なんじゃないかなと思ったからだ
それで今日はずっと RSS 2.0 の仕様について調べていた
RSS の仕様って結構あいまいなところが多くて
たとえば <item>
内の <description>
と <content:encoded>
は
どういうふうに使い分けるのかとか
いろんなサイトの RSS を見ていると
<description>
には記事の要約、<content:encoded>
には記事全文<description>
に記事全文、<content:encoded>
はなし
の 2 パターンがあってどっちが正しいのかわからなかった
しかも、RSS リーダーの一つである Feedly は
<description>
と <content:encoded>
の両方が含まれていると
<description>
を無視していてますますわけがわからなかった
んで、調べてみると、どっちの実装も正しくて
記事の要約を入れたい場合は <description>
に要約を入れて
記事全文は <content:encoded>
に入れるとのこと
記事の要約を入れたくない場合は <description>
に記事全文を入れて
<content:encoded>
は省略するとのこと
参考: RSS Best Practices Profile
ただし、両方含まれていた場合は <description>
、つまり要約が無視されることがあるらしく
Feedly はその仕様になっているらしい
まあそんな感じでとにかく仕様があいまいで、リーダーによって表示がまちまちなので 結局はこちらでどのように表示させたいかをちゃんと考えないといけないようだ
この日記に関して言うと、記事のタイトルを日付にして
要約を書き込めるように実装し直して
記事全文を <content:encoded>
に入れる実装にしようかなと思っている
要約、というか内容を一行で表現したものをタイトルにしようかなとも思ったけど 毎日のすべての日記にタイトル (内容を一行で表現したもの) をつけられるかというとそうではないし 一行で表現できる場合はそれがタイトルになって、表現できないときは日付がタイトルになるみたいな感じだと 一貫性がなくなるので、やっぱりタイトルに相当する部分は日付にしておくほうがいいかなと思った
しかし、一日一回投稿できる形式のこの日記は、一つの記事の内容がとても雑多になる可能性が高いので タイトルが日付で、要約がない、となると、RSS リーダーに表示されたときに どんな内容が書かれているかが全くわからないので要約はやっぱり必要なのかなと思う
なんだけど、RSS リーダーのほとんどは要約と記事全文をわけると要約が省略されるらしいので それじゃあ要約がある意味がないじゃないか!!と突っ込みたいのは僕だけでしょうか…
まあ、でも、要約が要約として機能しないというのは RSS の仕様としてはいまいちとしか言いようがないので たとえ RSS リーダー側で要約が無視されるとしてもそれは仕様ということで諦めるしかなさそう
ふつうのブログ記事だと、タイトルがそれなりに要約として機能している場合が多いから困らないんだろうけど この日記サイトはタイトルが事実上存在しないので困ったもんだ
要約が省略されたとしても、本文の 2 〜 3 行分があらかじめプレビューされてる状態にはなってるので それで我慢するしかないかーっていう感じ
うーん、やっぱり RSS 2.0 の仕様はビミョーだなあ… 調べてるばかりじゃ実装が始まらないので とりあえず、実装に取り掛かることにしよう
【追記】 日記にタイトルがあるというのはヘンなので タイトルは日付にしておく
要約もどうせ無視されてしまうなら
<content:encoded>
を省略して <description>
に記事全文を載せることにする
ここまでくるともはや、タイトルに相当するものやら要約やらを新しく作ること自体が 日記の「楽に書ける」というポリシーに反するので 記事は本文以外には何も追加しないでおいたほうがシンプルで良いと思った
ということで、タイトルは日付、要約はなし、という仕様で RSS フィードを実装しようと思う
【追記2】 勇者のくせにこなまいきだ DASH! 早くやりたい! リリースはよ!