shooven.lye

blogger beta 收缩展开
shooven.lye | Nov 15, 2006 4:11:26 PM
这是鱼在Blogger classic里曾用过的一个Hack,个人认为非常实用。Thanks to singpolyma.

1.展开代码,紧跟</head>之前,添加下面代码。

<script type="text/javascript">
//<![CDATA[
var comment_form_template = '<div class="comment-poster">[[AUTHOR]]</div>\n'
+ '<div class="comment-body"><div class="innerCmntBody">[[BODY]]</div></div>\n'
+ '<div class="comment-timestamp">[a href=`[[PERMALINK]]` title=`[[DATE]]`]</div>\n';
//]]>
</script>
<script type='text/javascript'>
//<![CDATA[
function peekaboo_comments_display(data) {
   var template = '';
   function zeropad( n ){ return n>9 ? n : '0'+n; }
   data.items.reverse();
   for(i in data.items) {
      if(!data.items[i].link) continue;
      var tmp = data.items[i].link.split('#');
      data.items[i].link = tmp.join('#c');
      var dt = data.items[i].updated.match(/^(\d+)-(\d+)-(\d+)T(\d+):(\d+):(\d+)\.(\d+)([+-]\d+):(\d+)$/);
      var time = new Date(parseInt(dt[1],10), parseInt(dt[2],10)-1 /*since January==0 in Date lingo*/, parseInt(dt[3],10), parseInt(dt[4],10), parseInt(dt[5],10), parseInt(dt[6],10), parseInt(dt[7],10)).getTime();
      time = time + -(60*60*1000*parseInt(dt[8],10)) + -(60*1000*parseInt(dt[9],10));//adjust to GMT
      time = time + -(60*1000*(new Date()).getTimezoneOffset());
      time = new Date(time);
      time = time.getFullYear() + '-' + zeropad(time.getMonth()+1) + '-' + zeropad(time.getDate()) + ' ' + zeropad(time.getHours()) + ':' + zeropad(time.getMinutes());
      if(typeof(data.items[i].content) == 'undefined' || !data.items[i].content) data.items[i].content = data.items[i].summary;
      var out = comment_form_template;
      out = out.replace(/\[\[PERMALINK\]\]/,data.items[i].link);
      out = out.replace(/\[\[DATE\]\]/,time);
      out = out.replace(/\[\[AUTHOR\]\]/,data.items[i].author.name);
      out = out.replace(/\[\[BODY\]\]/,data.items[i].content);
      document.write(out);
   }//end for i in data
}//end if function peekaboo_comments_display
//]]>
</script>

<script type="text/javascript">
   function toggleitem(postid,linkid,newtxt,displaytype) {
      if(!displaytype) {displaytype = 'block';}
      var whichpost = document.getElementById(postid);
      if (whichpost.style.display != "none") {
         whichpost.style.display = "none";
      } else {
         whichpost.style.display = displaytype;
      }
      if(linkid) {
            var lnk = document.getElementById(linkid);
            lnk.href = "javascript:toggleitem('"+postid+"','"+linkid+"','"+lnk.innerHTML+"');";
            lnk.innerHTML = newtxt;
       }
   }//end function toggleitem
</script>

2.找到

<b:loop values='data:post.comments' var='comment'>
  <dt class='comment-author' expr:id='"comment-" + data:comment.id'>

紧跟它之前添加以下代码: 

<b:loop values='data:post.feedLinks' var='f'>
   <b:if cond='data:blog.pageType != "item"'>
      <script expr:src='"http://xoxotools.ning.com/outlineconvert.php?output=json&amp;amp;classes=items&amp;amp;url=" + data:f.url + "&amp;amp;callback=peekaboo_comments_display"' type='text/javascript'/>
   </b:if>
</b:loop>

3.找到 

<b:includable id='comments' var='post'>
  <div class='comments' id='comments'>

将红色部分替换为下面部分:

<div class='comments' expr:id='"comments" + data:post.id'>
<b:if cond='data:blog.pageType != "item"'>
   <script type='text/javascript'>
      document.getElementById('comments<data:post.id/>').style.display = 'none';
   </script>
</b:if>

4.找到

<b:if cond='data:blog.pageType == "item"'>
   <b:if cond='data:post.allowComments'>
      <b:include data='post' name='comments'/>
   </b:if>
</b:if>

替换为: 

<b:if cond='data:post.allowComments'>
      <b:include data='post' name='comments'/>
   </b:if>

5.找到 

<b:if cond='data:post.allowComments'>
   <a class='comment-link' expr:href='data:post.addCommentUrl' expr:onclick='data:post.addCommentOnclick'><b:if cond='data:post.numComments == 1'>1 <data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a>
</b:if>

替换为: 

<b:if cond='data:post.allowComments'>
   <a class='comment-link' expr:href='data:post.url + "#comments"' expr:onclick='"toggleitem(&amp;quot;comments" + data:post.id + "&amp;quot;);return false;"'><b:if cond='data:post.numComments == 1'>1 <data:top.commentLabel/><b:else/><data:post.numComments/> <data:top.commentLabelPlural/></b:if></a>
</b:if>

最后保存模板。

Tag: Blogger Bloggerhack

Comment: (no reply)
To post your comment, Please login first.