2004年5月11日追記:このテクニックは不要になりました。「見出しのname属性の指定機能」(d:id:hatenadiary:20040511#h3name)で代替できます。
今日は試験的に、すべての小見出しに書き込み時刻(タイムスタンプ)を入れ、記事を上へ上へと追加していっています。今日の最新の記事は、常に最上部にあります。
これらを満たすために、2つのことをしています。
- 書き込み時刻が「00:00」になるよう、記入後に編集
- スタイルシートを調整して、書き込み時刻を非表示に
まず書き込み時刻の編集について説明します。
小見出しの先頭に「*t*」を入れて書き込むと、その部分は「*1068735600*」といった数字に置換されます。この数字は、いったん書き込んだあとに編集できます。
この数字は、1970年1月1日午前9時0分0秒から、書き込み時刻までの秒数(エポック秒)です。
たとえば今日の午前9時0分0秒に、「*t*」つきの小見出しで記事を書き込むと、「*1068768000*」という数字になります。午前9時0分1秒なら1増えて、「*1068768001*」です。
そして、1970年1月1日午前9時0分0秒から今日の午前0時0分0秒までの秒数を計算して、上の数字から置き換えれば、書き込み時刻は「00:00」になるという寸法です。
その計算方法は、Excelがあればたとえば
=(TODAY()-DATE(1970,1,1))*(60*60*24)-(60*60*9)
といった式で出せます。今日ならば、「*1068735600*」にすれば書き込み時刻が「00:00」になります。
複数の小見出しを書き込む場合、この数字を1ずつ増やしていけばいいでしょう(小見出しごとに数字を変えないと、複数の小見出しが同じURLになってしまって、よくありません)。
実際、今日の小見出しは下から順に「*1068735600*」「*1068735601*」と、1ずつ増やしています。それぞれ、今日の0時0分0秒、0時0分1秒に書き込んだことになります。この調子で数字を増やしていくと、60番目の小見出し「*1068735660*」は書き込み時刻が「00:01」になります。1日に60以上の小見出しを書く日は、すべての書き込み時刻を「00:00」に統一することはできません。
ともあれこれで、その日の小見出しを上へ上へと追加していっても、URLは常に固定されたものになります。
なお明日(11月15日)の0時0分0秒は「1068822000」、16日の0時0分0秒は「1068908400」です。1日は86400秒ですので、毎日86400ずつ増えていきます。
追記:「*t*」と記入してから編集するのではなく、いきなり「*1068768000*」などと記入してもかまいません。この方法ならば、記事を記入した時点で記事のタイムスタンプを自由に指定でき、記入後に「編集」する必要はなくなります。
次に、書き込み時刻を非表示にする方法です。
これは昨日の記事でも少し触れましたが、スタイルシートを指定します。
span.timestamp{display:none;}
これで、スタイルシートを解釈するブラウザにおいて、書き込み時刻は表示されなくなります。
スタイルシートを解釈しないブラウザや、スタイルシートを無効にしたブラウザなどでは、書き込み時刻が表示されます。しかし「00:00」が並んでいれば、多くの人はその時刻情報がナンセンスなものであると理解してくれるでしょう。
なおこれらの方法は、将来はてなダイアリーの機能拡張によって不要になる可能性があります。
また、間違いや問題があればぜひご指摘ください。
- 既知の問題
- 「*t*」を使うと小見出しのname属性が数字で始まるようになるため、HTML4.01の記述ルールから外れてしまいます(→d:id:Imamura:20031113:p1)。これは、HTMLを正しく書くことを気にする方には気になるところでしょう。「はてなダイアリーへの要望」はd:id:Imamura:20031113:p1で出してありますので、運営側の対応を期待したいです。