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 .= " $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 .= " " . 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/> $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 .= " <strong>$name</strong> ($partCounts->{$groupDef->{name}} pods)<br/>";
my $query = encode_entities($groupDef->{query}->getQuery());
if ($query =~ s#\n#<br/>#g)
{
$query =~ s#\t# #g;
}
$groupDefs .= "  <em>$query</em><br/>";
( run in 0.532 second using v1.01-cache-2.11-cpan-ceb78f64989 )