Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Dec 2003 12:54:55 -0200
From:      Patrick Tracanelli <eksffa@freebsdbrasil.com.br>
To:        doc@freebsd.org
Cc:        Diego Linke - GAMK <gamk@gamk.com.br>
Subject:   FDP rules script
Message-ID:  <3FE8573F.10706@freebsdbrasil.com.br>

next in thread | raw e-mail | index | archive | help

Hello DOCers,

Mario Sergio (lioux@freebsd.org) uses to maintain a grep script that 
verifies some FDP rules on the SGML files, which is used a lot of times 
by the pt_BR doc. proj.

But now, after some little talk among some of us, Diego Linke has 
written a perl script that just do not checks for FDP rules, but also 
corrects them. It is still in BETA state. I know most of the rules are
not "fatal" but at least they save some disk space on making it.

If there is a chance it is any usefull for the main Doc. Proj, the small 
script follows in this message's body. Everything it does, is commented.

Best Regards

-- 
Atenciosamente,

Patrick Tracanelli

FreeBSD Brasil LTDA.
The FreeBSD pt_BR Documentation Project
http://www.freebsdbrasil.com.br
patrick @ freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"


-------------------------------------------------------------

#!/usr/bin/env perl
#
# This script "fixes" some FDP broken rules such as:
# 1) Removes space(s) after <para> tag
# 2) Removes space(s) before </para> tag
# 3) Removes all spaces on clear lines and leaves
#    only new line specifier -- the \n
# 4) Removes clear spaces right after the end of the lines
# 5) Substitutes 8 spaces by a \t (a TAB)
# 6) Substitutes 1 space after a phrase separator (.?!) by 2 spaces
# 7) If there are 2 spaces between two words, it removes one of them
#
# This scripts "tells" the following good behaviour breakage:
# 1) Generates a WARNING everytime each line has more than 70 collumns
#
# Written by Diego Linke <gamk@gamk.com.br>
# The FreeBSD pt_BR Documentation Project
#

if (!$ARGV[0]) {
   print STDERR "This scripts requires one argument (sintax: fdp.pl 
[file_name]).\n";
   exit(1);
}

open(FILE,$ARGV[0]) or die "Could not open $ARGV[0].\n";
$cont = 0;
$lc = 0;
while ($linha = <FILE>) {
   $lc++;
   $linha =~ s/(\n|\r)//g;
   $linha_old = $linha;
   $linha =~ s/<para>\ +/<para>/g;
   $linha =~ s/\ +<\/para>/<\/para>/g;
   $linha =~ s/^\ +$//g;
   $linha =~ s/\ +$//g;
   $linha =~ s/\ {8}/\t/g;
   $linha =~ s/(\.|\?|\!) (\w)/\1  \2/g;
   $linha =~ s/(\w)  (\w|&|%)/\1 \2/g;
   print $linha . "\n";
   $linha_cont = $linha;
   $linha_cont =~ s/\t/        /g;
   if (length($linha_cont) > 70) {
     print STDERR "WARNING: Line $lc is over 70 collumns. It actually 
has " . length($linha_cont) . " collumns\n";
   }
   $cont++ if ($linha ne $linha_old);
}
print STDERR "\nfdp.pl: $cont line(s) were modified on $ARGV[0]\n";
close(FILE);






Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3FE8573F.10706>