aboutsummaryrefslogtreecommitdiff
path: root/texinfo/makeinfo/macros/html.texi
diff options
context:
space:
mode:
Diffstat (limited to 'texinfo/makeinfo/macros/html.texi')
-rw-r--r--texinfo/makeinfo/macros/html.texi269
1 files changed, 269 insertions, 0 deletions
diff --git a/texinfo/makeinfo/macros/html.texi b/texinfo/makeinfo/macros/html.texi
new file mode 100644
index 00000000000..60760825c68
--- /dev/null
+++ b/texinfo/makeinfo/macros/html.texi
@@ -0,0 +1,269 @@
+@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"}}