使用 Asciidoctor,如何在 "include::" 期间排除标签之间的代码?
With Asciidoctor, how to exclude code between tags during an "include::"?
我知道如何在 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]
----
知道怎么做吗?
实际上这个功能已经在问题 1516 中被请求并实现了。
mojavelinux 优雅地实现的解决方案是为要排除的标签添加 !
。
因此,解决方案是:
[source, python]
----
include::my_code.py[tags=!main]
----
关于本期语法的更多详细信息包括:
- 使用多个标签 (
tags=tag1;tag2
)
- 使用通配符(
tags=*
、tags=!*
或 tags=**
)
我知道如何在 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]
----
知道怎么做吗?
实际上这个功能已经在问题 1516 中被请求并实现了。
mojavelinux 优雅地实现的解决方案是为要排除的标签添加 !
。
因此,解决方案是:
[source, python]
----
include::my_code.py[tags=!main]
----
关于本期语法的更多详细信息包括:
- 使用多个标签 (
tags=tag1;tag2
) - 使用通配符(
tags=*
、tags=!*
或tags=**
)