forked from len0rd/rockbox
renameing txt2plain.pl to faq2html.pl
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@1911 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
d421f5b372
commit
0525659877
1 changed files with 99 additions and 0 deletions
99
www/faq2html.pl
Executable file
99
www/faq2html.pl
Executable file
|
@ -0,0 +1,99 @@
|
|||
#!/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';
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue