use strict;
use POSIX qw(strftime);
sub plugin {
my $global=shift;
print "Generation class documentation\n";
print_class_index($global);
print_classes($global);
print "Done with classes\n";
}
sub print_classes {
my $space=shift;
foreach (sort byfullname $space->all()) {
next if (!$_->is_class());
print_class($_);
}
}
my %see_also;
# Remember to set $new_line_flag = 0 before using this function
my $new_line_flag = 0;
my @classes;
sub print_description {
my $mydesc=shift;
foreach (@classes) {
my $item = $_;
my $name = $$item{fullname};
# Find comment cross reference
my $mylink=$item->href($$item{fullname});
$mydesc=~s/([. ,()])${name}([. ,()])/${1}${mylink}${2}/g;
$mydesc=~s/([. ,()])${name}$/${1}${mylink}/g;
$mydesc=~s/^${name}([. ,()])/${mylink}${1}/g;
}
# Check if new lines are required
if ($mydesc=~/<p>/) {
$new_line_flag = 1;
$mydesc=~s/<p>//g;
}
if ($mydesc=~/<\/p>/) {
$new_line_flag = 0;
$mydesc=~s/<\/p>//g;
}
$mydesc = &addCrossRef($mydesc);
if ($new_line_flag eq 0) {
print FILE "$mydesc
Home |
All Classes |
Grouped Classes |
Index |
Search
";
}else {
print FILE "$mydesc";
}
}
sub addCrossRef {
my $text = shift;
# my @sortedClasses = sort { $$b{fullname} cmp $$a{fullname} } @classes;
foreach (@classes) {
my $name = $$_{fullname};
my $loc = $name . ".html";
# $text =~ s/${name}/$name<\/a>/g;
if ($text =~ /${name}/) {
$see_also{$name} = "$name<\/a>";
}
}
return $text;
}
sub print_html_header {
my $html_name=shift;
my $index_number=shift;
my $colour=shift;
print FILE '
\n"; my $last_letter=""; my $next_tr = int ($num_alpha/3-5); foreach (@alpha_classes) { my $cname = $_->name; $cname =~ /CL_(.)/; my $letter = $1; if ($last_letter ne $letter) { if ($next_tr < 3) { print FILE " | \n\n";
$next_tr = int ($num_alpha/3-5);
}
if ($next_tr < int ($num_alpha/3-5))
{
print FILE " | \n\n"; $next_tr = int ($num_alpha/3-5); } } print FILE " |
\n"; my $last_group=""; my $last_section=""; my %func_hash; my %empty; my $next_tr = int ($num_alpha/2)-22; foreach (@classes) { my $cname = $_->name; $clan_group = ""; $clan_section = ""; foreach (split("\n",$$_{unique_string})) { /^!.(.*)$/; my $workbuffer; $workbuffer=$1; if (substr($workbuffer,0,4) eq "clan") { $workbuffer = substr($workbuffer,4); ($clan_group, $clan_section)=split(/=/, $workbuffer); $clan_section=~s/\"//g; } } if ($last_group ne $clan_group || $last_section ne $clan_section) { my $key; foreach $key (sort keys %func_hash) { print FILE $func_hash{$key}; $next_tr = $next_tr - 1; if ($next_tr <= 0) { print FILE " | \n\n"; $next_tr = int ($num_alpha/2)-22; } } %func_hash = %empty; if ($next_tr < 3) { print FILE " | \n\n";
$next_tr = int ($num_alpha/2)-22;
}
if ($next_tr < int ($num_alpha/2-22))
{
print FILE " | \n\n"; $next_tr = int ($num_alpha/2)-22; } } %func_hash = %empty; print FILE " |
\n";
print FILE "
|