# phpman > perldoc > HTML::TagCloud

## NAME
    [HTML::TagCloud](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATagCloud/markdown) - Generate An HTML Tag Cloud

## SYNOPSIS
      # A cloud with tags that link to other web pages.
      my $cloud = [HTML::TagCloud](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATagCloud/markdown)->new;
      $cloud->add($tag1, $url1, $count1);
      $cloud->add($tag2, $url2, $count2);
      $cloud->add($tag3, $url3, $count3);
      my $html = $cloud->[html_and_css(50)](https://www.chedong.com/phpMan.php/man/htmlandcss/50/markdown);

      # A cloud with tags that do not link to other web pages.
      my $cloud = [HTML::TagCloud](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATagCloud/markdown)->new;
      $cloud->add_static($tag1, $count1);
      $cloud->add_static($tag2, $count2);
      $cloud->add_static($tag3, $count3);
      my $html = $cloud->[html_and_css(50)](https://www.chedong.com/phpMan.php/man/htmlandcss/50/markdown);

      # A cloud that is comprised of tags in multiple categories.
      my $cloud = [HTML::TagCloud](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATagCloud/markdown)->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)](https://www.chedong.com/phpMan.php/man/htmlandcss/50/markdown);

      # The same cloud without tags that link to other web pages.
      my $cloud = [HTML::TagCloud](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATagCloud/markdown)->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)](https://www.chedong.com/phpMan.php/man/htmlandcss/50/markdown);

      # 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](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATagCloud/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATagCloud/markdown)->new(levels=>10);

    if not provided, levels defaults to 24

      my $cloud = [HTML::TagCloud](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATagCloud/markdown)->new(distinguish_adjacent_tags=>1);

    If distinguish_adjacent_tags is true [HTML::TagCloud](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATagCloud/markdown) 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](https://www.chedong.com/phpMan.php/perldoc/HTML%3A%3ATagCloud/markdown)->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
    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)](https://www.chedong.com/phpMan.php/man/html/200/markdown);

  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)](https://www.chedong.com/phpMan.php/man/htmlandcss/50/markdown);

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

