please allow Markdown URL links in JEP 467 `@see`
Garret Wilson
garret at globalmentor.com
Fri Nov 7 00:04:30 UTC 2025
I've been excitedly waiting for years to finally be able to use Markdown
in Javadocs.
Using Java 25 with the new [JEP 467: Markdown Documentation
Comments](https://openjdk.org/jeps/467), I tried to add the following:
```java
/// @see [Example Site](https://example.com/)
```
Javadoc (invoked by Maven) complained "error: unexpected content", with
a `^` under the ending `)`.
If you look at the [JEP 467](https://openjdk.org/jeps/467) proposal, it
says:
> You can use all other forms of Markdown links, including links to
URLs ….
> …
> The inline and block tags are parsed in the same way as for
traditional documentation comments, except that tag content is also
parsed as Markdown.
I raised this issue on Stack Overflow: [Java 25 Javadoc not allowing
Markdown URL link syntax in
`@see`](https://stackoverflow.com/q/79794040). Someone pointed out that
the JavaDoc specification is really at
https://docs.oracle.com/en/java/javase/25/docs/specs/javadoc/doc-comment-spec.html
. Unfortunately I see that the text about using Markdown links has been
removed.
This is a significant oversight and impediment. Why would would we want
to write Javadoc Markdown everywhere, except treat the `@see` tag specially?
My objective is not to find another way to link to classes or methods. I
truly want to link to a URL. Many things we write are inspired,
influenced, or guided by blog articles or even Stack Overflow. So to
make things meta, if I were writing a Java implementation of Javadoc
parsing I might just reference my own Stack Overflow question:
```java
/// Parses Javadoc Markdown comments and returns a Markdown node tree.
/// @implNote Supports Markdown for the `@see` tag.
/// @see [Java 25 Javadoc not allowing Markdown URL link syntax in
`@see`](https://stackoverflow.com/q/79794040)
```
But that's not allowed. Even worse, it's not even a warning, it's an error!
This presents a huge problem with code generation with LLMs. If I ask an
LLM to generate some documentation for a class, I have to find a way to
explain to it to generate the API documentation using Markdown. Oh, but
wait, LLM, if it's a `@see`, then you must use old-fashioned `<a
href="blah">blah blah</a>`. Oh, but if it's not a URL, but a link to a
class, then you can use Markdown. So the LLM tries to comply , and
instead writes "See also …", but then it uses an old style HTML link, so
I have to tell it that if it uses `See` and not `@see` then it can use a
Markdown URL link.
Do you think the LLM keeps all this straight? Of course not. I don't
blame it. I can't keep it straight. It's one of those, "why, why, why"
moments.
Sorry, went off a bit there. :) I spent a long time just now trying to
convince an LLM of these arbitrary rules when I can't keep them straight
myself.
I respectfully submit that this incongruence be fixed so we can all move
forward toward a consistent, happy, Markdown Javadoc work. Please allow
Markdown URL links in `@see` as soon as possible.
Garret
More information about the javadoc-dev
mailing list