forked from HPR/hpr_generator
		
	
		
			
				
	
	
		
			94 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/perl
 | |
| 
 | |
| =head1 NAME
 | |
| 
 | |
| siteGenerator - HPR Site Generator
 | |
| 
 | |
| =head1 SYNOPSIS
 | |
| 
 | |
| 	siteGenerator [OPTION]... PAGE...
 | |
| 
 | |
| 	-v, --verbose  use verbose mode
 | |
| 	--help         print this help message
 | |
| 
 | |
| 	Where I<PAGE> is a file name of a web page.
 | |
| 
 | |
| 	Examples:
 | |
| 
 | |
| 		Generate two specific pages:
 | |
| 		siteGenerator index about
 | |
| 
 | |
| 		Generate the whole site:
 | |
| 		siteGenerator ALL
 | |
| 
 | |
| =head1 DESCRIPTION
 | |
| 
 | |
| This is a site generator based upon the Perl Templates Toolkit.
 | |
| 
 | |
| =head1 AUTHOR
 | |
| 
 | |
| Roan Horning <roan.horning@no-spam.gmail.com>
 | |
| 
 | |
| =cut
 | |
| 
 | |
| use strict;
 | |
| use warnings;
 | |
| 
 | |
| use Getopt::Long qw(:config auto_help);
 | |
| use Pod::Usage;
 | |
| use Config::Std;
 | |
| use Template;
 | |
| 
 | |
| exit main();
 | |
| 
 | |
| sub main {
 | |
| 
 | |
|     # Argument parsing
 | |
|     my $verbose;
 | |
|     GetOptions(
 | |
|         'verbose'  => \$verbose,
 | |
|     ) or pod2usage(1);
 | |
|     pod2usage(1) unless @ARGV;
 | |
|     my (@pages) = @ARGV;
 | |
| 
 | |
| 	# Load config file
 | |
| 	read_config "site.cfg" => my %config;
 | |
| 
 | |
| 	my $tt = get_template_html($config{DBI});
 | |
| 	generate_page($tt, $config{root_template}{content}, $config{correspondents}{navigation}, $config{correspondents}{content});
 | |
| 
 | |
| 	return 0;
 | |
| }
 | |
| 
 | |
| sub get_template_html (\%@)  {
 | |
| 	# For an HTML based Template file, define the 
 | |
| 	# template start and end tags to also function as 
 | |
| 	# HTML comments to make the template file valid HTML.
 | |
| 	#
 | |
| 	return Template->new({
 | |
| 		INCLUDE_PATH => './templates',
 | |
| 		EVAL_PERL    => 1,
 | |
| 		START_TAG	 => '<!--%',
 | |
| 		END_TAG		 => '%-->',
 | |
| 		CONSTANTS    => {
 | |
| 			driver   => $_[0]{driver},
 | |
| 			user     => $_[0]{user},
 | |
| 			password => $_[0]{password},
 | |
| 		}
 | |
| 	}) || die $Template::ERROR, "\n";
 | |
| 
 | |
| }
 | |
| 
 | |
| sub generate_page  {
 | |
| 	my ($tt, $page, $navigation, $content) = @_;
 | |
| 	my $tt_vars = {
 | |
| 		navigation => $navigation, 
 | |
| 		content => $content 
 | |
| 	};
 | |
| 
 | |
| 	$tt->process($page, $tt_vars)
 | |
| 		|| die $tt->error(), "\n";
 | |
| 
 | |
| }
 | |
| 
 |