如何在 asciidoc 中使用标签包含代码摘录?

How to include code excerpts using tags in asciidoc?

我可以包含完整的 Greet.java 文件

public class Greet {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

来自 asciidoc 文件

== Hello Java
This is how one greets in Java:

[source,java]
.Greet.java
----
include::Greet.java
----

生成文档

但假设我只想包含一段由标签分隔的代码。在上面的代码中,假设我只想包含 main 函数。

我在documentation, but this页面中没有看到符号标记表明它足以写

public class Greet {
    // tag::helloMethod[]
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
    // end::helloMethod[]
}

== Hello Java
This is how one greets in Java:

[source,java]
.Greet.java
----
include::Greet.java[tags=helloMethod]
----

刚产生:

你能推荐一种只包含摘录的方法吗?我正在使用 asciidoc 8.6.9.

您所做的应该在 Asciidoctor (the Ruby implementation of AsciiDoc), but not AsciiDoc (the Python implementation) 中正常工作。

注意获取语法高亮的不同机制。

要使用 asciidoc 进行语法高亮显示,请使用命令行开关 asciidoc -a source-highlighter=pygments file.adoc

Asciidoctor 不需要(或不可能)命令行开关。使用 AsciiDoctor 语法高亮通过以下方式获得:

  1. 在每个源文件的顶部插入 :source-highlighter: pygments,并且
  2. 运行 sudo gem install pygments.rb 安装 pygments.

Asciidoctor tags 选项也可以包含多个标签;

[tags="tag 1, tag 2, …"]

一次性引入更多代码摘录……