2007年6月9日 星期六

[教學]Blogger Tag Cloud

在 blogger 裡, 如果想把標籤呈現的方式, 由原來清單改成標籤雲的話, 該怎麼做呢? 其實只要幾個步驟, 就可以改造完成了.
  1. 修改html,並且將展開小裝置範本打勾(expand widget template),先找到 ]]>將以下程式碼,貼在 ]]> 之前.
  2. /* 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. 找到<head>,在<head>填入下面的code <script type='text/javascript'> // Label Cloud User Variables var cloudMin = 1; var maxFontSize = 20; var maxColor = [0,0,255]; var minFontSize = 10; var minColor = [255,255,255]; var lcShowCount = false; </script>
  4. 找到這一列程式碼 <b:widget id='Label1' locked='false' title='標籤' type='Label'/> ... </b:widget> 用下面的code取代 <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&#39;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(&#39;labelCloud'); ul = document.createElement('ul'); ul.className = &#39;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(&#39;li'); li.style.fontSize = fs+&#39;px'; li.style.lineHeight = &#39;1'; a = document.createElement('a'); a.title = ts[t]+&#39; Posts in &#39;+t; a.style.color = &#39;rgb('+c[0]+','+c[1]+','+c[2]+')'; a.href = '/search/label/&#39;+encodeURIComponent(t); if (lcShowCount){ span = document.createElement(&#39;span&#39;); span.innerHTML = &#39;('+ts[t]+&#39;) '; span.className = &#39;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(&#39; '); 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>
參考:圖文併茂這裡

沒有留言: