NAME¶
hxaddid - add IDs to selected elements
SYNOPSIS¶
hxaddid [
-x ] [--]
elem|.class|elem.class [
file-or-URL ]
DESCRIPTION¶
The
hxaddid command copies an HTML or XML file to standard output, while
adding element IDs to the specified elements or classes.
For example, given the input
<p>A paragraph without an ID</p>
the command
hxaddid p
will output
<p id="a-paragraph">A paragraph without an ID</p>
If you specify a class using
.class then IDs will only be added to
elements that contain that class. And if you specify an element and a class
using
elem.class then IDs will only be added to the specified elements
that contain the specified class.
If two elements would naturally generate the same ID, a number is added to the
ID name (starting with 0) to make sure the IDs are unique. IDs are not added
to matching elements that already contain an ID.
OPTIONS¶
The following options are supported:
- -x
- Use XML conventions: empty elements are written with a slash at the end:
<IMG />. Also causes the element to be matched
case-sensitively.
OPERANDS¶
The following operands are supported:
- elem
- The name of element to select.
- .class
- The name of class to select.
- elem.class
- The name of element that contains class to select.
- file-or-URL
- The name or URL of an HTML or XHTML file.
EXIT STATUS¶
The following exit values are returned:
- 0
- Successful completion.
- > 0
- An error occurred in the parsing of one of the HTML or XML files.
ENVIRONMENT¶
To use a proxy to retrieve remote files, set the environment variables
http_proxy or
ftp_proxy. E.g.,
http_proxy="http://localhost:8080/"
BUGS¶
Assumes UTF-8 as input. Doesn't expand character entities. Instead pipe the
input through
hxunent(1) and
asc2xml(1) to convert it to UTF-8.
hxaddid tries first to generate "readable" IDs, by forming the
ID out of the letters and digits found in the content of the element and falls
back to generating arbitrary IDs if it doesn't find enough. However, the
algorithm in this version is primitive and only gives reasonable results for
ASCII letters and digits.
Remote files (specified with a URL) are currently only supported for HTTP.
Password-protected files or files that depend on HTTP "cookies" are
not handled. (You can use tools such as
curl(1) or
wget(1) to
retrieve such files.)
SEE ALSO¶
asc2xml(1),
hxprune(1),
hxnormalize(1),
hxnum(1),
hxtoc(1),
hxunent(1),
xml2asc(1),
UTF-8 (RFC
2279)