---
name: "HTML::TagCloud"
section: "3pm"
platform: "linux"
package: "libhtml-tagcloud-perl"
version: "0.38-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/HTML::TagCloud"
---

# HTML::TagCloud(3pm)

Generate An HTML Tag Cloud

## NAME

HTML::TagCloud - Generate An HTML Tag Cloud

## SYNOPSIS

```
  # A cloud with tags that link to other web pages.
  my $cloud = HTML::TagCloud->new;
  $cloud->add($tag1, $url1, $count1);
  $cloud->add($tag2, $url2, $count2);
  $cloud->add($tag3, $url3, $count3);
  my $html = $cloud->html_and_css(50);
  # A cloud with tags that do not link to other web pages.
  my $cloud = HTML::TagCloud->new;
  $cloud->add_static($tag1, $count1);
  $cloud->add_static($tag2, $count2);
  $cloud->add_static($tag3, $count3);
  my $html = $cloud->html_and_css(50);
  # A cloud that is comprised of tags in multiple categories.
  my $cloud = HTML::TagCloud->new;
  $cloud->add($tag1, $url1, $count1, $category1);
  $cloud->add($tag2, $url2, $count2, $category2);
  $cloud->add($tag3, $url3, $count3, $category3);
  my $html = $cloud->html_and_css(50);
  # The same cloud without tags that link to other web pages.
  my $cloud = HTML::TagCloud->new;
  $cloud->add_static($tag1, $count1, $category1);
  $cloud->add_static($tag2, $count2, $category2);
  $cloud->add_static($tag3, $count3, $category3);
  my $html = $cloud->html_and_css(50);
  # Obtaining uncategorized HTML for a categorized tag cloud.
  my $html = $cloud->html_without_categories();
  # Explicitly requesting categorized HTML.
  my $html = $cloud->html_with_categories();
```

## DESCRIPTION

The HTML::TagCloud module enables you to generate "tag clouds" in HTML. Tag clouds serve as a textual way to visualize terms and topics that are used most frequently. The tags are sorted alphabetically and a larger font is used to indicate more frequent term usage.

Example sites with tag clouds: \<http://www.43things.com/\>, \<http://www.astray.com/recipes/\> and \<http://www.flickr.com/photos/tags/\>.

This module provides a simple interface to generating a CSS-based HTML tag cloud. You simply pass in a set of tags, their URL and their count. This module outputs stylesheet-based HTML. You may use the included CSS or use your own.

## CONSTRUCTOR

### new

The constructor takes a few optional arguments:

```
  my $cloud = HTML::TagCloud->new(levels=>10);
```

if not provided, levels defaults to 24

```
  my $cloud = HTML::TagCloud->new(distinguish_adjacent_tags=>1);
```

If distinguish\_adjacent\_tags is true HTML::TagCloud will use different CSS classes for adjacent tags in order to be able to make it easier to distinguish adjacent multi-word tags.  If not specified, this parameter defaults to a false value.

```
  my $cloud = HTML::TagCloud->new(categories=>\@categories);
```

If categories are provided then tags are grouped in separate divisions by category when the HTML fragment is generated.

## METHODS

### add

This module adds a tag into the cloud. You pass in the tag name, its URL and its count:

```
  $cloud->add($tag1, $url1, $count1);
  $cloud->add($tag2, $url2, $count2);
  $cloud->add($tag3, $url3, $count3);
```

### add\_static

This module adds a tag that does not link to another web page into the cloud.  You pass in the tag name and its count:

```
  $cloud->add_static($tag1, $count1);
  $cloud->add_static($tag2, $count2);
```

### tags($limit)

Returns a list of hashrefs representing each tag in the cloud, sorted by alphabet. Each tag has the following keys: name, count, url and level.

### css

This returns the CSS that will format the HTML returned by the **html()** method with tags which have a high count as larger:

```
  my $css  = $cloud->css;
```

### html($limit)

This returns the tag cloud as HTML without the embedded CSS (you should use both **css()** and **html()** or simply the **html\_and\_css()** method). If any categories were specified when items were being placed in the cloud then the tags will be organized into divisions by category name.  If a limit is provided, only the top `$limit` tags are in the cloud, otherwise all the tags are in the cloud:

```
  my $html = $cloud->html(200);
```

### html\_with\_categories($limit)

This returns the tag cloud as HTML without the embedded CSS.  The tags will be arranged into divisions by category.  If a limit is provided, only the top `$limit` tags are in the cloud.  Otherwise, all tags are in the cloud.

### html\_without\_categories($limit)

This returns the tag cloud as HTML without the embedded CSS.  The tags will not be grouped by category if this method is used to generate the HTML.

### html\_and\_css($limit)

This returns the tag cloud as HTML with embedded CSS. If a limit is provided, only the top `$limit` tags are in the cloud, otherwise all the tags are in the cloud:

```
  my $html_and_css = $cloud->html_and_css(50);
```

## AUTHOR

Leon Brocard, `"<acme@astray.com>"`.

## COPYRIGHT

Copyright (C) 2005-6, Leon Brocard

This module is free software; you can redistribute it or modify it under the same terms as Perl itself.
