5df244275b
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1997 a1c6a512-1295-4272-9138-f99709370657
101 lines
1.9 KiB
Perl
Executable file
101 lines
1.9 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
|
|
# this is really a faq2html and should only be used for this purpose
|
|
|
|
sub fixline {
|
|
$_ =~ s/\</</g;
|
|
$_ =~ s/\>/>/g;
|
|
|
|
$_ =~ s/(http:\/\/([a-zA-Z0-9_.\/-]*)[^\) .\n])/\<a href=\"$1\"\>$1\<\/a\>/g;
|
|
|
|
$_ =~ s/(\\|\/)$/$1 /g; # clobber backslash on end of line
|
|
}
|
|
|
|
sub show {
|
|
if(@q) {
|
|
print @q;
|
|
undef @q;
|
|
}
|
|
if(@a) {
|
|
print @a;
|
|
undef @a;
|
|
}
|
|
if(@p) {
|
|
print "<pre>\n";
|
|
print @p;
|
|
print "</pre>\n";
|
|
undef @p;
|
|
}
|
|
}
|
|
|
|
while(<STDIN>) {
|
|
|
|
fixline($_);
|
|
|
|
# detect and mark Q-sections
|
|
if( $_ =~ /^(Q(\d*)[.:] )(.*)/) {
|
|
|
|
show();
|
|
|
|
# collect the full Q
|
|
push @q, "<a name=\"$2\"></a><p class=\"faqq\">";
|
|
push @q, "$2. $3";
|
|
my $line;
|
|
|
|
$indent = length($1);
|
|
$first = " " x $indent;
|
|
|
|
#print "$indent|$first|$1|\n";
|
|
|
|
while(<STDIN>) {
|
|
|
|
fixline($_);
|
|
|
|
$line = $_;
|
|
|
|
if($_ !~ /^A/) {
|
|
push @q, "$_";
|
|
}
|
|
else {
|
|
last;
|
|
}
|
|
}
|
|
# first line of A
|
|
$line =~ s/^A(\d*)[.:] *//g; # cut off the "A[num]."
|
|
push @a, "<p class=\"faqa\">";
|
|
push @a, $line;
|
|
|
|
$prev='a';
|
|
next;
|
|
}
|
|
# print "$_ matches '$first'?\n";
|
|
|
|
if($_ =~ /^$first(\S)/) {
|
|
|
|
|
|
if($prev ne 'a') {
|
|
show();
|
|
push @a, "<p class=\"faqa\">";
|
|
}
|
|
|
|
push @a, $_;
|
|
$prev='a';
|
|
}
|
|
else {
|
|
if($prev ne 'p') {
|
|
show();
|
|
}
|
|
if(@p) {
|
|
# if we have data, we fix blank lines
|
|
$_ =~ s/^\s*$/\ \n/g; # empty lines are nbsp
|
|
push @p, $_; # add it
|
|
}
|
|
elsif($_ !~ /^\s*$/) {
|
|
# this is not a blank line, add it
|
|
push @p, $_;
|
|
}
|
|
$prev = 'p';
|
|
}
|
|
}
|
|
show();
|
|
|