Blame local/FAQ2HTML

Packit fcad23
#!/usr/bin/perl -w
Packit fcad23
Packit fcad23
$TOCHEADER=" TABLE OF CONTENTS";
Packit fcad23
Packit fcad23
open(O, ">FAQ.html");
Packit fcad23
Packit fcad23
Packit fcad23
# Load FAQ into memory
Packit fcad23
while(<>) {
Packit fcad23
  push (@faqfile, $_);
Packit fcad23
}
Packit fcad23
my $current_line = 0;
Packit fcad23
my $version;
Packit fcad23
Packit fcad23
# Skip header up to table of contents
Packit fcad23
while($current_line <= $#faqfile) {
Packit fcad23
    $_ = $faqfile[$current_line];
Packit fcad23
    $current_line++;
Packit fcad23
Packit fcad23
    if (/Net-SNMP Version: (.*)/) {
Packit fcad23
      $version = $1;
Packit fcad23
    }
Packit fcad23
Packit fcad23
    last if (/$TOCHEADER/);
Packit fcad23
}
Packit fcad23
Packit fcad23
print O '

Packit fcad23
FAQ
Packit fcad23

Packit fcad23
FAQ Maintainer: Dave Shield
Packit fcad23
Email: net-snmp-coders@list.sourceforge.net
Packit fcad23
';
Packit fcad23
print O "Version: $version
\n";
Packit fcad23
print O '
Packit fcad23

Table of Contents

Packit fcad23
';
Packit fcad23
Packit fcad23
# Create table of contents
Packit fcad23
while($current_line <= $#faqfile) {
Packit fcad23
    $_ = $faqfile[$current_line];
Packit fcad23
    
Packit fcad23
    #Skip blank lines
Packit fcad23
    if (/^\s*$/) {
Packit fcad23
      $current_line++;
Packit fcad23
      last;
Packit fcad23
    }
Packit fcad23
Packit fcad23
    chomp();
Packit fcad23
Packit fcad23
    # Remove white space at start of line
Packit fcad23
    $_ =~ s/^ *//;
Packit fcad23
    
Packit fcad23
    $x = $_;
Packit fcad23
Packit fcad23
    # Remove white space at start of line
Packit fcad23
    $x =~ s/^ *//g;
Packit fcad23
Packit fcad23
    # Replace all non alpha characters with _
Packit fcad23
    $x =~ s/[^a-zA-Z]/_/g;
Packit fcad23
Packit fcad23
    # Save cleaned up line
Packit fcad23
    $xlate{$_} = $x;
Packit fcad23
Packit fcad23
    if ( /&/ ) { $_ =~ s/&/&/g; }
Packit fcad23
    if ( /</ ) { $_ =~ s/</</g; }
Packit fcad23
    if ( />/ ) { $_ =~ s/>/>/g; }
Packit fcad23
    if (/^[ A-Z]+$/) {
Packit fcad23
        # Section header (eg: GENERAL)
Packit fcad23
	print O "$_
    \n";
Packit fcad23
    } else {
Packit fcad23
        # Question / answer - create link to it
Packit fcad23
        if ($faqfile[$current_line+1] =~ /^     */) {
Packit fcad23
          
Packit fcad23
          # Continuation of the question.
Packit fcad23
          $current_line++;
Packit fcad23
          my $part2 = $faqfile[$current_line];
Packit fcad23
          
Packit fcad23
          # Remove white space at start of line
Packit fcad23
          $part2 =~ s/^ *//;
Packit fcad23
Packit fcad23
          print O "
  • $_ $part2
  • \n";
    Packit fcad23
            }
    Packit fcad23
            else {
    Packit fcad23
              print O "
  • $_
  • \n";
    Packit fcad23
            }
    Packit fcad23
        }
    Packit fcad23
        $current_line++;
    Packit fcad23
    }
    Packit fcad23
    Packit fcad23
    print O "
    \n";
    Packit fcad23
    Packit fcad23
    # Print contents with targets defined
    Packit fcad23
    while($current_line <= $#faqfile) {
    Packit fcad23
        $_ = $faqfile[$current_line];
    Packit fcad23
        $current_line++;
    Packit fcad23
    Packit fcad23
        chomp();
    Packit fcad23
    Packit fcad23
        $y = $_;
    Packit fcad23
    Packit fcad23
        if (defined($xlate{$y})) {
    Packit fcad23
    	print O "\n";
    Packit fcad23
        }
    Packit fcad23
        if ( /&/ ) { $_ =~ s/&/&/g; }
    Packit fcad23
        if ( /</ ) { $_ =~ s/</</g; }
    Packit fcad23
        if ( />/ ) { $_ =~ s/>/>/g; }
    Packit fcad23
        print O "$_\n";
    Packit fcad23
    }
    Packit fcad23
    Packit fcad23
    print O '
    Packit fcad23
    Packit fcad23
    ';
    Packit fcad23