はてなダイアリーのPermalinkの仕様とその経緯について(長文)

はてなダイアリーのコメント欄が二種類ある事実とその問題点。 - Cherenkovの暗中模索にっき

こういうことはid:rikuoさんにテレパシーをつかって相談だ。

はてなダイアリーのコメント欄が二種類ある事実とその問題点。 - Cherenkovの暗中模索にっき

前からデザインテーマによって仕様が微妙にちがうことに気づいてた。
例えば(といっても気づいてたのはこれくらい)一日の内に複数エントリーを書いたときのそのページのアドレスの決め方。

2008年12月1日の4つ目のエントリーへのリンク。id:takerunba氏もこのタイプ。
http://d.hatena.ne.jp/Cherenkov/20081201/p4

2008年7月17日3つ目のエントリーへのリンク。
http://d.hatena.ne.jp/rikuo/20080717#p2008071703

id:amachangのところは同じ日なのにこうも違う。
http://d.hatena.ne.jp/amachang/20081125/1227591970
http://d.hatena.ne.jp/amachang/20081125/1227627894

はてなダイアリーのコメント欄が二種類ある事実とその問題点。 - Cherenkovの暗中模索にっき

id:Cherenkovさんからテレパシーが送られてきたのですが、コメント欄に書くには長いのでトラックバックで。とは言え結論から先に言えば「表示モードの違い」になります。

どうしてこうも違うのか?なんでなんで?と具体的な内容を先に見たい場合は、こちらから。
http://d.hatena.ne.jp/rikuo/20081202#permalink




何故そのような仕様になっているのか?ついてちゃんと説明すると、はてなダイアリーの歴史を紐解くことになります。

はてなダイアリー成り立ちと日記サービス

現在いくつもサービスを提供している株式会社はてなが、初めて人力検索はてなというサービスをリリースしたのが2001年、その後2002年にはてなアンテナをリリースし、はてなダイアリーは2003年1月にベータ版を開始しました。
当時は「ブログ(blogもしくはweblog)」という言葉も一般的でない時代です、はてなダイアリーはてなブログではないように、当初はWeb日記サービスとして公開されました。
Web Archiveに残っている、そのころのトップページの紹介文にはこう書かれています。

http://web.archive.org/web/20030118105023/http://d.hatena.ne.jp/

はてなダイアリーは、ブラウザから簡単に更新ができるウェブ日記です。日記中の言葉をキーワード化することにより、共有の辞書のように使う事もできます。

http://web.archive.org/web/20030118105023/http://d.hatena.ne.jp/

というように、「ブログ」という単語は一つも出ず、あくまで日記サービスとしてアピールされていました。


で、はてなダイアリーに限らず当時の日記サービスの特徴としては
日付で日記を管理する
ということ。
つまり典型的なのはこのような日記ですね

項目は分けるもののあくまで「日記」ですから同じ日付の中で管理する、また日付を単位に管理するという考え方です。ですので
編集画面も

日付で管理するわけです。
当時は1日に一つの記事を書く、というスタイルが主流でした。コメント欄も、当然日付単位ですから 12月2日の日記には一つのコメント欄、という形式でしたね。
繰り返しますが、これは当時の日記サービスでは良くある仕様でした。


「ブログ」以前は

「ブログ」の時代

ブログが登場してから日付単位での管理が変わりました。
例えば livedoor Blogアルファブロガー小飼弾さんの2008年12月1日の更新は、このようになっています
screenshot

話題が様々なのはいいとしても、それぞれがページとして連続していませんよね。
ブログでは、このように「一つの記事」つまりエントリー単位で管理、また他のブログから評価されるわけです。1日に複数の記事が書かれ、コメント欄もトラックバック欄も日付ではなくエントリー毎にそれぞれ配置されるようになります。
こうしたことは livedoor Blog に限らず他のブログサービス、また個人ブログで広く使われるようになります。大雑把に言えばブログ時代になったことで、日付単位ではなくエントリー単位での管理になりました
現在はそちらの方が主流ですね。

「ブログ」時代のはてなダイアリー

ブログモード

そうした現状を踏まえて、本来日付単位で管理するはてなダイアリーにも

  • 「他のブログサービスのようにエントリー単位で管理したい」
  • 「エントリー毎にコメント欄・トラックバック欄がほしい」

という要望が多く寄せられるようになりました。
そこで、はてなダイアリーにも2005年4月に機能追加がされ「ブログモード」というものが導入されます

これは文字通り、はてなダイアリーという日記サービス「ブログっぽい」ことができるというものです。今のはてなダイアリーでは使い始めた初期設定からこのモードが選択されています。
冒頭で挙げられている、id:Cherenkovさん、id:takerunbaさん、id:amachangさんがこのようになりますね。はてなダイアリーでもエントリー単位で同じ日付の他のエントリーとは一緒に表示されず、コメント・トラックバックも個別の記事として表示されることになります。

「日記モード」

しかし、一方でエントリー単位で管理するのではなく従来通り、日付単位で管理したい、そうした日記を書きたいというユーザーも多くいました。
具体的には私がそうで、現在このダイアリーは「ブログモード」ではなく「日記モード」で書いています。そのため、同じ日付で連続した日記を書けるわけですね。

例えば上のリンク先は同じ内容で、単に表示位置が異なるだけなのが分かるかと。
(ちなみに「ブログモード」と「日記モード」の中間てきな「日記モード・見出し別ページ」というのもあるんですが、面倒なのでここではスルー)




というわけで、整理すると

まとめ

  1. はてなダイアリーは元々、日記サービスだったので日付単位で管理していた。
  2. ところが、ブログ時代になりエントリー単位で管理するサービスが増えた
  3. なので、はてなダイアリーにも「ブログモード」が導入された
  4. でも、従来通り日付単位で管理することもできるので、2つの仕様が混在することになった

ということになります。
ひとことで言えば「色々仕様追加した結果、古いものが残ってたりするのでややこしい」ということですね。
経緯としてはこんな感じの説明になるでしょうか。

はてなダイアリーのPermalinkが異なることについて

まずはこちらの説明から

見出し記法について

2008年12月1日の4つ目のエントリーへのリンク。id:takerunba氏もこのタイプ。
http://d.hatena.ne.jp/Cherenkov/20081201/p4

はてなダイアリーのコメント欄が二種類ある事実とその問題点。 - Cherenkovの暗中模索にっき

id:amachangのところは同じ日なのにこうも違う。
http://d.hatena.ne.jp/amachang/20081125/1227591970
http://d.hatena.ne.jp/amachang/20081125/1227627894

はてなダイアリーのコメント欄が二種類ある事実とその問題点。 - Cherenkovの暗中模索にっき

この場合
http://d.hatena.ne.jp/Cherenkov/20081201/p4
http://d.hatena.ne.jp/UserID/yyyymmdd/p4
と、ユーザーID、年月日ということになります、ここまでは分かりやすいですね。
問題は
http://d.hatena.ne.jp/Cherenkov/20081201/p4
http://d.hatena.ne.jp/amachang/20081125/1227591970
この違いです、おそらくid:Cherenkovさんははてなダイアリーで日記を書くとき

*今日の日記〜

と書かれているのだと思います。
この場合「p数字」という形式に自動的になり、数字はエントリーの数によって加算されていきます。


id:amachangさんの場合10桁の数字になるのは
見出しをつける(見出し記法) - はてなダイアリーのヘルプ

(「管理ツールトップ > 設定 > 編集設定」で見出しの時刻を「保存する」に設定している場合は、現在時刻を意味する10桁の数字(エポック秒)が割り振られます)。

見出しをつける(見出し記法) - はてなダイアリーのヘルプ

という設定をしているからですね。

設定 >

編集設定 >

見出し毎に書き込んだ時刻を「保存する」


と選択すると、

時刻を保存することができ、また10桁の数字(エポック秒)が割り当てられることになります



日記モードの場合は

このように、「/」 ではなく「#」になります。大きな違いはそこですね。でもって、「#」以降がなぜ「p数字」でも「10桁の数字」でもないかというと、ここは自由に変更できるからです。

*今日の日記〜

と書くと

  • http://d.hatena.ne.jp/sample/20081202#p1

と自動的に割り当てられるのですが

*p2008120201*今日の日記〜

こうすると

  • http://d.hatena.ne.jp/sample/20081202#p2008120201

このように変更することができます。
これはブログモードでも同様で、例えば id:kanoseさんはよく変更されていますね。

詳しくは

*1

さらに応用とモードの変更

こちらですが

というURLでアクセスすることもできます。
本来「日記モード」なのに「ブログモード」っぽく、逆に「ブログモード」なのに「日記モード」っぽく表示させられるわけですね。


でもって

こういうことも可能です。
これだと、その日付単位での表示になるわけです。「ブログモード」であっても日付単位で管理していることには変わりませんから、互換性は維持されているわけです。
これも要は「色々仕様追加した結果、古いものが残ってたりするのでややこしい」ということで。

*1:なぜ私が *p2008120101* などとしているか?というと、私自身は、はてなダイアリーの管理に はてなダイアリーライターを使って更新しているため、日付が分かりやすいように *pYYYYMMDDnn* と指定しています

はてなスターの問題

はてなスターのコメント欄

はてなダイアリーのコメント欄が二種類ある事実とその問題点。 - Cherenkovの暗中模索にっき

こちらについては、通常のはてなダイアリーのコメント欄とは異なり、はてなスターのコメント欄になります。
スターコメントとは - はてなスター ヘルプ


「スターコメント」はFavoritesの人だけがコメントを書き込ことができる機能です。書き込まれたコメントはFavoritesの人しか閲覧できないため、Web上に公開されたオープンなブログのエントリーでもプライベートなやりとりが可能です。

スターコメントとは - はてなスター ヘルプ

というもので、「Favorites」というのは
Favoritesとは - はてなスター ヘルプ


☆を付けると、そのブログやダイアリーの持ち主は3ヶ月間あなたのFavoritesになり、あなたのユーザーページ(http://s.hatena.ne.jp/あなたのユーザー名/)にその人のプロフィール画像やユーザー名、最新の☆が付いたエントリーなどが表示されます。このページは誰もが閲覧できるので、他の人のユーザーページを見ることもできます。

Favoritesとは - はてなスター ヘルプ

ということですね。
つまり id:Cherenkovさんの場合は
screenshot
http://s.hatena.ne.jp/Cherenkov/
にアクセスして「Cherenkov favorites となっている人だけに見えるコメント欄」というわけですね。
逆に言うとそれ以外の人には見ることが出来ません。

はてなスター自体を消すには?

はてなダイアリーの管理から

設定 >

記事の設定 >

表示設定 >「はてなスター」アイコンを表示する
で消すことができます。

何故はてなスターがつかないか問題

今度はid:rikuoさんのページ構成が気になってきた。http://d.hatena.ne.jp/rikuo/このトップからだとはてなスターが表示されなくて、http://d.hatena.ne.jp/rikuo/20081128にいってはじめて表示される。

はてなダイアリーのコメント欄が二種類ある事実とその問題点。 - Cherenkovの暗中模索にっき



これは簡単に言えば、はてなスターの不具合、……まぁ、もしくは仕様です


この問題についてはこちらがまず参考になるでしょうか
はてなスターをブログに設置するには - はてなスター日記
はてなスターの仕様上、設置してどの要素を「見出し」や「エントリータイトル」と見なすか?を設定する必要があります。つまりはどこにはてなスターを設置するか決めなくてはならないわけですね。
この設定ははてなダイアリーの場合、何も変更することなくあらかじめ設定されており

Hatena.Star.SiteConfig = {
  entryNodes: {
    'div.section': {
      uri: 'h3 a',
      title: 'h3',
      container: 'h3'
    }
  }
};

このような指定になっています。
記述の意味についての細かい説明は割愛しますが、はてなダイアリーでは H3要素を見出しと見なしてはてなスターを設置することになるわけです。


で、


http://d.hatena.ne.jp/rikuo/20081128
このページの場合はどうか?
実はこのページでは H3要素が無いんですね。見出しを使っていない、ということになります。なので、特別な処理として H3要素ではなく H2要素に対してはてなスターを設置している、という動作になるわけです。


では
http://d.hatena.ne.jp/rikuo/
こちらで2008年11月28日の日記に何故はてなスターが表示されないか?
(最新エントリーで流れてしまっている場合 http://d.hatena.ne.jp/rikuo/200811 で同様の動作になるかと思います)
今度は同ページ中に H3要素が存在するため、そちらが優先され H2要素は無視されるという処理になっています。ですので、このページでは はてなスターが表示されないという結果になります。
まぁ、不具合っちゃ不具合ですが、でもこういう日記を書くスタイルは結構少数派なので、仕方ないかなーと思ってます。






かなり長くなった上、これでも端折った部分もあるのですが、大まかなところは分かったでしょうか?

はてなダイアリーの今後

今回のエントリーは id:Cherenkovさんのためだけじゃなくて、ちょうど別の方からもメールで

リンクをしたいのですが
http://d.hatena.ne.jp/rikuo/20080618
http://d.hatena.ne.jp/rikuo/20080618#p2008061801
どちらが正しいのでしょう?

みたいなことを訊かれたので、まとめておこう、と思った次第。
で、かなり長くなってしまった。


ホント、ややこしいなぁ。



こうした史観については、異論もあるかもしれないし、私自身はてなダイアリー以前の日記サービスをアクティブに使ってたわけでも、はてなダイアリーをベータ版から利用してる古参ユーザーでも、当時のblog黎明期のWeb日記論争にも明るくないので、そうじゃなかったぞ、てきなツッコミがあれば有り難いです。

ただ個人的な捉え方としては、
tDiary の流れの一つであるはてなダイアリーは、そもそもその名前の通り日付単位で管理する「日記サービス」であり、エントリー単位のブログサービスとは土台が異なる
と考えています。
ただ断っておきたいのはそれがイコール優劣ではなくて、単に管理方法の違いというわけですね。

ブログ化するのか?はてなダイアリー

「ブログ」という言葉、またその仕組みがかなり一般化したことにより、日付単位で管理するはてなダイアリーは異質な存在になりました。「ブログモード」という機能が実装され、見た目こそブログっぽく振舞うことはできますが、

何と言っても編集画面は依然日付単位です。
はてなダイアリーへの問い合わせでも

  • 「エントリーを分けるにはどうすればいいのか?」
  • はてなダイアリーは1日に複数のエントリーを書けるのか?」

といった質問が多いらしく*1、同じ入力フォームで「*(アスタリスク)」を使うだけで、エントリーが複数に分けられる、というのは他のブログに慣れている方にすれば戸惑うインターフェースでしょう。
多くのブログサービスでは、エントリー毎に編集できるわけですから。




ただそれは元々が日記サービスであったわけで、経緯を鑑みればそうした編集画面なのは理解できますし、何より私自身が日記モードを使っており、日付単位での管理は便利だと思っていますし、また慣れているので愛着はあります。(個人的には「日記モード」派)。が、何と言っても世の中は一億総ブログ時代。猫も杓子もブログですから、日付単位の日記サービスというのはもう流行らないかなー、っていう。
はてなブックマークがリニューアルされたように、近い将来はてなダイアリーが大規模なリニューアルが行われたら、ブログっぽくエントリー単位の管理になってしまうのだろうか……、と考えてます。


ま、実際そうなるとしたら、根幹も根幹のかなり根っこの部分なので相当な大手術になりそうですけれどもね。

*1:[要出典]ソースはどこだったかなぁ……、id:kiyoheroさんの日記か、週刊はてな塾だっけか?ちょっと不明

もいっこ言うと

もし、はてなダイアリーの大規模なリニューアルがされたら、文字コードとDOCTYPE辺りも見直して欲しいなー

ま、実際そうなるとこれまでのダイアリーとの互換性やら、テーマ・公開デザインを総見直しすることになるんですが。たぶん、はてなスタッフに死者が出るレベルで激しく大変そう。
現実的には、
http://hatena.com/
に新しく、 Diary を立ち上げるとかになるのかなぁ。http://d.hatena.com/ をリニューアルして。

><