3

我可以包含完整的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
----

制作文件

adocked-greet-java1.png

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

我在文档中没有看到符号标签,但是这个页面表明它足以编写

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]
----

那只会产生:

adocked-greet-java2.png

你能建议一种只包括摘录的方法吗?我正在使用 asciidoc 8.6.9。

4

2 回答 2

3

您所做的应该在Asciidoctor(AsciiDoc 的Ruby 实现)中正常工作,但在AsciiDocPython 实现)中不能正常工作。

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

要使用 asciidoc 获得语法高亮,可以使用命令行开关asciidoc -a source-highlighter=pygments file.adoc

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

  1. :source-highlighter: pygments在每个源文件的顶部插入,并且
  2. 运行sudo gem install pygments.rb安装pygments
于 2015-02-19T22:45:09.440 回答
0

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

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

一口气引入更多代码摘录……</p>

于 2021-07-30T08:35:45.093 回答