Blogger技巧
Blogger中,只要点击一个标签,或者搜索文章的话,出来的结果都是全篇的文章,打开的时候很影响速度,而且很繁杂,用下面这个代码,可以优化一下,只在主页显示整幅文章,搜索、结果、标签、和第二页文章中,都只显示标题。
第一步,在“修改HTML”中,查找到一下这部分代码。
<b:widget id='Blog1' locked='false' title='Blog Posts'
type='Blog'>
<b:includable id='main' var='top'>
<!-- posts
-->
<div id='blog-posts'>
<b:loop values='data:posts'
var='post'>
<b:if cond='data:post.dateHeader'>
<h2
class='date-header'><data:post.dateHeader/></h2>
</b:if>
<b:include data='post' name='post'/>
<b:if cond='data:blog.pageType == "item"'>
<b:if
cond='data:post.allowComments'>
<b:include data='post'
name='comments'/>
</b:if>
</b:if>
</b:loop>
</div>
第二步,将上面红色部分的代码,替换成一下蓝色的。
<b:if cond='data:blog.homepageUrl !=
data:blog.url'>
<b:if cond='data:blog.pageType !=
"item"'>
<a expr:href='data:post.url'>
<data:post.title/></a><br/><br/>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
<b:else/>
<b:include data='post' name='post'/>
</b:if>
2008年9月21日
此技巧大大的好!我个人非常喜欢,效果就是我博客中的那个。
第一步,把一下代码,添加到<head>和</head>中间,然后保存。
<script
type="text/javascript">
//<![CDATA[
var relatedTitles = new
Array();
var relatedTitlesNum = 0;
var relatedUrls = new
Array();
function related_results_labels(json) {
for (var i = 0; i <
json.feed.entry.length; i++) {
var entry =
json.feed.entry[i];
relatedTitles[relatedTitlesNum] = entry.title.$t;
for
(var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel ==
'alternate') {
relatedUrls[relatedTitlesNum] =
entry.link[k].href;
relatedTitlesNum++;
break;
}
}
}
}
function
removeRelatedDuplicates() {
var tmp = new Array(0);
var tmp2 = new
Array(0);
for(var i = 0; i < relatedUrls.length; i++)
{
if(!contains(tmp, relatedUrls[i])) {
tmp.length += 1;
tmp[tmp.length
- 1] = relatedUrls[i];
tmp2.length += 1;
tmp2[tmp2.length - 1] =
relatedTitles[i];
}
}
relatedTitles = tmp2;
relatedUrls =
tmp;
}
function contains(a, e) {
for(var j = 0; j < a.length; j++)
if (a[j]==e) return true;
return false;
}
function printRelatedLabels()
{
var r = Math.floor((relatedTitles.length - 1) * Math.random());
var i =
0;
document.write('<ul>');
while (i < relatedTitles.length
&& i <
20) {
document.write('<li><a href="' + relatedUrls[r] + '">'
+ relatedTitles[r] + '</a></li>');
if (r <
relatedTitles.length - 1) {
r++;
} else {
r =
0;
}
i++;
}
document.write('</ul>');
}
//]]>
</script>
第二步,选中“扩展窗口小部件模板”,然后查找下面红色的部分。
<b:if
cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop
values='data:post.labels' var='label'>
<a expr:href='data:label.url'
rel='tag'><data:label.name/></a><b:if cond='data:label.isLast
!=
"true"'>,</b:if>
</b:loop>
</b:if>
第三步,将上面红色的部分,替换为下面蓝色的部分,然后保存。
<b:if cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels'
var='label'>
<a expr:href='data:label.url'
rel='tag'><data:label.name/></a><b:if cond='data:label.isLast
!= "true"'>,</b:if>
<b:if cond='data:blog.pageType ==
"item"'>
<script
expr:src='"/feeds/posts/default/-/" + data:label.name +
"?alt=json-in-script&callback=related_results_labels&max-results=10"'
type='text/javascript'/>
</b:if>
</b:loop>
</b:if>
第四步,保存完毕后,转到“页面元素”中,添加一个HTML/Javascript模块,在里面添加如下代码,这个模块,即是“相关文章”的模块,把它放到你想要的位置,然后保存。
<script
type="text/javascript">
removeRelatedDuplicates();
printRelatedLabels();
</script>
第五步,回到“修改HTML”,找到你刚才添加的那个“HTML/Javascript模块”的那部分代码。查找到的代码,应该为如下黑色字体部分所示。下面的代码中,蓝色标注的“HTML13”为你那里刚才添加完成的“HTML/Javascript模块”的编号,所以并不一定是HTML13,仔细找找就能发现。在这部分代码中,添加上红色的代码,保存就可以了。
<b:widget
id='HTML13' locked='false' title='Related Posts'
type='HTML'>
<b:includable id='main'>
<b:if
cond='data:blog.pageType == "item"'>
<!-- only display title if it's non-empty -->
<b:if
cond='data:title != ""'>
<h2
class='title'><data:title/></h2>
</b:if>
<div
class='widget-content'>
<data:content/>
</div>
<b:include
name='quickedit'/>
</b:if>
</b:includable>
</b:widget>
自定义部分:修改上面代码中,蓝色粗体标注的i <
20和红色粗体标注的max-results=10即可定制显示“相关文章”的数目了。
Blogger 显示摘要
1、 在样式表中加入以下代码:
.post-body2{
BORDER-RIGHT: 0px;
BORDER-TOP: 0px;
OVERFLOW:
hidden;
BORDER-LEFT: 0px; BORDER-BOTTOM: 0px;
HEIGHT:
150px;
TEXT-OVERFLOW: ellipsis;
}
2、找到<p><data:post.body></p>改为以下代码:
<b:if cond='data:blog.pageType ==
"item"'>
<p><data:post.body/></p>
<b:else/>
<div
class='post-body2'>
<p><data:post.body/></p>
</div>......<p>
<a
expr:href='data:post.url' title='阅读全文'><b>[阅读全文]</b></a></p>
</b:if>
这样以后发帖就不需要选择显示部分了,自动截取一部分显示出来
使用Google Blog Search为Blogger添加全文搜索
<script type="text/javascript">
function blogsearch () {
var wq=document.getElementsByName("wq")[0].value;
var link="http://blogsearch.google.com/blogsearch?hl=en&ie=UTF-8&q=blogurl:http://yourname.blogspot.com+"+wq;
window.open(link); }
</script>
<input id="query" name="wq" type="text"/>
<input id="b-searchbtn" value="Search" onclick="javascript:blogsearch()" type="submit"/>