2007年4月5日 星期四

在Blogspot部落格中加上標籤雲

想在部落格裡加上標籤雲的小裝置嗎!
黑輪找了很多地方,試了很多次,就是做不成功。原來是程式碼經過多方轉載,給弄壞啦!

為了避免我也弄壞了,請先參考原出處:Setup and configuration for New Blogger Tag Cloud / Label Cloud

先說在前頭:因為Html語法關係,你在畫面上看到的><>都是Html語法產生的,並非真正的字元符號。建議你處理時先複製貼在記事本裡,再複製貼到要修改的地方。以免出錯!

處理方式:

1.先在你的控制主頁→範本→修改HTML中 先下載完整範本備分。以免做壞了!


2.首先找到 ]]></b:skin>
的位置,先將下列這段樣式碼複製到他的前面。




/* 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}




3.接下來在 ]]></b:skin>
</head> 之間,貼上下列的Script程式碼。




<script type='text/javascript'>

// Label Cloud User Variables

var cloudMin = 1;

var maxFontSize = 20;

var maxColor = [0,0,255];

var minFontSize = 10;

var minColor = [0,0,0];

var lcShowCount = false;

</script>





4.再來是最複雜的地方了。往下很大一段距哩,找到 <b:widget id='Label1'
locked='false' title='Labels' type='Label'/>
這一段。

(如果你有勾選 展開小裝置範本,看到的會是一大段:從 <b:widget
......>
</b:widget>)。用下列的程式碼取代這一段。




<b:widget id='Label1' locked='false' title='這裡放標題'
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 -----------------

// Cloud function s() ripped from del.icio.us

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 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])

}

}

var ta=cloudMin-1;

tz = labelCount.length - cloudMin;

lc2 = document.getElementById('labelCloud');

ul = document.createElement('ul');

ul.className = 'label-cloud';

for(var t in ts){

if(ts[t] &lt; cloudMin){

continue;

}

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 = '/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>




5.大功告成。

感謝諸多網站部落格,讓我多次嘗試總算成功啦!



11 則留言:

Scott/bike.tw @Google 提到...

感謝你的文章,我正煩惱著怎麼弄tags cloud...
您寫的很清楚,我也成功了...

另外請問,blogger他預設的版模,文章都只能有一個tag,我怎麼讓一篇文章可以有很多個tags?

謝謝...

Scott/bike.tw @Google 提到...

呃..我珍豬頭,原來只要逗點空格, 就可以了...

黑輪 提到...

謝謝您的留言。
其實我也只是整理一下別人的資料而已。

lalai 提到...

您寫的好仔細啊!我找了好久,失敗加放棄數次,終於在您家一試就成功了!非常感謝您的分享。^^ 還想調整它的大小顏色等細節~繼續努力XD

艾莉兒梅根 提到...

感謝您,我也是試了很多人的都不成功,終於在你這裡完成了。

peter 提到...

請問標籤雲的title可以自訂標籤嗎?我不要那個顯示文字,麻煩版大指導,謝謝!在下的部落格http://shinsetsu-kuroba.blogspot.com/

黑輪 提到...

Peter:
在我這篇文章的第4個重點的開頭,紅色字的部分就是標題呀!

peter 提到...

大概我表達不好orz
在下知道那個title是抬頭,只不過那式輸入文字,不能下語法
我的標題都是用圖片連結當作抬頭,是要請教用標籤雲後能不能這樣用
我不想用文字當作抬頭,再請版大指導,謝謝!

2人1狗 提到...

感恩黑輪老書.我失敗失敗失敗...這裡竟讓我成功了~~~~~~~水啦!問題出在第4.有是否展開小裝置範本之分.我錯在展開小裝置範本卻用沒展開的語法.

Rin 提到...

研究研究

辛巴的北七光 提到...

謝謝!!
我用閣下的語法後,
結果標籤雲並沒有像一般那樣參雜成一團,
而是一樣只有一排排下來,只是大小不同而已,
請問這情形要怎麼修改呢?