asciidoc

时间:2016-11-11 16:06:23

标签: asciidoc a2x

我使用asciidoc生成PDF格式的课程资料。打印材料时,我不希望突出显示代码示例,因为它们打印效果不佳。使用PDF阅读器阅读材料时,我 想要突出显示。

我已定义变量突出显示,我可以执行以下操作,效果很好:

ifdef::highlight[]
[source, {language}]
endif::highlight[]
----
code
----

我在几十章中有几十个代码示例,所以我想使用一个可以检查突出显示变量状态的宏,并有条件地包含宏。然后我可以默认生成适合打印的版本,但在我需要查看器友好版本时,在命令行上定义突出显示版本。

我写了这样一个宏(在我的asciidoc配置文件中):

[macros] 
(?u)^(?P<name>hlsource)::(?P<target>\S*?)(\[(?P<attrlist>.*?)\])$=# 

[hlsource-blockmacro] 
ifdef::highlight[]
[source, {language}] 
endif::highlight[]  

问题是它在我生成的PDF文件中包含文本“[source,python]”,而不是被解释为asciidoc指令。

注意:语言是配置文件中设置的变量。

任何人都可以确认在asciidoc中是否可以使用这样的嵌套宏,如果是这样,如何做到这一点。

谢谢!

0 个答案:

没有答案