RSSを配信してなかったり、配信されてるRSSが役立たずだったりしたときに、
自分が使う用にRSSを作ってみたりしてるわけですが。

『RSSを配信していないサイト』の例



『RSSが役立たずなサイト』の例

まぁ別にRSSが配信されていないことや、
配信されているRSSが駄目なことについてはどうでも良いんです。
不便だけど、それは僕が不便だというだけであって、
著作権に対する考え方やRSSに対する認識の違い、
技術的な問題など色々と事情はあると思うので。

だから求めることはしないけど、
それならこっちで勝手に作っちゃえばいいんじゃね?っていうことで。



で、水曜どうでしょうD陣+大泉洋で作られるHTB開局40周年スペシャルドラマ、
「歓喜の歌」撮影日記のRSSを一昨日くらいに作ったんですけど。

http://suidou.d-archives.info/kanki.xml

それを作る視点から見た『良いサイト』ってのは、
やっぱりブログ形式になっていくよねっていう。

基本的にはTOPページのデータを引っ張ってきて解析し、
RSS用のデータに変換してテンプレートに落とし込むってことをやってるので、
TOPページが結構重要。


TOPページにコレはあって欲しいという要素は例えばこんな感じ。

  1. タイトル
  2. 本文
  3. パーマリンク
  4. 時分までの更新時間
  5. 執筆者が複数いる場合は執筆者

で、上記のデータがきちんとclassがついた要素(例えばdiv)に格納されていること。


「歓喜の歌」撮影日記のサイトの場合、
多少HTMLが適当ではあるけれども、1、2、5については特に問題がありません。
しかし、3と4については、本文エリアにはデータがないんですね。

基本的な構造は、こんな感じになってます。

<!-- [S] Entry -->
<h2>エントリタイトル</h2>
<div class="update">更新日: 更新日(月/日)</div>
<div class="wrapperMainTxt">
  本文<!--// #wrapperMainTxt //-->
</div>
<span class="entryFooter">執筆者</span>
<!-- [E] Entry -->

見たら分かるとおり、パーマリンクが無く、更新も日付だけです。
見る分には問題ありませんが、RSSとしてはそれ無いと色々困る。


で、どうするか。

実際の解決策は、こんな感じ。

横のメニューバーの最近のエントリからリンクを抽出し、
そのリンクが上手い具合に更新日時になってるんでそれを解析して、
更新時間を構成。

で、本文のデータと付け合わせてデータを構成する、または、
メニューの各パーマリンクについてDBに問い合わせて、
データがなかったらページを取りに行く…とか。

大体そんな感じでOK。
(1時間以内に10エントリ以上アップされると対応できないけど)

…なんてことをしないといけないんだよね。
あらかじめ想定してるわけじゃないから仕方がないんだけど。

どんなサイトであれある程度DB内にデータを格納してるわけで、
そっち側からRSSを吐くってのはもの凄く簡単なんだけど、
逆にRSSを構成するのは面倒なこともあるっていう話。
綺麗なHTMLで書かれてればいいんだけどねーHTBのソースは、CMSの割には汚いので。



そういう意味で言うとほぼ日の各ページは若干HTMLの仕様が古い(基本table)けど、
class名がきちんとしてて、解析しやすい感じ。

気まぐれカメらの場合は、こんな感じ。

<table>
  <tr>
    <td><img class="photo" src="画像"</td>
    <td class="paper">
      <span class="subject">エントリのタイトル</span><br />
      本文
      <span class="date">更新日時(月/日 時:分)</span>
    </td>
  </tr>
</table>

ソースとしては「歓喜の歌」撮影日記の方が現代風だけど、
扱いやすさは気まぐれカメらの方が上。
(あと本文とエントリタイトルをきっちり分けてくれると良いかな)



メンテナンス性から考えても、1要素に1ラベルの方が良いと思うんだけどね。
「歓喜の歌」撮影日記はどんなCMS使ったらああなるのか理解できん。
(HTBか制作会社の独自ソフトウェアなんじゃないかって気はする)



…まぁ、普通の読者の方々には何の関係もない話ですが、
技術者ってのはこういうとこ通して、
他の技術者に思いを馳せたりするんですよーと言うお話。