9

asciidoc/asciidoctor でマクロを定義するにはどうすればよいですか?

ドキュメントの多くの部分で繰り返しパターンを使用するので、同じものを何度も入力しないようにパラメーター化された置換を行いたいと考えています。

特に、次の asciidoc スニペットがあります。

{set:cellbgcolor:grey}
[grid=none, frame=none]
|===
| X >| Y
|===
{set:cellbgcolor!}

そして、X と Y の代わりに異なるテキスト置換を使用して、ドキュメントのいくつかの部分に配置する必要があります。どうすればそれを実現できますか?

4

1 に答える 1

7

私の意見では、Asciidoctor では、他のドキュメンテーション エンジンで得られるすべての柔軟性/シンプルさが得られません。


Asciidoctor でインクルード マクロと変数を使用できると思います。

というファイルを作成しますsnippet.adoc(私の例はあなたの例に基づいています):

{set:cellbgcolor:grey}
[grid=none, frame=none]
|===
| {paramX} >| {paramY}
|===
{set:cellbgcolor!}

メインドキュメントでは、次のように使用します。

== My document

:paramX: lorem
:paramY: ipsum
include::snippet.adoc[]

Lorem ipsum dolore.

:paramX: aaaa
:paramY: bbbb
include::snippet.adoc[]

Lorem ipsum dolore.

つまり、 asciidoctor を拡張できます。独自の実際のマクロ (Java または Ruby で記述) を作成することもできますが、これにはさらに作業が必要です。ユースケースに応じて、オンラインでいくつかの例を見つけることができます。

于 2016-05-23T17:57:58.327 に答える