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

时间:2015-02-17 17:24:05

标签: documentation literate-programming 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
----

制作文档

adocked-greet-java1.png

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

我在documentation中看不到符号标记,但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]
----

这只会产生:

adocked-greet-java2.png

你能建议一种仅包含摘录的方法吗?我使用asciidoc 8.6.9。

2 个答案:

答案 0 :(得分:3)

您正在做的事情应该在Asciidoctor(AsciiDoc的Ruby实现)中正常工作,而不是AsciiDoc(Python实现)。

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

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

asciidoctor不需要(或可能)进行命令行切换。使用asciidoctor语法突出显示可通过以下方式获得:

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

答案 1 :(得分:0)

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

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

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