ppcrcd/trunk/doc/gendoc.pl
sparky
cvs at pld-linux.org
Thu Mar 16 14:16:13 CET 2006
Author: sparky
Date: Thu Mar 16 14:16:10 2006
New Revision: 7182
Modified:
ppcrcd/trunk/doc/gendoc.pl
Log:
- almost finished
Modified: ppcrcd/trunk/doc/gendoc.pl
==============================================================================
--- ppcrcd/trunk/doc/gendoc.pl (original)
+++ ppcrcd/trunk/doc/gendoc.pl Thu Mar 16 14:16:10 2006
@@ -5,23 +5,14 @@
use File::Find;
my %options;
+my $loaded = 0;
-sub html {
- $_ = $_[0];
- s/&/&/g;
- s/</</g;
- s/>/>/g;
- s#<_<(.*?)>_>#<u>$1</u>#gs;
- s#<\*<(.*?)>\*>#<b>$1</b>#gs;
- s#</<(.*?)>/>#<i>$1</i>#gs;
- return $_;
-}
-
-find(\&addoption, qw(initrd.dir conf.dir));
sub addoption {
- return if (!-f || -l || /^\./ || /~$/);
- my $file = $_;
- open F_IN, $_ or warn "$File::Find::name: $!\n" and return;
+ return if (!-f || -l || /^\./ || /~$/ || /.svn/);
+ unless ( open F_IN, $_ ) {
+ warn "$File::Find::name: $!\n";
+ return;
+ }
file: while ( <F_IN> ) {
if ( s/^\s*?#@([a-z]*)@\s+(.*?)\s*:\s+// ) {
$options{$1} = {} unless exists $options{$1};
@@ -40,6 +31,20 @@
close F_IN;
}
+sub html {
+ $_ = $_[0];
+ s/&/&/g;
+ s/</</g;
+ s/>/>/g;
+ s#<_<(.*?)>_>#<u>$1</u>#gs;
+ s#<\*<(.*?)>\*>#<b>$1</b>#gs;
+ s#</<(.*?)>/>#<i>$1</i>#gs;
+ s#^===(.*)===$#<h1>$1</h1>#gm;
+ s#^==(.*)==$#<h2>$1</h2>#gm;
+ s#^=(.*)=$#<h3>$1</h3>#gm;
+ return $_;
+}
+
sub htmlize {
my $pre = 0;
my $out = "";
@@ -52,22 +57,72 @@
} else {
if ( $pre ) {
$pre = 0;
+ chomp $out;
$out .= "</pre>\n";
}
}
$out .= $line . "\n";
}
+ if ($pre) {
+ chomp $out;
+ $out .= "</pre>\n";
+ }
return $out;
}
-foreach my $opt (keys %options) {
- print "<h1> $opt </h1>\n";
+my $title="";
+sub adddoc {
+ $_ = $_[0];
+ return if (!-f || -l || /^\./ || /~$/ || /.svn/);
+ open F_IN, $_ or warn "$_: $!\n" and return;
+ my $file;
+ {
+ local $/ = undef;
+ $file = <F_IN>;
+ }
+ close F_IN;
+ $file = htmlize($file);
+ $file =~ m#^.*?<h1>(.*?)</h1>#o;
+ $title = $1;
+ while ( $file =~ /<options "([a-z]*)">/ ) {
+ my $opt = $1;
+ my $options = "";
+ unless ( $loaded ) {
+ find(\&addoption, qw(initrd.dir conf.dir));
+ $loaded = 1;
+ }
- foreach my $var (sort keys %{$options{$opt}}) {
- print "<div>\n<h3>";
- print html($var).":</h3>\n";
- print htmlize($options{$opt}->{$var});
- print "</div>\n";
+ foreach my $var (sort keys %{$options{$opt}}) {
+ $options .= "<div>\n<h3>";
+ $options .= html($var).":</h3>\n";
+ $options .= htmlize($options{$opt}->{$var});
+ $options .= "</div>\n";
+ }
+
+ $file =~ s/<options "$opt">/$options/;
}
+ return $file;
}
+
+my $content = adddoc(shift @ARGV);
+print <<EOF;
+<html>
+ <head>
+ <title>$title</title>
+ <style>
+ pre {
+ padding: 5px;
+ border: 1px dashed #909090;
+ }
+ div {
+ padding: 5px;
+ }
+ </style>
+ </head>
+ <body>
+$content
+ </body>
+</html>
+EOF
+
# vim: ts=4:sw=4
More information about the pld-cvs-commit
mailing list