X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lilypond-texi2html.init;h=5fd88f93253d1e2615f097e3ca20a2bd0b93c269;hb=3851c34c62543c07832d5d86c75c428bd27d9d80;hp=1f3bffb75b0ec9f55019fb8db17b7dbe478706a8;hpb=26af8b19da5ea2b74fc169e28230f3e5f011a79f;p=lilypond.git diff --git a/lilypond-texi2html.init b/lilypond-texi2html.init index 1f3bffb75b..5fd88f9325 100644 --- a/lilypond-texi2html.init +++ b/lilypond-texi2html.init @@ -1,4 +1,5 @@ #!/usr/bin/env perl +# -*- coding: utf-8; -*- ### texi2html customization script for Lilypond ### Author: Reinhold Kainhofer , 2008. @@ -65,9 +66,33 @@ package Texi2HTML::Config; +############################################################################# +### TRANSLATIONS +############################################################################# +use utf8; +my $LY_LANGUAGES = {}; +$LY_LANGUAGES->{'fr'} = { + 'Back to Documentation Index' => 'Retour à l\'accueil de la documentation', +}; +$LY_LANGUAGES->{'es'} = { + 'Back to Documentation Index' => 'Volver al índice de la documentación', +}; +$LY_LANGUAGES->{'de'} = { + 'Back to Documentation Index' => 'Zur Dokumentationsübersicht', +}; +sub ly_get_string () { + my $lang = $Texi2HTML::THISDOC{current_lang}; + my $string = shift; + if ($lang and $lang ne "en" and $LY_LANGUAGES->{$lang}->{$string}) { + return $LY_LANGUAGES->{$lang}->{$string}; + } else { + return $string; + } +} + ############################################################################# ### SETTINGS FOR TEXI2HTML @@ -89,14 +114,19 @@ if ($Texi2HTML::Config::SPLIT eq 'section') { $Texi2HTML::Config::element_file_name = \&lilypond_element_file_name; } $Texi2HTML::Config::element_target_name = \&lilypond_element_target_name; +$default_print_element_header = $Texi2HTML::Config::print_element_header; $Texi2HTML::Config::print_element_header = \&lilypond_print_element_header; $Texi2HTML::Config::print_page_foot = \&print_lilypond_page_foot; $Texi2HTML::Config::print_navigation = \&lilypond_print_navigation; $Texi2HTML::Config::external_ref = \&lilypond_external_ref; +$default_external_href = $Texi2HTML::Config::external_href; $Texi2HTML::Config::external_href = \&lilypond_external_href; +$default_toc_body = $Texi2HTML::Config::toc_body; $Texi2HTML::Config::toc_body = \&lilypond_toc_body; $Texi2HTML::Config::css_lines = \&lilypond_css_lines; +$default_unknown = $Texi2HTML::Config::unknown; $Texi2HTML::Config::unknown = \&lilypond_unknown; +$default_print_page_head = $Texi2HTML::Config::print_page_head; $Texi2HTML::Config::print_page_head = \&lilypond_print_page_head; # $Texi2HTML::Config::foot_line_and_ref = \&lilypond_foot_line_and_ref; $Texi2HTML::Config::foot_line_and_ref = \&makeinfo_like_foot_line_and_ref; @@ -107,8 +137,8 @@ $Texi2HTML::Config::paragraph = \&makeinfo_like_paragraph; # Examples should be formatted similar to quotes: $Texi2HTML::Config::complex_format_map->{'example'} = { - 'begin' => q{"
"},
-  'end' => q{"
\n"}, + 'begin' => q{"
"}, + 'end' => q{"
\n"}, 'style' => 'code', }; @@ -216,7 +246,7 @@ sub load_map_file ($) sub split_texi_filename ($) { my $docu = shift; - my $docu_dir, $docu_name; + my ($docu_dir, $docu_name); if ($docu =~ /(.*\/)/) { chop($docu_dir = $1); $docu_name = $docu; @@ -255,7 +285,7 @@ sub lilypond_css_lines ($$) { $Texi2HTML::THISDOC{'CSS_LINES'} .= "{TITLE}\" href=\"$ref->{FILENAME}\">\n"; } - foreach my $ref (@ALT_CSS_REFS) + foreach my $ref (@Texi2HTML::Config::ALT_CSS_REFS) { $Texi2HTML::THISDOC{'CSS_LINES'} .= "{FILENAME}\" title=\"$ref->{TITLE}\">\n"; } @@ -284,7 +314,7 @@ my $node_to_filename_map = (); # according to node titles, which works by simply overriding the id element of # the $element hash. # If an external nodename<=>filename/anchor map file is found (loaded in -# lilypond_init_out, use the externally created values, otherwise use the +# the command handler, use the externally created values, otherwise use the # same logic here. sub lilypond_element_file_name($$$) { @@ -429,9 +459,6 @@ sub lilypond_external_ref($$$$$$) $displaytext = &$anchor('', $href, $displaytext) if ($displaytext ne ''); return &$I('%{node_file_href}', { 'node_file_href' => $displaytext }); - -# Default: format as "see NODE section 'SECTION' in BOOK". We don't want this! -# return t2h_default_external_ref($type, $section, $book, $file_node, $href, $cross_ref); } @@ -464,9 +491,9 @@ sub lilypond_unknown($$$$$) if (ref($state->{'element'}) eq 'HASH') { $state->{'element'}->{'translationof'} = main::normalise_space($line); } - return ('', true, undef, undef); + return ('', 1, undef, undef); } else { - return t2h_default_unknown($macro, $line, $pass, $stack, $state); + return &$default_unknown($macro, $line, $pass, $stack, $state); } } @@ -487,14 +514,13 @@ sub lilypond_external_href($$$) my $node_id = shift; my $node_hxmlt_id = shift; my $file = shift; - my $original_func = \&t2h_default_external_href; # 1) Keep a hash of book->section_map # 2) if not file in keys hash => try to load the map (assign empty map if # non-existent => will load only once!) # 3) if node in the section=>(file, anchor) map, replace node_id and # node_xhtml_id by the map's values - # 4) call the t2h_default_external_href with these values (or the old ones if not found) + # 4) call the default_external_href with these values (or the old ones if not found) if (($node_id ne '') and defined($file) and ($node_id ne 'Top')) { my $map_name = $file; @@ -519,9 +545,9 @@ sub lilypond_external_href($$$) } if (defined $file) { - return &$original_func($node, $node_id, $node_hxmlt_id, $file); + return &$default_external_href($node, $node_id, $node_hxmlt_id, $file); } else { - return &$original_func($node, $node_id, $node_hxmlt_id); + return &$default_external_href($node, $node_id, $node_hxmlt_id); } } @@ -536,6 +562,19 @@ sub lilypond_external_href($$$) my $page_toc_depth = 2; my @default_toc = []; + +# Initialize the toc_depth to 1 if the command-line option -D=short_toc is given +sub lilypond_init_toc_depth () +{ + if (exists($main::value{'short_toc'}) and not exists($main::value{'bigpage'})) { + $page_toc_depth = 1; + } +} +# Set the TOC-depth (depending on a texinfo variable short_toc) in a +# command-handler, so we have them available when creating the pages +push @Texi2HTML::Config::command_handler_process, \&lilypond_init_toc_depth; + + # recursively generate the TOC entries for the element and its children (which # are only shown up to maxlevel. All ancestors of the current element are also # shown with their immediate children, irrespective of their level. @@ -642,8 +681,9 @@ sub lilypond_print_toc_div ($$) my $uplink = $reldir."index.${lang}html"; print $fh "

<< Back to - Documentation Index

\n"; + title=\"Documentation Index\"><< " . + &ly_get_string ('Back to Documentation Index') . + "

\n"; print $fh '

' . &$anchor('', $Texi2HTML::HREF{'Top'}, @@ -672,7 +712,7 @@ sub lilypond_print_element_header @this_page_toc = lilypond_generate_page_toc_body($Texi2HTML::THIS_ELEMENT); } } - return T2H_DEFAULT_print_element_header( $first_in_page, $previous_is_top); + return &$default_print_element_header( $first_in_page, $previous_is_top); } # Generate the HTML output for the TOC @@ -681,14 +721,14 @@ sub lilypond_toc_body($) my $elements_list = shift; # Generate a default TOC for pages without THIS_ELEMENT @default_toc = lilypond_generate_page_toc_body(@$elements_list[0]); - return T2H_GPL_toc_body($elements_list); + return &$default_toc_body($elements_list); } # Print out the TOC in a
at the beginning of the page sub lilypond_print_page_head($) { my $fh = shift; - T2H_DEFAULT_print_page_head($fh); + &$default_print_page_head($fh); print $fh "
\n"; }