ข้ามไปที่เนื้อหาหลัก

[ blogger ] how to replace a old label with tag cloud

As recommended in this, here is an abbreviation steps.

First, replace old Label, with a new one.

// old Label
<b:widget id='Label1' locked='false' title='Categories' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<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>

</div>
</b:includable>
</b:widget>


// new 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 -----------------
// Cloud function s() ripped from del.icio.us
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 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])
}
}
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] < 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>


Second, put CSS after ]]></b:skin>
( Note that some template has a problem with b:skin, so it's better to put it outside )

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


Third, insert javascript configuration about color before </head>

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

How to use thai language

From code above, there is a problem about displaying tag in other language, for instance Thai language ( ภาษาไทย ),

Here is my solution, Just changing from

a.appendChild(document.createTextNode(t));


to

a.innerHTML = t;


and everything wokring fine.

แก้ให้แล้วน้ะจ้ะ ใช้ภาษาไทยได้แล้วนะ

ความคิดเห็น

ไม่ระบุชื่อ กล่าวว่า
ใส่แล้วยังเป็นภาษาต่างดาวอยู่เลยอ่ะครับ แก้ให้หน่อยอ่ะครับ
dsin กล่าวว่า
เปลี่ยนเป็น innerHTML หรือยังอ่ะคับ ?
Panu Tatirat กล่าวว่า
Hi Khun dsin krub,

It would be fantastic if you could help krub, is it possible to change the font colour when I 'hover' with the mouse?

I had already changed the font and background but really want to change the font's colour when I hover over it...

Kob Kun mak mak krub.
dsin กล่าวว่า
edit this line krub

#labelCloud a:hover{
text-decoration:underline
}

add "color: [color code]"

for example,

#labelCloud a:hover{
text-decoration:underline;
color: #FF0000;
}
Panu Tatirat กล่าวว่า
Kob Kun mak mak krub, just found out today that Blogger has just upgraded its 'label' widget, it can now do cloud as well krub, but still not as good as what I am using krub.

Many thanks once again.
dsin กล่าวว่า
never mind krub ^^

โพสต์ยอดนิยมจากบล็อกนี้

[ AI ] IBM granite, NVIDIA robotics, IBM Langflow, watsonx, LMCache, LiteRT, Self driving car, Mamba model, RAG

 IBM granite: Time series from sensor, stock market * Forcast * Anomaly detection - classification high medium risk, data synthesis Embedding AI - 1M params - edge device - small AI Send insight --- NVIDIA * Jackson Thor robotic * Nemo ---- * IBM Langflow : open source * Watsonx (n8n) Enterprise : guardrails / log, tool using policy ----- LMcache : open source KC cache Prompt -> key value (RAGs) Same context ( e.g. same docs) Reduce operating costs CacheGen : make cache cheap to move and store CacheBlend : reuse chunk, not just prefix ---- Google มี framework ที่ optimize AI บน mobile phone นั่นคือ LiteRT : google pytorch Quantisation เท่าไหร่บน device นี้ Model explorer: quantize แล้ว error < 5% XMNpack ใช้ CPU ลดลง Google AI edge portal : benchmark AI on real device ---- Self driving car * Nvidia Alpamayo 2 model * Carla simulation Random forest -> multiple scenarios -> json -> LLM Car talk to mobile phone (cross the road) ----- Mamba model (recursive)  - alte...

ส่งไปรษณีย์ทีละมากๆ ที่ช่องไปรษณีย์สำหรับธุรกิจ

  ถ้าเราส่งไปรษณีย์ทีละ 10 กล่องขึ้นไป สามารถไปส่งโดยใช้ช่องทางธุรกิจได้ โดยต้องกรอกใบรับฝากรวม ( Receipt for bulk Posting ) เป็นลิสต์รายการให้เขาไปด้วย โดยกรอกพัสดุแต่ละรายการ และ ไปยื่นให้เขาพร้อมกับพัสดุที่จะส่ง วิธีกรอก คือ ให้กรอกพัสดุแบบเดียวกันไว้แผ่นเดียวกัน  เช่น พัสดุ10 กล่อง กล่องขนาดเท่ากัน น้ำหนักเท่ากันหมด กรอกไว้ 1 แผ่น ถ้าน้ำหนักต่างกัน ขนาดกล่องต่างกัน กรอกแยกแผ่นไว้ดีที่สุด ซึ่งใบนี้สามารถไปขอได้ที่ไปรษณีย์ฝ่ายธุรกิจ สามารถนำมาทำใส่ A4 ก็ได้ ขอบคุณคุณพี่ amarin.ch ที่ไปรษณีย์กลาง ( BANGKOK G.P.O. ) มากๆ นะครับ สำหรับคำแนะนำ ขอบคุณที่ช่วยคีย์ให้ทีละรายการสำหรับมือใหม่ที่ยังไม่รู้ว่ามีใบรับฝากรวมอย่างผมด้วยครับ คราวหน้าผมจะทำใบรับฝากรวมไปครับ

อยู่เหงาๆ เราไปเที่ยว - ไหว้พระขอพร ศาลเจ้าแม่ทับทิม (อาม่า), เจริญกรุง, กรุงเทพ; 天后聖母廟, 石龙軍路, 曼谷, 泰国; Thap Thim Chinese Goddess Shrine, Chareon Krung 63 Road, Bangkok, Thailand

天后聖母廟, 石龙軍路, 曼谷, 泰国 ไหว้ศาลเจ้าแม่ทับทิม ขอให้การค้าเจริญรุ่งเรือง ตำนานเจ้าแม่ทับทิมเกิดที่ตำบลตุ้ยบ๊วย เขตบ่นเซียว เกาะไหหลำ มีผู้เฒ่าแซ่พัว เป็นผู้มีความซื่อสัตย์สุจริต ทำงานขยันขันแข็ง ครั้งหนึ่งแกออกไปหาปลา โดยผูกแหเป็นช้อนดักปลา เวลาผ่านไปแกยังหาปลาไม่ได้ คืนนั้นก็ประสบความล้มเหลว เมื่อช้อนแหขึ้นมาทีไรก้อมีแต่ท่อนไม้ ด้วยความโมโหแกเลยขว้างท่อนไม้นั้นออกไปให้ไกล แต่แล้วเมื่อช้อนแหขึ้นมาใหม่ก็ปรากฏท่อนไม้ท่อนเดิมอีก ต่อจากนั้นแกก็ขว้างท่อนไม้ขึ้นฝั่ง และแกก็ฉุก คิดว่าแปลกที่ท่อนไม้ธรรมดาจะสามารถลอยทวนน้ำได้ คงจะเป็นสิ่งวิเศษ และแกก็ได้นำท่อนไม้นั้นขึ้นฝั่ง และเพ่งมองท่อนไม้นั้นพร้อมกับอธิษฐานว่า หากท่อนไม้นี้มีความศักดิ์สิทธิ์ขอให้คืนนี้จับปลาได้มาก เมื่อพ้นจากความจนแล้ว เมื่อขึ้นฝั่งจะนำท่อนไม้นี้แกะสลักเป็นเทวรูปศักดิ์สิทธิและสักการะบูชาเช้าวันไม่ให้ขาด เมื่ออธิษฐานจบแกเอาท่อนไม้นั้นวางบนหัวเรือ ปรากฏว่าช้อนเพียงสองถึงสามครั้งก็ได้ปลาตัวโตเต็มเรือ จึงนำปลาขึ้นฝั่งวันนั้นปลาของแกขายได้ราคา เพราะชาวประมงคนอื่นจับได้น้อยแกจึงมีเงินจับจ่ายใช้สอย และทุกครั้งที่แกออกหาปลา ...

แนะนำ ยาบำรุงครรภ์ จับซาไท้เป้า หรือ 13 องครักษ์พิทักษ์ครรภ์ ยาจีน บำรุงครรภ์

จับซาไท้เป้า  ยาบำรุงครรภ์ สมุนไพรจีน ช่วงนี้เพื่อนๆ เริ่ม ทยอย แต่งงาน กันแล้ว นะครับ เราเองก็มียาจีนมา นำเสนอ ซึ่งเป็น ยาดี ที่คุณแม่ ของเรา ทาน ตอนคลอดเรา นั่นก็คือ "จับซาไท้เป้า" ยาบำรุงครรภ์ นั่นเอง เงง เงง เงง เงง จับซาไท้เป้า เป็น ยาจีน ซึ่ง ประกอบไปด้วย สมุนไพร จีน 13 อย่างด้วยกัน มี สรรพคุณ เป็น ยาบำรุงครรภ์ บำรุง ทั้งคุณแม่ และ คุณลูก เลย เรียกได้ว่า สรรพคุณ ครบครัน บำรุง คุณแม่ ช่วงตั้งท้อง ช่วยให้ คุณลูก แข็งแรง มีผิวพรรณ สะอาดสะอ้าน ในตอนที่คลอดออกมา จะ คลอดง่าย ตัวจะไม่มีคราบไขมันติดเยอะ จ้า วิธีกินจับซาไท้เป้า ทานตั้งแต่ท้อง 5 เดือนขึ้นไป 2 อาทิตย์ทาน 1 ห่อ ทานจนคลอด ศิริรวมแล้ว ถ้าทาน ครบ dose โดยเริ่มตั้งแต่ 5 เดือน ต้องทานทั้งหมด 10 ห่อ จ้ะ วิธีต้มจับซาไท้เป้า  1 ห่อ ต้มได้ 2 ครั้ง ครั้งแรก ใส่น้ำ 3 ถ้วย ต้มเหลือ 8/10 ถ้วย ครั้งที่ 2 ใส่น้ำ 2.5 ถ้วย ต้มเหลือ 7/10 ถ้วย ซื้อที่ไหนดี หลายๆ คน มักจะมีคำถาม ว่า จับซาไท้เป้า ซื้อที่ไหน  ซึ่งเราเอง แนะนำร้านขาย จับซาไท้เป้า ซึ่งก็คือ ร้าน ขายยา ย่ง เช...

EJB development ด้วย Glassfish Server -- Part 2 ( Create a project )

สร้าง project สำหรับ EJB module สร้าง EJB project ชื่อว่า titan-ejb เลือก Target Runtime : Glassfish คลิกขวาที่ Project ติ๊ก JPA facet, และ configure JPA facet ให้ใช้ connection profile ที่สร้างไว้แล้ว >>>>>>>>>>>>>>>>>>> วิธีสร้าง JPA Entity: - คลิกขวาที่ Project Explorer - New->Class ชื่อ com.titan.domain.Cabin implement java.io.Serializable [ Serializable คือ สามารถ convert class to String แล้วส่งไปที่ network ได้ ] วิธีสร้าง implement class บน eclipse มันก็จะสร้างฟังก์ชั่นโบ๋ๆ มาให้ package com.titan.domain; import java.io.Serializable; public class Cabin implements Serializable { } - Add the fields static final long serialVersionUID = 1L; private int id; private String name; private int deckLevel; private int shipId; private int bedCount; - สร้าง getters and setters สำหรับ id, name, deckLevel, shipId, and bedCount. [ ใน eclipse ง่ายมาก ไปที่ Source > Generate setters and getters ( หรือ คลิกขวาตรงที่เขียนโค้ด So...

เฉินหลงฟัดในปี 2025 The Shadow's Edge

เริ่มดูเพราะ ฉากในลิฟต์ ที่เด้งมาใน tiktok เลยรู้สึกว่า หนังดูมีอะไรจังวะ  พอดูจริงๆ หนังมีอะไรอย่างที่คิดไว้ แม้ตอนแรกๆ ตอนปล้น อาจจะให้ความรู้สึกเหมือน Now You See Me ไปบ้าง แต่หนังมีความสนุก มีอารมณ์ความรู้สึก  มีการใส่เทคโนโลยีใหม่ๆ อย่าง เทคโนโลยีคล้ายๆกับของ Peter Theil แต่ก็ทำงานร่วมกับคนรุ่นเก่าอย่างเฉินหลงได้อย่างดี มีการสร้างตัวร้ายที่เก่งสมน้ำสมเนื้อ  และ ทิ้งท้ายว่า จะมีภาคต่ออีกต่างหาก ชอบประโยคที่ว่า "นายต้องจบงานเองได้"

กระแส AI อุตสาหกรรมอะไรดีบ้าง

กระแส AI Super Cycle ไม่ได้ส่งผลดีแค่กับคนทำซอฟต์แวร์ แต่กำลัง "ยกแผง" อุตสาหกรรมโครงสร้างพื้นฐาน (Infrastructure) ทั้งหมด โดยเฉพาะ 3 กลุ่มหลัก ดังนี้ครับ: 1. อุตสาหกรรมพลังงาน (Energy & Utilities) AI คือ "จอมเขมือบไฟ" ทำให้บริษัทที่ทำระบบผลิตไฟฟ้าและจัดการพลังงานกลายเป็นพระเอกใหม่ โดยเปลี่ยนจากพลังงานแบบเดิมมาเป็นเทคโนโลยีที่สะอาดและเสถียรมากขึ้น สิ่งที่ดีขึ้น: มีการนำเทคโนโลยี Fuel Cell มาใช้ผลิตไฟฟ้าโดยไม่ผ่านการเผาไหม้ เพื่อตอบโจทย์ Data Center ที่ต้องรัน 24 ชม. ตัวอย่าง: Bloom Energy (BE): ใช้ระบบ Solid-oxide Fuel Cell เปลี่ยนก๊าซเป็นไฟฟ้าให้ Oracle แบบ 100% ในโปรเจกต์ยักษ์ Delta Electronics: กลายเป็นตัวตึงด้านระบบจัดการพลังงานที่กำไรทุบสถิติประวัติศาสตร์ 2. อุตสาหกรรมฮาร์ดแวร์และเซมิคอนดักเตอร์ (Hardware & Supply Chain) เมื่อ AI ต้องประมวลผลมหาศาล อุปกรณ์เบื้องหลังจึงต้อง "อัปเกรด" ขนานใหญ่ จนเกิดสภาวะ "คนขายเป็นใหญ่" (Seller's Market) สิ่งที่ดีขึ้น: ความต้องการชิ้นส่วนเฉพาะทางพุ่งสูงขึ้นอย่างก้าวกระโดด ทั้งแผ่นรองชิป, หน่...

20 th century boys movie ( 20世紀少年, Nijisseiki Shōnen )

โอ ว้าววว มีภาคโ รงหนังด้วย เห็นเขาว่า ทำเป็น 3 ภาค ภาคแรก ฉาย 30 สิงหาคม 2008 นี้แล้ว ถ่ายใน 7 ประเทศ ซึ่งแน่นอนว่า ต้องมีประเทศไทยด้วยแน่นอน theme song “20th Century Boy” ร้องโดย วงร๊อกอังกฤษ T.Rex ดูหน้าคนเล่นกันดีกว่า casting เอ็นโด เคนจิ แสดงโดย Toshiaki Karasawa โอตโจะ แสดงโดย Etsushi Toyokawa ยูคิจิ แสดงโดย Takako Tokiwa โยชิสึเนะ แสดงโดย Teruyuki Kagawa มารุโอะ แสดงโดย Hidehiko Ishizuka เคโรยอน แสดงโดย Hiroyuki Miyasako ดองกี้ แสดงโดย Katsuhisa Namase ยามาเนะ แสดงโดย Fumiyo Kohinata ฟุคุเบ แสดงโดย Kuranosuke Sasaki มันโจเมะ อินชู แสดงโดย Renji Ishibashi พระเจ้า เอ็นโด คิริโกะ แสดงโดย Hitomi Kuroki มาซาโอะ ทามุระ แสดงโดย ARATA มอนจัง แสดงโดย Takashi Ukaji แม่ของเคนจิ นักแสดงอื่นๆอีก ตัวละคร 300 กว่าตัว Match หน้ากับชื่อ ไม่ถูกกันเลยทีเดียว Nana Katase - Mika Shikishima Chizuru Ikewaki - part-time worker Erika Mirai Moriyama - mangaka Kameda Yu Tokui - convenience store employee Miyako Takeuchi - Setsuko Ichihara Yoriko Doguchi - Mitsuko Kido Kenichi Endo - bloody man Ke...

รีวิว: Human Resource พนักงานใหม่โปรดรับไว้พิจารณา สปอยแหลก

a.k.a. ชนแม่งเลย หนังเป็น พี่เต๋อ ที่พร้อมจะหักมุมตลอดเวลา คาดเดาอะไรไม่ได้เลย หนังที่คิดว่าเป็นหนังคนทำงาน ดันมีฉาก เรท R มาเฉย ได้ข้อคิด แต่ไม่ได้ชอบมาก เพราะ ประเทศที่พัฒนาแล้วจะไม่มาคิดเรื่องพวกนี้เลยสักนิด  ถ้าตอนนี้ไปดูประเทศสหรัฐ (ที่กำลังบูมเรื่อง AI) ประเทศจีน (ตามมาติดๆ หรือนำไปแล้ว?) ประเทศ ไต้หวัน (ที่กำลังบูมเรื่อง เซมิคอนดักเตอร์) ประเทศเกาหลี (แซมซัง ก็ไล่มาติดๆ) ประเทศเวียดนาม (ที่ต่างชาติไปลงทุนมากๆ) จะไม่มีคำถามอะไรพวกนี้ในสมองเลย ลองไปฟังวิทยุช่องจีน ในเมืองที่เจริญๆ เมืองเศรษฐกิจ จะมีแต่ภาพ อนาคต ความหวัง ของใหม่ โรงงานใหม่ วิธีทำงานแบบใหม่ positive กว่ามาก ถ้ามัวแต่คิดเหมือนที่หนังปูในตอนแรก จะทำให้เรา ตกอยู่ใน loop นรก ซึ่งยิ่งคิดยิ่งแย่ แย่จนไม่คิดจะลงมือทำอะไรเลย เพราะจิตเป็นนายกายเป็นบ่าว สื่อ อย่าไปออกเรื่องไม่ดีมาก ออกเรื่องดีๆบ้าง เดี๋ยวคนในประเทศหวาดกลัวจนไม่กล้าทำอะไร ถึงตอนนั้นก็แย่ของจริง ตอนนี้คนประเทศอื่น ทำหนังลง Netflix กันเยอะนะครับ มีหนังใหม่ๆ ของประเทศอื่นเต็มไปหมด เช่น ฝรั่งเศส เยอรมัน สหรัฐ เกาหลี  บางอันก็ดัง บางอันก็ไม่รู้จัก