[LON-CAPA-cvs] cvs: doc /help render.texxml.pl texxml2latex.pl usage.pl
albertel
lon-capa-cvs@mail.lon-capa.org
Tue, 14 Sep 2004 22:26:19 -0000
albertel Tue Sep 14 18:26:19 2004 EDT
Modified files:
/doc/help render.texxml.pl texxml2latex.pl usage.pl
Log:
- item 3) in BUG#3451, can now generate a manual from al of the help files which currently aren't in a manual
Index: doc/help/render.texxml.pl
diff -u doc/help/render.texxml.pl:1.17 doc/help/render.texxml.pl:1.18
--- doc/help/render.texxml.pl:1.17 Tue Sep 14 17:18:44 2004
+++ doc/help/render.texxml.pl Tue Sep 14 18:26:17 2004
@@ -76,8 +76,10 @@
$include_filenames='--with-filenames';
}
-my $redir = ">& /dev/null"; # empty this for easier debugging
-#my $redir = ">> /home/albertel/error_log.txt";
+#my $redir = ">& /dev/null"; # empty this for easier debugging
+my $redir = "~/error_log.txt";
+system("rm -f $redir");
+$redir=">> $redir";
mkdir $tmpdir, 0755;
Index: doc/help/texxml2latex.pl
diff -u doc/help/texxml2latex.pl:1.10 doc/help/texxml2latex.pl:1.11
--- doc/help/texxml2latex.pl:1.10 Tue Sep 14 17:18:44 2004
+++ doc/help/texxml2latex.pl Tue Sep 14 18:26:17 2004
@@ -44,6 +44,25 @@
open (LATEX_FILE, $dirprefix . "Latex_Header.tex");
print <LATEX_FILE>;
+sub escape_latex {
+ my ($string)=@_;
+ $string=~s/\\/\\ensuremath{\\backslash}/g;
+ $string=~s/([^\\]|^)\%/$1\\\%/g;
+ $string=~s/([^\\]|^)\$/$1\\\$/g;
+ $string=~s/([^\\])\_/$1\\_/g;
+ $string=~s/\$\$/\$\\\$/g;
+ $string=~s/\_\_/\_\\\_/g;
+ $string=~s/\#\#/\#\\\#/g;
+ $string=~s/([^\\]|^)(\~|\^)/$1\\$2\\strut /g;
+ $string=~s/(>|<)/\\ensuremath\{$1\}/g; #more or less
+# $string=&Apache::lonprintout::character_chart($string);
+ # any & or # leftover should be safe to just escape
+ $string=~s/([^\\]|^)\&/$1\\\&/g;
+ $string=~s/([^\\]|^)\#/$1\\\#/g;
+ $string=~s/\|/\$\\mid\$/g;
+ return $string;
+}
+
while (my $token = $p->get_token())
{
my $type = $token->[0];
@@ -52,27 +71,25 @@
my $attr = $token->[2];
if ($tag eq 'section') {
my $title = $attr->{'name'};
- print "\\section{$title}\n\n";
+ print "\\section{".&escape_latex($title)."}\n\n";
}
if ($tag eq 'subsection') {
my $title = $attr->{'name'};
- print "\\subsection{$title}\n\n";
+ print "\\subsection{"&escape_latex($title)."}\n\n";
}
if ($tag eq 'subsubsection') {
my $title = $attr->{'name'};
- print "\\subsubsection{$title}\n\n";
+ print "\\subsubsection{".&escape_latex($title)."}\n\n";
}
if ($tag eq 'file') {
my $file = $attr->{'name'};
open (LATEX_FILE, $dirprefix . $file) or
($! = 1, die "Can't find LaTeX file $dirprefix/$file; terminating build.");
- my $esc_file=$file;
- $esc_file=~s/_/\\_/g;
if ($include_filenames) {
- print "\\textrm{File: \\bf $esc_file}\\\\\n";
+ print "\\textrm{File: \\bf ".&escape_latex($file)."}\\\\\n";
}
print <LATEX_FILE>;
print "\n\n";
Index: doc/help/usage.pl
diff -u doc/help/usage.pl:1.2 doc/help/usage.pl:1.3
--- doc/help/usage.pl:1.2 Tue Sep 14 15:57:15 2004
+++ doc/help/usage.pl Tue Sep 14 18:26:17 2004
@@ -4,14 +4,21 @@
use HTML::TokeParser;
use Getopt::Long;
-my ($help) = (0,0,0);
-&GetOptions( "help" => \$help);
+my ($usage,$build_unused) = (0,0);
+&GetOptions( "usage" => \$usage,
+ "build-unused" => \$build_unused);
sub get_all_files {
my $dir="../../loncom/html/adm/help/tex/";
opendir(DIR,$dir);
my @files=sort {uc($a) cmp uc($b)} (readdir(DIR));
- return @files;
+ my @realfiles;
+ foreach my $file (@files) {
+ if ($file eq '.' || $file eq '..' || $file eq 'CVS' ||
+ $file eq 'Latex_Footer.tex' || $file eq 'Latex_Header.tex') {next;}
+ push(@realfiles,$file);
+ }
+ return @realfiles;
}
sub get_usage {
@@ -30,7 +37,9 @@
my ($all,$usage)=@_;
my %all;
my %no_exist;
- foreach my $file (@{ $all }) {$all{$file}=[];}
+ foreach my $file (@{ $all }) {
+ $all{$file}=[];
+ }
my @order=('author','course','developer');
foreach my $list (@{ $usage }) {
foreach my $file (@{ $list }) {
@@ -58,14 +67,42 @@
}
}
+sub texxml_unused {
+ my ($all,$usage)=@_;
+ my %all;
+ foreach my $file (@{ $all }) {$all{$file}='1';}
+ foreach my $list (@{ $usage }) {
+ foreach my $file (@{ $list }) {
+ if (exists($all{$file})) {
+ delete($all{$file});
+ }
+ }
+ }
+ print("<texxml>\n");
+ print("<title name=\"Unused files\" />\n");
+ foreach my $file (sort {uc($a) cmp uc($b)} (keys(%all))) {
+ print("<section name=\"$file\">\n");
+ print("<file name=\"$file\">\n");
+ print("</section>\n");
+ }
+ print("</texxml>\n");
+}
+
sub main {
my @all_files=&get_all_files();
my @author_usage=&get_usage('author');
my @course_usage=&get_usage('course');
my @developer_usage=&get_usage('developer');
- &print_unused(\@all_files,[\@author_usage,\@course_usage,
- \@developer_usage]);
+ if ($usage) {
+ &print_unused(\@all_files,[\@author_usage,\@course_usage,
+ \@developer_usage]);
+ } elsif($build_unused) {
+ &texxml_unused(\@all_files,[\@author_usage,\@course_usage,
+ \@developer_usage]);
+ } else {
+ print("Please specify either --usage or --build-unused\n");
+ }
}
&main;