diff options
-rw-r--r-- | Doc/perl/python.perl | 77 |
1 files changed, 68 insertions, 9 deletions
diff --git a/Doc/perl/python.perl b/Doc/perl/python.perl index 5c31e80..f457715 100644 --- a/Doc/perl/python.perl +++ b/Doc/perl/python.perl @@ -238,6 +238,23 @@ sub do_cmd_manpage{ return "<span class='manpage'><i>$page</i>($section)</span>" . $_; } +sub get_pep_url{ + my $rfcnum = sprintf("%04d", @_[0]); + return "http://python.sourceforge.net/peps/pep-$rfcnum.html"; +} + +sub do_cmd_pep{ + local($_) = @_; + my $rfcnumber = next_argument(); + my $id = "rfcref-" . ++$global{'max_id'}; + my $href = get_pep_url($rfcnumber); + # Save the reference + my $nstr = gen_index_id("Python Enhancement Proposals!PEP $rfcnumber", ''); + $index{$nstr} .= make_half_href("$CURRENT_FILE#$id"); + return ("<a class=\"rfc\" name=\"$id\"\nhref=\"$href\">PEP $rfcnumber</a>" + . $_); +} + sub get_rfc_url{ my $rfcnum = sprintf("%04d", @_[0]); return "http://www.ietf.org/rfc/rfc$rfcnum.txt"; @@ -814,16 +831,24 @@ sub do_env_excdesc{ sub do_env_fulllineitems{ return do_env_itemize(@_); } -sub do_env_classdesc{ - local($_) = @_; +sub handle_classlike_descriptor{ + local($_, $what) = @_; $THIS_CLASS = next_argument(); my $arg_list = next_argument(); $idx = make_str_index_entry( - "<tt class='class'>$THIS_CLASS</tt> (class in $THIS_MODULE)" ); + "<tt class='$what'>$THIS_CLASS</tt> ($what in $THIS_MODULE)" ); $idx =~ s/ \(.*\)//; return "<dl><dt><b>$idx</b> (<var>$arg_list</var>)\n<dd>" . $_ . '</dl>'; } +sub do_env_classdesc{ + return handle_classlike_descriptor(@_[0], "class"); +} + +sub do_env_excclassdesc{ + return handle_classlike_descriptor(@_[0], "exception"); +} + sub do_env_methoddesc{ local($_) = @_; @@ -1269,18 +1294,18 @@ sub get_chapter_id(){ return $id; } -%ModuleSynopses = ('chapter' => 'SynopsisTable instance'); +# 'chapter' => 'SynopsisTable instance' +%ModuleSynopses = (); sub get_synopsis_table($){ my($chap) = @_; - my $st = $ModuleSynopses{$chap}; my $key; foreach $key (keys %ModuleSynopses) { if ($key eq $chap) { return $ModuleSynopses{$chap}; } } - $st = SynopsisTable->new(); + my $st = SynopsisTable->new(); $ModuleSynopses{$chap} = $st; return $st; } @@ -1323,10 +1348,33 @@ sub do_cmd_modulesynopsis{ sub do_cmd_localmoduletable{ local($_) = @_; my $chap = get_chapter_id(); + my $st = get_synopsis_table($chap); + $st->set_file("$CURRENT_FILE"); return "<tex2html-localmoduletable><$chap>\\tableofchildlinks[off]" . $_; } sub process_all_localmoduletables{ + my $key; + my $st, $file; + foreach $key (keys %ModuleSynopses) { + $st = $ModuleSynopses{$key}; + $file = $st->get_file(); + if ($file) { + process_localmoduletables_in_file($file); + } + else { + print "\nsynopsis table $key has no file association"; + } + } +} + +sub process_localmoduletables_in_file{ + my $file = @_[0]; + open(MYFILE, "<$file"); + local($_); + sysread(MYFILE, $_, 1024*1024); + close(MYFILE); + # need to get contents of file in $_ while (/<tex2html-localmoduletable><(\d+)>/) { my $match = $&; my $chap = $1; @@ -1334,6 +1382,9 @@ sub process_all_localmoduletables{ my $data = $st->tohtml(); s/$match/$data/; } + open(MYFILE,">$file"); + print MYFILE $_; + close(MYFILE); } sub process_python_state{ process_all_localmoduletables(); @@ -1371,8 +1422,8 @@ sub do_cmd_seemodule{ . $_; } -sub do_cmd_seerfc{ - local($_) = @_; +sub handle_rfclike_reference{ + local($_, $what) = @_; my $rfcnum = next_argument(); my $title = next_argument(); my $text = next_argument(); @@ -1380,11 +1431,19 @@ sub do_cmd_seerfc{ return '<dl compact class="seerfc">' . "\n <dt><a href=\"$url\"" . "\n title=\"$title\"" - . "\n >RFC $rfcnum, <em>$title</em></a>:" + . "\n >$what $rfcnum, <em>$title</em></a>:" . "\n <dd>$text\n </dl>" . $_; } +sub do_cmd_seepep{ + return handle_rfclike_reference(@_[0], "PEP"); +} + +sub do_cmd_seerfc{ + return handle_rfclike_reference(@_[0], "RFC"); +} + sub do_cmd_seeurl{ local($_) = @_; my $url = next_argument(); |