Hi! Tag clouds (http://en.wikipedia.org/wiki/Tag_cloud) seem so in these days, so I made a simple implementation using the Main.Tags in xwiki. The styling isn't too sexy, but that should be easy to configure. Here is the code for use in a panel or similar place: #panelheader('Tag cloud') #set($query = "select elements(prop.list) from BaseObject as obj, DBStringListProperty as prop where obj.className='XWiki.TagClass' and obj.id=prop.id.id and prop.id.name='tags'") #set( $allTags = $xwiki.sort($xwiki.search($query))) #set( $tagsWithCount = $xwiki.metawiki.getTagsWithCount($allTags)) #set($query = "select distinct elements(prop.list) from BaseObject as obj, DBStringListProperty as prop where obj.className='XWiki.TagClass' and obj.id=prop.id.id and prop.id.name='tags'") #set( $tagsDistinct = $xwiki.sort($xwiki.search($query))) #foreach($tag in $tagsDistinct) <span style="#getStyle($tagsWithCount.get($tag))"><a href="$xwiki.getURL("Main.Tags", "view", "tag=$tag")")>$tag</a></span> #end #panelfooter() #macro( getStyle $count ) #if ($count < 2) "font-size: 0.80em;" #elseif ($count < 3) font-size: 1.00em; } #elseif ($count < 4) font-size: 1.20em; } #elseif ($count < 5) font-size: 1.40em; } #elseif ($count < 6) font-size: 1.60em; } #elseif ($count < 7) font-size: 1.80em; } #elseif ($count < 8) font-size: 2.00em; } #else font-size: 2.50em; } #end #end And here's the java code invoked: public static HashMap<String, Integer> getTagsWithCount(ArrayList<String> allTags) { String tag = null; String previousTag = null; HashMap<String, Integer> tagsWithCount = new HashMap<String, Integer>(); int count = 1; for (int i = 0; i < allTags.size(); i++) { previousTag = tag; tag = allTags.get(i); if (tag.equals(previousTag)) { count++; } else { count = 1; previousTag = null; } tagsWithCount.put(tag, new Integer(count)); } return tagsWithCount; } Is this anything you would want to include in xwiki, or is it too trivial to bother with? See the attached file for a sample screenshot. best regards :-) Thomas Drevon