2

asciidoc を使用してコース資料を PDF として生成しています。資料を印刷するときに、コード サンプルが強調表示されないようにします。印刷がうまくいかないからです。PDFリーダーで資料を読むとき、どうしてもハイライト欲しい。

変数Highlightを定義しました。次のようにするとうまくいきます。

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

問題は、asciidoc ディレクティブとして解釈されるのではなく、生成された PDF ファイルに "[source, python]" というテキストが文字通り含まれていることです。

注: languageは構成ファイルで設定される変数です。

そのようなネストされたマクロがasciidocで可能かどうか、また可能であればその方法を誰でも確認できますか?

ありがとう!

4

0 に答える 0