@c  html.texi: -*- Texinfo -*- Macros which support HTML output.

@c  Copyright (c) 1995 Brian Fox (bfox@ai.mit.edu)
@c  Author: Brian J. Fox (bfox@ai.mit.edu) Sat Apr  1 20:30:54 1995.
@c
@c I didn't want to write this myself, because I wanted some HTML wizard
@c to get everything exactly right.  However, rms continues to believe
@c that the macro system is not a good idea.  I couldn't disagree more,
@c so I am writing this as an example of how useful such macros can be.

@macro html
@set html
<html>
@end macro

@c
@c The first step is to define the macros which really only have meaning
@c when producing output for HTML.

@c
@c @anchor{Brian Fox, http://www.ua.com/users/bfox/}
@c
@macro anchor{text, link}
@ifset html
<a href="\link\">\text\</a>
@end ifset
@ifclear html
\text\
@end ifclear
@end macro

@macro pre{}
@ifset html
<pre>
@end ifset
@end macro

@macro endpre{}
@ifset html
</pre>
@end ifset
@end macro

@macro TeX
@ifset html
<i>T</i>e<i>X</i>
@end ifset
@ifclear html
@TeX{}
@end ifclear
@end macro

@macro paragraph{}
@ifset html
<p>
@end ifset
@end macro

@c
@c @email{bfox@@ai.mit.edu}
@c
@macro email{address}
@anchor{mailto:\address\, \address\}
@end macro

@c
@c Redefine the TeXinfo commands which have direct HTML counterparts.
@c 

@macro html-define-0arg{command, html-insertion}
@macro \command\
@ifset html
\html-insertion\
@end ifset
@ifclear html
@\command\
@end ifclear
@end macro
@end macro

@macro html-define-1arg{command, html-insertion}
@macro \command\{arg}
@ifset html
\html-insertion\
@end ifset
@ifclear html
@\command\{\arg\}
@end ifclear
@end macro
@end macro

@macro html-define-line{command, html-insertion}
@macro \command\{line}
@ifset html
\html-insertion\
@end ifset
@ifclear html
@\command\ \line\
@end ifclear
@end macro
@end macro

@html-define-0arg{*, <br>}
@html-define-1arg{b, <b>\\arg\\</b>}
@html-define-1arg{code, <tt><b>\\arg\\</b></tt>}
@html-define-line{itemize, <ul>}
@html-define-line{item,<p><li>}
@html-define-line{heading,<h1>\\line\\</h1>}
@html-define-0arg{bye, </html>}

@c 
@c Define into nothing the macros which do nothing in html.
@c 
@html-define-line{group,}

@c
@c Define a macro which is used to define other macros.  This one makes
@c a macro which creates an HTML header line.  No sectioning commands
@c are used.  This takes advantage of the non-recursion feature of
@c macro execution.
@macro node_define{orig-name, header-style}
@macro \orig-name\{title}
@ifset html
@node \title\
<a name="\title\"><\header-style\>\title\</\header-style\></a>
@end ifset
@ifclear html
@\orig-name\ \title\
@end ifclear
@end macro
@end macro

@c
@c The same as NODE_DEFINE, but italicized.
@macro inode_define{orig-name, header-style}
@macro \orig-name\{title}
@ifset html
@node \title\
<a name="\title\"><\header-style\><i>\title\</i></\header-style\></a>
@end ifset
@ifclear html
@\orig-name\ \title\
@end ifclear
@end macro
@end macro

@c Ignore @node commands.
@html-define-line{node,}

@c Here is a special one for "@top".
@macro top{title}
@end macro

@c Now actually define a new set of sectioning commands.
@node_define {appendix, h1}
@node_define {appendixsec, h2}
@node_define {appendixsubsec, h3}
@node_define {appendixsubsubsec, h4}
@node_define {chapter, h1}
@node_define {section, h2}
@node_define {subsection, h3}
@node_define {subsubsec, h4}
@node_define {unnumbered, h1}
@node_define {unnumberedsec, h2}
@node_define {unnumberedsubsec, h3}
@node_define {unnumberedsubsubsec, h4}

@c The italicized analogues.
@inode_define {iappendix, h1}
@inode_define {iappendixsec, h2}
@inode_define {iappendixsubsec, h3}
@inode_define {iappendixsubsubsec, h4}
@inode_define {ichapter, h1}
@inode_define {isection, h2}
@inode_define {isubsection, h3}
@inode_define {isubsubsec, h4}
@inode_define {iunnumbered, h1}
@inode_define {iunnumberedsec, h2}
@inode_define {iunnumberedsubsec, h3}
@inode_define {iunnumberedsubsubsec, h4}

@c Manual starter:
@c 
@c Pass arguments of TITLE, AUTHOR, and a short DESCRIPTION.
@c Immediately following, insert the Top node's menu.
@c 
@c Typical usage:
@c 
@c @document{Makeinfo, Brian J. Fox, This file documents the use of the
@c @code{makeinfo} program\, versions 1.61 and later.}
@c 
@c @menu
@c * What is @makeinfo{}?::
@c @end menu
@macro document{title, author, description}
@ifinfo
\description\

Copyright @copyright{} 1995 \author\
Copyright @copyright{} 1995 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.

Permission is granted to process this file through TeX and print the
results, provided the printed document carries copying permission
notice identical to this one except for the removal of this paragraph
(this paragraph not being relevant to the printed manual).

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation approved
by the copyright holders.
@end ifinfo

@titlepage
@title \title\
@author \author\

@page
@vskip 0pt plus 1filll
Copyright @copyright{} 1995 \author\
Copyright @copyright{} 1995 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.

Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the entire
resulting derived work is distributed under the terms of a permission
notice identical to this one.

Permission is granted to copy and distribute translations of this manual
into another language, under the above conditions for modified versions,
except that this permission notice may be stated in a translation approved
by the copyright holders.
@end titlepage

@top{\title\}

\description\
@end macro

@html-define-line{end,
@ifeq{"\\line\\"\, "ifinfo"\, @end ifinfo}
@ifeq{"\\line\\"\, "ifset"\, @end ifset}
@ifeq{"\\line\\"\, "ifclear"\, @end ifclear}
@ifeq{"\\line\\"\, "cartouche"\, @end cartouche}
@ifeq{"\\line\\"\, "menu"\, @end menu}
@ifeq{"\\line\\"\, "itemize"\, </ul>}
@ifeq{"\\line\\"\, "enumerate"\, </ul>}
@ifeq{"\\line\\"\, "table"\, </ul>}
@ifeq{"\\line\\"\, "ftable"\, </ul>}
@ifeq{"\\line\\"\, "vtable"\, </ul>}
@ifeq{"\\line\\"\, "menu"\, xxx}
@ifeq{"\\line\\"\, "quotation"\, </pre>}
@ifeq{"\\line\\"\, "example"\, </tt></pre>}
@ifeq{"\\line\\"\, "smallexample"\, </tt></pre>}
@ifeq{"\\line\\"\, "lisp"\, </tt></pre>}
@ifeq{"\\line\\"\, "format"\, </tt></pre>}
@ifeq{"\\line\\"\, "display"\, </tt></pre>}
@ifeq{"\\line\\"\, "group"}}
