added images inside pod docs
[sdlgit/SDL-Site.git] / tools / PM-Pod2html-snippet.pl
index 8f73aa2..09c30bf 100644 (file)
@@ -4,6 +4,7 @@ use strict;
 use warnings;
 use Carp;
 use Pod::Xhtml;
+use File::Copy;
 use File::Spec::Functions qw(rel2abs splitpath splitdir catpath catdir catfile canonpath);
 
 my $input_path      = 'C:/SDL_perl/lib/pods';
@@ -13,15 +14,16 @@ my ($volume, $dirs) = splitpath(rel2abs(__FILE__));
 my @directories     = splitdir(canonpath($dirs));
 pop(@directories);
 my $parent_dir      = catpath($volume, catdir(@directories));
-my $output_path     = catdir($parent_dir, 'pages');
-my $parser          = Pod::Xhtml->new(FragmentOnly => 1);
+my $pages_path      = catdir($parent_dir, 'pages');
+my $assets_path     = catdir($parent_dir, 'htdocs/assets');
+my $parser          = Pod::Xhtml->new(FragmentOnly => 1, StringMode => 1);
 my %module_names    = ();
 my $fh;
 
 read_file($input_path);
 
 # creating index file
-open($fh, '>', File::Spec->catfile($output_path, 'documentation.html-inc'));
+open($fh, '>', File::Spec->catfile($pages_path, 'documentation.html-inc'));
 binmode($fh, ":utf8");
 print($fh "<div class=\"pod\">\n<h1>Documentation (latest development branch)</h1>");
 for my $module_name (sort keys %module_names)
@@ -44,6 +46,26 @@ sub read_file
                read_file($_) if(-d $_);
                if($_ =~ /\.pod$/i)
                {
+                       my $image_path  = $_;
+                          $image_path  =~ s/\.pod$//;
+                       my @images = <$image_path*>;
+                       
+                       my $image_html = '';
+                       
+                       foreach my $image_file (@images)
+                       {
+                               if($image_file =~ /^($image_path)(_\d+){0,1}\.(jpg|jpeg|png|gif)$/)
+                               {
+                                       my (undef, undef, $image_file_name) = splitpath($image_file);
+                                       
+                                       $image_html .= sprintf('<a href="assets/%s" target="_blank">'
+                                                                . '<img src="assets/%s" style="height: 160px" alt="%s"/>'
+                                                            . '</a>', $image_file_name, $image_file_name, $image_file_name);
+                                       
+                                       copy($image_file, File::Spec->catfile($assets_path, $image_file_name));
+                               }
+                       }
+                       
                        my $file_name   = $_;
                           $file_name   =~ s/^$input_path\/*//;
                        my $module_name = $file_name;
@@ -54,9 +76,18 @@ sub read_file
                        my $file_path   = $file_name;
                           $file_path   =~ s/\-inc$//;
                        $module_names{$module_name} = $file_path;
-                          $file_name   = File::Spec->catfile($output_path, $file_name);
+                          $file_name   = File::Spec->catfile($pages_path, $file_name);
 
-                       $parser->parse_from_file($_, $file_name);
+                       $parser->parse_from_file($_); #, $file_name);
+                       
+                       # modifying the html-snippet and insert the images
+                       my $html = $parser->asString;
+                          $html =~ s/<!-- INDEX END -->/<!-- INDEX END -->$image_html<hr \/>/ if $image_html;
+                       
+                       open($fh, '>', $file_name);
+                       binmode($fh, ":utf8");
+                       print($fh $html);
+                       close($fh);
                }
        }
 }