原文:[筆記]標籤雲(Tag Cloud)
虽然完成了,但还是有些问题要补充一下:
在步骤3
<b:widget id="'Label1'" locked="'false'" title="'Labels'" type="'Label'/">代码不止是窗口所列的,应该一直到widget语句结束的所有代码。原来我的标签已经修改过代码,知道怎么改,所以也没有遇到麻烦,但如果第一次修改,还是要留意一下这个问题,而且最好修改前先备份一下模版,免得出错,影响别人访问:
<b:widget id="'Label1'" locked="'false'" title="'Labels'" type="'Label'/">......</b:widget>还有,我原来有的标签是包括“★”,用了这个标签云后,就乱码。暂时也不知道什么原因,只能牵就一下,先不用星号标签。
Power
之前写的一些意见,终于实现了一些:期待着beta.blogger的几个功能
将原文也摘录如下:
參考資料:phydeaux3: Code for Beta Blogger Label Cloud
1、加入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}
2、加入Javascript變數宣告(lcShowCount=true 則顯示文章數,lcBlogURL 要改成自己的連結)<script type="'text/javascript'">
// Label Cloud User Variables
var 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>
3、將<b:widget id="'Label1'" locked="'false'" title="'Labels'" type="'Label'/">
取代成
<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>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 = "<data:label.name/>";
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 > 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>
引用自:[筆記]標籤雲(Tag Cloud)
发布者:
写写改改™
| ☆ 消息來源













4 条 留言(发表评论):
你好!
按你的方法修改后标签云是按出现频率的多到少进行排序,想知道怎样设置才能像你Blog一样按字母顺序排序?
谢谢!
排序不是在代码里面修改,是在“ 模板\ 页面元素"里,找到放置标签的页面元素,打开修改页面,就可以看到有两种排序选择,一是“按字母顺序排序”,还有是“按频率排序”
这么像你的一样横着排?定义的地方在哪?
这种横着排的话,暂时还不可以直接定义,要参照上面文章的方法,自己修改模板