Twitter のログをブログに表示してみた記録。基本的には簡単。ジェネレータで生成した HTML を貼り付けるだけだ。
[Movable Type] Twitterウィジェットをサイドバーに追加してみた – No Second Life
http://www.ttcbn.net/no_second_life/2009/02/movable-type-twitter.html
だけどそのままでは味も素っ気もない。読み込みが終わるまで空欄のままだし、表示も白黒になってしまう。ある程度整形して表示するようにしてみた。
テンプレートの作成
例によって、このブログで使っている mt.Vicuna テーマにあわせた設定なのでよろしく。まずは、ウィジェットのテンプレートを作成する。コード内の“delphinus35”は各自のアカウント名に変えること。以下同様。
<dt>twitter updates</dt>
<dd>
<div id="twitter-link-wrapper">
<a href="http://twitter.com/delphinus35" id="twitter-link"
class="small button orange">follow me on twitter</a>
</div>
<div id="twitter_div">
<ul id="twitter_update_list">
<li>読み込み中です……</li>
</ul>
</div>
</dd>
“follow me on Twitter”ボタンに設定している“small button orange”というクラスは「【MovableType】Twitter のつぶやきをサイドバーに表示する」で説明したものだ。きれいなボタンが簡単に作成できるのでおすすめ。
次にテンプレートモジュールを作成する。アカウント名は変えること。
<script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script> <script type="text/javascript" src="http://twitter.com/statuses/user_timeline/delphinus35.json?callback=twitterCallback2&count=10"></script> <script type="text/javascript" src="/js/minmax.js"></script>
2 行目の URL の最後にある“count=10”というのが表示するつぶやきの数になる。3 行目については後述。
このコードは、本当は上述のウィジェットに含めてしまってもいいのだが、Javascript はなるべくページの最後に読み込むようにした方がよい。“フッター”テンプレートに一行追加して、ページの読み込みが終わる直前にスクリプトを動作させる。
<div id="footer">
<ul class="support">
<li>Powered by <a href="http://www.sixapart.jp/movabletype/"><$mt:ProductName version="1"$></a></li>
<li class="template"><a href="http://vicuna.jp/">vicuna CMS</a> - <a href="http://mt.vicuna.jp/" title="ver.2.3">Movable Type Template</a></li>
</ul>
<address>Copyright © <$mt:BlogName encode_html="1"$> All Rights Reserved.</address>
<$mt:Include module="Twitter Updates Javascript"$>
</div>
スタイルシートの設定
後はスタイルシートの設定だ。次の CSS を用意する。
/* Twitter Updates */
#twitter_update_list {
width: 208px;
max-height: 40em;
overflow: scroll;
overflow-x: hidden;
}
#twitter_update_list li {
width: 161px;
overflow-x: hidden;
margin-bottom: 1em;
padding: 0.5em;
background-color: #cee4ae;
border-radius: 1em;
-webkit-border-radius: 1em;
-moz-border-radius: 1em;
}
#twitter-link-wrapper {
padding: 6px 5px 0 15px;
}
#twitter-link {
display: block;
width: 10em;
margin-left: 1em;
}
今回は“max-height”プロパティを使って表示域の高さを可変にして、スクロールバーを付けてみた。だが、このプロパティは IE で使えない(またか……)。そこで、先ほどコードに書いた“minmax.js”の出番だ。
min-width、min-height、max-width、max-heightをIE6でも実装する方法 | CSS Lecture
http://www.css-lecture.com/log/css/038.htmldoxdesk.com: software: minmax.js
http://www.doxdesk.com/software/js/minmax.html
かなり古い(2003 年と書いてあってビックリ)スクリプトだがきちんと動作する。これで IE でも何とか見れる体裁になった。角丸だけはどうしようもないけど……まあいいや。
