home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / mac / vim55rt.sit / runtime / doc / vim2html.pl < prev    next >
Encoding:
Perl Script  |  1999-09-25  |  1.5 KB  |  99 lines  |  [TEXT/ALFA]

  1. #!/usr/local/bin/perl
  2.  
  3. # converts vim documentation to simple html
  4. # Sirtaj Singh Kang (taj@kde.org)
  5.  
  6. # Wed Oct  8 01:15:48 EST 1997
  7.  
  8. $date = `date`;
  9. chop $date;
  10.  
  11. %url = ();
  12.  
  13. sub readTagFile
  14. {
  15.     my($tagfile) = @_;
  16.     local( $tag, $file, $name );
  17.  
  18.     open(TAGS,"$tagfile") || die "can't read tags\n";
  19.  
  20.     while( <TAGS> ) {
  21.         s/</</g;
  22.         s/>/>/g;
  23.  
  24.         /^(.*)\t(.*)\t/;
  25.  
  26.         $tag = $1;
  27.         ($file= $2) =~ s/.txt$/.html/g;
  28.  
  29.         $url{ $tag } = "<A HREF=\"$file#$tag\">$tag</A>";
  30.  
  31.         #print "($tag, $file, $tag)\n";
  32.     }
  33.     close( TAGS );
  34. }
  35.  
  36. sub vim2html
  37. {
  38.     my( $infile ) = @_;
  39.     local( $outfile );
  40.  
  41.     open(IN, "$infile" ) || die "Couldn't read from $infile.\n";
  42.  
  43.     ($outfile = $infile) =~ s%.*/%%g;
  44.     $outfile =~ s/\.txt$//g;
  45.  
  46.     open( OUT, ">$outfile.html" )
  47.             || die "Couldn't write to $outfile.html.\n";
  48.  
  49.     print OUT<<EOF;
  50. <HTML>
  51. <HEAD><TITLE>$outfile</TITLE></HEAD>
  52. <BODY BGCOLOR="#ffffff">
  53. <H1>Vim Documentation: $outfile</H1>
  54. <HR>
  55. <PRE>
  56. EOF
  57.  
  58.     while( <IN> ) {
  59.         s/</</g;
  60.         s/>/>/g;
  61.  
  62.         s/\*([^*]*)\*/\*<A NAME="$1"><\/A><B>$1<\/B>\*/g;
  63.         s/\|([^|]*)\|/\|$url{$1}\|/g;
  64.  
  65.         print OUT $_;
  66.     }
  67.     print OUT<<EOF;
  68. </PRE>
  69. <p><i>Generated by vim2html on $date</i></p>
  70. </BODY>
  71. </HTML>
  72. EOF
  73.  
  74. }
  75.  
  76. sub usage
  77. {
  78. die<<EOF;
  79. vim2html.pl: converts vim documentation to HTML.
  80. usage:
  81.  
  82.     vim2html.pl <tag file> <text files>
  83. EOF
  84. }
  85.  
  86. # main
  87.  
  88. if ( $#ARGV < 2 ) {
  89.     usage();
  90. }
  91.  
  92. print "Processing tags...\n";
  93. readTagFile( $ARGV[ 0 ] );
  94.  
  95. foreach $file ( 1..$#ARGV ) {
  96.     print "Processing ".$ARGV[ $file ]."...\n";
  97.     vim2html( $ARGV[ $file ] );
  98. }
  99.