summaryrefslogtreecommitdiffstats
path: root/build/default.pl
diff options
context:
space:
mode:
Diffstat (limited to 'build/default.pl')
-rw-r--r--build/default.pl496
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 = '&copy 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 $_;
+}