Easy/obvious place to insert filter class into the output stream?
Does the doclet mechanism have any obvious place to insert a filter class that has nothing to do with structural parsing -- ONLY the final generated HTML output? Obviously such a function could simply be run on the final output after it's generated, but I'd prefer to avoid requiring an extra step and enable it to simply be specified as an option at creation time.
My biggest complaint with javadoc is the fact that any attempt to perform simple formatting (say, strong/bold, emphasized/italic, and unordered lists) produces javadoc comments that fall somewhere between ugly and unreadable when viewed in the source itself. What I'd like to create is a more or less transparent way to transform less visually-offensive sequences of characters into proper HTML near the final stage of javadoc generation. For example...
/** Illustrates simple, yet readable formatting extensions.
* The proposed filter class would make it easy to imply
* ***strong/bold*** and italic/emphasized text in
* two different ways:
*
* === one or more characters (optionally including whitespace,
* but explicitly excluding newlines), preceded by ***three***
* asterisks (strong/bold) or hyphens (emphasized/italic) and
* a non-whitespace character, and ending with the same
* three characters (preceded by a non-whitespace).
*
* === [*** potentially multi-line sequences would be specified
* in a similar method ***], [ except the first 3-character
* sequence would be preceded by a "[", and the final 3-character
* sequence would be followed by a "]". ] Whitespace ***is***
* allowed between the opening and closing sequences and the text
* whose appearance they modify.
*
* The scheme also accommodates simple unordered lists -- once
* again, denoted by a three-character sequence. The basic rule is
* that a new unordered list begins with the first "===" preceded
* by nothing except a newline and javadoc whitespace. An element
* continues until a new element is begun in a similar fashion, or
* a line containing nothing but whitespace is encountered.
*
* === An unordered list's natural termination is a blank line, followed
* by at least one additional line that doesn't signify a list item.
*
* === Normally, that line would be a normal paragraph, but two unordered
* lists could exist with nothing in between by specifying two blank
* lines between them.
*
*
* === Like that. This would be a new unordered list.
*
* @param foo ***exactly three*** valid values: "one", "two", or "three". ("default value")
* @param bar another parameter (default value)
*/

