diff options
author | Timothy Gu <timothygu99@gmail.com> | 2014-12-03 21:31:34 -0800 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-12-06 02:42:19 +0100 |
commit | cd6f0f28bc06e19334bc8f929572ad4588679ea1 (patch) | |
tree | 7b28803ec85d002c10184aad4393157088a30ae4 /doc/t2h.pm | |
parent | 1c639fa6e02ed122dc41c318acb875f8d76537c5 (diff) | |
download | ffmpeg-cd6f0f28bc06e19334bc8f929572ad4588679ea1.tar.gz |
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>
Diffstat (limited to 'doc/t2h.pm')
-rw-r--r-- | doc/t2h.pm | 104 |
1 files changed, 102 insertions, 2 deletions
diff --git a/doc/t2h.pm b/doc/t2h.pm index a92707190a..7f771f996a 100644 --- a/doc/t2h.pm +++ b/doc/t2h.pm @@ -23,8 +23,108 @@ # no navigation elements set_from_init_file('HEADERS', 0); -# TOC and Chapter headings link -set_from_init_file('TOC_LINKS', 1); +sub ffmpeg_heading_command($$$$$) +{ + 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 set_from_init_file('INLINE_CONTENTS', 1); |