# NAME Web::Sitemap - Simple way to generate sitemap files with paging support # SYNOPSIS Each instance of the class Web::Sitemap is manage of one index file. Now it always use Gzip compress. use Web::Sitemap; my $sm = Web::Sitemap->new( output_dir => '/path/for/sitemap', ### Options ### temp_dir => '/path/to/tmp', loc_prefix => 'http://my_doamin.com', index_name => 'sitemap', file_prefix => 'sitemap.', # mark for grouping urls default_tag => 'my_tag', # add <mobile:mobile/> inside <url>, and appropriate namespace (Google standard) mobile => 1, # add appropriate namespace (Google standard) images => 1, # additional namespaces (scalar or array ref) for <urlset> namespace => 'xmlns:some_namespace_name="..."', # location prefix for files-parts of the sitemap (default is loc_prefix value) file_loc_prefix => 'http://my_doamin.com', # specify data input charset charset => 'utf8', move_from_temp_action => sub { my ($temp_file_name, $public_file_name) = @_; # ...some action... # # default behavior is # File::Copy::move($temp_file_name, $public_file_name); } ); $sm->add(\@url_list); # When adding a new portion of URL, you can specify a label for the file in which these will be URL $sm->add(\@url_list1, tag => 'articles'); $sm->add(\@url_list2, tag => 'users'); # If in the process of filling the file number of URL's will exceed the limit of 50 000 URL or the file size is larger than 10MB, the file will be rotate $sm->add(\@url_list3, tag => 'articles'); # After calling finish() method will create an index file, which will link to files with URL's $sm->finish; # DESCRIPTION Also support for Google images format: my @img_urls = ( # Foramt 1 { loc => 'http://test1.ru/', images => { caption_format => sub { my ($iterator_value) = @_; return sprintf('Vasya - foto %d', $iterator_value); }, loc_list => [ 'http://img1.ru/', 'http://img2.ru' ] } }, # Foramt 2 { loc => 'http://test11.ru/', images => { caption_format_simple => 'Vasya - foto', loc_list => ['http://img11.ru/', 'http://img21.ru'] } }, # Format 3 { loc => 'http://test122.ru/', images => { loc_list => [ { loc => 'http://img122.ru/', caption => 'image #1' }, { loc => 'http://img133.ru/', caption => 'image #2' }, { loc => 'http://img144.ru/', caption => 'image #3' }, { loc => 'http://img222.ru', caption => 'image #4' } ] } } ); # Result: <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://test1.ru/</loc> <image:image> <loc>http://img1.ru/</loc> <caption><![CDATA[Vasya - foto 1]]></caption> </image:image> <image:image> <loc>http://img2.ru</loc> <caption><![CDATA[Vasya - foto 2]]></caption> </image:image> </url> <url> <loc>http://test11.ru/</loc> <image:image> <loc>http://img11.ru/</loc> <caption><![CDATA[Vasya - foto 1]]></caption> </image:image> <image:image> <loc>http://img21.ru</loc> <caption><![CDATA[Vasya - foto 2]]></caption> </image:image> </url> <url> <loc>http://test122.ru/</loc> <image:image> <loc>http://img122.ru/</loc> <caption><![CDATA[image #1]]></caption> </image:image> <image:image> <loc>http://img133.ru/</loc> <caption><![CDATA[image #2]]></caption> </image:image> <image:image> <loc>http://img144.ru/</loc> <caption><![CDATA[image #3]]></caption> </image:image> <image:image> <loc>http://img222.ru</loc> <caption><![CDATA[image #4]]></caption> </image:image> </url> </urlset> #AUTHOR Mikhail N Bogdanov "<mbogdanov at cpan.org >"