使用Asciidoctor,如何在“ include ::”期间在标签之间排除代码?

时间:2018-12-11 02:00:19

标签: asciidoctor

我知道如何在include期间使用标签在Asciidoctor中提取代码。

您可以在代码中添加标签:

# tag::function[]
def get_something():
    return "Smile"
# end::function[]

if __name__ == "__main__":
    res = get_something()
    print(res)

,然后在您的adoc文件中指定这些标签:

[source, python]
----
include::my_code.py[tags=function]
----

我想做的是通过使用相同的标记机制来排除一些代码。

我的代码就是这样

def get_something():
    return "Smile"

# tag::main[]
if __name__ == "__main__":
    res = get_something()
    print(res)
# end::main[]

和Asciidoc文件可能如下所示:

[source, python]
----
include::my_code.py[exclude-tags=main]
----

关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:0)

实际上,已经在问题1516中请求并实现了此功能。

mojavelinux优雅地实现的解决方案是为要排除的标签添加!

因此,解决方案将很简单

[source, python]
----
include::my_code.py[tags=!main]
----

您在此问题上的语法有更多详细信息,包括:

  • 使用多个标签(tags=tag1;tag2
  • 使用通配符(tags=*,tags =!* , or tags = **`)