hxnormalize - pretty-print an HTML file
hxnormalize [ -x ] [ -e ] [ -d ] [
-s ] [ -L ] [ -i indent ] [ -l
line-length ] [ -c commentmagic ] [ file-or-URL
]
The hxnormalize command pretty-prints an HTML file, and
also tries to fix small errors. The output is the same HTML, but with a
maximum line length and with optional indentation to indicate the nesting
level of each line.
The following options are supported:
- -x
- Use XML conventions: empty elements are written with a slash at the end:
<IMG />. Implies -e.
- -e
- Always insert endtags, even if HTML does not require them (for example:
</p> and </li>).
- -d
- Omit the DOCTYPE from the output.
- -i indent
- Set the number of spaces to indent each nesting level. Default is 2. Not
all elements cause an indent. In general, elements that can occur in a
block environment are started on a new line and cause an indent, but
inline elements, such as EM and SPAN do not cause an indent.
- -l
line-length
- Sets the maximum length of lines. hxnormalize will wrap lines so
that all lines are as long as possible, but no longer than this length.
Default is 72. Words that are longer than the line length will not be
broken, and will extend past this length. A “word” is a
sequence of characters delimited by white space.) The content of the
STYLE, SCRIPT and PRE elements will not be line-wrapped.
- -s
- Omit <span> tags that don't have any attributes.
- -L
- Remove redundant "lang" and "xml:lang" attributes.
(I.e., those whose value is the same as the language inherited from the
parent element.)
- -c
commentmagic
- Comments are normally placed right after the preceding text. That is
usually correct for short comments, but some comments are meant to be on a
separate line. commentmagic is a string and when that string occurs
inside a comment, hxnormalize will output an empty line before that
comment. E.g. -c "====" can be used to put all comments
that contain "====" on a separate line, preceded by an empty
line. By default, no comments are treated that way.
The following operand is supported:
- file-or-URL
- The name or URL of an HTML file. If absent, standard input is read
instead.
The following exit values are returned:
- 0
- Successful completion.
- > 0
- An error occurred in the parsing of the HTML file. hxnormalize will
try to correct the error and produce output anyway.
To use a proxy to retrieve remote files, set the environment
variables http_proxy and ftp_proxy. E.g.,
http_proxy="http://localhost:8080/"
The error recovery for incorrect HTML is primitive.
hxnormalize will not omit an endtag if the white space
after it could possibly be significant. E.g., it will not remove the first
</p> from "<div><p>text</p>
<p>text</p></div>".
hxnormalize can currently only retrieve remote files over
HTTP. It doesn't handle password-protected files, nor files whose content
depends on HTTP "cookies."