ブログにとって、RSSやATOMを提供するのは、とても重要だ。これらのフィード機能があれば、ブログの読者は、わざわざ更新を確認しにブログを訪れなくても、新しい記事が読める。たまに、このRSSの出力を、記事の一部分しかしていない人がいる。とくにはてなダイアリーでは、一部しか出力しないのがデフォルトになっている。残念なことだ。
さて、私がにわかにRSSを持ち上げているのは他でもない。私自身が、RSSによって、何十というブログを読んでいるからだ。RSSが提供されていれば、わざわざブログを見に行くまでもなく、RSSリーダーで、多数のブログを購読できる。実に便利だ。RSSリーダーには、クライアントやWebアプリなどの種類があるが、私が愛用しているのは、Google Readerだ。
さて、今月の初め頃だが、ふと何気なく、自分のブログを、Google Reader上で読んでみた。いままで、自分のブログのRSSがどのようになっているのか、気にとめたことがなかったが、そのあまりの貧弱な内容に驚いた。white-spaceできれいに整形したつもりのソースコードは崩れているし、Flashは表示されていない。何より驚いたのが、Google Readerでこのブログを読んでいる人が、私を含めて37人もいるということだ。他にも、はてなには、私を含めて17人が、このブログに対してアンテナを利用しているし、あるいは別のRSSリーダーを使っている人がいるかもしれない。最近の主要なブラウザは、皆RSSリーダーを備えている。これは、何とかしなければならない。
そこで、RSS経由で整形されたソースコードが読めるように、CSSに頼らず、空白は空白として使うことにした。Flashはいかんともしがたい。というのも、私はFlashの表示には、swfobjectを使っているのだが、RSSの出力には、head要素が含まれることはない。解決方法としては、すべての記事でswfobject.jsを読み込むか、あるいは埋め込むという方法が考えられる。もう少し現実的な方法としては、javascriptに頼らず、object要素を手書きするという解決方法もある。しかし、object要素の手書きは面倒だし、IE以外のブラウザでは、Eolas社の特許に引っかかるため、クリックして有効化しなければならない。結局、置換するdiv要素の中に、Flashである旨を書いておこうと思う。divの中にobject要素を仕込むというのも、ありといえばありだが、せっかくswfobjectを使っているのに、それはあまりにも面倒だ。
さて、RSS経由で読んでいる人向けの対策はいいとして、実際にブログを直接読んでいる人への対策もおろそかにしてはならない。このブログは、私の美意識にもとづいてデザインされている。例えば、記事が一度に百件も表示されるのは、読み込みが重いので好ましくないと思う人がいるかもしれないが、私はむしろ、一度に数件の記事しか表示されないブログというのは、すぐに次のリンクをたどって先を読み込まねばならず、実に不快であると考えているためだ。そのほかにも、フォントを指定しない、フォントサイズをピクセル単位で指定しない、という信念がある。ただし、ソースコードの場合だけ、Consolasを使っている。次の候補としてmonospaceフォントを指定しているので、Consolasがなくても問題は無いはずだ。また、テキストはブラウザの枠一杯に表示し、ブラウザの幅を超える場合は、ブラウザによって改行させるべくデザインしている。
気乗りがしたときにやらなければ、いつまでも放置してしまうため、以前から気になっていた部分も変更した。それは、右のサイドバーの、ラベルのことだ。今までは、一行にひとつのラベルを表示していた。これはスペースをとって仕方がないと、以前から思っていた。各ラベルはli要素の中にあるので、セレクタをうまく使い、ラベル部分のliのdisplayプロパティをinlineにしてみたが、これは失敗した。ラベルの文字列の途中で改行されてしまう。これは読みづらく、好ましくない。そこで、CSS2.1から追加された、inline-blockを使うことにした。これはうまくいった。
ただ問題は、IE7とFirefox 2は、inline-blockに対応してないということだ。しかしその場合でも、縦一列に表示されるので、まあ、問題は無いだろう。IE8やFirefox 3は対応しているようなので、来年には、ほとんどの人が、inline-blockを正しく閲覧できるだろう。
No comments:
Post a Comment