我们很高兴地宣布 Asciidoctor 家族的最新成员 Asciidoclet 的加入。https://github.com/asciidoctor/asciidoclet[Asciidoclet] 是一个基于 Asciidoctor 的 Javadoc Doclet,它使得开发人员能够使用 AsciiDoc 语法编写 Javadoc 注释。
动机
从一开始,Java的设计者们就做对了一件事,那就是将文档与源代码一起包括在内。这使得文档能够更紧密地与不断变化的源代码保持同步,并允许在多个查看平台上查看,最值得注意的是HTML生成和IDE集成。
Javadoc的主要缺点一直是需要使用嵌入的HTML片段来实现高级(甚至是适度的)格式化。这正是http://asciidoc.org[AsciiDoc]集成发挥作用的地方。作为一种轻量级标记语言,http://asciidoc.org[AsciiDoc]让开发者可以不用涉足底层HTML标记就获得高级格式。换句话说,开发者可以专注于_内容_而不是_标记_,仍然能够得到一个精美的最终结果。
将AsciiDoc与Javadocs结合使用意味着源码可读性强并且Javadocs渲染得非常美观,兼具两者的优点!
用法
一旦https://github.com/asciidoctor/asciidoclet[Asciidoclet]集成到Javadoc中,就只需要在Javadocs中使用http://asciidoc.org[AsciiDoc]标记。以下示例展示了一系列https://github.com/asciidoctor/asciidoclet[Asciidoclet]的特性:
/**
* = Asciidoclet (1)
星号
* 包含+源代码+的样本评论。(2)
星号
* [source,java] (3)
* 破折号
* public class Asciidoclet extends Doclet {
* private final Asciidoctor asciidoctor = Asciidoctor.Factory.create();
星号
* @SuppressWarnings("UnusedDeclaration") (4)
* public static boolean start(RootDoc rootDoc) {
* new Asciidoclet().render(rootDoc);
* return Standard.start(rootDoc);
* 右大括号
* 右大括号
* 破折号
星号
* 作者 https://github.com/johncarl81 [John Ericksen] (5)
*/ public class Asciidoclet extends Doclet { }
-
使用
=
标记可以轻松创建标题。 -
段落是默认的,并且不需要使用`<p>
HTML标签。内联源码可以通过用
+`符号包围文本来进行标记。 -
源代码可以通过使用
[source,language]
标签和块定界符--
,也称为“围栏”,来轻松标记。 -
臭名昭著的+@
符号被https://github.com/asciidoctor/asciidoclet[Asciidoclet]自动处理,避免了标准的
{@literal @}+样板文件。 -
内联http://asciidoc.org[AsciiDoc]标记可在Javadoc标签内使用。此例突出了链接的渲染。
分布
Asciidoclet发布至Maven Central。下表总结了构件信息。
Group Id | Artifact Id | Version | Download |
---|---|---|---|
org.asciidoctor |
这个版本是基于Asciidoctor 0.1.3版本的。
安装
'Asciidoclet 是一个标准的 Javadoc Doclet,可以作为这样的工具使用。安装
Asciidoclet 最简单的方法之一就是将它作为 Doclet 添加到 maven-javadoc-plugin
中:'
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.9</version>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<doclet>org.asciidoctor.Asciidoclet</doclet>
<docletArtifact>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoclet</artifactId>
<version>${asciidoclet.version}</version>
</docletArtifact>
</configuration>
</plugin>
我们希望这个扩展能帮助你将你的Javadoc推向新的高度。一如既往,我们欢迎合作,你可以在https://github.com/asciidoctor/asciidoclet[GitHub]上找到(并分叉)源代码。
非常感谢https://github.com/lordofthejars[Alex Soto]来自https://github.com/asciidoctor/asciidoctor-java-integration[Asciidoctor Java integration project],以及https://github.com/lightguard[Jason Porter]和https://github.com/mojavelinux[Dan Allen]为他们的反馈和支持,还有每一个为Asciidoctor项目做出贡献的人。由于Asciidoctor社区的出色工作和协作,编写这个扩展变得异常简单。