The addid command opies 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
addid 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 a 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.
Assumes UTF-8 as input. Doesn't expand character entities. Instead pipe the input through unent(1) and asc2xml(1) to convert it to UTF-8.