github pageでコミットログを表示

http://pages.github.com を使用して久々にサイト構築をやり始めてみた。
github系のページなのでリポジトリのコミットログをRSSで取得しようとJavaScriptを書いたのだが...。github.com と teramako.github.com ならドメインがいっしょだからXMLHttpRequest出来るもんだと思っていたんだけど、違うねの orz

まぁそんなんで諦めるのは早いってことでGithub側でAPIを用意していないか探してみたらあったThe GitHub API - Guides - GitHubJSONPが使える!

で、早速実装してみた結果→http://teramako.github.com/

使用しているJavaScripthttp://teramako.github.com/js/commit_history.js

ただ、たぶんGeckoでないと動かない。内部でHTML文字を書くのが面倒でE4X使っちゃったりしているからね。

function formatDate(date, format){
  function formatter(all, id){
    var buf;
    switch (id){
      case "Y":
        buf = date.getFullYear(); break;
      case "m":
        buf = date.getMonth() + 1; break;
      case "d":
        buf = date.getDate(); break;
      case "H":
        buf = date.getHours(); break;
      case "M":
        buf = date.getMinutes(); break;
      case "S":
        buf = date.getSeconds(); break;
    }
    return buf >= 10 ? buf : "0" + buf;
  }
  return format.replace(/%(.)/g, formatter);
}

このformatDate関数とか個人的には気にっているのだけど、String.replaceの第2引数にfunctionオブジェクトか他のエンジンでは使えそうにないんだよなぁ。

クロスブラウザスクリプトを書きたいと思いつつ、ついつい安易に知っている方法を取ってしまう...。jQueryとかのライブラリ使えばそれなりに補完できるんだろうけど、使い方を覚えるのが面倒で敬遠しがちだし。