Next: , Up: Generating HTML   [Contents][Index]


21.1 HTML Translation

First, the HTML generated by makeinfo is standard HTML 4. When first written, it also tried to be compatible with earlier standards (e.g., HTML 2.0, RFC-1866).

Please report output from an error-free run of makeinfo which has practical browser portability problems as a bug (see Reporting Bugs).

Some known exceptions to HTML 3.2 (using ‘--init-file=html32.pm’ produced strict HTML 3.2 output, but this has not been tested lately; see Invoking texi2any/makeinfo from a Shell):

  1. HTML 3.2 tables are generated for the @multitable command (see @multitable: Multi-column Tables), but they should degrade reasonably in browsers without table support.
  2. The HTML 4 ‘id’ attribute is used.
  3. The HTML 4 ‘lang’ attribute on the ‘<html>’ attribute is used.
  4. Entities that are not in the HTML 3.2 standard are also used.
  5. CSS is used (see HTML CSS).
  6. Some HTML 4 elements are used: span, thead, abbr, acronym.

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 HTML CSS) or other means (see Customization Variables). If you cannot accomplish a reasonable customization, feel free to report that.

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.

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.

To repeat what was said at the top: please report output from an error-free run of makeinfo which has practical browser portability problems as a bug (see Reporting Bugs).

A few other general points about the HTML output follow.

Navigation bar: By default, a navigation bar is inserted at the start of each node, analogous to Info output. If the ‘--no-headers’ option is used, the navigation bar is only inserted at the beginning of split files. Header <link> elements in split output can support Info-like navigation with browsers like Lynx and Emacs W3 which implement this HTML 1.0 feature.

Footnotes: for HTML, when the footnote style is ‘end’, or if the output is not split, footnotes are put at the end of the output. If the footnote style is set to ‘separate’, and the output is split, they are placed in a separate file. See Footnote Styles.

Raw HTML: makeinfo will include segments of Texinfo source between @ifhtml and @end ifhtml in the HTML output (but not any of the other conditionals, by default). Source between @html and @end html is passed without change to the output (i.e., suppressing the normal escaping of input ‘<’, ‘>’ and ‘&’ characters which have special significance in HTML). See Conditional Commands.


Next: HTML Splitting, Up: Generating HTML   [Contents][Index]