diff options
Diffstat (limited to 'build/default.pl')
-rw-r--r-- | build/default.pl | 496 |
1 files changed, 496 insertions, 0 deletions
diff --git a/build/default.pl b/build/default.pl new file mode 100644 index 0000000..4a73b77 --- /dev/null +++ b/build/default.pl @@ -0,0 +1,496 @@ +<< +# Scandoc template file. +# +# This is an example set of templates that is designed to create several +# different kinds of index files. It generates a "master index" which intended +# for use with a frames browser; A "package index" which is the root page of +# the index, and then "package files" containing documentation for all of the +# classes within a single package. + +###################################################################### + +## For quick and superficial customization, +## simply change these variables + +$project_name = '[Apache]'; +$company_logo = '<img src="../images/ScanDocBig.jpg">'; # change this to an image tag. +$copyright = '© 2000 [Apache Software Foundation]'; +$image_directory = "../images/"; +$bullet1_image = $image_directory . "ball1.gif"; +$bullet2_image = $image_directory . "ball2.gif"; +$bgcolor1 = "#FFFFFF"; +$bgcolor2 = "#FFFFFF"; + +###################################################################### + +## Begin generating frame index file. + +file "index.html"; +>><html> + <head> + <meta http-equiv="Content-Type" content="text/html; iso-8859-1"> + <title>$project_name</title> + </head> + <frameset cols="190,*"> + <frame src="master.html" name="Master Index" noresize> + <frame src="packages.html" name="Documentation"> + <noframes> + <body bgcolor="$bgcolor2" stylesrc="index.html"> + <p>Some Documentation</p> + </body> + </noframes> + </frameset> +</html> +<< + +###################################################################### + +## Begin generating master index file (left-hand frame). + +file "master.html"; +>><html> + <head> + <title>Master Index</title> + </head> + <body bgcolor="$bgcolor1" text=#0000ff link=#0020ff vlink=#0020ff> + <center><img src="${image_directory}ScanDocSmall.jpg" border="0" /></center> + <p> + <a href="packages.html" target="Documentation">Master Index</a> + </p> + <p> + <font size="2"> + <nobr> +<< + +## For each package, generate an index entry. + +foreach $p (packages()) { + $_ = $p->url; + s/\s/%20/g; + >><a href="$_" target="Documentation"><b>$(p.name)</b></a><br> + <dir> + << + foreach $e ($p->classes()) { + $_ = $e->url; + s/\s/%20/g; + >><li><a href="$_" target="Documentation">$(e.fullname)</a> + << + } + foreach $e ($p->globals()) { + $_ = $e->url; + s/\s/%20/g; + >><li><a href="$_" target="Documentation">$(e.fullname)</a> + << + } + >></dir><< +} + +>> + <a href="to-do.html" target="Documentation"><b>To-Do List</b></a><br> + </nobr> + </font> + </p> + </body> +</html> +<< + +###################################################################### + +## Begin generating package index file + +file "packages.html"; +>><html> + <head> + <title>$project_name -- Packages</title> + </head> + <body bgcolor="$bgcolor2"> + + <center>$company_logo + <h1>Documentation for $project_name</h1> + </center> + <h2>Package List</h2> +<< + +## For each package, generate an index entry. + +foreach $p (packages()) { + $_ = $p->url; + s/\s/%20/g; + >><a href = "$_">$(p.name)</a><br> + << +} + +>> + <p> + <hr size=4> + $copyright<br> + Generated by <a href="$scandocURL"><b>ScanDoc $majorVersion.$minorVersion</b></a><br> + Last Updated: $date<br> + </body> +</html> + +<< + +###################################################################### + +## Generate "To-do list" + +file "to-do.html"; +>><html> + <head> + <title>$project_name -- To-Do list</title> + </head> + <body bgcolor="$bgcolor2"> + + $company_logo + + <h1>To-do list for $project_name</h1> +<< + +if (&todolistFiles()) { + >><hr size=4><p> + << + foreach $f (&todolistFiles()) { + my @m = &todolistEntries( $f ); + if ($f =~ /([^\/]+)$/) { $f = $1; } + >><b>$f:</b><ul> + << + foreach $text (@m) { + if ($text) { + print "<li>", &processDescription( $text ), "\n"; + } + } + >></ul> + << + } +} + +>> + <hr size=4> + $copyright<br> + Generated by <a href="$scandocURL"><b>ScanDoc $majorVersion.$minorVersion</b></a><br> + Last Updated: $date<br> + </body> +</html> +<< + +###################################################################### + +## Generate individual files for each package. + +my $p; +foreach $p (packages()) { + file $p->name() . ".html"; + >><html> + <head> + <title>$project_name -- $(p.name)</title> + </head> + <body bgcolor="$bgcolor2"> + <center> + <font size=6><b>$project_name</b></font> + <hr size=4><p> + </center> + + <h2>Package Name: $(p.name)</h2> + <b> +<< + +## Generate class and member index at the top of the file. + +foreach $c ($p->classes()) { + >><h3><img src="$bullet1_image" width=18 height=17 align=texttop> + <a href="$(c.url)">$(c.fullname)</h3></a> + <ul> + << + foreach $m ($c->members()) { + >><li><a href="$(m.url)">$(m.longname)</a> + << + } + >></ul> + << +} + +>> +</b> +<< + +## Generate detailed class documentation +foreach $c ($p->classes()) { + ## Output searchable keyword list + if ($c->keywords()) { + print "<!-- ", $c->keywords(), " -->\n"; + } + + >><hr size="4"> + <a name="$(c.anchor)"></a> + <h1>$(c.fullname)</h1> + <table bgcolor="ffffff" border="0" cellspacing="4"> + <tr> + <th align=center colspan=2> + </th> + </tr> + << + + # Output author tag + if ($c->author()) { + >><tr><th width=20% align=right>Author:</th><< + >><td>$(c.author)</td></tr><< + } + + # Output package version + if ($c->version()) { + >><tr><th width=20% align=right>Version:</th><< + >><td>$(c.version)</td></tr><< + } + + # Output Source file + if ($c->sourcefile()) { + >><tr><th width=20% align=right>Source:</th><< + >><td>$(c.sourcefile)</td></tr><< + } + + # Output base class list + if ($c->baseclasses()) { + >><tr><th width=20% align=right>Base classes:</th> + <td><< + my @t = (); + foreach $b ($c->baseclasses()) { + my $name = $b->name(); + if ($url = $b->url()) { + push @t, "<a href=\"$url\">$name</a>"; + } + else { push @t, $name; } + } + print join( ', ', @t ); + >></td></tr> + << + } + + # Output subclasses list + if ($c->subclasses()) { + >><tr><th width=20% align=right>Subclasses:</th> + <td><< + my @t = (); + foreach $s ($c->subclasses()) { + my $name = $s->name(); + if ($url = $s->url()) { + push @t, "<a href=\"$url\">$name</a>"; + } + else { push @t, $name; } + } + print join( ', ', @t ); + >></td></tr><< + } + + # Output main class description + >></tr> + </table> + <p> + << + print &processDescription( $c->description() ); + + # Output "see also" information + if ($c->seealso()) { + >><p><dt><b>See Also</b><dd> + << + my @r = (); + foreach $a ($c->seealso()) { + my $name = $a->name(); + if ($url = $a->url()) { + push @r, "<a href=\"$url\">$name</a>"; + } + else { push @r, $name; } + } + print join( ',', @r ); + >><p> + << + } + + # Output class member index + if ($c->members()) { + print "<h2>Member Index</h2>\n"; + print "<ul>"; + foreach $m ($c->members()) { + >><li><a href="$(m.url)">$(m.fullname)</a> + << + } + >></ul><< + } + + # Output class member variable documentation + if ($c->membervars()) { + print "<h2>Class Variables</h2>\n"; + print "<blockquote>\n"; + foreach $m ($c->membervars()) { &variable( $m ); } + print "</blockquote>\n"; + } + + # Output class member function documentation + if ($c->memberfuncs()) { + print "<h2>Class Methods</h2>\n"; + print "<blockquote>\n"; + foreach $m ($c->memberfuncs()) { &function( $m ); } + print "</blockquote>\n"; + } +} + +# Output global variables +if ($p->globalvars()) { + >><h2>Global Variables</h2> + <blockquote> + << + foreach $m ($p->globalvars()) { &variable( $m ); } + print "</blockquote>\n"; +} + +# Output global functions +if ($p->globalfuncs()) { + >><h2>Global Functions</h2> + <blockquote> + << + foreach $m ($p->globalfuncs()) { &function( $m ); } + print "</blockquote>\n"; +} + +>> + <hr size=4> + $copyright<br> + Generated by <a href="$scandocURL"><b>ScanDoc $majorVersion.$minorVersion</b></a><br> + Last Updated: $date<br> + </body> +</html> +<< +} # end of foreach (packages) loop + +###################################################################### + +## Subroutine to generate documentation for a member function or global function + +sub function { + local ($f) = @_; + + if ($f->keywords()) { + >><!-- $(f.keywords) --> + << + } + >> + <a name="$(f.anchor)"></a> + <dl> + <dt> + <b><img src="$bullet2_image" width=19 height=17 align=texttop>$(f.fullname);</b> + <dd> + << + print &processDescription( $f->description() ); + >> + <p><dl> + << + if ($f->params()) { + >> + <dt><b>Parameters</b><dd> + <table width="85%"> + << + foreach $a ($f->params()) { + >><tr valign=top><th align=right> + $(a.name)</th><td><< + print &processDescription( $a->description() ); + >></td></tr> + << + } + >></table> + << + } + + if ($f->returnValue()) { + >><dt><b>Return Value</b> + <dd><< + print &processDescription( $f->returnValue() ); + >><p><< + } + + if ($f->exceptions()) { + >><dt><b>Exceptions</b><dd> + <table width=85%><tr><td colspan=2><hr size=3></td></tr> + << + foreach $a ($f->exceptions()) { + >><tr valign=top><th align=right> + $(a.name)</th><td><< + print &processDescription( $a->description() ); + >></td></tr> + << + } + >><tr><td colspan=2><hr size=3></td></tr></table> + << + } + + if ($f->seealso()) { + >><dt><b>See Also</b><dd> + << + my @r = (); + foreach $a ($f->seealso()) { + my $name = $a->name(); + if ($url = $a->url()) { + push @r, "<a href=\"$url\">$name</a>"; + } + else { push @r, $name; } + } + print join( ',', @r ); + >><p><< + } + >></dl></dl> + << +} + +###################################################################### + +## Subroutine to generate documentation for a member variable or global variable. + +sub variable { + local ($v) = @_; + + if ($v->keywords()) { + print "<!-- $(v.keywords) -->"; + } + + >> + <a name="$(v.name)"></a> + <dl><dt> + <b><img src="$bullet2_image" width=19 height=17 align=texttop>$(v.fullname);</b> + <dd> + <<print &processDescription( $v->description() );>> + <p><dl> + << + if ($v->seealso()) { + >><dt><b>See Also</b><dd> + << + $comma = 0; + foreach $a ($v->seealso()) { + if ($comma) { print ","; } + $comma = 1; + >><a href="$(a.url)">$(a.name)</a> + << + } + >><p> + << + } + >></dl></dl> + << +} + +###################################################################### + +sub processDescription { + local ($_) = @_; + + s/^\s+//; # Remove whitespace from beginning + s/\s+$/\n/; # Remove whitespace from end + s/\n\n/<p>\n/g; # Replace multiple CR's with paragraph markers + s:\@heading(.*)\n:<p><h2>$1</h2>:; # Handle heading text + + # Handle embedded image tags + s:\@caution:<p><img src=\"${image_directory}/caution.gif\" align=left>:; + s:\@warning:<p><img src=\"${image_directory}/warning.gif\" align=left>:; + s:\@bug:<p><img src=\"${image_directory}/bug.gif\">:; + s:\@tip:<p><img src=\"${image_directory}/tip.gif\">:; + + return $_; +} |