2009-07-21

如何为Blogger添加最新文章

  1. 从blogger后台进入"布局-页面元素"。
  2. 点击侧边栏"添加小工具",增加一个"HTML/JavaScript"。
  3. 在"内容"中填入下面代码,其中加粗内容控制了第一文章索引和每页显示数量。
    <div id="newPosts">
      <noscript>failed!<br/>Javascript not supported here!</noscript>
    </div>

    <script>
    var nPostStartIndex = 2;
    var nPostShow = 7;


    function showRecentPosts(nIndex) {
      if (!nIndex)
        nIndex = nPostStartIndex;
      var sFeedURL = '/feeds/posts/summary?orderby=published&start-index='+nIndex+'&max-results='+(nPostShow+1)+'&alt=json-in-script&callback=generatePosts';
      var script = document.createElement('script');
      document.getElementById('newPosts').innerHTML = 'Loading <blink>...</blink>';
      script.setAttribute('src', sFeedURL);
      script.setAttribute('type', 'text/javascript');
      document.documentElement.firstChild.appendChild(script);
    }

    function generatePosts(json) {
      function compareentry(a,b) {
        order= Date.parse(a.published.$t.replace(/^(\d{4})-(\d{2})-(\d{2})T([0-9:]*)([.0-9]*)(.)(.*)$/, '$1/$2/$3 $4 GMT')) - Date.parse(b.published.$t.replace(/^(\d{4})-(\d{2})-(\d{2})T([0-9:]*)([.0-9]*)(.)(.*)$/, '$1/$2/$3 $4 GMT'));
        return 0-order;
      }
     
      var sHTML = '<ul>';
      var sortentry = json.feed.entry.sort(compareentry);
      var nIndex = parseInt(json.feed.openSearch$startIndex.$t);
      var nTotalPost = parseInt(json.feed.openSearch$totalResults.$t);
      for (var i = 0, Post; Post = sortentry[i]; i++) {
        if (i >= nPostShow)
          break;
        var title = Post.title.$t;
        var j = 0;
        while (j < Post.link.length && Post.link[j].rel != "alternate")
          j++;
        var link = Post.link[j].href;
        var timestamp=Post.published.$t.substr(0,10);
        sHTML += '<li><span class="item-title"><a href="'+link+'">'+ title +'</a> - '+timestamp+'</span></li>';
      }
      sHTML += '</ul>';
      sHTML += generatePostLink(parseInt(json.feed.entry.length), nIndex, nTotalPost);
      document.getElementById('newPosts').innerHTML = sHTML;
    }

    function generatePostLink(nFetch, nIndex, nTotalPost) {
      var bOld = (nFetch > nPostShow);
      if (bOld) nFetch = nPostShow;
      var sResult = '<p align="right">Recent '+nIndex+'-'+(nIndex+nFetch-1)+', total: '+nTotalPost+'.  ';
      if (nIndex > nPostStartIndex)
        sResult += '<a href="javascript:showRecentPosts('+(nIndex-nPostShow)+');" title="Newer Posts"><<</a>  ';
      if (bOld)
        sResult += '<a href="javascript:showRecentPosts('+(nIndex+nPostShow)+');" title="Older Posts">>></a>';
      sResult += '</p>'; 
      return sResult;
    }
    </script>

    <script language="javascript">showRecentPosts();</script>
  4. 更改标题为"最新文章"。
  5. 保存。