Asciidoctor Java集成是官方使用Asciidoctor通过Java而不是Ruby来渲染所有http://asciidoc.org[AsciiDoc]文档的手段。
安装
由于 asciidoctor-java-integration
是一个标准的 jar 文件,你唯一需要做的就是将库添加到类路径中。
xml <dependencies> <dependency> <groupId>org.asciidoctor</groupId> <artifactId>asciidoctor-java-integration</artifactId> <version>${asciidoctor.version}</version> <1> </dependency> </dependencies>
-
由于这个库跟踪Asciidoctor的版本,您可以使用任何您喜欢的Asciidoctor版本。
用法
asciidoctor-java-integration+的核心接口是+Asciidoctor+接口。它提供了两个渲染asciidoc内容的方法,+render
和 renderFile
。这两个方法都返回一个包含渲染内容的字符串。
名称 | 描述 |
---|---|
|
将AsciiDoc内容解析成一个文档,并渲染成指定的后端格式。 |
|
将AsciiDoc文件的内容解析成一个文档,并渲染成指定的后端格式。 |
也提供了一个工厂方法来创建一个+Asciidoctor+接口的实例。
java import static org.asciidoctor.Asciidoctor.Factory.create; import org.asciidoctor.Asciidoctor;
Asciidoctor asciidoctor = create();
然后我们可以根据我们的需求调用+render+方法。
java String rendered = asciidoctor.render("This is it.", Collections.EMPTY_MAP); System.out.println(rendered);
但你也可以渲染文件的内容。
java String rendered = asciidoctor.renderFile("docs/sample.adoc", Collections.EMPTY_MAP); System.out.println(rendered);
选项
Asciidoctor 支持多种不同的选项,比如 in_place
可以在文件内渲染输出,template_dir
用于提供一个Tilt兼容模板的目录,用来替代默认内置模板,或者例如 attributes
选项,我们可以设置会在asciidoc文档内使用的键值对属性。
render
方法的第二个参数是一个 java.util.Map
,我们可以在其中设置所有这些选项。
java Map<String, Object> attributes = new HashMap<String, Object>(); attributes.put("backend", "docbook");
Map<String, Object> options = new HashMap<String, Object>(); options.put("in_place", true); options.put("attributes", attributes);
String render = asciidoctor.renderFile("docs/sample.adoc", options);
在之前的例子中,我们创建了一个Map,在这个Map中,我们放入了渲染输入为docbook所需的选项和属性(同时创建了一个Map)以及生成一个输出文件。
但是 asciidoctor-java-integration
也提供了两个构建器类以更易读的形式创建这些映射。
AttributesBuilder
用于创建一个设置了必需属性的映射,而 OptionsBuilder
可用于选项。使用这些类的前面示例看起来像这样:
java import static org.asciidoctor.AttributesBuilder.attributes; import static org.asciidoctor.OptionsBuilder.options;
…
Map<String, Object> attributes = attributes().backend("docbook").asMap(); Map<String, Object> options = options().inPlace(true).attributes(attributes).asMap();
String render = asciidoctor.renderFile("docs/sample.adoc", options);
公共事业
一个用于搜索根文件夹及其所有子文件夹中所有asciidoc文件的实用工具类。实际上,它找到所有以 .asc、.asciidoc、.ad 或 .adoc 结尾的文件。这个类是 AsciidocDirectoryWalker
。
java DirectoryWalker directoryWalker = new AsciidocDirectoryWalker("docs"); List<File> asciidocFiles = directoryWalker.scan();
贡献
你可以通过贡献补丁(patch)、改进文档、提出功能需求、提供任何你能提供的帮助来做出贡献。