fixed read_file()
[sdlgit/SDL-Site.git] / tools / PM-Pod2html-snippet.pl
CommitLineData
b3ef54ec 1#!/usr/bin/env perl
2
3use strict;
4use warnings;
35f7648e 5use Carp;
b3ef54ec 6use Pod::Xhtml;
de71a5b8 7use File::Spec::Functions qw(rel2abs splitpath splitdir catpath catdir catfile canonpath);
4e1ad99d 8
de71a5b8 9my $input_path = 'C:/SDL_perl/lib/pods';
35f7648e 10 $input_path = $ARGV[0] if $ARGV[0];
4e1ad99d 11
de71a5b8 12my ($volume, $dirs) = splitpath(rel2abs(__FILE__));
13my @directories = splitdir(canonpath($dirs));
14pop(@directories);
15my $parent_dir = catpath($volume, catdir(@directories));
16my $output_path = catdir($parent_dir, 'pages');
17my $parser = Pod::Xhtml->new(FragmentOnly => 1);
18my %module_names = ();
b3ef54ec 19my $fh;
20
21read_file($input_path);
22
23# creating index file
24open($fh, '>', File::Spec->catfile($output_path, 'documentation.html-inc'));
25binmode($fh, ":utf8");
26print($fh "<div class=\"pod\">\n<h1>Documentation (latest development branch)</h1>");
27for my $module_name (sort keys %module_names)
28{
29 print($fh '<a href="' . $module_names{$module_name} . '">',
30 $module_name,
31 '</a><br />'
32 );
33}
34print($fh "</div>\n");
35close($fh);
36
37sub read_file
38{
39 my $path = shift;
40 my @files = <$path/*>;
41
42 foreach(@files)
43 {
44 read_file($_) if(-d $_);
b3ef54ec 45 if($_ =~ /\.pod$/i)
46 {
47 my $file_name = $_;
48 $file_name =~ s/^$input_path\/*//;
49 my $module_name = $file_name;
50 $module_name =~ s/\//::/g;
51 $module_name =~ s/(\.pm|\.pod)$//i;
52 $file_name =~ s/\//-/g;
53 $file_name =~ s/(\.pm|\.pod)$/.html-inc/i;
54 my $file_path = $file_name;
55 $file_path =~ s/\-inc$//;
56 $module_names{$module_name} = $file_path;
57 $file_name = File::Spec->catfile($output_path, $file_name);
58
59 $parser->parse_from_file($_, $file_name);
60 }
61 }
62}