javadoc的语法突出显示?

javadoc的语法突出显示?,java,syntax-highlighting,javadoc,Java,Syntax Highlighting,Javadoc,目前,我使用PRE标记格式化javadoc中的代码示例,例如: /** * Example javadoc * <pre> String foo = "bar"; </pre> * * @return true if the operation completed */ /** *示例javadoc * 字符串foo=“bar”; * *@如果操作已完成,则返回true */ 但在生成的javadoc中,这变得相当单调和无聊,我更

目前,我使用PRE标记格式化javadoc中的代码示例,例如:

/**
 * Example javadoc
 * 
<pre>
String foo = "bar";
</pre>
 *
 * @return   true if the operation completed
 */
/**
*示例javadoc
* 
字符串foo=“bar”;
*
*@如果操作已完成,则返回true
*/
但在生成的javadoc中,这变得相当单调和无聊,我更希望有一些类似的语法高亮显示

如何做到这一点?

您可以使用插件来完成。我不确定是否有一种简单的方法可以挂接到javadoc生成中,但事实上,您可以在头中执行以下操作:

```java
public static class Example {}
```

PRE标记中的所有文本都将突出显示为java。查看上面的链接了解更多信息。

迟到总比不迟到好

我的这篇文章解释了——尽管它的标题是——如何使用SyntaxHighlighter作为OP请求向Javadocs添加语法突出显示功能

答案假设您正在使用,但它的好处是,您的所有项目都将自动继承在Javadoc中进行语法突出显示的功能。您不必为每个项目都这样做。有了这个配方,你不需要在每个项目中做任何事情就可以拥有这个特性


此外,如果您想进行样式定制(即Javadoc的外观),这与您将使用的机制相同。

发现此问题是为了寻找其他内容。在此期间,我编写了一个将gist示例嵌入JavaDoc的工具,具体如下:

您可以在我们的代码中看到这一点,例如:

另一个选项是使用,它允许您使用Github风格的隔离代码块

<additionalOptions>-html5 --allow-script-in-comments</additionalOptions>
<header><![CDATA[
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/vs.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/highlight.min.js"></script>
    <script type="text/javascript">hljs.initHighlightingOnLoad();</script>
]]></header>

这里的其他答案都有效,但会引入额外的依赖项或增加额外的构建复杂性。如果您正在使用Maven生成文档,并且希望以最简单的方式使其在没有额外文件或依赖项的情况下工作,请添加到
Maven javadoc插件
config:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.0.1</version>
    <configuration>
        <additionalOptions>-html5 --allow-script-in-comments</additionalOptions>
        <nohelp>true</nohelp>
        <show>private</show>
        <header><![CDATA[
            <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/vs.min.css">
            <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/highlight.min.js"></script>
            <script type="text/javascript">hljs.initHighlightingOnLoad();</script>
        ]]></header>
    </configuration>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>
*/

编辑:您实际上不需要
中的类。您可以修改该javascript位,这样就根本不需要更改源文件,
{@code}
部分中的任何内容都将突出显示,因为Javadoc已经添加了
标记。我不知道足够的JavaScript来实现这一点,但这应该不会太难。该解决方案可能是所有解决方案中侵入性最小的,因为它只需要构建配置中的几行代码

我正在标记这个社区wiki,所以如果有人想加入,请加入

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.0.1</version>
    <configuration>
        <additionalOptions>-html5 --allow-script-in-comments</additionalOptions>
        <nohelp>true</nohelp>
        <show>private</show>
        <header><![CDATA[
            <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/styles/vs.min.css">
            <script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/9.13.1/highlight.min.js"></script>
            <script type="text/javascript">hljs.initHighlightingOnLoad();</script>
        ]]></header>
    </configuration>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>
 /**
  * Does something cool.
  * <pre><code class="java">{@code
      // some example code here
      int x = 5;
  * }</code></pre>
  */