X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Documentation%2Flilypond-texi2html.init;h=376e201a8cd494564589aaa6977762017dd42ca3;hb=8e10b69f9d9fe8c191199eebd85e6b75e3bf23fa;hp=7bea5ad3ac153bbd75e79851f1d4f3e76647f982;hpb=1f0dbc5ce41f4fa5aecc2994452b58ba42ca558c;p=lilypond.git diff --git a/Documentation/lilypond-texi2html.init b/Documentation/lilypond-texi2html.init index 7bea5ad3ac..376e201a8c 100644 --- a/Documentation/lilypond-texi2html.init +++ b/Documentation/lilypond-texi2html.init @@ -630,6 +630,19 @@ sub print_element_info($) ### HELPER FUNCTIONS ############################################################################# +# only lc() the last portion of an href +sub lc_last($) +{ + my $href = shift; + my @hrefsplit = split('/', $href); + # change the last portion (the filename), if it exists + if ($#array > 0) { + @hrefsplit[$#array] = lc( @hrefsplit[$#array] ); + $href = join("/", @hrefsplit); + } + return $href; +} + # Convert a given node name to its proper file name (normalization as explained # in the texinfo manual: # http://www.gnu.org/software/texinfo/manual/texinfo/html_node/HTML-Xref-Node-Name-Expansion.html @@ -662,7 +675,7 @@ sub texinfo_file_name($) $result = 't_g' . $result; } # DONE - return lc($result) + return lc_last($result) } # Load a file containing a nodename<=>filename map (tab-sepatared, i.e. @@ -802,11 +815,12 @@ sub lilypond_element_file_name($$$) if (exists ($node_to_filename_map->{$node_name})) { (my $filename, my $anchor) = @{$node_to_filename_map->{$node_name}}; $filename .= ".$docu_ext" if (defined($docu_ext)); + # don't do lc_last here, otherwise the colors are messed up! $filename = lc($filename); # unnumbered sections (except those at top-level!) always go to the same # file as the previous numbered section - if (not $docu_name == "web" and not ($element->{number}) + if (not ($web_manual) and not ($element->{number}) and not ($lastfilename eq '') and ($element->{level} > 1)) { $filename = $lastfilename; } @@ -818,6 +832,7 @@ sub lilypond_element_file_name($$$) $lastfilename = $filename; } print STDERR "Output file name: $filename\n"; + $filename = lc_last($filename); return $filename; } elsif ($type eq "top" or $type eq "toc" or $type eq "doc" or @@ -837,7 +852,7 @@ sub lilypond_element_file_name($$$) } my $filename = texinfo_file_name($node_name); $filename .= ".$docu_ext" if (defined($docu_ext)); - $filename = lc($filename); + $filename = lc_last($filename); $docnr += 1; $$element{doc_nr} = $docnr; $lastfilename = $filename; @@ -845,7 +860,7 @@ sub lilypond_element_file_name($$$) return $filename; } else { $$element{doc_nr} = $docnr; - $filename = lc ($filename); + $filename = lc_last($filename); print STDERR "File name: $filename\n"; return $filename; } @@ -879,8 +894,14 @@ sub lilypond_element_target_name($$$) } # TODO: Once texi2html correctly prints out the target and not the id for # the sections, change this back to ($id, $target) - $target = lc($target); - return ($target, $target); + # I don't understand this comment, so I'm reluctant to delete it -gp + $target = lc_last($target); + if ($target eq lc_last($id)) { + $id = ""; + } else { + $id = substr($id, 0, - 2); # remove the "-1" + } + return ($id, $target); } @@ -918,7 +939,10 @@ sub lilypond_external_ref($$$$$$) my $section = shift; my $book = shift; my $file_node = shift; - my $href = lc(shift); + my $href = shift; + + $href = lc_last($href); + my $cross_ref = shift; my $displaytext = ''; @@ -976,8 +1000,6 @@ sub lilypond_unknown($$$$$) } - - my %translated_books = (); # Construct a href to an external source of information. # node is the node with texinfo @-commands @@ -1023,13 +1045,41 @@ sub lilypond_external_href($$$) } if (defined $file) { - return &$default_external_href($node, $node_id, $node_hxmlt_id, lc($file)); + $href = &$default_external_href($node, $node_id, $node_hxmlt_id, lc_last($file)); + remove_unneeded_anchor($href); + + # TODO: very yucky, but will be fixed in issue 1004 + if ($web_manual) { + my $only_web = $ENV{ONLY_WEB}; + if ($only_web) { + $href = "../../doc/v2.13/Documentation/web/".$href; + } + } + + return $href; } else { - return &$default_external_href($node, $node_id, $node_hxmlt_id); + $href = &$default_external_href($node, $node_id, $node_hxmlt_id); + remove_unneeded_anchor($href); + return $href; } } - +sub remove_unneeded_anchor($) +{ + my $ref = shift; + my @hrefsplit = split("/", $href); + for ($i = 0; $i < @hrefsplit; $i++) { + $item = @hrefsplit[$i]; + if ($item =~ /#/) { + @splitted = split("#", $item); + if (@splitted[0] == @splitted[1]) { + @hrefsplit[$i] = @splitted[0] + } + } + } + $href = join("/", @hrefsplit); + return $href +} @@ -1225,9 +1275,8 @@ sub lilypond_print_toc_div ($$) } else { $lang = ""; } - my $reldir = ""; - $reldir = "../" if ($Texi2HTML::Config::SPLIT eq 'section'); - my $uplink = $reldir."web/manuals.${lang}html"; + my $reldir = $ENV{DEPTH}; + my $uplink = $reldir."/Documentation/web/manuals.${lang}html"; if (not $web_manual) { print $fh "