📄 python.perl
字号:
. "(<var>$arg_list</var>)\n"
. '<dd>'
. $_
. '</dl>';
}
sub do_cmd_funcline{
local($_) = @_;
my $function_name = next_argument();
my $arg_list = convert_args(next_argument());
my $prefix = "<tt class=\"function\">$function_name()</tt>";
my $idx = make_str_index_entry($prefix . get_indexsubitem());
$prefix =~ s/\(\)//;
return "<dt><b>$prefix</b>(<var>$arg_list</var>)\n<dd>" . $_;
}
sub do_cmd_funclineni{
local($_) = @_;
my $function_name = next_argument();
my $arg_list = convert_args(next_argument());
my $prefix = "<tt class=\"function\">$function_name</tt>";
return "<dt><b>$prefix</b>(<var>$arg_list</var>)\n<dd>" . $_;
}
# Change this flag to index the opcode entries. I don't think it's very
# useful to index them, since they're only presented to describe the dis
# module.
#
$INDEX_OPCODES = 0;
sub do_env_opcodedesc{
local($_) = @_;
my $opcode_name = next_argument();
my $arg_list = next_argument();
my $idx;
if ($INDEX_OPCODES) {
$idx = make_str_index_entry("<tt class=\"opcode\">$opcode_name</tt>"
. ' (byte code instruction)');
$idx =~ s/ \(byte code instruction\)//;
}
else {
$idx = "<tt class=\"opcode\">$opcode_name</tt>";
}
my $stuff = "<dl><dt><b>$idx</b>";
if ($arg_list) {
$stuff .= " <var>$arg_list</var>";
}
return $stuff . "\n<dd>" . $_ . '</dl>';
}
sub do_env_datadesc{
local($_) = @_;
my $dataname = next_argument();
my $idx = make_str_index_entry("<tt>$dataname</tt>" . get_indexsubitem());
$idx =~ s/ \(.*\)//;
return "<dl><dt><b>$idx</b>\n<dd>"
. $_
. '</dl>';
}
sub do_env_datadescni{
local($_) = @_;
my $idx = next_argument();
if (! $STRING_INDEX_TT) {
$idx = "<tt>$idx</tt>";
}
return "<dl><dt><b>$idx</b>\n<dd>" . $_ . '</dl>';
}
sub do_cmd_dataline{
local($_) = @_;
my $data_name = next_argument();
my $idx = make_str_index_entry("<tt>$data_name</tt>" . get_indexsubitem());
$idx =~ s/ \(.*\)//;
return "<dt><b>$idx</b><dd>" . $_;
}
sub do_cmd_datalineni{
local($_) = @_;
my $data_name = next_argument();
return "<dt><b><tt>$data_name</tt></b><dd>" . $_;
}
sub do_env_excdesc{
local($_) = @_;
my $excname = next_argument();
my $idx = make_str_index_entry("<tt class=\"exception\">$excname</tt>");
return ("<dl><dt><b>${TLSTART}exception$TLEND $idx</b>"
. "\n<dd>"
. $_
. '</dl>');
}
sub do_env_fulllineitems{ return do_env_itemize(@_); }
sub handle_classlike_descriptor{
local($_, $what) = @_;
$THIS_CLASS = next_argument();
my $arg_list = convert_args(next_argument());
$idx = make_str_index_entry(
"<tt class=\"$what\">$THIS_CLASS</tt> ($what in $THIS_MODULE)" );
$idx =~ s/ \(.*\)//;
return ("<dl><dt><b>$TLSTART$what$TLEND $idx</b>"
. "(<var>$arg_list</var>)\n<dd>"
. $_
. '</dl>');
}
sub do_env_classdesc{
return handle_classlike_descriptor(@_[0], "class");
}
sub do_env_classdescstar{
local($_) = @_;
$THIS_CLASS = next_argument();
$idx = make_str_index_entry(
"<tt class=\"class\">$THIS_CLASS</tt> (class in $THIS_MODULE)");
$idx =~ s/ \(.*\)//;
return ("<dl><dt><b>${TLSTART}class$TLEND $idx</b>\n<dd>"
. $_
. '</dl>');
}
sub do_env_excclassdesc{
return handle_classlike_descriptor(@_[0], "exception");
}
sub do_env_methoddesc{
local($_) = @_;
my $class_name = next_optional_argument();
$class_name = $THIS_CLASS
unless $class_name;
my $method = next_argument();
my $arg_list = convert_args(next_argument());
my $extra = '';
if ($class_name) {
$extra = " ($class_name method)";
}
my $idx = make_str_index_entry(
"<tt class=\"method\">$method()</tt>$extra");
$idx =~ s/ \(.*\)//;
$idx =~ s/\(\)//;
return "<dl><dt><b>$idx</b>(<var>$arg_list</var>)\n<dd>" . $_ . '</dl>';
}
sub do_cmd_methodline{
local($_) = @_;
my $class_name = next_optional_argument();
$class_name = $THIS_CLASS
unless $class_name;
my $method = next_argument();
my $arg_list = convert_args(next_argument());
my $extra = '';
if ($class_name) {
$extra = " ($class_name method)";
}
my $idx = make_str_index_entry(
"<tt class=\"method\">$method()</tt>$extra");
$idx =~ s/ \(.*\)//;
$idx =~ s/\(\)//;
return "<dt><b>$idx</b>(<var>$arg_list</var>)\n<dd>"
. $_;
}
sub do_cmd_methodlineni{
local($_) = @_;
next_optional_argument();
my $method = next_argument();
my $arg_list = convert_args(next_argument());
return "<dt><b>$method</b>(<var>$arg_list</var>)\n<dd>"
. $_;
}
sub do_env_methoddescni{
local($_) = @_;
next_optional_argument();
my $method = next_argument();
my $arg_list = convert_args(next_argument());
return "<dl><dt><b>$method</b>(<var>$arg_list</var>)\n<dd>"
. $_
. '</dl>';
}
sub do_env_memberdesc{
local($_) = @_;
my $class = next_optional_argument();
my $member = next_argument();
$class = $THIS_CLASS
unless $class;
my $extra = '';
$extra = " ($class attribute)"
if ($class ne '');
my $idx = make_str_index_entry("<tt class=\"member\">$member</tt>$extra");
$idx =~ s/ \(.*\)//;
$idx =~ s/\(\)//;
return "<dl><dt><b>$idx</b>\n<dd>" . $_ . '</dl>';
}
sub do_cmd_memberline{
local($_) = @_;
my $class = next_optional_argument();
my $member = next_argument();
$class = $THIS_CLASS
unless $class;
my $extra = '';
$extra = " ($class attribute)"
if ($class ne '');
my $idx = make_str_index_entry("<tt class=\"member\">$member</tt>$extra");
$idx =~ s/ \(.*\)//;
$idx =~ s/\(\)//;
return "<dt><b>$idx</b><dd>" . $_;
}
sub do_env_memberdescni{
local($_) = @_;
next_optional_argument();
my $member = next_argument();
return "<dl><dt><b><tt class=\"member\">$member</tt></b>\n<dd>"
. $_
. '</dl>';
}
sub do_cmd_memberlineni{
local($_) = @_;
next_optional_argument();
my $member = next_argument();
return "<dt><b><tt class=\"member\">$member</tt></b><dd>" . $_;
}
@col_aligns = ('<td>', '<td>', '<td>', '<td>', '<td>');
%FontConversions = ('cdata' => 'tt class="cdata"',
'character' => 'tt class="character"',
'class' => 'tt class="class"',
'command' => 'code',
'constant' => 'tt class="constant"',
'exception' => 'tt class="exception"',
'file' => 'tt class="file"',
'filenq' => 'tt class="file"',
'kbd' => 'kbd',
'member' => 'tt class="member"',
'programopt' => 'b',
'textrm' => '',
);
sub fix_font{
# do a little magic on a font name to get the right behavior in the first
# column of the output table
my $font = @_[0];
if (defined $FontConversions{$font}) {
$font = $FontConversions{$font};
}
return $font;
}
sub figure_column_alignment{
my $a = @_[0];
my $mark = substr($a, 0, 1);
my $r = '';
if ($mark eq 'c')
{ $r = ' align="center"'; }
elsif ($mark eq 'r')
{ $r = ' align="right"'; }
elsif ($mark eq 'l')
{ $r = ' align="left"'; }
elsif ($mark eq 'p')
{ $r = ' align="left"'; }
return $r;
}
sub setup_column_alignments{
local($_) = @_;
my($s1,$s2,$s3,$s4,$a5) = split(/[|]/,$_);
my $a1 = figure_column_alignment($s1);
my $a2 = figure_column_alignment($s2);
my $a3 = figure_column_alignment($s3);
my $a4 = figure_column_alignment($s4);
my $a5 = figure_column_alignment($s5);
$col_aligns[0] = "<td$a1 valign=\"baseline\">";
$col_aligns[1] = "<td$a2>";
$col_aligns[2] = "<td$a3>";
$col_aligns[3] = "<td$a4>";
$col_aligns[4] = "<td$a5>";
# return the aligned header start tags
return ("<th$a1>", "<th$a2>", "<th$a3>", "<th$a4>", "<th$a5>");
}
sub get_table_col1_fonts{
my $font = $globals{'lineifont'};
my ($sfont,$efont) = ('', '');
if ($font) {
$sfont = "<$font>";
$efont = "</$font>";
$efont =~ s/ .*>/>/;
}
return ($sfont, $efont);
}
sub do_env_tableii{
local($_) = @_;
my($th1,$th2,$th3,$th4,$th5) = setup_column_alignments(next_argument());
my $font = fix_font(next_argument());
my $h1 = next_argument();
my $h2 = next_argument();
s/[\s\n]+//;
$globals{'lineifont'} = $font;
my $a1 = $col_aligns[0];
my $a2 = $col_aligns[1];
s/\\lineii</\\lineii[$a1|$a2]</g;
return '<table border align="center" style="border-collapse: collapse">'
. "\n <thead>"
. "\n <tr class=\"tableheader\">"
. "\n $th1<b>$h1</b>\ </th>"
. "\n $th2<b>$h2</b>\ </th>"
. "\n </tr>"
. "\n </thead>"
. "\n <tbody valign=\"baseline\">"
. $_
. "\n </tbody>"
. "\n</table>";
}
sub do_env_longtableii{
return do_env_tableii(@_);
}
sub do_cmd_lineii{
local($_) = @_;
my $aligns = next_optional_argument();
my $c1 = next_argument();
my $c2 = next_argument();
s/[\s\n]+//;
my($sfont,$efont) = get_table_col1_fonts();
$c2 = ' ' if ($c2 eq '');
my($c1align,$c2align) = split('\|', $aligns);
my $padding = '';
if ($c1align =~ /align="right"/ || $c1 eq '') {
$padding = ' ';
}
return "\n <tr>$c1align$sfont$c1$efont$padding</td>\n"
. " $c2align$c2</td>"
. $_;
}
sub do_env_tableiii{
local($_) = @_;
my($th1,$th2,$th3,$th4,$th5) = setup_column_alignments(next_argument());
my $font = fix_font(next_argument());
my $h1 = next_argument();
my $h2 = next_argument();
my $h3 = next_argument();
s/[\s\n]+//;
$globals{'lineifont'} = $font;
my $a1 = $col_aligns[0];
my $a2 = $col_aligns[1];
my $a3 = $col_aligns[2];
s/\\lineiii</\\lineiii[$a1|$a2|$a3]</g;
return '<table border align="center" style="border-collapse: collapse">'
. "\n <thead>"
. "\n <tr class=\"tableheader\">"
. "\n $th1<b>$h1</b>\ </th>"
. "\n $th2<b>$h2</b>\ </th>"
. "\n $th3<b>$h3</b>\ </th>"
. "\n </tr>"
. "\n </thead>"
. "\n <tbody valign=\"baseline\">"
. $_
. "\n </tbody>"
. "\n</table>";
}
sub do_env_longtableiii{
return do_env_tableiii(@_);
}
sub do_cmd_lineiii{
local($_) = @_;
my $aligns = next_optional_argument();
my $c1 = next_argument();
my $c2 = next_argument();
my $c3 = next_argument();
s/[\s\n]+//;
my($sfont,$efont) = get_table_col1_fonts();
$c3 = ' ' if ($c3 eq '');
my($c1align,$c2align,$c3align) = split('\|', $aligns);
my $padding = '';
if ($c1align =~ /align="right"/ || $c1 eq '') {
$padding = ' ';
}
return "\n <tr>$c1align$sfont$c1$efont$padding</td>\n"
. " $c2align$c2</td>\n"
. " $c3align$c3</td>"
. $_;
}
sub do_env_tableiv{
local($_) = @_;
my($th1,$th2,$th3,$th4,$th5) = setup_column_alignments(next_argument());
my $font = fix_font(next_argument());
my $h1 = next_argument();
my $h2 = next_argument();
my $h3 = next_argument();
my $h4 = next_argument();
s/[\s\n]+//;
$globals{'lineifont'} = $font;
my $a1 = $col_aligns[0];
my $a2 = $col_aligns[1];
my $a3 = $col_aligns[2];
my $a4 = $col_aligns[3];
s/\\lineiv</\\lineiv[$a1|$a2|$a3|$a4]</g;
return '<table border align="center" style="border-collapse: collapse">'
. "\n <thead>"
. "\n <tr class=\"tableheader\">"
. "\n $th1<b>$h1</b>\ </th>"
. "\n $th2<b>$h2</b>\ </th>"
. "\n $th3<b>$h3</b>\ </th>"
. "\n $th4<b>$h4</b>\ </th>"
. "\n </tr>"
. "\n </thead>"
. "\n <tbody valign=\"baseline\">"
. $_
. "\n </tbody>"
. "\n</table>";
}
sub do_env_longtableiv{
return do_env_tableiv(@_);
}
sub do_cmd_lineiv{
local($_) = @_;
my $aligns = next_optional_argument();
my $c1 = next_argument();
my $c2 = next_argument();
my $c3 = next_argument();
my $c4 = next_argument();
s/[\s\n]+//;
my($sfont,$efont) = get_table_col1_fonts();
$c4 = ' ' if ($c4 eq '');
my($c1align,$c2align,$c3align,$c4align) = split('\|', $aligns);
my $padding = '';
if ($c1align =~ /align="right"/ || $c1 eq '') {
$padding = ' ';
}
return "\n <tr>$c1align$sfont$c1$efont$padding</td>\n"
. " $c2align$c2</td>\n"
. " $c3align$c3</td>\n"
. " $c4align$c4</td>"
. $_;
}
sub do_env_tablev{
local($_) = @_;
my($th1,$th2,$th3,$th4,$th5) = setup_column_alignments(next_argument());
my $font = fix_font(next_argument());
my $h1 = next_argument();
my $h2 = next_argument();
my $h3 = next_argument();
my $h4 = next_argument();
my $h5 = next_argument();
s/[\s\n]+//;
$globals{'lineifont'} = $font;
my $a1 = $col_aligns[0];
my $a2 = $col_aligns[1];
my $a3 = $col_aligns[2];
my $a4 = $col_aligns[3];
my $a5 = $col_aligns[4];
s/\\linev</\\linev[$a1|$a2|$a3|$a4|$a5]</g;
return '<table border align="center" style="border-collapse: collapse">'
. "\n <thead>"
. "\n <tr class=\"tableheader\">"
. "\n $th1<b>$h1</b>\ </th>"
. "\n $th2<b>$h2</b>\ </th>"
. "\n $th3<b>$h3</b>\ </th>"
. "\n $th4<b>$h4</b>\ </th>"
. "\n $th5<b>$h5</b>\ </th>"
. "\n </tr>"
. "\n </thead>"
. "\n <tbody valign=\"baseline\">"
. $_
. "\n </tbody>"
. "\n</table>";
}
sub do_env_longtablev{
return do_env_tablev(@_);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -