Commit 7fe176c3 7fe176c3a04b15d5f519412b11b23e8f2aed6af1 by Sergey Poznyakoff

Fix generation of the doc files.

* doc/texinfo/Config: New file.
* doc/texinfo/Makefile.am (manual): Use texi2html.
* doc/texinfo/gendocs_template: Rewrite.
* doc/texinfo/maint.mk: Use VPATH to find source files.
Add the `clean' rule.
1 parent aa651ae9
# Texi2html configuration for GNU Mailutils documentation. -*- perl -*-
# Copyright (C) 2009, 2010, 2011 Sergey Poznyakoff
#
# GNU Mailutils is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3, or (at your option)
# any later version.
#
# GNU Mailutils is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>.
$top_html_dir="";
$graphics_dir="$top_html_dir/graphics";
## texi2html configuration
# Show TOC in place of the @contents directive.
$INLINE_CONTENTS = 1;
# Do not show Texinfo menus.
$SHOW_MENU = 0;
# Inhibit output of CSS lines in page headers.
$CSS_LINES='';
# Print footnotes at the end of each file (if the document is split).
$SEPARATED_FOOTNOTES = 0;
$BODYTEXT = "";
$EXTRA_HEAD="\
<link rev=\"made\" href=\"mailto:gray@gnu.org.ua\">\
<link rel=\"stylesheet\" type=\"text/css\" href=\"${top_html_dir}/gray.css\">\
<link rel=\"stylesheet\" type=\"text/css\" href=\"${top_html_dir}/texi.css\">\
<link rel=\"icon\" type=\"image/png\" href=\"${top_html_dir}/graphics/mustamp.png\">";
$AFTER_BODY_OPEN=qq{
<!--#include virtual=\"${top_html_dir}/inc/header.html\" -->
<ul class='tabs'>
<li><a href="${top_html_dir}/">Main</a></li>
<li><a href="${top_html_dir}/download.html">Downloads</a></li>
<li><a class="active" href="${top_html_dir}/manual.html">Documentation</a></li>
<li><a href="${top_html_dir}/wiki">Wiki</a></li>
</ul>
};
$PRE_BODY_CLOSE="Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.";
$format_map{'multitable'}='table class="multitable"';
$SMALL_RULE = '';
$DEFAULT_RULE = '';
$MIDDLE_RULE = '';
# This is output at the end of a section.
$BIG_RULE = '';
# Use navigation icons
$ICONS = 1;
%ACTIVE_ICONS =
(
'Top', "$graphics_dir/top.png",
'Contents', "$graphics_dir/ctx.png",
'Overview', '',
'Index', "$graphics_dir/idx.png",
'This', '',
'Back', "$graphics_dir/left.png",
'FastBack', "$graphics_dir/bwd.png",
'Prev', "",
'Up', "$graphics_dir/up.png",
'Next', "$graphics_dir/right.png",
'NodeUp', "$graphics_dir/left.png",
'NodeNext', "$graphics_dir/up.png",
'NodePrev', "$graphics_dir/right.png",
'Following', "$graphics_dir/right.png",
'Forward', "$graphics_dir/right.png",
'FastForward', "$graphics_dir/fwd.png",
'About' , '',
'First', '',
'Last', '',
' ', ''
);
@SECTION_BUTTONS =
(
\&gray_document_title,
\&gray_sec_ref,
'Back', 'Forward',
\&gray_chap_ref, 'FastBack', 'Up', 'FastForward',
\&gray_doc_ref,
'Contents', 'Index',
' ','About',
);
@SECTION_FOOTER_BUTTONS = @SECTION_BUTTONS;
@NODE_FOOTER_BUTTONS = @SECTION_BUTTONS;
# buttons for misc stuff
@MISC_BUTTONS = (
\&gray_document_title,
'Contents',
'Index',
' ',
'About'
);
$print_section = \&gray_print_section;
$print_navigation = \&gray_print_navigation;
$print_head_navigation = \&gray_print_head_navigation;
$print_foot_navigation = \&gray_print_foot_navigation;
$print_About = \&gray_print_About;
$cell = \&gray_multitable_cell;
$print_page_foot = \&gray_print_page_foot;
sub gray_multitable_cell($$)
{
my $text = shift;
my $row_macro = shift;
$text =~ s/<p>//;
$text =~ s/<\/p>//;
if ($row_macro eq 'headitem')
{
return '<th>' . $text . '</th>';
}
return '<td>' . $text . '</td>';
}
sub gray_print_About
{
return &$print_misc(@_) if (!($SPLIT eq '') or $SECTION_NAVIGATION);
}
sub gray_split_status()
{
if ($SPLIT eq '') {
return '';
} elsif ($SPLIT eq 'node') {
return ' <span class="splitstatus">(split by node)</span>';
} elsif ($SPLIT eq 'section') {
return ' <span class="splitstatus">(split by section)</span>';
} elsif ($SPLIT eq 'chapter') {
return ' <span class="splitstatus">(split by chapter)</span>';
}
}
sub gray_document_title($$)
{
my $fh = shift;
my $vertical = shift;
my $status = gray_split_status();
print $fh qq{<td class="title">} . $Texi2HTML::THISDOC{title} . $status . ":</td>\n";
}
sub gray_node_ref($$)
{
my $fh = shift;
my $vertical = shift;
print $fh qq{<span class="navtext">Node:</span>};
}
sub gray_sec_ref($$)
{
my $fh = shift;
my $vertical = shift;
print $fh qq{<span class="navtext">Section:</span>};
}
sub gray_chap_ref($$)
{
my $fh = shift;
my $vertical = shift;
print $fh qq{<span class="navtext">Chapter:</span>};
}
sub gray_doc_ref($$)
{
my $fh = shift;
my $vertical = shift;
print $fh qq{<span class="navtext">Doc:</span>};
}
sub gray_print_navigation
{
my $fh = shift;
my $buttons = shift;
my $vertical = shift;
my $spacing = 1;
my $class="nav";
print $fh qq{<table class="nav">\n};
print $fh "<tr>" unless $vertical;
for my $button (@$buttons)
{
if ($button =~ /^\@class=(.*)/) {
$class = "$class $1";
next;
}
print $fh "<tr>\n" if $vertical;
print $fh qq{<td class="$class">};
if (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})
{
print $fh "" .
&$anchor('',
$Texi2HTML::HREF{$button_href},
$$text
)
;
}
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 ($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 '<span class="passive">' .
($ICONS && $PASSIVE_ICONS{$button} ?
&$button_icon_img($BUTTONS_NAME{$button},
$PASSIVE_ICONS{$button},
$Texi2HTML::SIMPLE_TEXT{$button}) :
$NAVIGATION_TEXT{$button}) . '</span>';
}
print $fh "</td>\n";
print $fh "</tr>\n" if $vertical;
$class = "nav";
}
print $fh "</tr>" unless $vertical;
print $fh "</table>\n";
}
sub gray_print_head_navigation($$)
{
my $fh = shift;
my $buttons = shift;
return if ($SPLIT eq '');
if ($VERTICAL_HEAD_NAVIGATION)
{
print $fh <<EOT;
<table class='nav'>
<tr>
<td>
EOT
}
main::print_lines($fh, $Texi2HTML::THIS_HEADER);
&$print_navigation($fh, $buttons, $VERTICAL_HEAD_NAVIGATION);
if ($VERTICAL_HEAD_NAVIGATION)
{
print $fh <<EOT;
</td>
<td>
EOT
}
}
sub gray_print_foot_navigation
{
my $fh = shift;
return if ($SPLIT eq '');
if ($VERTICAL_HEAD_NAVIGATION)
{
print $fh <<EOT;
</td>
</tr>
</table>
EOT
}
}
sub gray_print_page_foot($)
{
my $fh = shift;
my $program_string = program_string();
print $fh <<EOT;
<div class="copyright">
$program_string
EOT
if (defined($PRE_BODY_CLOSE) && $PRE_BODY_CLOSE) {
print $fh "<p>$PRE_BODY_CLOSE</p>";
}
print $fh <<EOT;
</div>
</body>
</html>
EOT
}
sub gray_print_section
{
my $fh = shift;
my $first_in_page = shift;
my $previous_is_top = shift;
my $buttons = \@SECTION_BUTTONS;
if ($first_in_page) {
&$print_head_navigation($fh, $buttons)
} else {
main::print_lines($fh, $Texi2HTML::THIS_HEADER);
}
my $nw = main::print_lines($fh);
if (defined $SPLIT
and ($SPLIT eq 'node')) {
&$print_foot_navigation($fh);
print $fh "$SMALL_RULE\n";
&$print_navigation($fh, \@NODE_FOOTER_BUTTONS) if (!defined($WORDS_IN_PAGE) or (defined ($nw)
and $nw >= $WORDS_IN_PAGE));
}
}
......@@ -91,10 +91,10 @@ TEXI2DVI=texi2dvi -t '@set $(RENDITION)' -E
TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$$TEXINPUTS
manual:
TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$(TEXINPUTS) \
TEXINPUTS=$(srcdir):$(top_srcdir)/build-aux:$(TEXINPUTS) \
MAKEINFO="$(MAKEINFO) $(MAKEINFOFLAGS)" \
TEXI2DVI="$(TEXI2DVI) -t @finalout" \
$(GENDOCS) $(PACKAGE) '$(PACKAGE_NAME) manual'
$(GENDOCS) --texi2html $(PACKAGE) '$(PACKAGE_NAME) manual'
EXTRA_DIST=gendocs_template mastermenu.el untabify.el
......
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!-- $Id$ -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>%%TITLE%% - GNU Project - Free Software Foundation (FSF)</title>
<meta http-equiv="content-type" content='text/html; charset=utf-8' />
<link rel="stylesheet" type="text/css" href="/gnu.css" />
<link rev="made" href="mailto:gray@gnu.org" />
<link rel="icon" type="image/png" href="/graphics/gnu-head-icon.png" />
<title>Mailutils</title>
<link rev="made" href="mailto:gray@gnu.org.ua" />
<link rel="stylesheet" type="text/css" href="/gray.css" />
<link rel="icon" type="image/png" href="/graphics/mustamp.png" />
</head>
<!-- This document is in XML, and xhtml 1.0 -->
<!-- Please make sure to properly nest your tags -->
<!-- and ensure that your final document validates -->
<!-- consistent with W3C xhtml 1.0 and CSS standards -->
<!-- See validator.w3.org -->
<body>
<!--#include virtual="/inc/header.html" -->
<ul class='tabs'>
<li><a href="/">Main</a></li>
<li><a href="/download.html">Downloads</a></li>
<li><a class="active" href="/manual">Documentation</a></li>
<li><a href="/wiki">Wiki</a></li>
</ul>
<h3>%%TITLE%%</h3>
<address>Free Software Foundation</address>
<address>last updated %%DATE%%</address>
<p>
<a href="/graphics/gnu-head.jpg">
<img src="/graphics/gnu-head-sm.jpg"
alt=" [image of the head of a GNU] "
width="129" height="122" />
</a>
<a href="/philosophy/gif.html">(no gifs due to patent problems)</a>
</p>
<hr />
<p>The manual for %%PACKAGE%% is available in the following formats:</p>
<div id="main">
<p>The manual for <b>%%PACKAGE%%</b> is available in the following formats:</p>
<ul>
<li><a href="%%PACKAGE%%.html">HTML
(%%HTML_MONO_SIZE%%K characters)</a> - entirely on one web page.</li>
<li><a href="html_node/index.html">HTML</a> - with one web page per
<li><a href="manual/%%PACKAGE%%.html">HTML
(%%HTML_MONO_SIZE%%K bytes)</a> - entirely on one web page.</li>
<li><a href="manual/html_node/index.html">HTML</a> - with one web page per
node.</li>
<li><a href="%%PACKAGE%%.html.gz">HTML compressed
(%%HTML_MONO_GZ_SIZE%%K gzipped characters)</a> - entirely on
one web page.</li>
<li><a href="%%PACKAGE%%.html_node.tar.gz">HTML compressed
%%IF HTML_SECTION%%
<li><a href="manual/html_section/index.html">HTML</a> - with one web page per
section.</li>
%%ENDIF HTML_SECTION%%
%%IF HTML_CHAPTER%%
<li><a href="manual/html_chapter/index.html">HTML</a> - with one web page per
chapter.</li>
%%ENDIF HTML_CHAPTER%%
<li><a href="manual/%%PACKAGE%%.html.gz">HTML compressed
(%%HTML_MONO_GZ_SIZE%%K gzipped characters)</a> - entirely on
one web page.</li>
<li><a href="manual/%%PACKAGE%%.html_node.tar.gz">HTML compressed
(%%HTML_NODE_TGZ_SIZE%%K gzipped tar file)</a> -
with one web page per node.</li>
<li><a href="%%PACKAGE%%.info.tar.gz">Info document
%%IF HTML_SECTION%%
<li><a href="manual/%%PACKAGE%%.html_section.tar.gz">HTML compressed
(%%HTML_SECTION_TGZ_SIZE%%K gzipped tar file)</a> -
with one web page per section.</li>
%%ENDIF HTML_SECTION%%
%%IF HTML_CHAPTER%%
<li><a href="manual/%%PACKAGE%%.html_chapter.tar.gz">HTML compressed
(%%HTML_CHAPTER_TGZ_SIZE%%K gzipped tar file)</a> -
with one web page per chapter.</li>
%%ENDIF HTML_CHAPTER%%
<li><a href="manual/%%PACKAGE%%.info.tar.gz">Info document
(%%INFO_TGZ_SIZE%%K characters gzipped tar file)</a>.</li>
<li><a href="%%PACKAGE%%.txt">ASCII text
<li><a href="manual/%%PACKAGE%%.txt">ASCII text
(%%ASCII_SIZE%%K characters)</a>.</li>
<li><a href="%%PACKAGE%%.txt.gz">ASCII text compressed
<li><a href="manual/%%PACKAGE%%.txt.gz">ASCII text compressed
(%%ASCII_GZ_SIZE%%K gzipped characters)</a>.</li>
<li><a href="%%PACKAGE%%.dvi.gz">TeX dvi file
<li><a href="manual/%%PACKAGE%%.dvi.gz">TeX dvi file
(%%DVI_GZ_SIZE%%K characters gzipped)</a>.</li>
<li><a href="%%PACKAGE%%.ps.gz">PostScript file
<li><a href="manual/%%PACKAGE%%.ps.gz">PostScript file
(%%PS_GZ_SIZE%%K characters gzipped)</a>.</li>
<li><a href="%%PACKAGE%%.pdf">PDF file
<li><a href="manual/%%PACKAGE%%.pdf">PDF file
(%%PDF_SIZE%%K characters)</a>.</li>
<li><a href="%%PACKAGE%%.texi.tar.gz">Texinfo source
<li><a href="manual/%%PACKAGE%%.texi.tar.gz">Texinfo source
(%%TEXI_TGZ_SIZE%%K characters gzipped tar file)</a></li>
</ul>
<p>(This page generated by the <a
</div>
<div class="generator">
<p>(This page is generated by the <a
href="%%SCRIPTURL%%">%%SCRIPTNAME%%</a> script.)
</p>
<p>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-xhtml10"
alt="Valid XHTML 1.0!" height="31" width="88" /></a>
</p>
<div class="copyright">
<p>
Return to the <a href="/home.html">GNU Project home page</a>.
</p>
<p>
Return to <a href="/software/%%PACKAGE%%">GNU %%PACKAGE%% home page</a>.
</p>
<p>
Please send FSF &amp; GNU inquiries to
<a href="mailto:gnu@gnu.org"><em>gnu@gnu.org</em></a>.
There are also <a href="/home.html#ContactInfo">other ways to contact</a>
the FSF.
<br />
Please send broken links and other corrections (or suggestions) to
<a href="mailto:webmasters@gnu.org"><em>webmasters@gnu.org</em></a>.
</p>
<p>
Copyright (C) 2005, 2010, 2011 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02111, USA
<br />
Verbatim copying and distribution of this entire article is
permitted in any medium, provided this notice is preserved.
</p>
<p>
Updated:
<!-- timestamp start -->
$Date$ $Author$
<!-- timestamp end -->
</p>
</div>
<!--#include virtual="/inc/footer.html" -->
</body>
</html>
......
......@@ -16,16 +16,18 @@
mu_aux_dir = ../../mu-aux
VPATH = ../../libmailutils/tests/:../../examples/
.SUFFIXES: .c .inc
.c.inc:
sed -f $(mu_aux_dir)/texify.sed $< > $@
all: addr.inc http.inc mailcap.inc numaddr.inc sfrom.inc url-parse.inc
addr.inc: ../../libmailutils/tests/addr.c
http.inc: ../../examples/http.inc
mailcap.inc: ../../libmailutils/tests/mailcap.c
numaddr.inc: ../../examples/numaddr.inc
sfrom.inc: ../../examples/sfrom.inc
url-parse.inc: ../../libmailutils/tests/url-parse.inc
addr.inc: addr.c
http.inc: http.c
mailcap.inc: mailcap.c
numaddr.inc: numaddr.c
sfrom.inc: sfrom.c
url-parse.inc: url-parse.c
clean:; rm -f *.inc
......