blob: dea2ccce32215f1e291e338a4f34ee6f58689a1a [file] [log] [blame]
<!DOCTYPE html>
<html>
<!-- Created by Texinfo 6.8dev+dev, http://www.gnu.org/software/texinfo/ -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- This manual is for GNU Texinfo (version 6.8dev, 23 February 2022),
a documentation system that can produce both online information and a
printed manual from a single source using semantic markup.
Copyright (C) 1988, 1990-1993, 1995-1999, 2001-2022 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the section entitled
"GNU Free Documentation License". -->
<title>HTML Translation (GNU Texinfo 6.8dev)</title>
<meta name="description" content="HTML Translation (GNU Texinfo 6.8dev)">
<meta name="keywords" content="HTML Translation (GNU Texinfo 6.8dev)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="texi2any">
<meta name="viewport" content="width=device-width,initial-scale=1">
<link href="index.html" rel="start" title="Top">
<link href="Command-and-Variable-Index.html" rel="index" title="Command and Variable Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Generating-HTML.html" rel="up" title="Generating HTML">
<link href="HTML-Splitting.html" rel="next" title="HTML Splitting">
</head>
<body lang="en">
<div class="section-level-extent" id="HTML-Translation">
<div class="nav-panel">
<p>
Next: <a href="HTML-Splitting.html" accesskey="n" rel="next">HTML Splitting</a>, Up: <a href="Generating-HTML.html" accesskey="u" rel="up">Generating HTML</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<h3 class="section" id="HTML-Translation-1">21.1 HTML Translation</h3>
<a class="index-entry-id" id="index-HTML-translation"></a>
<a class="index-entry-id" id="index-HTML-output_002c-browser-compatibility-of"></a>
<p>First, the HTML generated by <code class="command">makeinfo</code> is standard
HTML&nbsp;4. When first written, it also tried to be compatible with
earlier standards (e.g., HTML&nbsp;2.0, RFC-1866).
</p>
<p>Please report output from an
error-free run of <code class="code">makeinfo</code> which has practical browser
portability problems as a bug (see <a class="pxref" href="Reporting-Bugs.html">Reporting Bugs</a>).
</p>
<a class="index-entry-id" id="index-html32_002epm"></a>
<p>Some known exceptions to HTML&nbsp;3.2 (using
&lsquo;<samp class="samp">--init-file=html32.pm</samp>&rsquo; produced strict HTML&nbsp;3.2 output, but
this has not been tested lately;
see <a class="pxref" href="Invoking-texi2any.html">Invoking <code class="command">texi2any</code>/<code class="command">makeinfo</code> from a Shell</a>):
</p>
<ol class="enumerate">
<li> HTML&nbsp;3.2 tables are generated for the <code class="code">@multitable</code> command
(see <a class="pxref" href="Multi_002dcolumn-Tables.html"><code class="code">@multitable</code>: Multi-column Tables</a>), but they should degrade reasonably in
browsers without table support.
</li><li> The HTML&nbsp;4 &lsquo;<samp class="samp">id</samp>&rsquo; attribute is used.
</li><li> The HTML&nbsp;4 &lsquo;<samp class="samp">lang</samp>&rsquo; attribute on the &lsquo;<samp class="samp">&lt;html&gt;</samp>&rsquo; attribute
is used.
</li><li> Entities that are not in the HTML&nbsp;3.2 standard are also used.
</li><li> CSS is used (see <a class="pxref" href="HTML-CSS.html">HTML CSS</a>).
</li><li> Some HTML&nbsp;4 elements are used: <code class="code">span</code>, <code class="code">thead</code>,
<code class="code">abbr</code>, <code class="code">acronym</code>.
</li></ol>
<p>To achieve maximum portability and accessibility among browsers (both
graphical and text-based), systems, and users, the HTML output is
intentionally quite plain and generic. It has always been our goal
for users to be able to customize the output to their wishes via CSS
(see <a class="pxref" href="HTML-CSS.html">HTML CSS</a>) or other means (see <a class="pxref" href="Customization-Variables.html">Customization Variables</a>).
If you cannot accomplish a reasonable customization, feel free to
report that.
</p>
<p>However, we do not wish to depart from our basic goal of widest
readability for the core output. For example, using fancy CSS may
make it possible for the HTML output to more closely resemble the
TeX output in some details, but this result is not even close to
being worth the ensuing difficulties.
</p>
<p>It is also intentionally not our goal, and not even possible, to pass
through every conceivable validation test without any diagnostics.
Different validation tests have different goals, often about pedantic
enforcement of some standard or another. Our overriding goal is to
help users, not blindly comply with standards.
</p>
<p>To repeat what was said at the top: please report output from an
error-free run of <code class="code">makeinfo</code> which has <em class="emph">practical</em> browser
portability problems as a bug (see <a class="pxref" href="Reporting-Bugs.html">Reporting Bugs</a>).
</p>
<p>A few other general points about the HTML output follow.
</p>
<a class="index-entry-id" id="index-Navigation-bar_002c-in-HTML-output"></a>
<p><strong class="strong">Navigation bar:</strong> By default, a navigation bar is inserted at the
start of each node, analogous to Info output. If the
&lsquo;<samp class="samp">--no-headers</samp>&rsquo; option is used, the navigation bar is only
inserted at the beginning of split files. Header <code class="code">&lt;link&gt;</code>
elements in split output can support Info-like navigation with
browsers like Lynx and Emacs&nbsp;W3<!-- /@w --> which implement this HTML&nbsp;1.0
feature.
</p>
<a class="index-entry-id" id="index-Footnote-styles_002c-in-HTML"></a>
<p><strong class="strong">Footnotes:</strong> for HTML, when the footnote style is &lsquo;<samp class="samp">end</samp>&rsquo;,
or if the output is not split, footnotes are put at the end of the
output. If the footnote style is set to &lsquo;<samp class="samp">separate</samp>&rsquo;, and the
output is split, they are placed in a separate file. See <a class="xref" href="Footnote-Styles.html">Footnote Styles</a>.
</p>
<a class="index-entry-id" id="index-Escaping-to-HTML"></a>
<a class="index-entry-id" id="index-Raw-HTML"></a>
<p><strong class="strong">Raw HTML</strong>: <code class="command">makeinfo</code> will include segments of Texinfo
source between <code class="code">@ifhtml</code> and <code class="code">@end ifhtml</code> in the HTML
output (but not any of the other conditionals, by default). Source
between <code class="code">@html</code> and <code class="code">@end html</code> is passed without change
to the output (i.e., suppressing the normal escaping of input
&lsquo;<samp class="samp">&lt;</samp>&rsquo;, &lsquo;<samp class="samp">&gt;</samp>&rsquo; and &lsquo;<samp class="samp">&amp;</samp>&rsquo; characters which have special
significance in HTML). See <a class="xref" href="Conditional-Commands.html">Conditional Commands</a>.
</p>
</div>
<hr>
<div class="nav-panel">
<p>
Next: <a href="HTML-Splitting.html">HTML Splitting</a>, Up: <a href="Generating-HTML.html">Generating HTML</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Command-and-Variable-Index.html" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>