From: Reinhold Kainhofer Date: Tue, 25 Mar 2008 17:36:05 +0000 (+0100) Subject: Merge branch 'master' of ssh://kainhofer@git.sv.gnu.org/srv/git/lilypond into dev... X-Git-Tag: release/2.11.58-1~32^2~184 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=5a462e8c890f6ea8c7e027fa899f583c34b76d61;hp=f91591962027bf9b8b6ecadf084a1336ec29bc82;p=lilypond.git Merge branch 'master' of ssh://kainhofer@git.sv.gnu.org/srv/git/lilypond into dev/texi2html --- diff --git a/Documentation/lilypond.css b/Documentation/lilypond.css new file mode 100644 index 0000000000..93df57770d --- /dev/null +++ b/Documentation/lilypond.css @@ -0,0 +1,164 @@ +/***********************************************************/ +/* PAGE-WIDE SETTINGS */ +/***********************************************************/ +body { + margin-right: auto; + margin-left: auto; +} + +/***********************************************************/ +/* HEADERS */ +/***********************************************************/ +h2 { + font-size: x-large; + color: #1d7b85; +} +.unnumberedsubsubsec { + font-size: large; + color: #1d7b85; +} +.subsubheading { + font-size: large; + color: #3b220d; +} + +/***********************************************************/ +/* LINKS */ +/***********************************************************/ +a { + color: #344242; +} +a:visited { + color: #666666; +} +a:active { + color: #00cccc; +} +a:hover { + color: #1d7b85; + text-decoration:underline; +} + +/***********************************************************/ +/* BLOCK FORMATTING */ +/***********************************************************/ +blockquote { + border: 1px solid #cccccc; + padding: 3px; + width: 40em; +} +.verbatim { + font-family: "Courier New",Courier,monospace; +} +hr { + border: none; + height: 1px; + color: #666666; + background-color: #666666; +} +table.cartouche { + border: 2px dotted #cccccc; + margin-left: auto; + margin-right: auto; + width: 85%; +} +table.cartouche td { + border: none; +} + +/***********************************************************/ +/* TOC */ +/***********************************************************/ +.contents { + border: 1px dashed #339999; + margin: 3px 2em; + list-style-type: square; + padding-right: 1em; + width: 40em; + background-color: #fcfff9; +} + + +/***********************************************************/ +/* TOC SIDEBAR */ +/***********************************************************/ +body { + padding-left: 27%; /* To create space for the sidebar! */ +} +div#tocframe { + position: fixed; + top: 0; + left: 0; + margin: 0em; + padding: 5px; + width: 25%; + height: 100%; + overflow: auto; + background-color: #FFFACD; + z-index:100; + list-style-type: none; +} + +#tocframe .contents { + width: 100%; + border: none; + margin: 0em; + background-color: transparent; + list-style-type: none; +} + +#tocframe ul.toc { + padding-left: 0px; + margin-left: 0px; +} +#tocframe ul.toc li { + padding-left: 0px; + margin-left: 0px; + list-style-type: none; +} +#tocframe ul.toc > li { + font-size: 12px; +} +#tocframe ul.toc li li { + padding-left: 15px; +} +li.toc_current { + font-weight: bold; + font-style: italic; +} + +li.toc_current ul { + font-weight: normal; + font-style: normal; + background: transparent; +} + + + + +/***********************************************************/ +/* NAVIGATION */ +/***********************************************************/ +.nav_table { + width: 98%; + background-color: #CCCCCC; + border: 0; + left: auto; + right: auto; + font-size: 10pt; +} + + + + + + +/***********************************************************/ +/* OVERRIDES FOR PRINTING... */ +/***********************************************************/ +@media print { + /* Hide the sidebar: */ + body { padding-left: 0; } + #tocframe { display: none; } + .nav_table { display: none; } +} \ No newline at end of file diff --git a/buildscripts/langdefs.py b/buildscripts/langdefs.py index 4c9a0a7d8b..13415d0e47 100644 --- a/buildscripts/langdefs.py +++ b/buildscripts/langdefs.py @@ -34,7 +34,7 @@ class LanguageDef: site = LanguageDef ('en', 'English', webext='') -html_page_body = re.compile ('', re.M | re.I) +html_page_body = re.compile ('', re.M | re.I) french_html_typo_rules = ((' :', ' :'), (' ;', ' ;'), (' ?', ' ?'), diff --git a/config.make.in b/config.make.in index 4d714c3d3f..da0123311f 100644 --- a/config.make.in +++ b/config.make.in @@ -126,6 +126,7 @@ LINK_GXX_STATICALLY = @LINK_GXX_STATICALLY@ LN = @LN@ LN_S = @LN_S@ MAKEINFO_PROGRAM = @MAKEINFO@ +TEXI2HTML_PROGRAM = @TEXI2HTML@ METAFONT = @METAFONT@ -progname=mf MFMODE = @MFMODE@ MSGFMT = @MSGFMT@ diff --git a/configure.in b/configure.in index b15a0b0de0..b9e427a66e 100644 --- a/configure.in +++ b/configure.in @@ -128,7 +128,8 @@ AC_MSG_RESULT(Must have patched GUILE rational support. See INSTALL.txt)) CPPFLAGS="$save_CPPFLAGS" -STEPMAKE_MAKEINFO(REQUIRED, 4.11) +# We check for makeinfo below, too. Really duplicate that check? +## STEPMAKE_MAKEINFO(REQUIRED, 4.11) STEPMAKE_PYTHON_DEVEL(REQUIRED) STEPMAKE_PATH_PROG(GHOSTSCRIPT, gs, OPTIONAL, 8.15) @@ -176,6 +177,7 @@ STEPMAKE_GUILE(OPTIONAL) STEPMAKE_PERL(OPTIONAL) STEPMAKE_PROGS(MAKEINFO, makeinfo, REQUIRED, 4.11) +STEPMAKE_PROGS(TEXI2HTML, texi2html, REQUIRED, 1.79) AC_DEFINE_UNQUOTED(FLOWER_VERSION, "${FULL_FLOWER_VERSION}") diff --git a/lilypond-texi2html.init b/lilypond-texi2html.init new file mode 100644 index 0000000000..d8262628e0 --- /dev/null +++ b/lilypond-texi2html.init @@ -0,0 +1,510 @@ +#!/usr/bin/env perl + +# { +package Texi2HTML::Config; + +my $lastfilename; +my $docnr = 0; +my $page_toc_depth = 2; + +use Data::Dumper; +$Data::Dumper::Maxdepth = 2; + +sub print_element_info($) +{ + my $element = shift; + print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"; + print "Element: $element\n"; + print Dumper($element); +} + + +# This function makes sure that files are only generated for numbered sections, +# but not for unnumbered ones. It is called after texi2html has done its own +# splitting and simply returns the filename for the node given as first argument +# Nodes with the same filename will be printed out to the same filename, so +# this really all we need. Also, make sure that the file names for sections +# are derived from the section title. We also might want to name the anchors +# according to node titles, which works by simply overriding the id element of +# the $element hash. +sub split_at_numbered_sections($$$) +{ + my $element = shift; + my $type = shift; + my $docu_name = shift; + my $docu_ext = $Texi2HTML::Config::EXTENSION; + if ( $Texi2HTML::THISDOC{'current_lang'} ) { + $docu_ext = $Texi2HTML::THISDOC{'current_lang'} . "." . $docu_ext; + } + +# if ($$element{number} eq "1.1") { +# print_element_info ($element); +# } + + # TOC, footer, about etc. are called with undefined $element and $type == "toc"|"stoc"|"foot"|"about" + if ($type eq "toc" or $type eq "stoc" or $type eq "foot" or $type eq "about") { + my $filename = "lilypond_$type"; + $filename .= ".$docu_ext" if (defined($docu_ext)); +# print "Standard file of type $type\n"; + return $filename; + } else { + # derive the name of the anchor (i.e. the part after # in the links!), + # don't use texi2html's SECx.x default! + my $anchor = main::remove_texi($$element{texi}); + my $trof = $$element{translationof}; + if ($trof) { + print "We have a translationof: $trof\n"; + print Dumper($element); +# $anchor = $trof; + } + $anchor =~ tr/\ ?:'/-/d; + $$element{id} = $anchor; + # Numbered sections will get a filename Section_1.1.2, unnumbered sections will use + # the file name of the previous numbered section: + if ($$element{number}) { + my $filename = $anchor; + $filename .= ".$docu_ext" if (defined($docu_ext)); + $docnr += 1; + $$element{doc_nr} = $docnr; + $lastfilename = $filename; + return $filename; + } else { + $$element{doc_nr} = $docnr; + return $lastfilename; + } + } + + return; +} + + +# 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 '' . main::do_preformatted($entry . $ending, $state); + } + return "$entry  "; +} + + +# 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 +# the default handler! +sub lilypond_external_ref($$$$$$) +{ + my $type = shift; + my $section = shift; + my $book = shift; + my $file_node = shift; + my $href = shift; + my $cross_ref = shift; + + $file_node =~ s/\(.*\)//; + return t2h_default_external_ref($type, $section, $book, $file_node, $href, $cross_ref); +} + + +# 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. +sub generate_ly_toc_entries($$$) +{ + my $element = shift; + my $element_path = shift; + my $maxlevel = shift; + # Skip undefined sections, plus all sections generated by index splitting + return() if (not defined($element) or exists($element->{'index_page'})); + my @result = (); + my $level = $element->{'toc_level'}; + my $is_parent_of_current = $element_path->{$element->{'number'}}; + my $print_children = ( ($level < $maxlevel) or $is_parent_of_current ); + my $ind = ' ' x $level; + my $this_css_class = $is_parent_of_current ? " class=\"toc_current\"" : ""; + + my $entry = "$ind" . &$anchor ($element->{'tocid'}, "$element->{'file'}#$element->{'id'}",$element->{'text'}); + + my $children = $element->{'section_childs'}; + if ( $print_children and defined($children) and (ref($children) eq "ARRAY") ) { + push (@result, $entry); + my @child_result = (); + foreach (@$children) { + push (@child_result, generate_ly_toc_entries($_, $element_path, $maxlevel)); + } + # if no child nodes were generated, e.g. for the index, where expanded pages + # are ignored, don't generate a list at all... + if (@child_result) { + push (@result, "$ind"); + push (@result, @child_result); + push (@result, "$ind\n"); + } + } else { + push (@result, $entry . "\n"); + } + return @result; +} + + +# Print a customized TOC, containing only the first two levels plus the whole +# path to the current page +sub lilypond_generate_page_toc_body($) +{ + my $element = shift; + my $current_element = $element; + my %parentelements; + $parentelements{$element->{'number'}} = 1; + # Find the path to the current element + while ( defined($current_element->{'sectionup'}) and + ($current_element->{'sectionup'} ne $current_element) ) + { + $parentelements{$current_element->{'sectionup'}->{'number'}} = 1 + if ($current_element->{'sectionup'}->{'number'} ne ''); + $current_element = $current_element->{'sectionup'}; + } + return () if not defined($current_element); + # Create the toc entries recursively + my @toc_entries = ("
", ""); + my $children = $current_element->{'section_childs'}; + foreach ( @$children ) { + push (@toc_entries, generate_ly_toc_entries($_, \%parentelements, $page_toc_depth)); + } + push (@toc_entries, ""); + push (@toc_entries, "
"); + return @toc_entries; +} + +my @this_page_toc = (); + +sub lilypond_print_element_header +{ + my $fh = shift; + my $first_in_page = shift; + my $previous_is_top = shift; + if ($first_in_page and not @this_page_toc) { + if (defined($Texi2HTML::THIS_ELEMENT)) { + # Create the TOC for this page + @this_page_toc = lilypond_generate_page_toc_body($Texi2HTML::THIS_ELEMENT); + } + } + return T2H_DEFAULT_print_element_header( $fh, $first_in_page, $previous_is_top); +} + + + + + + + + + + +# Print out the TOC in a
at the end of th page, which will be formatted as a +# sidebar mimicking a TOC frame +sub print_lilypond_page_foot($) +{ + my $fh = shift; +# my @lines = @{$Texi2HTML::OVERVIEW}; +# my $lines = $Texi2HTML::TOC_LINES; + my @lines = @this_page_toc; + if (not @lines) { + print "We have no toc lines, generate generic ones for main::element_top::\n"; +# print Dumper( $main::element_top ); +# print Dumper( $main::section_top ); +# print Dumper( $main::node_top ); +# @lines = lilypond_generate_page_toc_body( $main::element_top ); +# @lines = lilypond_generate_page_toc_body($Texi2HTML::THIS_ELEMENT); + @lines = @$Texi2HTML::TOC_LINES; + } + if (@lines) { + print $fh "
"; + print $fh '

' . $Texi2HTML::NAME{'Contents'} . "

\n"; + foreach my $line (@lines) { + print $fh $line; + } + print $fh "
"; + @this_page_toc = (); + } + T2H_DEFAULT_print_page_foot($fh); +} + + + + + + + +sub get_navigation_text +{ + my $button = shift; + my $text = $NAVIGATION_TEXT{$button}; + if ( ($button eq 'Back') or ($button eq 'FastBack') ) { + $text = $text . $Texi2HTML::NODE{$button} . " "; + } elsif ( ($button eq 'Forward') or ($button eq 'FastForward') ) { + $text = " " . $Texi2HTML::NODE{$button} . $text; + } elsif ( $button eq 'Up' ) { + $text = " Up: " . $Texi2HTML::NODE{$button} . " "; + } + return $text; +} + + +# Don't automatically create left-aligned table cells for every link, but +# instead create a only on an appropriate '(left|right|center)-aligned-cell-n' +# button text. It's alignment as well as the colspan will be taken from the +# name of the button. Also, add 'newline' button text to create a new table +# row. The texts of the buttons are generated by get_navigation_text and +# will contain the name of the next/previous section/chapter. +sub lilypond_print_navigation +{ + my $fh = shift; + my $buttons = shift; + my $vertical = shift; + my $spacing = 1; +# print $fh '\n"; + print $fh "
\n"; + + print $fh "" unless $vertical; + my $beginofline = 1; + foreach my $button (@$buttons) + { + print $fh qq{\n} if $vertical; + # Allow (left|right|center)-aligned-cell and newline as buttons! + if ( $button =~ /^(.*)-aligned-cell-(.*)$/ ) + { + print $fh qq{} unless $beginofline; + print $fh qq{} unless $beginofline; + print $fh qq{}; + print $fh qq{}; + $beginofline = 1; + + } + elsif (ref($button) eq 'CODE') + { + &$button($fh, $vertical); + } + elsif (ref($button) eq 'SCALAR') + { + print $fh "$$button" if defined($$button); + } + elsif (ref($button) eq 'ARRAY') + { + my $text = $button->[1]; + my $button_href = $button->[0]; + # verify that $button_href is simple text and text is a reference + if (defined($button_href) and !ref($button_href) + and defined($text) and (ref($text) eq 'SCALAR') and defined($$text)) + { # use given text + if ($Texi2HTML::HREF{$button_href}) + { + my $anchor_attributes = ''; + if ($USE_ACCESSKEY and (defined($BUTTONS_ACCESSKEY{$button_href})) and ($BUTTONS_ACCESSKEY{$button_href} ne '')) + { + $anchor_attributes = "accesskey=\"$BUTTONS_ACCESSKEY{$button_href}\""; + } + if ($USE_REL_REV and (defined($BUTTONS_REL{$button_href})) and ($BUTTONS_REL{$button_href} ne '')) + { + $anchor_attributes .= " rel=\"$BUTTONS_REL{$button_href}\""; + } + print $fh "" . + &$anchor('', + $Texi2HTML::HREF{$button_href}, + $$text, + $anchor_attributes + ) + ; + } + else + { + print $fh $$text; + } + } + } + elsif ($button eq ' ') + { # handle space button + print $fh + ($ICONS && $ACTIVE_ICONS{' '}) ? + &$button_icon_img($BUTTONS_NAME{$button}, $ACTIVE_ICONS{' '}) : + $NAVIGATION_TEXT{' '}; + #next; + } + elsif ($Texi2HTML::HREF{$button}) + { # button is active + my $btitle = $BUTTONS_GOTO{$button} ? + 'title="' . $BUTTONS_GOTO{$button} . '"' : ''; + if ($USE_ACCESSKEY and (defined($BUTTONS_ACCESSKEY{$button})) and ($BUTTONS_ACCESSKEY{$button} ne '')) + { + $btitle .= " accesskey=\"$BUTTONS_ACCESSKEY{$button}\""; + } + if ($USE_REL_REV and (defined($BUTTONS_REL{$button})) and ($BUTTONS_REL{$button} ne '')) + { + $btitle .= " rel=\"$BUTTONS_REL{$button}\""; + } + if ($ICONS && $ACTIVE_ICONS{$button}) + { # use icon + print $fh '' . + &$anchor('', + $Texi2HTML::HREF{$button}, + &$button_icon_img($BUTTONS_NAME{$button}, + $ACTIVE_ICONS{$button}, + $Texi2HTML::SIMPLE_TEXT{$button}), + $btitle + ); + } + else + { # use text + print $fh + '[' . + &$anchor('', + $Texi2HTML::HREF{$button}, + $NAVIGATION_TEXT{$button}, + $btitle + ) . + ']'; + } + } + else + { # button is passive + print $fh + $ICONS && $PASSIVE_ICONS{$button} ? + &$button_icon_img($BUTTONS_NAME{$button}, + $PASSIVE_ICONS{$button}, + $Texi2HTML::SIMPLE_TEXT{$button}) : + + "[" . $NAVIGATION_TEXT{$button} . "]"; + } + print $fh "\n" if $vertical; + print $fh "\n" if $vertical; + } + print $fh "" unless $beginofline; + print $fh "" unless $vertical; + print $fh "
}; + $beginofline = 0; + } + elsif ( $button eq 'newline' ) + { + print $fh qq{
\n"; +} + + +@Texi2HTML::Config::SECTION_BUTTONS = + ('left-aligned-cell-1', 'FastBack', + 'center-aligned-cell-3', 'Top', 'Contents', 'Index', 'About', + 'right-aligned-cell-1', 'FastForward', + 'newline', + 'left-aligned-cell-2', 'Back', + 'center-aligned-cell-1', 'Up', + 'right-aligned-cell-2', 'Forward' + ); + +# buttons for misc stuff +@Texi2HTML::Config::MISC_BUTTONS = ('center-aligned-cell-3', 'Top', 'Contents', 'Index', 'About'); + +# buttons for chapter file footers +# (and headers but only if SECTION_NAVIGATION is false) +@Texi2HTML::Config::CHAPTER_BUTTONS = + ('left-aligned-cell-1', 'FastBack', + 'center-aligned-cell-3', 'Top', 'Contents', 'Index', 'About', + 'right-aligned-cell-1', 'FastForward', + ); + +# buttons for section file footers +@Texi2HTML::Config::SECTION_FOOTER_BUTTONS = + ('left-aligned-cell-1', 'FastBack', + 'center-aligned-cell-3', 'Top', 'Contents', 'Index', 'About', + 'right-aligned-cell-1', 'FastForward', + 'newline', + 'left-aligned-cell-2', 'Back', + 'center-aligned-cell-1', 'Up', + 'right-aligned-cell-2', 'Forward' + ); + +@Texi2HTML::Config::NODE_FOOTER_BUTTONS = + ('left-aligned-cell-1', 'FastBack', + 'center-aligned-cell-3', 'Top', 'Contents', 'Index', 'About', + 'right-aligned-cell-1', 'FastForward', + 'newline', + 'left-aligned-cell-2', 'Back', + 'center-aligned-cell-1', 'Up', + 'right-aligned-cell-2', 'Forward' + ); + +# $Texi2HTML::Config::SPLIT = 'section'; +@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::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; + + +# For split pages, use index(.lang).html as start page! +if ($Texi2HTML::Config::SPLIT == 'section') { + my $lng = $Texi2HTML::THISDOC{'current_lang'}; + if ($lng and ($lng ne "en")) { + $Texi2HTML::Config::TOP_FILE = 'index.'.$lng.'.html'; + } else { + $Texi2HTML::Config::TOP_FILE = 'index.html'; + } +} + + + +# Try to make use of @translationof to generate files according to the original +# English section title... +sub lilypond_unknown($$$$$) +{ + my $macro = shift; + my $line = shift; + my $pass = shift; + my $stack = shift; + my $state = shift; + + if ($pass == 1 and $macro eq "translationof") { + if (ref($state->{'element'})=='HASH') { + $state->{'element'}->{'translationof'} = $line; + } + print "UNKNOWN: macro:$macro, line:$line, pass:$pass, stack:$stack, state:$state\n"; + print Dumper($stack); + print Dumper($state); + } + if ($pass == 2 and $macro eq "translationof") { +# if (ref($state->{'element'})=='HASH') { +# # $state->{'element'}->{'translationonf'} = $line; +# } + print "UNKNOWN: macro:$macro, line:$line, pass:$pass, stack:$stack, state:$state\n"; + print Dumper($stack); + print Dumper($state); + return ($line, 0, undef, undef); + } else { + return t2h_default_unknown($macro, $line, $pass, $stack, $state); + } +} +$Texi2HTML::Config::unknown = \&lilypond_unknown; + + + +return 1; diff --git a/make/doclang-rules.make b/make/doclang-rules.make index 1f4865d009..979533ea1e 100644 --- a/make/doclang-rules.make +++ b/make/doclang-rules.make @@ -1,9 +1,13 @@ +ifneq "$(ISOLANG)" "" +TEXI2HTML_LANG=--lang=$(ISOLANG) +endif + $(outdir)/%/index.html: $(outdir)/%.texi mkdir -p $(dir $@) - -$(MAKEINFO) -P $(outdir) --output=$(outdir)/$* --css-include=$(top-src-dir)/Documentation/texinfo.css --html $< + -$(TEXI2HTML) --I=$(outdir) --output=$(outdir)/$* --split=section $(TEXI2HTML_LANG) $< $(outdir)/%-big-page.html: $(outdir)/%.texi - -$(MAKEINFO) -P $(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $< + -$(TEXI2HTML) --I=$(outdir) --output=$@ $(TEXI2HTML_LANG) $< $(outdir)/%.pdftexi: $(outdir)/%.texi doc-po $(PYTHON) $(buildscript-dir)/texi-gettext.py $(buildscript-dir) $(top-build-dir)/Documentation/po/$(outdir) $(ISOLANG) $< diff --git a/make/doclang-vars.make b/make/doclang-vars.make index 28a795b0da..ba99a62fcb 100644 --- a/make/doclang-vars.make +++ b/make/doclang-vars.make @@ -11,6 +11,9 @@ LILYPOND_BOOK_INCLUDES += $(DOCUMENTATION_INCLUDES) MAKEINFO_FLAGS += --force --enable-encoding -D 'version $(TOPLEVEL_VERSION)' $(DOCUMENTATION_INCLUDES) MAKEINFO = LANG= $(MAKEINFO_PROGRAM) $(MAKEINFO_FLAGS) +TEXI2HTML_FLAGS += --init-file=$(top-src-dir)/lilypond-texi2html.init --css-ref=lilypond.css $(DOCUMENTATION_INCLUDES) +TEXI2HTML = $(TEXI2HTML_PROGRAM) $(TEXI2HTML_FLAGS) + TEXI2PDF_FLAGS += --batch --tidy --command '@set version $(TOPLEVEL_VERSION)' TEXI2PDF_FLAGS += $(DOCUMENTATION_INCLUDES) diff --git a/stepmake/stepmake/texinfo-rules.make b/stepmake/stepmake/texinfo-rules.make index 88a4fe47a2..f553eec37f 100644 --- a/stepmake/stepmake/texinfo-rules.make +++ b/stepmake/stepmake/texinfo-rules.make @@ -30,14 +30,30 @@ $(outdir)/.info-images-dir.dep: endif +# Settings for texi2html: +ifneq ($(ISOLANG),) +TEXI2HTML_LANG = --lang=$ISOLANG +endif +TEXI2HTML_FLAGS += --init-file=$(top-src-dir)/lilypond-texi2html.init --css-ref=lilypond.css $(DOCUMENTATION_INCLUDES) +TEXI2HTML = $(TEXI2HTML_PROGRAM) $(TEXI2HTML_FLAGS) $(TEXI2HTML_LANG) + + + $(outdir)/%.info: $(outdir)/%.texi $(outdir)/$(INFO_IMAGES_DIR).info-images-dir.dep $(MAKEINFO) -I$(outdir) --output=$@ $< + +$(outdir)/%/index.html: $(outdir)/%.texi + mkdir -p $(dir $@) + $(TEXI2HTML) --I=$(outdir) --output=$@ --split=section $< +# $(TEXI2HTML) --I=$(outdir) --output=$(dir $@) --split=section $< + +# TODO: Pass -D bigpage to texi2html $(outdir)/%-big-page.html: $(outdir)/%.texi - $(MAKEINFO) -I $(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split -D bigpage --no-headers $< + $(TEXI2HTML) --I=$(outdir) --output=$@ $< $(outdir)/%.html: $(outdir)/%.texi - $(MAKEINFO) -I $(outdir) --output=$@ --css-include=$(top-src-dir)/Documentation/texinfo.css --html --no-split --no-headers $< + $(TEXI2HTML) --I=$(outdir) --output=$@ $< $(outdir)/%.html.omf: %.texi $(call GENERATE_OMF,html) @@ -48,10 +64,6 @@ $(outdir)/%.pdf.omf: %.texi $(outdir)/%.ps.gz.omf: %.texi $(call GENERATE_OMF,ps.gz) -$(outdir)/%/index.html: $(outdir)/%.texi - mkdir -p $(dir $@) - $(MAKEINFO) -I $(outdir) --output=$(dir $@) --css-include=$(top-src-dir)/Documentation/texinfo.css --html $< - $(outdir)/%.pdf: $(outdir)/%.texi cd $(outdir); texi2pdf $(TEXI2PDF_FLAGS) --batch $(TEXINFO_PAPERSIZE_OPTION) $(