mirror of https://git.ffmpeg.org/ffmpeg.git
doc: Do not use the headings as links to TOC anchors
Instead, use FontAwesome icons (if configured to be this way) or separate text. Signed-off-by: Timothy Gu <timothygu99@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
1c639fa6e0
commit
cd6f0f28bc
104
doc/t2h.pm
104
doc/t2h.pm
|
@ -23,8 +23,108 @@
|
||||||
# no navigation elements
|
# no navigation elements
|
||||||
set_from_init_file('HEADERS', 0);
|
set_from_init_file('HEADERS', 0);
|
||||||
|
|
||||||
# TOC and Chapter headings link
|
sub ffmpeg_heading_command($$$$$)
|
||||||
set_from_init_file('TOC_LINKS', 1);
|
{
|
||||||
|
my $self = shift;
|
||||||
|
my $cmdname = shift;
|
||||||
|
my $command = shift;
|
||||||
|
my $args = shift;
|
||||||
|
my $content = shift;
|
||||||
|
|
||||||
|
my $result = '';
|
||||||
|
|
||||||
|
# not clear that it may really happen
|
||||||
|
if ($self->in_string) {
|
||||||
|
$result .= $self->command_string($command) ."\n" if ($cmdname ne 'node');
|
||||||
|
$result .= $content if (defined($content));
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
my $element_id = $self->command_id($command);
|
||||||
|
$result .= "<a name=\"$element_id\"></a>\n"
|
||||||
|
if (defined($element_id) and $element_id ne '');
|
||||||
|
|
||||||
|
print STDERR "Process $command "
|
||||||
|
.Texinfo::Structuring::_print_root_command_texi($command)."\n"
|
||||||
|
if ($self->get_conf('DEBUG'));
|
||||||
|
my $element;
|
||||||
|
if ($Texinfo::Common::root_commands{$command->{'cmdname'}}
|
||||||
|
and $command->{'parent'}
|
||||||
|
and $command->{'parent'}->{'type'}
|
||||||
|
and $command->{'parent'}->{'type'} eq 'element') {
|
||||||
|
$element = $command->{'parent'};
|
||||||
|
}
|
||||||
|
if ($element) {
|
||||||
|
$result .= &{$self->{'format_element_header'}}($self, $cmdname,
|
||||||
|
$command, $element);
|
||||||
|
}
|
||||||
|
|
||||||
|
my $heading_level;
|
||||||
|
# node is used as heading if there is nothing else.
|
||||||
|
if ($cmdname eq 'node') {
|
||||||
|
if (!$element or (!$element->{'extra'}->{'section'}
|
||||||
|
and $element->{'extra'}->{'node'}
|
||||||
|
and $element->{'extra'}->{'node'} eq $command
|
||||||
|
# bogus node may not have been normalized
|
||||||
|
and defined($command->{'extra'}->{'normalized'}))) {
|
||||||
|
if ($command->{'extra'}->{'normalized'} eq 'Top') {
|
||||||
|
$heading_level = 0;
|
||||||
|
} else {
|
||||||
|
$heading_level = 3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$heading_level = $command->{'level'};
|
||||||
|
}
|
||||||
|
|
||||||
|
my $heading = $self->command_text($command);
|
||||||
|
# $heading not defined may happen if the command is a @node, for example
|
||||||
|
# if there is an error in the node.
|
||||||
|
if (defined($heading) and $heading ne '' and defined($heading_level)) {
|
||||||
|
|
||||||
|
if ($Texinfo::Common::root_commands{$cmdname}
|
||||||
|
and $Texinfo::Common::sectioning_commands{$cmdname}) {
|
||||||
|
my $content_href = $self->command_contents_href($command, 'contents',
|
||||||
|
$self->{'current_filename'});
|
||||||
|
if ($content_href) {
|
||||||
|
my $this_href = $content_href =~ s/^\#toc-/\#/r;
|
||||||
|
$heading .= '<span class="pull-right">'.
|
||||||
|
'<a class="anchor hidden-xs" '.
|
||||||
|
"href=\"$this_href\" aria-hidden=\"true\">".
|
||||||
|
($ENV{"FA_ICONS"} ? '<i class="fa fa-link"></i>'
|
||||||
|
: '#').
|
||||||
|
'</a> '.
|
||||||
|
'<a class="anchor hidden-xs"'.
|
||||||
|
"href=\"$content_href\" aria-hidden=\"true\">".
|
||||||
|
($ENV{"FA_ICONS"} ? '<i class="fa fa-navicon"></i>'
|
||||||
|
: 'TOC').
|
||||||
|
'</a>'.
|
||||||
|
'</span>';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($self->in_preformatted()) {
|
||||||
|
$result .= $heading."\n";
|
||||||
|
} else {
|
||||||
|
# if the level was changed, set the command name right
|
||||||
|
if ($cmdname ne 'node'
|
||||||
|
and $heading_level ne $Texinfo::Common::command_structuring_level{$cmdname}) {
|
||||||
|
$cmdname
|
||||||
|
= $Texinfo::Common::level_to_structuring_command{$cmdname}->[$heading_level];
|
||||||
|
}
|
||||||
|
$result .= &{$self->{'format_heading_text'}}(
|
||||||
|
$self, $cmdname, $heading,
|
||||||
|
$heading_level +
|
||||||
|
$self->get_conf('CHAPTER_HEADER_LEVEL') - 1, $command);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$result .= $content if (defined($content));
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach my $command (keys(%Texinfo::Common::sectioning_commands), 'node') {
|
||||||
|
texinfo_register_command_formatting($command, \&ffmpeg_heading_command);
|
||||||
|
}
|
||||||
|
|
||||||
# print the TOC where @contents is used
|
# print the TOC where @contents is used
|
||||||
set_from_init_file('INLINE_CONTENTS', 1);
|
set_from_init_file('INLINE_CONTENTS', 1);
|
||||||
|
|
Loading…
Reference in New Issue