标签云 test (tag cloud 测试)

相信这是很多人期待的功能吧。以前用Delicious为Blogger添加标签云,现在我们的方法更简单。
请于修改之前备份你的模板。
Step1:我们知道,Blogger beta的代码分为三部分:样式表、布局、Widget。第一步我们不需要展开代码,添加CSS代码。找到 ]]></b:skin> ,并将CSS添加在其之前。

/* Label Cloud Styles
----------------------------------------------- */
#labelCloud {text-align:center;font-family:arial,sans-serif;}
#labelCloud .label-cloud li{display:inline;background-image:none !important;padding:0 5px;margin:0;vertical-align:baseline !important;border:0 !important;}
#labelCloud ul{list-style-type:none;margin:0 auto;padding:0;}
#labelCloud a img{border:0;display:inline;margin:0 0 0 3px;padding:0}
#labelCloud a{text-decoration:none}
#labelCloud a:hover{text-decoration:underline}
#labelCloud li a{}
#labelCloud .label-cloud {}
#labelCloud .label-count {padding-left:0.2em;font-size:9px;color:#000}
#labelCloud .label-cloud li:before{content:"" !important}


Step2:添加布局部分代码。我们仍然要先找到 ]]></b:skin> ,但这一次我们要在它之后、/Head之前添加以下代码:


<script type="'text/javascript'">// Label Cloud User Variablesvar lcBlogURL = 'http://YOURBLOG.blogspot.com';var maxFontSize = 20;var maxColor = [0,0,255];var minFontSize = 10;var minColor = [0,0,0];var lcShowCount = false;</script>

修改YOURBLOG为你的名字,其中关于颜色,文字大小等值可以自定义,以跟你的Blog色调打配。
简单介绍一下,maxFontsize表示字体最大值,minFontSize表示字体最小值,minColor表示颜色最浅值,maxColor表示颜色最深值。

Step3:最后要修改的是Widget本身了。继续往下看就会找到Label的Widget
类似这一句:
如果你没有展开代码,只需要用以下代码替换这一行;相反,你要替换整个Widget。


代码部分


<b:widget id='Label1' locked='false' title='Label Cloud' type='Label'>

<b:includable id='main'>

<b:if cond='data:title'>

<h2><data:title/></h2>

</b:if>
<div class='widget-content'>
<div id='labelCloud'/>

<script type='text/javascript'>

// Don't change anything past this point -----------------

function s(a,b,i,x){
if(a&gt;b){
var m=(a-b)/Math.log(x),v=a-Math.floor(Math.log(i)*m)
}

else{
var m=(b-a)/Math.log(x),v=Math.floor(Math.log(i)*m+a)
}

return v
}

var ta=0;
var c=[];
var labelCount = new Array();
var ts = new Object;
<b:loop values='data:labels' var='label'>
var theName = &quot;<data:label.name/>&quot;;
ts[theName]
= <data:label.count/>;
</b:loop>
for (t in ts){
if (!labelCount[ts[t]]){
labelCount[ts[t]]
= new Array(ts[t])
}

}

tz
= labelCount.length-1;
lc2
= document.getElementById('labelCloud');
ul
= document.createElement('ul');
ul.className
= 'label-cloud';
for(var t in ts){
for (var i=0;3 &gt; i;i++) {
c[i]
=s(minColor[i],maxColor[i],ts[t]-ta,tz)
}

var fs = s(minFontSize,maxFontSize,ts[t]-ta,tz);
li
= document.createElement('li');
li.style.fontSize
= fs+'px';
li.style.lineHeight
= '1';
a
= document.createElement('a');
a.title
= ts[t]+' Posts in '+t;
a.style.color
= 'rgb('+c[0]+','+c[1]+','+c[2]+')';
a.href
= lcBlogURL+'/search/label/'+encodeURIComponent(t);
if (lcShowCount){
span
= document.createElement('span');
span.innerHTML
= '('+ts[t]+') ';
span.className
= 'label-count';
a.appendChild(document.createTextNode(t));
li.appendChild(a);
li.appendChild(span);
}

else {
a.appendChild(document.createTextNode(t));
li.appendChild(a);
}

ul.appendChild(li);
abnk
= document.createTextNode(' ');
ul.appendChild(abnk);
}

lc2.appendChild(ul);
</script>
<noscript>
<ul>
<b:loop values='data:labels' var='label'>
<li>
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>
<b:else/>
<a expr:href='data:label.url'><data:label.name/></a>
</b:if>
(
<data:label.count/>)
</li>
</b:loop>
</ul>
</noscript>
<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>







Step4:have fun ^-^

0 comments: