日付をタグとして入力する。
del.icio.usには日付ごとにポストを管理できない。さらには、日付が日本時間ではない。そこでポスト時にタグに今日の日付を自動入力するようなuserjavascriptを作ってみた。Opera用。
if(location.href.match(/http:\/\/del.icio.us\/\w*(\/\w*(%2B\w*)*)?\?(v=\d\&)?url=/)) document.addEventListener('load',addDateTag,false); function addDateTag() { var mary = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); var c = new Date(); y = c.getYear(); ry = (y < 2000) ? y + 1900 : y; m = c.getMonth(); d = c.getDate(); lm = mary[m]; exit_tag = document.getElementById('tags').value; tod = ry + '-' + lm + '-' + d; if(!exit_tag.match(/\d{4}-[A-Za-z]{3}-\d\d/)) swap(tod); }
urlをマッチさせる正規表現があってるかどうかが心配。
これで,http://del.icio.us/higeorange/2006-Feb-26のリンクで2/26にポストしたものが見れるようになる。
これははてなのhttp://www.hatena.ne.jp/1140864024の質問を見て考えてみた。
追記
問題発生、一度登録したものを編集しようとして、既に日付のタグが入ってる場合、それを消してしまう。また、初めて投稿したときと違う日に編集しようとすると、日付タグが付け足されて日付タグが2つになってしまう。
てことで修正。
日付タグを付けることの問題点
タグが増殖しつづける。解決策としては年、月、日を別のタグとして登録するのもひとつの手ではあるなと思う。そうすれば http://del.icio.us/higeorange/2006+Feb+26 って感じのURLでアクセスできる。
年、月、日を別のタグとして登録する場合
if(location.href.match(/http:\/\/del.icio.us\/\w*(\/\w*(%2B\w*)*)?\?(v=\d\&)?url=/)) document.addEventListener('load',addDateTag,false); function addDateTag() { var mary = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'); var c = new Date(); y = c.getYear(); ry = (y < 2000) ? y + 1900 : y; m = c.getMonth(); d = c.getDate(); lm = mary[m]; exit_tag = document.getElementById('tags').value; tod = ry + '-' + lm + '-' + d; if(!exit_tag.match(/\d{4}\s[A-Za-z]{3}\s\d\d/)) swap(ry+' '+lm+' '+d); }
swap()をタグごとにしてやったみたがエラーがでてしまったので上のようにしてみた。
修正 03/07 18:50
urlマッチで"v="の後の数字を2に限定していたが3も存在したようなので数字がくればマッチするように修正.
まぁ別に"(\v=\d\&)?"をとっても問題ないとは思う."?"つけてることだし.