You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by rb...@locus.apache.org on 2000/08/14 06:32:01 UTC

cvs commit: apache-2.0/src/lib/apr/helpers default.pl

rbb         00/08/13 21:32:01

  Modified:    src/lib/apr/helpers default.pl
  Added:       src/helpers default.pl
  Log:
  Fix a minor bug in the default template file.  The template used to not
  escape the spaces in file names.  It does now.  This also adds the default
  template for Apache to use.
  
  Revision  Changes    Path
  1.1                  apache-2.0/src/helpers/default.pl
  
  Index: default.pl
  ===================================================================
  <<
  # 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,0%">
      <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 $_;
  }
  
  
  
  1.3       +12 -4     apache-2.0/src/lib/apr/helpers/default.pl
  
  Index: default.pl
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/lib/apr/helpers/default.pl,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- default.pl	2000/07/23 18:23:17	1.2
  +++ default.pl	2000/08/14 04:32:01	1.3
  @@ -65,15 +65,21 @@
   ## For each package, generate an index entry.
   
   foreach $p (packages()) {
  -  >><a href="$(p.url)" target="Documentation"><b>$(p.name)</b></a><br>
  +  $_ = $p->url;
  +  s/\s/%20/g;
  +  >><a href="$_" target="Documentation"><b>$(p.name)</b></a><br>
       <dir>
     <<
     foreach $e ($p->classes()) {
  -    >><li><a href="$(e.url)" target="Documentation">$(e.fullname)</a>
  +    $_ = $e->url;
  +    s/\s/%20/g;
  +    >><li><a href="$_" target="Documentation">$(e.fullname)</a>
       <<
     }
     foreach $e ($p->globals()) {
  -    >><li><a href="$(e.url)" target="Documentation">$(e.fullname)</a>
  +    $_ = $e->url;
  +    s/\s/%20/g;
  +    >><li><a href="$_" target="Documentation">$(e.fullname)</a>
       <<
     }
     >></dir><<
  @@ -108,7 +114,9 @@
   ## For each package, generate an index entry.
   
   foreach $p (packages()) {
  -  >><a href = "$(p.url)">$(p.name)</a><br>
  +  $_ = $p->url;
  +  s/\s/%20/g;
  +  >><a href = "$_">$(p.name)</a><br>
     <<
   }