summaryrefslogtreecommitdiffstats
path: root/doc/tools/texi2www/texi2wwwdoc.texi
diff options
context:
space:
mode:
Diffstat (limited to 'doc/tools/texi2www/texi2wwwdoc.texi')
-rw-r--r--doc/tools/texi2www/texi2wwwdoc.texi707
1 files changed, 707 insertions, 0 deletions
diff --git a/doc/tools/texi2www/texi2wwwdoc.texi b/doc/tools/texi2www/texi2wwwdoc.texi
new file mode 100644
index 0000000000..030dd41d89
--- /dev/null
+++ b/doc/tools/texi2www/texi2wwwdoc.texi
@@ -0,0 +1,707 @@
+\input texinfo @c -*-texinfo-*-
+
+@comment %**start of header
+@setfilename texi2wwwdoc.info
+@settitle texi2www user's guide
+@comment %**end of header
+
+@finalout
+
+@titlepage
+@title texi2www
+@author Tim Singletary
+@end titlepage
+
+@iftex
+@everyfooting @| Jan 2 1996
+@end iftex
+
+@comment ******************************************************** TOP
+@node Top,,,(dir)
+@ifhtml
+This document describes @var{texi2www}, a utility for converting
+texinfo to HTML.
+
+This document provides a pretty good example of @var{texi2www}'s texinfo
+to HTML conversion. @href{Click here,,,texi2wwwdoc.texi.txt} to view
+the texinfo source to this document.
+@end ifhtml
+
+@menu
+* Overview:: What is texi2www? texinfo? HTML? mosaic? WWW?
+* Real life:: A real-life example using texi2www
+* Invocation:: Command line args, etc.
+* Extensions:: @@ commands not in GNU texinfo
+* Known Bugs:: Oops!
+* Demo:: What various things look like
+
+* texi2dvi::
+
+* Index::
+@end menu
+
+@ifhtml
+@today{}.
+@end ifhtml
+
+
+@comment **************************************************** CHAPTER
+@node Overview
+@unnumbered Overview
+@cindex What is HTML
+@cindex What is texinfo
+@cindex What is mosaic
+@cindex texi2html
+@cindex info2html
+@cindex Other texinfo to HTML converters
+
+@var{Texi2www} converts texinfo to HTML:
+
+@table @asis
+@item
+@table @asis
+@item texinfo
+A documentation system that uses a single source file to produce both
+on-line documentation and printed output. For details see
+@ref{Top,the Texinfo User's Guide,Overview,texinfo,The Texinfo User's Guide}.
+@item HTML
+@href{HyperText Markup Language,,,
+http://www.ncsa.uiuc.edu/General/Internet/WWW/HTMLPrimer.html}
+used in World Wide Web documents. Programs like mosaic
+understand HTML.
+@end table
+@end table
+
+Texinfo's on-line documentation viewers (emacs, info, xinfo, etc.) are
+quite limited when compared to mosaic. Mosaic supports multiple fonts,
+variable width fonts, embedded images, and hypertext links to anywhere
+(not just to other texinfo documents). In addition, mosaic keeps a
+history of nodes visited and can easily go back to previously visited
+nodes.
+
+@var{Texinfo} converts @var{texinfo} directly to @var{HTML} without
+going through an intermediate @var{info} conversion.
+
+Other @var{texinfo} to @var{HTML} converters include:
+
+@table @asis
+@item
+@href{@var{http://wwwcn.cern.ch/dci/texi2html/},,,
+ http://wwwcn.cern.ch/dci/texi2html/}; and
+@item
+@href{@var{http://www.ericsson.nl/info2www/info2www.html},,,
+ http://www.ericsson.nl/info2www/info2www.html}
+@end table
+
+Texi2html is very good, but is different from texi2www in several respects,
+including:
+
+@itemize
+@item Texi2www processes @@ifinfo blocks, whereas texi2html processes
+ @@iftex blocks.
+@item Texi2www always generates menus, whereas menu generation is
+ optional in texi2html.
+@item Texi2www generates a seperate document for each node, wherease
+ texi2html can combine several nodes into one document.
+@item Texi2www adds @href{@code{@@ifhtml} blocks,ifhtml blocks},
+ @href{@code{@@html} blocks,html blocks}, and @href{@code{@@href@{@}},
+ href}. Texi2html has @code{@@ifhtml} blocks, but they work like
+ texi2www's @code{@@html} blocks.
+@item Texi2www uses icons for the prev, up, and next links; texi2html
+ doesn't.
+@end itemize
+
+Texi2www is written in perl and may be used and distributed under the
+terms of the @href{GNU General Public License,Copying,emacs}.
+
+Texi2www was written by
+@href{Tim Singletary,,,
+http://sunland.gsfc.nasa.gov/personnel/aam/singletary.html}
+(@cite{tsingle@@sunland.gsfc.nasa.gov}) and is available at
+@href{@var{ftp://sunland.gsfc.nasa.gov/pub/tarfiles/texi2www.tgz},,,
+ftp://sunland.gsfc.nasa.gov/pub/tarfiles/texi2www.tgz}.
+
+@comment **************************************************** CHAPTER
+@node Real life
+@chapter A Real Life Example
+
+Here's how I used texi2www to set up a
+@href{directory of texinfo documents,,,
+ http://sunland.gsfc.nasa.gov/info/dir.html}.
+This discussion is the minimum I had to do to set up
+@href{texinfo,,,http://sunland.gsfc.nasa.gov/info/texinfo/Top.html} and
+texi2www.
+First, I created the directory ``@var{$HTDOCS/info}'' (@var{$HTDOCS} is
+the root directory of my web server).
+
+Then, I copied arrow icons ``@var{missing-arrow.gif}'',
+``@var{next-arrow.gif}'', ``@var{prev-arrow.gif}'', and
+``@var{up-arrow.gif}'' into ``@var{$HTDOCS/info}''.
+(I obtained my icons from
+@cite{Rutgers University Network Services} at
+@href{http://ns2.rutgers.edu/doc-images/buttons,,,
+ http://ns2.rutgers.edu/doc-images/buttons}.)
+
+Next, I created subdirectories ``@var{$HTDOCS/info/texinfo}'' and
+``@var{$HTDOCS/info/texi2wwwdoc}''.
+(I determined the names of these subdirectories by examining the
+``@var{@@setfilename}'' line in the texinfo files.
+files; @var{texi2wwwdoc.texi} contains the line
+``@var{@@setfilename texi2wwwdoc.info}'' and @var{texinfo.texi} contains
+``@var{@@setfilename texinfo.info}''.
+
+Next, I copied the texinfo files into the appropriate directories. This
+step isn't strictly required, but I think its a good idea since it makes
+it simple to keep track of which texinfo files generated which set of
+html documents.
+
+Then I generated the html documents. I used the commands:
+@example
+> cd $HTDOCS/info/texinfo
+> texi2www texinfo.texi
+Normal completion.
+> cd ../texi2wwwdoc
+> texi2www texi2wwwdoc.texi
+Normal completion.
+@end example
+Examing these directories shows that a bunch of @var{.html} files got
+generated, including, in each directory, ``@var{Top.html}''.
+
+Finally, I created a table of contents file
+``@var{$HTDOCS/info/dir.html}''. The first version of that file looked
+like:
+
+@example
+<HTML>
+<HEAD><TITLE>info directory table of contents</TITLE></HEAD>
+<BODY>
+<MENU>
+<LI><A HREF="texinfo/Top.html">texinfo</A>
+ GNU texinfo version 3.1
+<LI><A HREF="texi2wwwdoc/Top.html">texi2www</A>
+ Converts texinfo to html
+</MENU>
+</BODY></HTML>
+@end example
+
+@comment **************************************************** CHAPTER
+@node Invocation
+@chapter Invocation
+@cindex Command line options
+@cindex Obtaining gif files
+
+@unnumberedsec Synopsys
+
+@code{texi2www [options] texinfo-file}
+
+@unnumberedsec Options
+@table @asis
+
+@item @code{-dir} @var{path}
+ Specifies the path to the directory where the
+ generated files get placed. If not specified, the current
+ directory is assumed.
+
+@item @code{-footer} @var{file}
+ Specifies a file whose contents get
+ appended at the bottom of each generated HTML file. Typically
+ looks something like:
+
+@example
+<HR>
+<P>Back to our <A HREF="../../homepage.html">home page</A>.</P>
+@end example
+
+@item @code{-icons} @var{path}
+ Specifies the path (relative to the directory where the generated
+ files get placed) to the arrow files. If not specified, @file{..}
+ is assumed. The names of the arrow
+ files are @file{up_arrow.gif}, @file{left_arrow.gif},
+ @file{right_arrow.gif}, and @file{missing_arrow.gif}
+
+@end table
+
+@unnumberedsec Directory structure
+
+Texi2www will generate a set of HTML files from each texinfo document;
+each set of HTML files must go in a seperate directory (why? one reason
+is because each set includes a file named @code{Top.html}!).
+
+These directories should be subdirectories of the same base directory.
+Assume the base directory is @code{$TEXIBASE}. Then HTML files for
+emacs go in directory @code{$TEXIBASE/emacs}, HTML files for texinfo go
+in @code{$TEXIBASE/texinfo}, etc, where the name of the subdirectory is
+the same as the name of the info file (so cross references between
+documents will work).
+
+In addition to the subdirectories of HTML files, @code{$TEXIBASE}
+contains a file @code{dir.html} and the four arrow gif files
+@code{up_arrow.gif}, @code{left_arrow.gif}, @code{right_arrow.gif}, and
+@code{missing_arrow.gif}.
+
+@code{$TEXIBASE/dir.html} is typically just a menu of links to the
+subdirectories and can be as simple as
+
+@example
+<HTML><HEAD><TITLE>dir</TITLE></HEAD>
+<BODY>
+<MENU>
+<LI><A HREF="emacs/Top.html">emacs</A>
+<LI><A HREF="texinfo/Top.html">texinfo</A>
+</MENU>
+</BODY></HTML>
+@end example
+
+(@code{$TEXIBASE/dir.html} is not generated via texi2www and must be
+created by hand).
+
+
+
+@comment **************************************************** CHAPTER
+@node Extensions
+@chapter Extensions
+@ifhtml
+Texi2www understands the following extensions to pure texinfo:
+@end ifhtml
+@menu
+* ifhtml blocks:: @code{@@ifhtml} and @code{@@end ifhtml}
+* html blocks:: @code{@@html} and @code{@@end html}
+* href:: @code{@@href@{text,node,file,URL@}}
+* gif:: @code{@@gif@{gif-file@}}
+@end menu
+
+@comment ******************************************************* NODE
+@comment Top -> Extensions ->
+@node ifhtml blocks
+@section @code{@@ifhtml} and @code{@@end ifhtml}
+@cindex Conditional HTML blocks
+
+@var{@@ifhtml} blocks are similar to @var{@@ifinfo} and @var{@@iftex}
+blocks. Lines between @var{@@ifhtml} and @var{@@end ifhtml} get
+processed when generating the hypertext manual but get ignored when
+generating the printed manual.
+
+@var{texinfo.tex} (in @var{/usr/local/lib/tex/macros} on my machine)
+needs to be modified in order to use @@ifhtml. I inserted
+@example
+\def\ifhtml@{\doignore@{ifhtml@}@}
+@end example
+after the @code{\def\ifinfo@{\doignore@{ifinfo@}@}} line (line
+596 ???).
+
+In most cases, it is better to use @var{@@ifinfo} than @var{@@ifhtml}.
+
+@comment ******************************************************* NODE
+@node html blocks
+@section @code{@@html} and @code{@@end html}
+@cindex Pure HTML blocks
+
+@var{@@html} blocks are similar to @var{@@tex} blocks; @var{@@html}
+blocks only get processed when generating HTML and lines within
+@var{@@html} blocks may contain HTML commands.
+
+@ifhtml
+For example,
+
+@example
+@@html
+produces <EM>&lt;EM&gt;</EM> in HTML is like @@var@{@@@@var@} in texinfo.
+@@end html
+@end example
+
+@html
+produces <EM>&lt;EM&gt;</EM> in HTML is like @var{@@var} in texinfo.
+@end html
+@end ifhtml
+
+@var{texinfo.tex} (in @var{/usr/local/lib/tex/macros} on my machine)
+needs to be modified in order to use @@ifhtml. I inserted
+@example
+\def\html@{\doignore@{html@}@}
+@end example
+after the @code{\def\ifinfo@{\doignore@{ifinfo@}@}} line (line
+596 ???).
+
+@comment ******************************************************* NODE
+@node href
+@section @code{@@href@{text,node,file,URL@}}
+
+Use @code{@@href@{text,node,file,URL@}} when you want a hypertext link in an
+HTML document and plain text everywhere else.
+
+@var{Text} is the text you want displayed in the document.
+@var{Node},@var{file}, and @var{URL} indicate what @var{text} is linked to.
+@var{Node} and @var{file} are a normal texinfo style node reference;
+@var{URL} is a HTML URL.
+One of @var{node} or @var{URL} must be specified (if both are specified,
+@var{URL} is used).
+
+The @href{texinfo source used to create this
+document,,,texi2wwwdoc.texi.txt} contains numerous examples of how
+@@href might be used.
+
+@var{texinfo.tex} (in @var{/usr/local/lib/tex/macros} on my machine)
+needs to be modified in order to use @@href@{@}. All I did was insert
+@example
+\def\href#1{\hrefX[#1,,,]}
+\def\hrefX[#1,#2,#3,#4]{#1}
+@end example
+before the @code{\def\pxref} line (line 3497 ???).
+
+@comment ******************************************************* NODE
+@node gif
+@section @code{@@gif@{@var{pict.gif}@}}
+
+This extension provides a method for inserting a gif file in both the
+html and printed document. For example, here are my arrow icons:
+@*
+prev: @gif{prev-arrow.gif},
+up: @gif{up-arrow.gif},
+and next: @gif{next-arrow.gif}
+
+@subsection @code{@@gif@{@}} and @var{texi2www}
+
+@var{texi2www} copies @var{pict.gif} to the destination directory.
+
+@subsection @code{@@gif@{@}} and @var{texi2dvi}
+
+@href{@var{texi2dvi},texi2dvi} converts @var{pict.gif} to a font and
+uses this font to insert the picture in the document. This conversion
+to a font requires that the pbmplus and bm2font utilities be installed on
+your system:
+
+@table @asis
+@item pbmplus
+ A suite of utilities for manipulating images. @var{texi2dvi} uses
+ @var{giftopnm}, @var{pnmscale}, @var{pnmnlfilt}, @var{ppmquant},
+ and @var{ppmtogif}. These utilities can be obtained from
+ @href{@code{
+ <ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.tar.gz>},,,
+ ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.tar.gz}.
+
+
+@item bm2font
+ @var{bm2font} converts a bitmap images (including ``@code{.gif}''
+ images) to a font that can be used in a @TeX{} document.
+ @var{bm2font} can be obtained from
+ @href{@code{<ftp://ftp.shsu.edu/tex-archive/graphics/bm2font.tar.gz>},,,
+ ftp://ftp.shsu.edu/tex-archive/graphics/bm2font.tar.gz}.
+@end table
+
+@comment **************************************************** CHAPTER
+@node Known Bugs
+@chapter Known Bugs
+
+@enumerate
+
+@item The @href{@code{@@center},titlefont center sp,texinfo} command
+ doesn't work since HTML doesn't support centering yet.
+
+@item The @href{@code{@@noindent},noindent,texinfo} and
+ @href{@code{@@exdent},exdent,texinfo} commands don't work since
+ HTML doesn't include any facility to control indentation.
+
+@item Mark specifications in the @href{@code{@@itemize},itemize,texinfo}
+ command are ignored since HTML doesn't include any facility to
+ specify the tag in itemized lists.
+
+@item The @href{emacs texinfo files need to be tweaked,
+ problems with emacs} to work with @var{texi2www}.
+
+@item One @href{@code{@@gif},gif} command is allowed per line.
+
+@end enumerate
+
+@unnumberedsec Fixed Bugs
+
+@enumerate
+
+@item Previous versions didn't handle nested tables correctly. The
+ @@item following an inner @@table would be drawn in the wrong
+ font. @var{(tsingle, Jan 2 1996)}
+
+@item Previous versions didn't capitalize
+ @href{@code{@@sc@{@}},Smallcaps,texinfo} text. (There's still
+ the problem of HTML not supporting true smallcaps, however).
+ @var{(tsingle, Sep 6 1995)}
+
+@item Previous versions of @var{texi2www} didn't correctly index
+ @href{@code{@@ftable} and @code{@@vtable},ftable vtable,texinfo}
+ items; this bug has been fixed! @var{(tsingle, Aug 17 1995)}
+
+@end enumerate
+
+@node problems with emacs
+@section emacs.texi @result{} HTML problems
+
+The file @var{man/commands.texi} distributed with GNU Emacs version
+version 19.25 contains, near the top of the file:
+
+@example
+@@c See file emacs.texi for copying conditions.
+@@iftex
+@@chapter Characters, Keys and Commands
+
+ This chapter explains the character set used by Emacs for input commands
+and for the contents of files, and also explains the concepts of
+@@dfn@{keys@} and @@dfn@{commands@} which are necessary for understanding how
+your keyboard input is understood by Emacs.
+@@end iftex
+@@node User Input, Keys, Screen, Top
+@@section Keyboard Input
+@end example
+
+Texi2www doesn't see the @@chapter since it's inside an @@iftex block;
+this confuses texi2www's chapter numbering. My fix was to change this
+section to:
+
+@example
+@@c See file emacs.texi for copying conditions.
+@@node User Input, Keys, Screen, Top
+@@chapter Characters, Keys and Commands
+@@iftex
+
+ This chapter explains the character set used by Emacs for input commands
+and for the contents of files, and also explains the concepts of
+@@dfn@{keys@} and @@dfn@{commands@} which are necessary for understanding how
+your keyboard input is understood by Emacs.
+@@end iftex
+@@section Keyboard Input
+@end example
+
+@var{killing.texi}, @var{misc.texi}, and @var{trouble.texi} have similar
+problems.
+
+@comment **************************************************** CHAPTER
+@node Demo
+@appendix Sample output
+
+This document itself is a pretty good example of what texi2www supports
+and produces. Following are some examples to really make things clear;
+to fully appreciate these examples compare the source and printed output
+to your html viewer.
+
+@menu
+* Fonts:: @@var@{@}, etc.
+* Glyphs:: @@result@{@}, etc.
+* Blocks:: @@example ... @@end example, etc.
+* Tables and Lists:: @@table .. @@end table, etc.
+@end menu
+
+@comment **************************************************** SECTION
+@node Fonts
+@unnumberedsec Text markup
+
+Texi2www supports:
+
+@table @asis
+
+@item @@b@{@var{bold text}@} @result{} @b{bold text}
+Here is @b{some text} in the @@b font.
+
+@item @@cite@{@var{reference}@} @result{} @cite{reference}
+Indicate the name of a book.
+Here is @cite{some text} in the @@cite font.
+
+@item @@code@{@var{sample-code}@} @result{} @code{sample-code}
+Indicate text that is a literal example of a piece of a program.
+Here is @code{some text} in the @@code font.
+
+@item @@dfn@{@var{term}@} @result{} @dfn{term}
+Indicate the introductory or defining use of a term.
+Here is @dfn{some text} in the @@dfn font.
+
+@item @@dmn@{@var{text}@} @result{} @dmn{text}
+Here is @dmn{some text} in the @@dmn font.
+
+@item @@emph@{@var{text}@} @result{} @emph{text}
+Here is @emph{some text} in the @@emph font.
+
+@item @@file@{@var{file-name}@} @result{} @file{file-name}
+Indicate the name of a file.
+Here is @file{some text} in the @@file font.
+
+@item @@i@{@var{italic text}@} @result{} @i{italic text}
+Here is @i{some text} in the @@i font.
+
+@item @@kbd@{@var{keyboard-characters}@} @result{} @kbd{keyboard-characters}
+Indicate keyboard input.
+Here is @kbd{some text} in the @@kbd font.
+
+@item @@key@{@var{key-name}@} @result{} @key{key-name}
+Indicate the conventional name for a key on a keyboard.
+Here is @key{some text} in the @@key font.
+
+@item @@math@{@var{ax^2+b}@} @result{} @math{ax^2+b}
+Here is @r{some text} in the @@math font.
+
+@item @@r@{@var{roman font text}@} @result{} @r{roman font text}
+Here is @r{some text} in the @@r font.
+
+@item @@samp@{@var{text}@} @result{} @samp{text}
+Indicate text that is a literal example of a sequence of characters.
+Here is @samp{some text} in the @@samp font.
+
+@item @@sc@{@var{text}@} @result{} @sc{text}
+Here is @sc{some text} in the @@sc font.
+
+@item @@strong@{@var{text}@} @result{} @strong{text}
+Here is @strong{some text} in the @@strong font.
+
+@item @@t@{@var{fixed-width text}@} @result{} @t{fixed-width text}
+Here is @t{some text} in the @@t font.
+
+@item @@titlefont@{@var{text}@} @result{} @titlefont{text}
+Here is @titlefont{some text} in the @@titlefont font.
+
+@item @@var@{@var{metasyntactic-variable}@} @result{} @var{metasyntactic-variable}
+Indicate a metasyntactic variable.
+Here is @var{some text} in the @@var font.
+
+@end table
+
+
+@comment **************************************************** SECTION
+@node Glyphs
+@unnumberedsec Glyphs
+
+@table @asis
+
+@item @@TeX@{@} @result{} @TeX{}
+@item @@bullet@{@} @result{} @bullet{}
+@item @@copyright@{@} @result{} @copyright{}
+@item @@dots@{@} @result{} @dots{}
+@item @@equiv@{@} @result{} @equiv{}
+@item @@error@{@} @result{} @error{}
+@item @@expansion@{@} @result{} @expansion{}
+@item @@minus@{@} @result{} @minus{}
+@item @@point@{@} @result{} @point{}
+@item @@print@{@} @result{} @print{}
+@item @@result@{@} @result{} @result{}
+@item @@today@{@} @result{} @today{}
+
+@end table
+
+@comment **************************************************** SECTION
+@node Blocks
+@unnumberedsec Blocks
+
+@example
+@cartouche
+@@example
+@@cartouche
+Here's two lines
+of text
+@@end cartouche
+@@end example
+@end cartouche
+@end example
+
+@display
+@@display
+Here's two lines
+of text
+@@end display
+@end display
+
+@example
+@@example
+Here's two lines
+of text
+@@end example
+@end example
+
+@format
+@@format
+Here's two lines
+of text
+@@end format
+@end format
+
+@lisp
+@@lisp
+Here's two lines
+of text
+@@end lisp
+@end lisp
+
+@quotation
+@@quotation
+Here's two lines
+of text
+@@end quotation
+@end quotation
+
+@smallexample
+@@smallexample
+Here's two lines
+of text
+@@end smallexample
+@end smallexample
+
+@comment **************************************************** SECTION
+@node Tables and Lists
+@unnumberedsec Tables and Lists
+
+@example
+@@table @@code
+@@item code-one
+@@table @@var
+@@item var-one
+@@table @@samp
+@@item samp-one
+Hmmm.
+@@item samp-two
+Mmmmh.
+@@end table
+@@item var-two
+Huh?
+@@end table
+@@item code-two
+Duh?
+@@end table
+@end example
+
+@table @code
+@item code-one
+@table @var
+@item var-one
+@table @samp
+@item samp-one
+Hmmm.
+@item samp-two
+Mmmmh.
+@end table
+@item var-two
+Huh?
+@end table
+@item code-two
+Duh?
+@end table
+
+
+@comment **************************************************** CHAPTER
+@node texi2dvi
+@appendix texi2dvi & texinfo.tex
+
+Versions of ``@code{texi2dvi}'' and ``@code{texinfo.tex}'' are included
+with this package. These are compatible with the
+@href{texi2www extensions,Extensions}.
+
+@appendixsec texi2dvi
+
+@appendixsec texinfo.tex
+
+``@code{texinfo.tex}'' is a @TeX{} macro used during the @var{texinfo}
+@result{} @var{dvi} conversion.
+
+
+
+
+@comment **************************************************** CHAPTER
+@node Index
+@unnumbered Index
+@printindex cp
+
+@contents
+@bye