App-Pods2Site

 view release on metacpan or  search on metacpan

lib/App/Pods2Site/SiteBuilder/AbstractBasicFrames.pm  view on Meta::CPAN

package App::Pods2Site::SiteBuilder::AbstractBasicFrames;

use strict;
use warnings;

our $VERSION = '1.003';
my $version = $VERSION;
$VERSION = eval $VERSION;

use base qw(App::Pods2Site::AbstractSiteBuilder);

use App::Pods2Site::Util qw(slashify readData writeData writeUTF8File);

use HTML::Entities;

sub _getCssContent
{
	return <<MYCSS;
\@charset "UTF-8";

html
{
	font-family: sans-serif;
	font-size: small;
}

MYCSS
}

sub makeSite
{
	my $self = shift;
	my $args = shift;
	my $workGroups = shift;
	my $partCounts = shift;
	my $mainpage = shift;

	$self->__updateHeader($args, $mainpage);
	$self->__updateAbout($args, $partCounts);
	$self->__updateTOC($args, $workGroups);
	$self->__updateIndex($args, $mainpage);
}

# PRIVATE
#

sub __updateHeader
{
	my $self = shift;
	my $args = shift;
	my $mainpage = shift;

	my $title = encode_entities($args->getTitle());
	my $sysCssName = $self->getSystemCssName();

	my ($mainspan, $aboutspan);
	if ($mainpage eq ':std')
	{
		$mainspan = qq(<span style="float:left"><a href="about.html" target="main_frame" style="font-size:250%;font-weight:bold">$title</a></span>);
		$aboutspan = '';
	}
	else
	{
		$mainspan = qq(<span style="float:left"><a href="$mainpage" target="main_frame" style="font-size:250%;font-weight:bold">$title</a></span>);
		$aboutspan = qq(<span style="float:right"><a href="about.html" target="main_frame" style="font-size:125%;font-weight:bold">about</a></span>);
	}

	my $headerContent = <<HDR;
<!DOCTYPE html>
<html>

	<head>
		<title>Pods2Site header</title>
		<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
		<link href="$sysCssName.css" rel="stylesheet"/>
	</head>

	<body>
		$mainspan
		$aboutspan
	</body>

</html>
HDR

	my $sitedir = $args->getSiteDir();
	my $headerFile = slashify("$sitedir/header.html");
	writeUTF8File($headerFile, $headerContent);

	print "Wrote header as '$headerFile'\n" if $args->isVerboseLevel(2);
}

sub __updateAbout
{
	my $self = shift;
	my $args = shift;
	my $partCounts = shift;

	my $scannedLocations = '';
	foreach my $loc ($args->getBinDirs(), $args->getLibDirs())
	{
		$loc = encode_entities($loc);
		$scannedLocations .= "&emsp;$loc<br/>"
	}
	$scannedLocations = "<p>\n\t\t\t<strong>Scanned locations:</strong><br/>$scannedLocations\n\t\t</p>\n";

	my $style = "<p>\n\t\t\t<strong>Style:</strong><br/>";
	$style .= "&emsp;" . encode_entities($self->getStyleName()) . "<br/>";
	$style .= "\n\t\t</p>\n";
	
	my $actualCSS = encode_entities($args->getCSS() || '(default)');
	$actualCSS = "<p>\n\t\t\t<strong>CSS:</strong><br/>&emsp;$actualCSS<br/>\n\t\t</p>\n";
	
	my $groupDefs = '';
	foreach my $groupDef (@{$args->getGroupDefs()})
	{
		$groupDefs .= "\n\t\t\t<br/>" if $groupDefs;
		my $name = encode_entities($groupDef->{name});
		$groupDefs .= "&emsp;<strong>$name</strong> ($partCounts->{$groupDef->{name}} pods)<br/>";
		my $query = encode_entities($groupDef->{query}->getQuery());
		if ($query =~ s#\n#<br/>#g)
		{
			$query =~ s#\t#&emsp;#g;
		}
		$groupDefs .= "&emsp;&emsp;<em>$query</em><br/>";



( run in 0.532 second using v1.01-cache-2.11-cpan-ceb78f64989 )