[Python-checkins] CVS: python/dist/src/Doc/perl l2hinit.perl,1.42,1.43

Fred L. Drake python-dev@python.org
2000年7月31日 10:53:48 -0700


Update of /cvsroot/python/python/dist/src/Doc/perl
In directory slayer.i.sourceforge.net:/tmp/cvs-serv8122/perl
Modified Files:
	l2hinit.perl 
Log Message:
Many changes to work with newer versions of LaTeX2HTML. This has been 
tested with version 99.2beta8.
Index: l2hinit.perl
===================================================================
RCS file: /cvsroot/python/python/dist/src/Doc/perl/l2hinit.perl,v
retrieving revision 1.42
retrieving revision 1.43
diff -C2 -r1.42 -r1.43
*** l2hinit.perl	2000年04月03日 04:41:18	1.42
--- l2hinit.perl	2000年07月31日 17:53:45	1.43
***************
*** 1,21 ****
! #LaTeX2HTML Version 96.1 : dot.latex2html-init		-*- perl -*-
! #
! # Significantly revised by Fred L. Drake, Jr. <fdrake@acm.org> for use
! # with the Python documentation.
! #
! # New name to avoid distributing "dot" files with the Python documentation.
! #
! 
! package Override;
! 
! use Cwd qw(getcwd);
! 
 
 package main;
 
 $HTML_VERSION = 4.0;
 
 $MAX_LINK_DEPTH = 2;
- $MAX_SPLIT_DEPTH = 5; # split at subsections but not sub-subsections
 $ADDRESS = '';
 
--- 1,11 ----
! # LaTeX2HTML support base for use with Python documentation.
 
 package main;
 
+ use L2hos;
+ 
 $HTML_VERSION = 4.0;
 
 $MAX_LINK_DEPTH = 2;
 $ADDRESS = '';
 
***************
*** 35,41 ****
 $AUTO_NAVIGATION = 0;
 
- $SUPPRESS_CONTENTS = 0;
- $SUPPRESS_INDEXES = 0;
- 
 # these exactly match the python.org colors
 $BODYTEXT = ('bgcolor="#ffffff" text="#000000"'
--- 25,28 ----
***************
*** 50,61 ****
 
 # A little painful, but lets us clean up the top level directory a little,
! # and not be tied to the current directory (as far as I can tell).
! #
! use Cwd;
! use File::Basename;
! ($myname, $mydir, $myext) = fileparse(__FILE__, '\..*');
! chop $mydir;			# remove trailing '/'
! $mydir = getcwd() . "$dd$mydir"
! unless $mydir =~ s|^/|/|;
 $LATEX2HTMLSTYLES = "$mydir$envkey$LATEX2HTMLSTYLES";
 push (@INC, $mydir);
--- 37,54 ----
 
 # A little painful, but lets us clean up the top level directory a little,
! # and not be tied to the current directory (as far as I can tell). Testing
! # an existing definition of $mydir is needed since it cannot be computed when
! # run under mkhowto with recent versions of LaTeX2HTML, since this file is
! # not read directly by LaTeX2HTML any more. mkhowto is required to prepend
! # the required definition at the top of the actual input file.
! #
! if (!defined $mydir) {
! use Cwd;
! use File::Basename;
! ($myname, $mydir, $myext) = fileparse(__FILE__, '\..*');
! chop $mydir;			# remove trailing '/'
! $mydir = getcwd() . "$dd$mydir"
! unless $mydir =~ s|^/|/|;
! }
 $LATEX2HTMLSTYLES = "$mydir$envkey$LATEX2HTMLSTYLES";
 push (@INC, $mydir);
***************
*** 85,89 ****
 
 
! sub custom_driver_hook{
 #
 # This adds the directory of the main input file to $TEXINPUTS; it
--- 78,82 ----
 
 
! sub custom_driver_hook {
 #
 # This adds the directory of the main input file to $TEXINPUTS; it
***************
*** 92,153 ****
 #
 my $file = @_[0];
! my($jobname,$dir,$ext) = fileparse($file, '\..*');
! $dir = make_directory_absolute($dir);
 $dir =~ s/$dd$//;
 $TEXINPUTS = "$dir$envkey$mytexinputs";
! print "\nadding $dir to \$TEXINPUTS\n";
 }
 
- # Defining this allows us to remove all table of contents and index
- # processing using an init file; this is required to get rid of the
- # Table of Contents or we'd get a blank page. Based on a suggestion
- # from Ross Moore <ross@ics.mq.edu.au>.
- #
- # Seems to require a more recent version of LaTeX2HTML than I've
- # been using, though.
- #
- sub preprocess{
- if ($SUPPRESS_CONTENTS) {
- 	s/\\(tableofcontents|listof(figures|tables))/2円/g;
- }
- if ($SUPPRESS_INDEXES) {
- 	s/\\(print|make)index//g;
- }
- }
- 
 
! sub set_icon_size{
! my($name, $w, $h) = @_;
! $iconsizes{$name} = "width=$w height=$h";
! }
! 
! foreach $name (split(/ /, 'up next previous contents index modules blank')) {
! set_icon_size($name, 32, 32);
! }
! sub adjust_icon_information{
! # The '_motif' is really annoying, and makes the HTML larger with no value
! # added, so strip it off:
! foreach $name (keys %icons) {
! my $icon = $icons{$name};
! # Strip off the wasteful '_motif':
! $icon =~ s/_motif//;
! # Change the greyed-out icons to be blank:
! $icon =~ s/[a-z]*_gr[.]/blank./;
! # make sure we're using the latest $IMAGE_TYPE
! $icon =~ s/[.](gif|png)$/.$IMAGE_TYPE/;
! $icons{$name} = $icon;
! }
! $icons{'blank'} = 'blank.' . $IMAGE_TYPE;
! 
! $CUSTOM_BUTTONS = '';
! $BLANK_ICON = "\n<td>" . img_tag('blank.' . $IMAGE_TYPE) . "</td>";
! $BLANK_ICON =~ s/alt="blank"/alt=""/;
! $NAV_BGCOLOR = " bgcolor=\"#99CCFF\"";
! }
! 
! adjust_icon_information();
 
! 
! sub make_nav_sectref{
 my($label,$title) = @_;
 if ($title) {
--- 85,100 ----
 #
 my $file = @_[0];
! my($jobname, $dir, $ext) = fileparse($file, '\..*');
! $dir = L2hos->Make_directory_absolute($dir);
 $dir =~ s/$dd$//;
 $TEXINPUTS = "$dir$envkey$mytexinputs";
! print "\nAdding $dir to \$TEXINPUTS\n";
 }
 
 
! $CUSTOM_BUTTONS = '';
! $NAV_BGCOLOR = " bgcolor=\"#99CCFF\"";
 
! sub make_nav_sectref {
 my($label,$title) = @_;
 if ($title) {
***************
*** 157,198 ****
 return '';
 }
 
! sub make_nav_panel{
 my $s;
! $s = "<table align='center' width='100%' cellpadding='0' cellspacing='2'>"
! . "\n<tr>"
! 	 . "\n<td>$NEXT</td>"
! 	 . "\n<td>$UP</td>"
! 	 . "\n<td>$PREVIOUS</td>";
! if ($SUPPRESS_CONTENTS && $SUPPRESS_INDEXES) {
! 	$s .= ("\n<td align=right$NAV_BGCOLOR width=\"100%\">"
! 	 . "\n <b class=title>$t_title\&nbsp;\&nbsp;\&nbsp;</b></td>");
! }
! else {
! 	$s .= ("\n<td align=center$NAV_BGCOLOR width=\"100%\">"
! 	 . "\n <b class=title>$t_title</b></td>"
! 	 . ($CONTENTS ? "\n<td>$CONTENTS</td>" : $BLANK_ICON)
! 	 . "\n<td>$CUSTOM_BUTTONS</td>" # module index
! 	 . ($INDEX ? "\n<td>$INDEX</td>" : $BLANK_ICON));
! }
! $s .= ("\n</tr></table>"
! 	 . make_nav_sectref("Next", $NEXT_TITLE)
! 	 . make_nav_sectref("Up", $UP_TITLE)
! 	 . make_nav_sectref("Previous", $PREVIOUS_TITLE));
! # remove these; they are unnecessary and cause error from validation
! $s =~ s/ NAME="tex2html\d+"\n//g;
 return $s;
 }
 
 sub top_navigation_panel {
! "<div class='navigation'>\n"
! . make_nav_panel()
! . '<br><hr></div>';
 }
 
 sub bot_navigation_panel {
! "<p>\n<div class='navigation'><hr>"
! . make_nav_panel()
! . '</div>';
 }
 
--- 104,181 ----
 return '';
 }
+ 
+ sub make_my_icon {
+ my($name, $text) = @_;
+ my $iconserver = ($ICONSERVER eq '.') ? '' : "$ICONSERVER/";
+ return "<img src=\"$iconserver$name.$IMAGE_TYPE\" border=\"0\""
+ . " height=\"32\"\n alt=\"$text\" width=\"32\">";
+ }
+ 
+ $BLANK_ICON = make_my_icon("blank", "");
+ 
+ @my_icons = ();
+ $my_icons{'next_page_inactive'} = $BLANK_ICON;
+ $my_icons{'previous_page_inactive'} = $BLANK_ICON;
+ $my_icons{'up_page_inactive'} = $BLANK_ICON;
+ $x = make_my_icon("next", "Next Page");
+ $my_icons{'next_page'} = $x;
+ $my_icons{'next'} = $x;
+ $x = make_my_icon("previous", "Previous Page");
+ $my_icons{'previous_page'} = $x;
+ $my_icons{'previous'} = $x;
+ $my_icons{'up'} = make_my_icon("up", "Up One Level");
+ $my_icons{'contents'} = make_my_icon("contents", "Contents");
+ $my_icons{'index'} = make_my_icon("index", "Index");
+ $my_icons{'modules'} = make_my_icon("modules", "Module Index");
+ 
+ 
+ sub use_my_icon {
+ my $s = @_[0];
+ $s =~ s/\<tex2html_([a-z_]+)_visible_mark\>/$my_icons{1ドル}/;
+ return $s;
+ }
 
! sub make_nav_panel {
 my $s;
! $NEXT = use_my_icon("$NEXT");
! $UP = use_my_icon("$UP");
! $PREVIOUS = use_my_icon("$PREVIOUS");
! $CONTENTS = use_my_icon("$CONTENTS");
! $INDEX = $INDEX ? use_my_icon("$INDEX") : $BLANK_ICON;
! if (!$CUSTOM_BUTTONS) {
! $CUSTOM_BUTTONS = $BLANK_ICON;
! }
! $s = ('<table align="center" width="100%" cellpadding="0" cellspacing="2">'
! . "\n<tr>"
! # left-hand side
! . "\n<td>$NEXT</td>"
! . "\n<td>$UP</td>"
! . "\n<td>$PREVIOUS</td>"
! # title box
! . "\n<td align=\"center\"$NAV_BGCOLOR width=\"100%\">"
! . "\n <b class=\"title\">$t_title</b></td>"
! # right-hand side
! . "\n<td>$CONTENTS</td>"
! . "\n<td>$CUSTOM_BUTTONS</td>" # module index
! . "\n<td>$INDEX</td>"
! . "\n</tr></table>\n"
! # textual navigation
! . make_nav_sectref("Next", $NEXT_TITLE)
! . make_nav_sectref("Up", $UP_TITLE)
! . make_nav_sectref("Previous", $PREVIOUS_TITLE));
! # remove these; they are unnecessary and cause errors from validation
! $s =~ s/ NAME="tex2html\d+"\n */ /g;
 return $s;
 }
 
+ 
 sub top_navigation_panel {
! return make_nav_panel()
! . '<br><hr>';
 }
 
 sub bot_navigation_panel {
! return "<p><hr>"
! . make_nav_panel();
 }
 
***************
*** 202,205 ****
--- 185,189 ----
 my($dummy, $file, $title) = split($delim,
 				 $section_info{join(' ',@link)});
+ $icon =~ s/\<tex2html_([_a-z]+)_visible_mark\>/$my_icons{1ドル}/;
 if ($title && ($file ne $current_file)) {
 $title = purify($title);
***************
*** 207,280 ****
 	return (make_href($file, $icon), make_href($file, "$title"))
 	}
! elsif ($icon eq $up_visible_mark && $EXTERNAL_UP_LINK) {
 	return (make_href($EXTERNAL_UP_LINK, $icon),
 		make_href($EXTERNAL_UP_LINK, "$EXTERNAL_UP_TITLE"))
 	}
! elsif (($icon eq $previous_visible_mark
! 	 || $icon eq $previous_page_visible_mark)
 	 && $EXTERNAL_PREV_LINK && $EXTERNAL_PREV_TITLE) {
 	return (make_href($EXTERNAL_PREV_LINK, $icon),
 		make_href($EXTERNAL_PREV_LINK, "$EXTERNAL_PREV_TITLE"))
 	}
! elsif (($icon eq $next_visible_mark
! 	 || $icon eq $next_page_visible_mark)
 	 && $EXTERNAL_DOWN_LINK && $EXTERNAL_DOWN_TITLE) {
 	return (make_href($EXTERNAL_DOWN_LINK, $icon),
 		make_href($EXTERNAL_DOWN_LINK, "$EXTERNAL_DOWN_TITLE"))
 	}
! (&inactive_img($icon), "");
 }
 
 sub add_special_link {
 my($icon, $file, $current_file) = @_;
! (($file && ($file ne $current_file)) ? make_href($file, $icon) : undef)
 }
 
! sub img_tag {
! local($icon) = @_;
! my $alt;
! my $align = " align=bottom ";
! 
! # having this list hardcoded here is really bogus....
! $alt = join('|', 'up', 'next_group', 'previous_group'
! 		, 'next', 'previous', 'change_begin_right', 'change_begin'
! 		, 'change_end_right', 'change_end', 'change_delete_right'
! 		, 'change_delete', 'contents', 'index', 'modules', 'blank');
! 
! if ($icon =~ /(gif|png)$/) {
! 	$used_icons{$icon} = 1;
! 	if ($icon =~ /change_(begin|end|delete)_right/) { $align = ' ' };
! 	my $nav_border = "$NAV_BORDER";
! 	if ($icon =~ /($alt)/) {
! 	 $alt = 1ドル;
! 	 $alt = ""
! 	 if ($alt eq "blank");
! 	}
! 	else {
! 	 $nav_border = '1';
! 	 $alt = '[*]';
! 	};
! 	if ($LOCAL_ICONS) {
! 	 return join('', '<img ', $iconsizes{1ドル}, $align
! 			,'border=', $nav_border, ' alt="', $alt
! 			,'" src="', $icon, '">' );
! 	}
! 	my $s = join('', '<img ', $iconsizes{1ドル}, $align,
! 'border=', $nav_border, ' alt="', $alt, "\"\n",
! ' src="', $ICONSERVER, "/$icon", '">' );
! # if $ICONSERVER starts with "./", remove "./":
! $s =~ s|src="(.\/)+|src="|;
! return $s;
! }
! else {
! 	return $icon;
! }
! }
! 
 
 sub do_cmd_arabic {
 # get rid of that nasty <SPAN CLASS="arabic">...</SPAN>
! local($ctr, $val, $id, $_) = &read_counter_value(@_[0]);
! return ($val ? &farabic($val) : "0") . $_;
 }
 
--- 191,231 ----
 	return (make_href($file, $icon), make_href($file, "$title"))
 	}
! elsif ($icon eq $my_icons{"up"} && $EXTERNAL_UP_LINK) {
 	return (make_href($EXTERNAL_UP_LINK, $icon),
 		make_href($EXTERNAL_UP_LINK, "$EXTERNAL_UP_TITLE"))
 	}
! elsif ($icon eq $my_icons{"previous"}
 	 && $EXTERNAL_PREV_LINK && $EXTERNAL_PREV_TITLE) {
 	return (make_href($EXTERNAL_PREV_LINK, $icon),
 		make_href($EXTERNAL_PREV_LINK, "$EXTERNAL_PREV_TITLE"))
 	}
! elsif ($icon eq $my_icons{"next"}
 	 && $EXTERNAL_DOWN_LINK && $EXTERNAL_DOWN_TITLE) {
 	return (make_href($EXTERNAL_DOWN_LINK, $icon),
 		make_href($EXTERNAL_DOWN_LINK, "$EXTERNAL_DOWN_TITLE"))
 	}
! return (&inactive_img($icon), "");
 }
 
 sub add_special_link {
 my($icon, $file, $current_file) = @_;
! $icon =~ s/\<tex2html_([_a-z]+)_visible_mark\>/$my_icons{1ドル}/;
! return (($file && ($file ne $current_file))
! ? make_href($file, $icon)
! : undef)
 }
 
! # The img_tag() function seems only to be called with the parameter
! # 'anchor_invisible_mark', which we want to turn into ''. Since
! # replace_icon_marks() is the only interesting caller, and all it really
! # does is call img_tag(), we can just define the hook alternative to be
! # a no-op instead.
! #
! sub replace_icons_hook {}
 
 sub do_cmd_arabic {
 # get rid of that nasty <SPAN CLASS="arabic">...</SPAN>
! my($ctr, $val, $id, $text) = &read_counter_value(@_[0]);
! return ($val ? farabic($val) : "0") . $text;
 }
 
***************
*** 286,290 ****
 }
 
! sub insert_index{
 my($mark,$datafile,$columns,$letters,$prefix) = @_;
 my $prog = "$myrootdir/tools/buildindex.py";
--- 237,241 ----
 }
 
! sub insert_index {
 my($mark,$datafile,$columns,$letters,$prefix) = @_;
 my $prog = "$myrootdir/tools/buildindex.py";
***************
*** 299,303 ****
 }
 
! sub add_idx{
 print "\nBuilding HTML for the index ...";
 close(IDXFILE);
--- 250,254 ----
 }
 
! sub add_idx {
 print "\nBuilding HTML for the index ...";
 close(IDXFILE);
***************
*** 309,313 ****
 $idx_module_title = 'Module Index';
 
! sub add_module_idx{
 print "\nBuilding HTML for the module index ...";
 my $key;
--- 260,264 ----
 $idx_module_title = 'Module Index';
 
! sub add_module_idx {
 print "\nBuilding HTML for the module index ...";
 my $key;
***************
*** 357,361 ****
 
 # replace both indexes as needed:
! sub add_idx_hook{
 add_idx() if (/$idx_mark/);
 add_module_idx() if (/$idx_module_mark/);
--- 308,312 ----
 
 # replace both indexes as needed:
! sub add_idx_hook {
 add_idx() if (/$idx_mark/);
 add_module_idx() if (/$idx_module_mark/);
***************
*** 368,374 ****
 sub do_cmd_tableofcontents {
 local($_) = @_;
- # if ($SUPPRESS_CONTENTS) {
- # 	return $_;
- # }
 $TITLE = $toc_title;
 $tocfile = $CURRENT_FILE;
--- 319,322 ----
***************
*** 466,494 ****
 s/([\\]begin\s*$O\d+$C\s*thebibliography)/$bbl_cnt++; 1ドル/eg;
 s/([\\]begin\s*$O\d+$C\s*thebibliography)/$id++; "\\bibliography$O$id$C$O$id$C 1ドル"/geo;
! #----------------------------------------------------------------------
! # (FLD) This was added
! if ($SUPPRESS_INDEXES) {
! 	$CUSTOM_BUTTONS .= img_tag('blank.' . $IMAGE_TYPE);
 }
 else {
! 	my(@parts) = split(/\\begin\s*$O\d+$C\s*theindex/);
! 	if (scalar(@parts) == 3) {
! 	 # Be careful to re-write the string in place, since $_ is *not*
! 	 # returned explicity; *** nasty side-effect dependency! ***
! 	 print "\nadd_bbl_and_idx_dummy_commands ==> adding module index";
! 	 my $rx = "([\\\\]begin\\s*$O\\d+$C\\s*theindex[\\s\\S]*)"
! 	 . "([\\\\]begin\\s*$O\\d+$C\\s*theindex)";
! 	 s/$rx/\\textohtmlmoduleindex 1円 \\textohtmlindex 2円/o;
! 	 # Add a button to the navigation areas:
! 	 $CUSTOM_BUTTONS .= ("<a\n href=\"modindex.html\">"
! 				. img_tag('modules.'.$IMAGE_TYPE) . "</a>");
! 	}
! 	else {
! 	 $CUSTOM_BUTTONS .= img_tag('blank.' . $IMAGE_TYPE);
! 	 $global{'max_id'} = $id; # not sure why....
! 	 s/([\\]begin\s*$O\d+$C\s*theindex)/\\textohtmlindex 1ドル/o;
 	 s/[\\]printindex/\\textohtmlindex /o;
 	}
- }
 #----------------------------------------------------------------------
 lib_add_bbl_and_idx_dummy_commands()
--- 414,434 ----
 s/([\\]begin\s*$O\d+$C\s*thebibliography)/$bbl_cnt++; 1ドル/eg;
 s/([\\]begin\s*$O\d+$C\s*thebibliography)/$id++; "\\bibliography$O$id$C$O$id$C 1ドル"/geo;
! my(@parts) = split(/\\begin\s*$O\d+$C\s*theindex/);
! if (scalar(@parts) == 3) {
! # Be careful to re-write the string in place, since $_ is *not*
! # returned explicity; *** nasty side-effect dependency! ***
! print "\nadd_bbl_and_idx_dummy_commands ==> adding module index";
! my $rx = "([\\\\]begin\\s*$O\\d+$C\\s*theindex[\\s\\S]*)"
! . "([\\\\]begin\\s*$O\\d+$C\\s*theindex)";
! s/$rx/\\textohtmlmoduleindex 1円 \\textohtmlindex 2円/o;
! # Add a button to the navigation areas:
! $CUSTOM_BUTTONS .= $my_icons{'modules'};
 }
 else {
! $CUSTOM_BUTTONS .= $BLANK_ICON;
! $global{'max_id'} = $id; # not sure why....
! s/([\\]begin\s*$O\d+$C\s*theindex)/\\textohtmlindex 1ドル/o;
 	 s/[\\]printindex/\\textohtmlindex /o;
 	}
 #----------------------------------------------------------------------
 lib_add_bbl_and_idx_dummy_commands()
***************
*** 532,553 ****
 
 
- # Fix from Ross Moore for ']' in \item[...]; this can be removed once the next
- # patch to LaTeX2HTML is released and tested ... if the patch gets included.
- # Be very careful to keep this around, just in case things break again!
- #
- sub protect_useritems {
- local(*_) = @_;
- local($preitems,$thisitem);
- while (/\\item\s*\[/) {
- $preitems .= $`;
- 	$_ = $';
- $thisitem = $&.'<<'.++$global{'max_id'}.'>>';
- s/^(((($O|$OP)\d+($C|$CP)).*3円|<[^<>]*>|[^\]<]+)*)\]/$thisitem.=1ドル;''/e;
- $preitems .= $thisitem . '<<' . $global{'max_id'} . '>>]';
- 	s/^]//;
- }
- $_ = $preitems . $_;
- }
- 
 # This changes the markup used for {verbatim} environments, and is the
 # best way I've found that ensures the <dl> goes on the outside of the
--- 472,475 ----
***************
*** 567,578 ****
 # page.
 sub make_head_and_body {
! local($title,$body) = @_;
! local($DTDcomment) = '';
! local($version,$isolanguage) = ($HTML_VERSION, 'EN');
! local(%isolanguages) = ( 'english', 'EN' , 'USenglish', 'EN.US'
! 			 , 'original', 'EN' , 'german' , 'DE'
! 			 , 'austrian', 'DE.AT', 'french' , 'FR'
! 			 , 'spanish', 'ES'
! 			 , %isolanguages );
 $isolanguage = $isolanguages{$default_language};
 $isolanguage = 'EN' unless $isolanguage;
--- 489,499 ----
 # page.
 sub make_head_and_body {
! my($title, $body) = @_;
! my $DTDcomment = '';
! my($version, $isolanguage) = ($HTML_VERSION, 'EN');
! my %isolanguages = ( 'english', 'EN' , 'USenglish', 'EN.US'
! , 'original', 'EN' , 'german' , 'DE'
! , 'austrian', 'DE.AT', 'french' , 'FR'
! , 'spanish', 'ES');
 $isolanguage = $isolanguages{$default_language};
 $isolanguage = 'EN' unless $isolanguage;

AltStyle によって変換されたページ (->オリジナル) /