2016-11-07 4 views
1

私は簡単なマクロを作成して、赤でテキスト項目をasciidoctorに表示しようとしています。 次は動作しません:asciidoctorマクロでの役割の使用?

:redtext: [red]#some important text in red that occurs a lot# 

{redtext} 

またはさらに単純例えば:

:redcross: [red]#✘# 

私は、マクロで置換されていてもすることはできません何のためのルールを明確にしていません。 asciidoctorマニュアルに現在マクロ用の空白があります(http://asciidoctor.org/docs/user-manual/#macros)。 asciidocマニュアル(http://www.methods.co.nz/asciidoc/chunked/ch21.html)はそれほど明確ではありませんが、とにかくasciidoctorには該当しないことがあります。

関連のある未回答の質問はResuable markup fragments with Asciidoctorです。 これに関する関連する質問は、このために過剰なものであるインクルードを使用することを示唆しています。

マクロの制限はありますか?

答えて

0

うまくいくと思います。私たちは、例えば、すべての再利用可能なスニペットを格納するための単一glossary.asciidocファイルを持っている:あなたはこのスニペットを必要な場所そして、

:g: glossary.asciidoc 

index.asciidoc

tag::redtext[] 
[red]#some important text in red that occurs a lot# 
end::redtext[] 

あなたは少しのヘルパーを追加することができます

include::{g}[tag=redtext] 
+0

: *含めるには、ライン の開始時にのみ使用することができます*あなたの文書は、もはや単一のソースファイル です*ザ・には、私に含めるテキストと同じくらい冗長です。 –

1

定義したものはマクロではなく、属性です。 (使用するときは、属性参照と呼ばれます)。

インラインパスマクロを使用して、属性の定義を慎重に置換できます。ターゲット位置では、コンマで区切られた置換名(または置換文字)のリストを受け入れます。あなたのケースでは

、あなたが書くことができます。

:redtext: pass:q[[red]#some important text in red that occurs a lot#] 

を関連する部分は次のとおりです。

pass:q[...] 

詳細についてはsubstitutions in an attribute entryを参照してください。いくつかの新たな問題を紹介しません

関連する問題