« 2007年1月 | トップページ | 2007年3月 »

2007年2月の12件の投稿

2007/02/23

【ココログ】『最近の記事』を日付別ツリー表示するスクリプト

サイドバーの『最近の記事』欄を、日付別にツリー形式で表示するようにしてみました。
ご注意
  1. RSSフィード(ブログのフィード出力)がオンの状態でないと使えません。
  2. 表示される記事数はRSSフィードの記事数(=トップページの記事数)に制限されます。
設置方法は、サイドバーのHTMLが設置できる箇所(メモタイプのマイリスト等)に、
<script type="text/javascript" src="https://furyu.tea-nifty.com/script/cocoEntryTree.js"></script>
<script type="text/javascript">
<!--
cocoEntryTree.newHour=72; //class="latest"が付く時間(0は無効)
cocoEntryTree.newCount=3; //class="latest"が付く記事数(0は無効・newHourの方が優先)
cocoEntryTree.dateDescent = true; //日付の表示順(true:新→旧 false:旧→新)
cocoEntryTree.entryAscent = true; //同一日付内の記事表示順(true:旧→新 false:新→旧)
cocoEntryTree.create();
//-->
</script>
を貼り付けます。
ツリー表示をするには、カスタムCSSに、
ul ul.tree {
  list-style: none;
  margin: 0px;
  padding: 0px;
}
ul ul.tree li {
  margin: 0px;
  padding: 0px 0px 0px 16px;
  font-size: 100%;
  background-image: url(https://furyu.tea-nifty.com/script/29.gif);
  background-repeat: no-repeat;
}
ul ul.tree li.end {
  background-image: url(https://furyu.tea-nifty.com/script/30.gif);
}
のような記述を行います。
takkyunさんのサイト『ふろむにぅじぃ』にアップされている『コメントリストツリー化 for ココログ & ブログ人』と共通で使えます。
既に設置されている方はCSSの方は必要有りません。
日付のところは、
#recent-entries div.date { /* 最近の記事の日付 */
/* ここに日付に対する表示設定を追加 */
}
によりスタイルを設定できます。

また、"NEW"マーク(画像)を付けたい場合には、次のようにします。
KOROPPYの本棚さんの、最近のコメント&トラックバックにアイコンを追加を参考にさせていただきました。
#recent-entries li.latest { /* 最近の記事 */
  list-style: none inside url(表示したい画像のURL);
}
ちなみにこのサイトでは、"NEW"マーク画像として、
アイコン|0円のWEB素材屋さん/ホームページ作成 素材/無料イラスト/アイコン
で配布されていたものを使用させていただいております。
なお、リッチテンプレート等、カスタムCSSを使用できない環境の場合、
<style type="text/css">
/* この間にカスタムCSSの場合と同様の内容を記述 */
</style>
としたものを、サイドバーに(スクリプトと一緒に)貼付けます。
やっていることは、
  1. RSSファイル(index.rdf)をAjaxで取得。
  2. index.rdfを解析して、日付毎に記事をリスト化。
  3. サイドバーの『最近の記事』欄(id="recent-entries")に、2.で取得した記事のリストを追加(ツリー化はCSSによる)。
といった感じです。
なので、制限事項としてRSSを配信する設定でないと動作しません
また、表示される件数はRSSで配信されている件数(=トップページの記事数)に左右されます。
どういうことかというと、通常サイドバーには10件(固定)表示されますが、このスクリプトを使うと、トップページの記事数が例えば5件に設定されている場合には、サイドバーに表示される件数も5件となってしまうということです。
なお、プロコースで上級テンプレート使用時には、RSSの配信件数をトップページの件数とは独立に設定可能です。
元ネタは、
【みんなで解決!広場】ココログをはじめる前の疑問解決!
435.「最新の記事」欄に日付を載せたい
です。

続きを読む "【ココログ】『最近の記事』を日付別ツリー表示するスクリプト" »

2007/02/21

やっぱり温泉はいいなぁ

先週土曜の研修をサボるのは思いとどまりましたが(笑)、その日の早朝に宿を予約して、18(日)~19(月)の一泊、温泉旅行へと出かけて参りました。
19日は振休取得。
1泊しか出来ないので行先にはちょっと悩みましたが、最終的にはせっかく関東に出張しているのだからと、群馬県に決定。
18日早朝に大阪→神奈川に移動、そこで一旦出張先の寮に寄って荷物を置いてから、東京→高崎経由で、川原湯温泉まで。
朝05時半過ぎにうちを出て、宿に着いたのは14時40分頃。途中寄り道したとはいえ、結構かかるものですね。
川原湯温泉から宿(山木館というところ)までは、TELすれば迎えの車も出してもらえるそうです。が、歩くのも旅の楽しみということでぼちぼち歩いていきました。といっても徒歩15分程度、近いものです。
すぐさまお湯に浸かりたいところをぐっとこらえて、まずは近場の散策開始。
『失敗したな~』と思ったのは、有名な観光名所らしい吾妻渓谷を初め、遊歩道が軒並み冬季通行止だったということ。今年は暖冬で雪なんてほとんどなかったのですけれどね……。
それでも、とりあえず近くの不動滝まで歩いてみました。
ちなみに不動尊~不動滝の遊歩道も冬季通行止だったのですけれど、なぜか手元に、中頃を少し雪化粧した滝の画像があるのは秘密です。
この遊歩道、距離なんて短いものなのですけれど、途中しばらくの間手すりがなくて崖に直面している箇所があるので……確かに冬場に雪が積もっていたり、凍っていたりすると危険です。良い子は真似しちゃいけませんよ?
行きは普通の車が通る道路を、帰りは散歩道(『萩の小路』というらしい)の方を、それぞれ歩きました。
心配していた天気も回復し、途中の眺めもなかなかよく、気分よく散策が楽しめたところで、温泉街近くの川原湯神社まで戻って参拝。
そういえばこの神社、インターネットライブ中継しているとか。
そこの足湯に浸かりながらしばらくぼーっとしていたのですが……そういえば案内板に書いてあった、双体道祖神にお目にかかっていないことに気がついて、再度『萩の小路』を引き返す……と、坂道をしばらく下ったところに見付かりました。どうやら帰りに通ったときには、ちょうど蔭になる位置で気がつかずに通り過ぎてしまった模様。
その後、予め宿で只券をいただいておいた王湯という公衆浴場へ。
前に入っていた親子連れが出た後、貸切となった露天風呂につかりました。
小振りの湯船でしたが、ちょうど渓谷を見下ろす位置にあってなかなか眺望もよく、また何よりお湯がいい具合なので、ゆっくりと堪能(後程分析書を見ると、加水のみ・薬剤投入無しの掛け流しのようでした)。
その後は内風呂(こちらはさすがに貸切とは行かず、先客2名ほど)にもざっと浸かって、宿へ戻りました。
うーん、せめて18日中のことは全部書きたかったのだけれど……眠くなってきたので、またにして、今日はこの辺で切り上げます。おやすみなさい……。

……てな記事を書いて[保存]を押したら、何故かページが見つかりませんのエラーが。
あれっと思って時計を見たら、1時40分過ぎ……って、メンテ突入しているじゃないですか、すっかり忘れていましたよ……。

2007/02/17

JavaScript用ヒアドキュメントライブラリを試作

ちょっと工夫して、下のようなヒアドキュメント・ライブラリを作ってみました。
一応、Windows XP 上の IE6 SP2、Firefox 2.0.0.1、Opera 9.10 でサンプルは動作するようです。
外部スクリプトの形でhttps://furyu.tea-nifty.com/script/heredocument.jsに置いてあります。
var hdocLists = new Array() ;

function    hdocInit( tgt ) {
    if ( !tgt ) tgt = location.href ;
    for (;;) {
        var xmlHttpObj = null ;
        if ( typeof ActiveXObject != "undefined" ) {
            var msXml = [ 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP' ] ;
            for ( var ci=0; ci < msXml.length; ci++ ) {
                xmlHttpObj = new ActiveXObject( msXml[ci] ) ;
                if ( xmlHttpObj ) break ;
            }
        }
        else if ( typeof XMLHttpRequest != "undefined" ) {
            xmlHttpObj = new XMLHttpRequest() ;
        }
        if ( !xmlHttpObj ) break ;
        xmlHttpObj.open( 'GET', tgt, false ) ;
        xmlHttpObj.send( null ) ;
        
        var hdocTgtLines = xmlHttpObj.responseText.split(/\r?\n/) ;
        var keyflg = false ;
        var lines = new Array() ;
        var key = '' ;
        for ( var ci=0; ci < hdocTgtLines.length; ci++ ) {
            var line = hdocTgtLines[ci] ;
            if ( line.match( /^<<(.+)$/ ) ) {
                key = RegExp.$1 ;
                keyflg = true ;
                lines = new Array() ;
            }
            else if ( keyflg ) {
                if ( line.match( new RegExp("^"+key+"$" ) ) ) {
                    keyflg = false ;
                    hdocLists[key] = lines.join('\n') ;
                    continue ;
                }
                lines.push(line) ;
            }
        }
        break ;
    }
    
}   // end of hdocInit()

function    hdocGet( key ) {
    return hdocLists[key] ;
}   // end of hdocGet()
使い方は、
  1. 最初にhdocInit()で初期化。
    デフォルトの対象文書はlocation.hrefですが、同一ドメイン内なら引数にURLを指定することで別文書を指定することも出来る……かもしれません。
  2. 例えば変数に代入する場合は、
    var str = hdocGet('hdoc1'
    /*
    <<hdoc1
     :
     :
    【ここに文字列を入れます】
     :
     :
    hdoc1
    */
    ) ;
    シンボル(hdoc1の箇所)は任意です。ただし全文書中でユニークなものであること、最初の"<<(シンボル)"と最後の"(シンボル)"は必ず行頭に記述すること(同一行には他に何も書かない)が条件となります。
コメント(/*~*/)を利用しているので、利用する際には文字列中に含まれる'/*' や'*/'の'/'を'&#x2f;'に置換える必要があるとか、いろいろと制限がありますが、まぁ大目に見てください。
ちなみにscript要素内以外に記述した"<<(シンボル)"~"(シンボル)"も対象となってしまうので注意。
要はhdocInit()時に、対象文書中の"<<(シンボル)"~"(シンボル)"を探して、その中の文字列をシンボルをキーにしてhashに突っ込んでいるわけです。
正規表現が苦手なので、細かいチェックはしてませんし、書き方もベタベタです(苦笑)。

2007/02/16

なんとか出来ないかな?<JavaScriptでヒアドキュメント

続いて、同じ記事から今度は『ヒアドキュメント』の方。
ちなみに『ヒアドキュメント』という名称を昨日初めて知った、というのは秘密ですよ?
とりあえず、今日会社の昼休みに、
<script type="text/javascript">
function    hereDocToStr( fnc ) {
    var lines = fnc.toString().split(/\r?\n/) ; lines.shift() ; lines.pop() ;
    return  lines.join('\n') ;
}   //  end of hereDocToStr()

alert(
hereDocToStr( function(){/*
 (*) とりあえずこんな感じで作ってみましたが、
     果たして動いてくれるものなのですかねぇ?!
    //  でもどっちにしろ、IE専用になっちゃうというのが辛いところ。
    //  いや、'toString()'したときにコメントを残してしまう(ということは
    //  コメントを残したままで内部処理を行っていると思われる)IEの方が変?
*/}
)
) ;
</script>
てなのを試してみたのですが、IE6はOKだけどFirefoxはNGでした(_ _;)/。
Firefoxの場合は、Collection & Copy - ヒアドキュメント、E4Xという技はあるらしいけれども……なんとか統一出来ないものかな?
【追記】
よくみたら既にCollection & Copy - ヒアドキュメント、IE専用、コメントというのがありました。

JavaScriptでsleepの実装を試みる

ぼくはまちちゃん!(Hatena) - デブサミ』というところで、
JavaScriptで、sleep
という話が出ているのを見かけ、そういえば1年程前のJavaScript触りはじめの頃に私も調べたなぁ……と懐かしく思い出されました……けれども、あれ、結局方法見付けたんだっけ?
確か、setTimeout()を駆使して実装している例を見つけた記憶があるのですが(当時はさっぱりわからなかった)、いま検索してもそれらしいのが見当たらない……。
で、それならと自分でも考えてみました。
すぐ思いつくのは、単純にループで時刻をポーリングする方法。
function    JSleep_NowaitLoop( sec ) {
    var startTime = (new Date()).getTime() ;
    var stopTime = startTime + Math.floor(1000*sec) ;
    for (;;) {
        var curTime = (new Date()).getTime() ;
        if ( stopTime <= curTime ) break ;
    }
}   //  end of JSleep_NowaitLoop()
でもこれだと、CPUに負荷がかかりすぎて、最近のブラウザだと警告ダイアログが出てしまいそう。
CPU負荷を軽くするため、なんとかイベント待ち状態を作れないかな、と思って、『そうそう、ダイアログ表示中は待ち状態になるや』と、IE で showModalDialog() を使ってモーダルダイアログを呼出し、それが指定時間で閉じるような実装をしてみるものの、
  1. ダイアログを非表示に出来ない(方法がわからない)。
  2. そもそもIEでしか動かない。
ということで、どうも今ひとつ。
で、最後に、ネットワークの伝送速度に着目。
要は、
  1. 適当なファイルをXMLHttpRequestで取得。
  2. XMLHttpRequestは同期モードで使用(Sjax……だっけ?)。
とすることで、ファイル取得時のリクエスト~レスポンスの間、CPUが待ち状態になることを利用しよう、と。
var JSleepDummyFile = './JSleep.js' ;

function    JSleep( sec ) {
    var startTime = (new Date()).getTime() ;
    var stopTime = startTime + Math.floor(1000*sec) ;
    for (;;) {
        var xmlHttpObj = null ;
        if ( typeof ActiveXObject != "undefined" ) {
            var msXml = [ 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP' ] ;
            for ( var ci=0; ci < msXml.length; ci++ ) {
                xmlHttpObj = new ActiveXObject( msXml[ci] ) ;
                if ( xmlHttpObj ) break ;
            }
        }
        else if ( typeof XMLHttpRequest != "undefined" ) {
            xmlHttpObj = new XMLHttpRequest() ;
        }
        if ( !xmlHttpObj ) break ;
        for (;;) {
            var curTime = (new Date()).getTime() ;
            if ( stopTime <= curTime ) break ;
            xmlHttpObj.open( 'GET', JSleepDummyFile + '?time=' + curTime, false ) ;
            xmlHttpObj.send( null ) ;
        }
        break ;
    }
}   //  end of JSleep()
こんな感じ。
伝送速度によって負荷が変わりそうだし誤差も大きいけれど、まぁ一応動作する(WinXP SP2上のIE6(Sleipnir)・Firefox2・Opera9で確認)……もっとも今はナローバンドなので、ブロードバンドでは試せないのだけれど。
動作サンプルはこちら

2007/02/14

そういえばバレンタインデー

帰りに寄った本屋で、主にバレンタインデーをターゲットにしていると思われる手作りプレゼントの作り方といった本が置いてある棚に、『プレゼント包装致します』と貼紙があるのを見て、「?」。
今どきはこういう本をバレンタインにプレゼントして、お返しにホワイトデーに手作り物を返してもらうのが流行なのか、とかちょっと思ってしまったのですが(ほんとにそうだったりして)。
あるいはその逆で、手作りものをプレゼントしてもらった人がお返しにこういった本を渡す……というのは、いささか意地が悪過ぎる、かな……よっぽどしゃれが通じる相手じゃないとね。
ちなみにわたくし、ただでさえ縁がないところにもってきて、今年は出張中なので職場での義理チョコすらもらえません……とほほ。

小指って、大切

いま文章打っていて思い出しましたが、左手の小指が痛いんですよ、そういえば。
だれに噛まれたわけでもないのですが。
じっとしていたり、グーとパーを繰り返す分にはそうでもないのですが、独立して延ばしたり曲げたりしたときにつけ根に鈍痛が走るのです。
キーボード操作していると、顕著に痛い。なんだろう、これ……。
タッチタイプしているときの左の小指って意外と守備範囲が広いし、[Ctrl]や[Shift]といった重要なキーをしょっちゅう叩くので、その度に『痛ッ』とか思っているとリズムが大幅に狂うんですよねぇ。

風邪が長引いてます……

風邪がなかなか治りません。なにより、咳で体力が奪われてしまうのが辛いところ。
先週末もどこにも出かけずに(あ、出張先から自宅への移動はありましたが)大人しく寝ていました。身体のだるさもあって、PCをさわる気にもならず、本をちょっと読んだだけ……不毛な三連休でした。
ほんとは、梅を見に行こうかな、とか思っていたのですけれどねぇ。
そういえば、今週末の土曜は振替出勤日(?)で、会社の研修なんだよな……休みにして温泉でも行ってやろうかしら(苦笑)

2007/02/09

ココログ:使い方ガイドのアクセスランキング

■お知らせココログ: 使い方ガイドのアクセスランキングを公開しました!

ココログの使い方ガイドで、よく見られている上位10項目を、ココログサポートページで公開しました。

使い方ガイド アクセスランキング:トップ10

へぇ~っと思って見てみたら、JavaScriptだったので、早速「『みんなで解決!広場』フレーム版」のトップとサイドメニューにも貼り付けてみました。

当たり前

職場での会話。
ペットボトルのお茶を何本か買って戻ると、隣の席の人から
「飲み物の消費、激しいですよね」
と言われたので、
「ええ、飲み物がないと生きていけないんです。」
と答えたら、
「……そうですよね」
と、なぜか含み笑い。
しばらく理由がわからなかったよ……。
私はきっと、「飲み物がないと仕事にならない」とか、言いたかったんだと思う……。

2007/02/07

咳が止まらない……

先日来の風邪が治りません。
週末は土曜の朝に出張先から自宅に戻った後は、ほぼ1日半程大人しく寝て養生していたのですけれど……というか、咳が酷くなり、悪化しているという話も。
咳が止まらない→喉と腹筋が痛くなる。
マスクをする→眼鏡が曇る、暖冬のせいで暑くて汗が出てくる。
……困ったものです。
まぁ、熱はそれ程高くないので、普通に出勤していますけれど。

2007/02/01

一月は逃げた

新年早々、仕事上で妙に慌ただしい日々が続いたと思ったら、今日はもう二月ですよ。
本日より再び長期出張生活。いつまでか不明。新規案件で、まだ何も見えていないので甚だ不安。
先週末出張で風邪をもらってきたのか、喉は痛いわ身体はだるいわ……ということで昨日は早めに帰宅して寝てしまいましたが、目が覚めた今もあまり変わっていない……というか悪化しているような。幸先わっるー。
今週末はホテルに2泊……ということで、ネット環境があるところを探して予約。
でも来週からは寮なので、またナローバンド生活が続くことに……。
それでも、今度は机と椅子と小さい本棚はあるらしいから、まだましかな?

« 2007年1月 | トップページ | 2007年3月 »

戻るリンク追加

カレンダー

2025年5月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

ココログカレンダーPlus(旧2)

検索


    • Web全体 サイト内
    • 蔵書のISBNを入力して下さい
    • はじめる前
      初級者向け
      上級者向け
      ブログ紹介
      結果を表示

コメントリストツリー化

無料ブログはココログ