my $lastfilename;
my $docnr = 0;
my $page_toc_depth = 2;
+my @default_toc = [];
use Data::Dumper;
$Data::Dumper::Maxdepth = 2;
my @chars = split(//, $str);
my $str = '';
foreach my $char (@chars) {
- if ( $char == ' ' ) { # space -> '-'
+ if ( $char eq ' ' ) { # space -> '-'
$str .= '-';
} elsif ( ('0' le $char and $char le '9' ) or
('A' le $char and $char le 'Z' ) or
}
-# Print a link in a menu. Since we split at sections, but still want access keys,
-# we have to duplicate this function here :-((((
-sub lilypond_menu_link($$$$$$)
-{
- my $entry = shift;
- my $state = shift;
- my $href = shift;
- my $node = shift;
- my $name = shift;
- my $ending = shift;
- if (($entry eq '') or $NODE_NAME_IN_MENU or $state->{'preformatted'})
- {
- $name .= ':' if ($name ne '');
- $entry = "$MENU_SYMBOL$name$node";
- }
- $menu_entry_index++;
- my $accesskey;
- $accesskey = "accesskey=\"$menu_entry_index\"" if ($USE_ACCESSKEY and ($menu_entry_index < 10));
- $entry = &$anchor ('', $href, $entry, $accesskey) if (defined($href));
- return $entry if ($SIMPLE_MENU);
- if ($state->{'preformatted'})
- {
- return '<tr><td>' . main::do_preformatted($entry . $ending, $state);
- }
- return "<tr><td align=\"left\" valign=\"top\">$entry</td><td> </td>";
-}
-
-
# The default formatting of external refs returns e.g.
# "(lilypond-internals)Timing_translator", while we simply want "Timing_translator".
# Solution: Remove all (...) from the file_and_node argument before calling
return T2H_DEFAULT_print_element_header( $fh, $first_in_page, $previous_is_top);
}
+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);
+}
+sub lilypond_css_lines ($$)
+{
+ my $import_lines = shift;
+ my $rule_lines = shift;
+ return if (defined($CSS_LINES));
+# return if (!@$rule_lines and !@$import_lines and (! keys(%css_map)));
+ if (@$rule_lines or @$import_lines)
+ {
+ $CSS_LINES = "<style type=\"text/css\">\n<!--\n";
+ $CSS_LINES .= join('',@$import_lines) . "\n" if (@$import_lines);
+ $CSS_LINES .= join('',@$rule_lines) . "\n" if (@$rule_lines);
+ $CSS_LINES .= "-->\n</style>\n";
+ }
+ foreach my $ref (@CSS_REFS)
+ {
+ $CSS_LINES .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"$ref\">\n";
+ }
+ $CSS_LINES .= "<!--[if lte IE 7]>\n<link href=\"lilypond-ie-fixes.css\" rel=\"stylesheet\" type=\"text/css\">\n<![endif]-->\n";
+}
sub print_lilypond_page_foot($)
{
my $fh = shift;
-# my @lines = @{$Texi2HTML::OVERVIEW};
-# my $lines = $Texi2HTML::TOC_LINES;
+ my $program_string = &$program_string();
+ print $fh "<p><font size="-1">$program_string</font><br>$PRE_BODY_CLOSE</p>\n";
+
+ # Print the TOC frame:
my @lines = @this_page_toc;
- if (not @lines) {
- print "We have no toc lines, generate generic ones for main::element_top::\n";
- @lines = @$Texi2HTML::TOC_LINES;
- }
+ # use default TOC if no custom lines have been generated
+ @lines = @default_toc if (not @lines);
if (@lines) {
- print $fh "<div id=\"tocframe\">";
+ print $fh "\n\n<div id=\"tocframe\">";
print $fh '<h4> ' . $Texi2HTML::NAME{'Contents'} . "</h4>\n";
foreach my $line (@lines) {
print $fh $line;
print $fh "</div>";
@this_page_toc = ();
}
- T2H_DEFAULT_print_page_foot($fh);
+
+ # Close the page:
+ print $fh "</body>\n</html>\n";
}
-
sub get_navigation_text
{
my $button = shift;
);
# $Texi2HTML::Config::SPLIT = 'section';
-@Texi2HTML::Config::CSS_REFS = ("lilypond.css");
+@Texi2HTML::Config::CSS_REFS = ("lilypond.css");
$Texi2HTML::Config::USE_ACCESSKEY = 1;
-$Texi2HTML::Config::USE_LINKS = 1;
-$Texi2HTML::Config::USE_REL_REV = 1;
-$Texi2HTML::Config::element_file_name = \&split_at_numbered_sections;
+$Texi2HTML::Config::USE_LINKS = 1;
+$Texi2HTML::Config::USE_REL_REV = 1;
+$Texi2HTML::Config::element_file_name = \&split_at_numbered_sections;
$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;
-$Texi2HTML::Config::menu_link = \&lilypond_menu_link;
+$Texi2HTML::Config::print_page_foot = \&print_lilypond_page_foot;
+$Texi2HTML::Config::print_navigation = \&lilypond_print_navigation;
+$Texi2HTML::Config::external_ref = \&lilypond_external_ref;
+$Texi2HTML::Config::toc_body = \&lilypond_toc_body;
+$Texi2HTML::Config::css_lines = \&lilypond_css_lines;
# For split pages, use index(.lang).html as start page!
}
$Texi2HTML::Config::unknown = \&lilypond_unknown;
-
+%css_map=();
return 1;